Changeset 2162 in josm


Ignore:
Timestamp:
Sep 20, 2009 9:52:57 AM (4 years ago)
Author:
stoecker
Message:

see #3550 - patch by bastik - resize dialogs on right side

Location:
trunk/src/org/openstreetmap/josm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/Main.java

    r2070 r2162  
    575575 
    576576    static public void saveGuiGeometry() { 
    577         // save the current window geometry 
     577        // save the current window geometry and the width of the toggle dialog area 
    578578        String newGeometry = ""; 
     579        String newToggleDlgWidth = ""; 
    579580        try { 
    580581            if (((JFrame)parent).getExtendedState() == JFrame.NORMAL) { 
     
    599600                newGeometry = width + "x" + height + "+" + x + "+" + y; 
    600601            } 
     602             
     603            newToggleDlgWidth = Integer.toString(map.getToggleDlgWidth()); 
     604            if (newToggleDlgWidth.equals(Integer.toString(map.DEF_TOGGLE_DLG_WIDTH))) { 
     605                newToggleDlgWidth = ""; 
     606            } 
    601607        } 
    602608        catch (Exception e) { 
     
    604610        } 
    605611        pref.put("gui.geometry", newGeometry); 
     612        pref.put("toggleDialogs.width", newToggleDlgWidth); 
    606613    } 
    607614 
  • trunk/src/org/openstreetmap/josm/gui/MapFrame.java

    r2123 r2162  
    66import java.awt.Component; 
    77import java.awt.Container; 
     8import java.awt.Dimension; 
    89import java.util.ArrayList; 
    910 
     
    1213import javax.swing.BoxLayout; 
    1314import javax.swing.ButtonGroup; 
     15import javax.swing.JSplitPane; 
    1416import javax.swing.JPanel; 
    1517import javax.swing.JToolBar; 
     18import javax.swing.border.Border; 
     19import javax.swing.plaf.basic.BasicSplitPaneUI; 
     20import javax.swing.plaf.basic.BasicSplitPaneDivider; 
    1621 
    1722import org.openstreetmap.josm.Main; 
     
    2429import org.openstreetmap.josm.gui.dialogs.CommandStackDialog; 
    2530import org.openstreetmap.josm.gui.dialogs.ConflictDialog; 
     31import org.openstreetmap.josm.gui.dialogs.FilterDialog; 
    2632import org.openstreetmap.josm.gui.dialogs.HistoryDialog; 
    2733import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 
     
    2935import org.openstreetmap.josm.gui.dialogs.RelationListDialog; 
    3036import org.openstreetmap.josm.gui.dialogs.SelectionListDialog; 
    31 import org.openstreetmap.josm.gui.dialogs.FilterDialog; 
    3237import org.openstreetmap.josm.gui.dialogs.ToggleDialog; 
    3338import org.openstreetmap.josm.gui.dialogs.UserListDialog; 
     
    7479 
    7580    public final ButtonGroup toolGroup = new ButtonGroup(); 
     81     
     82    /** 
     83     * Default width of the toggle dialog area. 
     84     */ 
     85    public final int DEF_TOGGLE_DLG_WIDTH = 330; 
    7686 
    7787    public MapFrame() { 
     
    7989        setLayout(new BorderLayout()); 
    8090 
    81         add(mapView = new MapView(), BorderLayout.CENTER); 
     91        mapView = new MapView(); 
    8292 
    8393        new FileDrop(mapView); 
     
    96106        toolGroup.setSelected(((AbstractButton)toolBarActions.getComponent(0)).getModel(), true); 
    97107 
    98         add(toggleDialogs, BorderLayout.EAST); 
     108        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, 
     109                             mapView, toggleDialogs);  
     110 
     111        /** 
     112         * All additional space goes to the mapView 
     113         */ 
     114        splitPane.setResizeWeight(1.0); 
     115         
     116        /** 
     117         * Some beautifications. 
     118         */ 
     119        splitPane.setDividerSize(5); 
     120        splitPane.setBorder(null); 
     121        splitPane.setUI(new BasicSplitPaneUI() { 
     122            public BasicSplitPaneDivider createDefaultDivider() { 
     123                return new BasicSplitPaneDivider(this) { 
     124                    public void setBorder(Border b) { 
     125                    } 
     126                }; 
     127            } 
     128        }); 
     129         
     130        add(splitPane, BorderLayout.CENTER); 
     131 
    99132        toggleDialogs.setLayout(new BoxLayout(toggleDialogs, BoxLayout.Y_AXIS)); 
     133        toggleDialogs.setPreferredSize(new Dimension(Main.pref.getInteger("toggleDialogs.width",DEF_TOGGLE_DLG_WIDTH), 0)); 
     134                                                                         
     135        toggleDialogs.setMinimumSize(new Dimension(24, 0)); 
     136        mapView.setMinimumSize(new Dimension(10,0)); 
    100137 
    101138        toolBarToggle.setFloatable(false); 
     
    268305        return null; 
    269306    } 
     307 
     308    /** 
     309     * Returns the current width of the (possibly resized) toggle dialog area 
     310     */ 
     311    public int getToggleDlgWidth() { 
     312        return toggleDialogs.getWidth(); 
     313    } 
    270314} 
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r2111 r2162  
    9797    private boolean isCollapsed; 
    9898 
    99     /** the preferred width of all docked toggle dialogs */ 
    100     final private int TOGGLE_DIALOG_WIDTH = 330; 
    10199    /** the preferred height if the toggle dialog is expanded */ 
    102100    private int preferredHeight; 
     
    131129     */ 
    132130    private void init(String name, String iconName, String tooltip, Shortcut shortcut, final int preferredHeight) { 
    133         setPreferredSize(new Dimension(TOGGLE_DIALOG_WIDTH, preferredHeight)); 
     131        /** Use the full width of the parent element */ 
     132        setPreferredSize(new Dimension(0, preferredHeight)); 
     133        /** Override any minimum sizes of child elements so the user can resize freely */ 
     134        setMinimumSize(new Dimension(0,0)); 
    134135        this.preferredHeight = preferredHeight; 
    135136        toggleAction = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortcut, iconName); 
     
    139140        setLayout(new BorderLayout()); 
    140141 
    141         // show the minimize button 
     142        /** show the minimize button */ 
    142143        lblMinimized = new JLabel(ImageProvider.get("misc", "normal")); 
    143144        titleBar = new TitleBar(name, iconName); 
     
    185186        isCollapsed = true; 
    186187        Main.pref.put(preferencePrefix+".minimized", true); 
    187         setPreferredSize(new Dimension(TOGGLE_DIALOG_WIDTH,20)); 
    188         setMaximumSize(new Dimension(TOGGLE_DIALOG_WIDTH,20)); 
     188        setPreferredSize(new Dimension(0,20)); 
     189        setMaximumSize(new Dimension(Integer.MAX_VALUE,20)); 
    189190        lblMinimized.setIcon(ImageProvider.get("misc", "minimized")); 
    190191        refreshToggleDialogsView(); 
     
    198199        isCollapsed = false; 
    199200        Main.pref.put(preferencePrefix+".minimized", false); 
    200         setPreferredSize(new Dimension(TOGGLE_DIALOG_WIDTH,preferredHeight)); 
    201         setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)); 
     201        setPreferredSize(new Dimension(0,preferredHeight)); 
     202        setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); 
    202203        lblMinimized.setIcon(ImageProvider.get("misc", "normal")); 
    203204        refreshToggleDialogsView(); 
     
    522523     */ 
    523524    protected Dimension getDefaultDetachedSize() { 
    524         return new Dimension(TOGGLE_DIALOG_WIDTH, preferredHeight); 
     525        return new Dimension(Main.map.DEF_TOGGLE_DLG_WIDTH, preferredHeight); 
    525526    } 
    526527} 
Note: See TracChangeset for help on using the changeset viewer.