Ticket #18806: 18806.patch

File 18806.patch, 4.6 KB (added by taylor.smock, 5 years ago)

Add standard options when initialized

  • src/org/openstreetmap/josm/gui/MainMenu.java

     
    128128import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    129129import org.openstreetmap.josm.gui.mappaint.MapPaintMenu;
    130130import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference;
    131 import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    132131import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchPrimitiveDialog;
    133132import org.openstreetmap.josm.spi.preferences.Config;
    134133import org.openstreetmap.josm.tools.PlatformManager;
     
    838837        viewMenu.add(expertItem);
    839838        ExpertToggleAction.getInstance().addButtonModel(expertItem.getModel());
    840839
    841         add(presetsMenu, presetSearchAction);
    842         add(presetsMenu, presetSearchPrimitiveAction);
    843         add(presetsMenu, PreferencesAction.forPreferenceSubTab(tr("Preset preferences"),
    844                 tr("Click to open the tagging presets tab in the preferences"), TaggingPresetPreference.class));
    845         presetsMenu.addSeparator();
    846 
    847840        add(imageryMenu, reorderImageryLayersAction);
    848841        add(imageryMenu, PreferencesAction.forPreferenceTab(tr("Imagery preferences..."),
    849842                tr("Click to open the imagery tab in the preferences"), ImageryPreference.class));
  • src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.tagging.presets;
    33
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5
    46import java.util.ArrayList;
    57import java.util.Collection;
    68import java.util.Collections;
     
    1315import javax.swing.JMenuItem;
    1416import javax.swing.JSeparator;
    1517
     18import org.openstreetmap.josm.actions.PreferencesAction;
    1619import org.openstreetmap.josm.data.osm.IPrimitive;
    1720import org.openstreetmap.josm.gui.MainApplication;
     21import org.openstreetmap.josm.gui.MainMenu;
    1822import org.openstreetmap.josm.gui.MenuScroller;
    1923import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
     24import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    2025import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup;
    2126import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    2227import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
     
    6065     * Initialize the tagging presets (load and may display error)
    6166     */
    6267    public static void initialize() {
     68        MainMenu mainMenu = MainApplication.getMenu();
     69        JMenu presetsMenu = mainMenu.presetsMenu;
     70        if (presetsMenu.getComponentCount() == 0) {
     71            MainMenu.add(presetsMenu, mainMenu.presetSearchAction);
     72            MainMenu.add(presetsMenu, mainMenu.presetSearchPrimitiveAction);
     73            MainMenu.add(presetsMenu, PreferencesAction.forPreferenceSubTab(tr("Preset preferences"),
     74                    tr("Click to open the tagging presets tab in the preferences"), TaggingPresetPreference.class));
     75            presetsMenu.addSeparator();
     76        }
     77
    6378        readFromPreferences();
    6479        for (TaggingPreset tp: taggingPresets) {
    6580            if (!(tp instanceof TaggingPresetSeparator)) {
     
    6782            }
    6883        }
    6984        if (taggingPresets.isEmpty()) {
    70             MainApplication.getMenu().presetsMenu.setVisible(false);
     85            presetsMenu.setVisible(false);
    7186        } else {
    7287            Map<TaggingPresetMenu, JMenu> submenus = new HashMap<>();
    7388            for (final TaggingPreset p : taggingPresets) {
    74                 JMenu m = p.group != null ? submenus.get(p.group) : MainApplication.getMenu().presetsMenu;
     89                JMenu m = p.group != null ? submenus.get(p.group) : presetsMenu;
    7590                if (m == null && p.group != null) {
    7691                    Logging.error("No tagging preset submenu for " + p.group);
    7792                } else if (m == null) {
     
    97112            }
    98113        }
    99114        if (Config.getPref().getBoolean("taggingpreset.sortmenu")) {
    100             TaggingPresetMenu.sortMenu(MainApplication.getMenu().presetsMenu);
     115            TaggingPresetMenu.sortMenu(presetsMenu);
    101116        }
    102117        listeners.forEach(TaggingPresetListener::taggingPresetsModified);
    103118    }