Changeset 6426 in josm


Ignore:
Timestamp:
2013-11-29T23:01:35+01:00 (10 years ago)
Author:
simon04
Message:

see #9309 - provide direct menu items to preset/imagery preferences

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

Legend:

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

    r6380 r6426  
    1010import org.openstreetmap.josm.Main;
    1111import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
     12import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
     13import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
     14import org.openstreetmap.josm.tools.CheckParameterUtil;
    1215import org.openstreetmap.josm.tools.Shortcut;
     16import org.openstreetmap.josm.tools.Utils;
    1317
    1418/**
     
    1923public class PreferencesAction extends JosmAction implements Runnable {
    2024
     25    private final Class<? extends TabPreferenceSetting> tab;
     26    private final Class<? extends SubPreferenceSetting> subTab;
     27
     28    private PreferencesAction(String name, String tooltip,
     29                              Class<? extends TabPreferenceSetting> tab, Class<? extends SubPreferenceSetting> subTab) {
     30        super(name, "preference", tooltip, null, false, "preference_" + Utils.<Class>firstNonNull(tab, subTab).getName(), false);
     31        this.tab = tab;
     32        this.subTab = subTab;
     33    }
     34
     35    public static PreferencesAction forPreferenceTab(String name, String tooltip, Class<? extends TabPreferenceSetting> tab) {
     36        CheckParameterUtil.ensureParameterNotNull(tab);
     37        return new PreferencesAction(name, tooltip, tab, null);
     38    }
     39
     40    public static PreferencesAction forPreferenceSubTab(String name, String tooltip, Class<? extends SubPreferenceSetting> subTab) {
     41        CheckParameterUtil.ensureParameterNotNull(subTab);
     42        return new PreferencesAction(name, tooltip, null, subTab);
     43    }
     44
    2145    /**
    2246     * Create the preference action with "&Preferences" as label.
     
    2650                Shortcut.registerShortcut("system:preferences", tr("Preferences"), KeyEvent.VK_F12, Shortcut.DIRECT), true);
    2751        putValue("help", ht("/Action/Preferences"));
     52        this.tab = null;
     53        this.subTab = null;
    2854    }
    2955
     
    3864    @Override
    3965    public void run() {
     66        final PreferenceDialog p = new PreferenceDialog(Main.parent);
     67        if (tab != null) {
     68            p.selectPreferencesTabByClass(tab);
     69        } else if( subTab != null) {
     70            p.selectSubPreferencesTabByClass(subTab);
     71        }
     72        p.setVisible(true);
    4073        new PreferenceDialog(Main.parent).setVisible(true);
    4174    }
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r6412 r6426  
    110110import org.openstreetmap.josm.gui.layer.Layer;
    111111import org.openstreetmap.josm.gui.mappaint.MapPaintMenu;
     112import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference;
     113import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    112114import org.openstreetmap.josm.gui.tagging.TaggingPresetSearchAction;
    113115import org.openstreetmap.josm.tools.ImageProvider;
     
    693695
    694696        add(presetsMenu, presetSearchAction);
     697        add(presetsMenu, PreferencesAction.forPreferenceSubTab(tr("Preset preferences"),
     698                tr("Click to open the tagging presets tab in the preferences"), TaggingPresetPreference.class));
    695699        presetsMenu.addSeparator();
     700
     701        add(imageryMenu, PreferencesAction.forPreferenceTab(tr("Imagery preferences"),
     702                tr("Click to open the imagery tab in the preferences"), ImageryPreference.class));
    696703       
    697704        add(selectionMenu, selectAll);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java

    r6289 r6426  
    5858import org.openstreetmap.josm.Main;
    5959import org.openstreetmap.josm.actions.ExtensionFileFilter;
     60import org.openstreetmap.josm.actions.JosmAction;
     61import org.openstreetmap.josm.actions.PreferencesAction;
    6062import org.openstreetmap.josm.gui.ExtendedDialog;
    6163import org.openstreetmap.josm.gui.PleaseWaitRunnable;
     
    6668import org.openstreetmap.josm.gui.mappaint.StyleSource;
    6769import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
    68 import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
    6970import org.openstreetmap.josm.gui.preferences.SourceEntry;
     71import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference;
    7072import org.openstreetmap.josm.gui.util.FileFilterAllFiles;
    7173import org.openstreetmap.josm.gui.widgets.HtmlPanel;
     
    9092    protected MoveUpDownAction downAction;
    9193    protected JCheckBox cbWireframe;
     94
     95    public static final JosmAction PREFERENCE_ACTION = PreferencesAction.forPreferenceSubTab(
     96            tr("Map paint preferences"), null, MapPaintPreference.class);
    9297
    9398    /**
     
    158163        InputMapUtils.addSpacebarAction(tblStyles, onoffAction);
    159164
    160         createLayout(p, true, Arrays.asList(new SideButton[] {
     165        createLayout(p, true, Arrays.asList(
    161166                new SideButton(onoffAction, false),
    162167                new SideButton(upAction, false),
    163168                new SideButton(downAction, false),
    164                 new SideButton(new LaunchMapPaintPreferencesAction(), false)
    165         }));
     169                new SideButton(PREFERENCE_ACTION, false)
     170        ));
    166171    }
    167172
     
    405410        public void valueChanged(ListSelectionEvent e) {
    406411            updateEnabledState();
    407         }
    408     }
    409 
    410     /**
    411      * Opens preferences window and selects the mappaint tab.
    412      */
    413     public static class LaunchMapPaintPreferencesAction extends AbstractAction {
    414         /**
    415          * Constructs a new {@code LaunchMapPaintPreferencesAction}.
    416          */
    417         public LaunchMapPaintPreferencesAction() {
    418             putValue(NAME, tr("Preferences"));
    419             putValue(SMALL_ICON, ImageProvider.get("dialogs", "mappaintpreference"));
    420         }
    421 
    422         @Override
    423         public void actionPerformed(ActionEvent e) {
    424             final PreferenceDialog p =new PreferenceDialog(Main.parent);
    425             p.selectMapPaintPreferenceTab();
    426             p.setVisible(true);
    427412        }
    428413    }
  • trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java

    r6336 r6426  
    1414import org.openstreetmap.josm.actions.JosmAction;
    1515import org.openstreetmap.josm.gui.dialogs.MapPaintDialog;
    16 import org.openstreetmap.josm.gui.dialogs.MapPaintDialog.LaunchMapPaintPreferencesAction;
    1716import org.openstreetmap.josm.gui.layer.GpxLayer;
    1817import org.openstreetmap.josm.gui.layer.Layer;
     
    7877    }
    7978    private final Map<String, MapPaintAction> actions = new HashMap<String, MapPaintAction>();
    80     private final LaunchMapPaintPreferencesAction mapPaintPreferencesAction = new MapPaintDialog.LaunchMapPaintPreferencesAction() {
    81 
    82         {
    83             putValue("toolbar", "mappaintpreference");
    84         }
    85     };
    8679
    8780    /**
     
    110103        }
    111104        addSeparator();
    112         add(mapPaintPreferencesAction);
     105        add(MapPaintDialog.PREFERENCE_ACTION);
    113106    }
    114107
  • trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java

    r6084 r6426  
    3232import org.openstreetmap.josm.gui.help.HelpUtil;
    3333import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane.ValidationListener;
    34 import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference;
    3534import org.openstreetmap.josm.tools.GBC;
    3635import org.openstreetmap.josm.tools.ImageProvider;
     
    186185        }
    187186    }
    188 
    189     public void selectMapPaintPreferenceTab() {
    190         tpPreferences.selectSubTabByPref(MapPaintPreference.class);
    191     }
    192187}
Note: See TracChangeset for help on using the changeset viewer.