Changeset 2162 in josm for trunk/src/org


Ignore:
Timestamp:
2009-09-20T09:52:57+02:00 (15 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.