Add a preferences action to the data menu

Signed-off-by: Taylor Smock <taylor.smock@kaart.com>
pull/1/head
Taylor Smock 2020-06-29 16:27:26 -06:00
rodzic 217e4586d6
commit 106313bc49
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
1 zmienionych plików z 12 dodań i 0 usunięć

Wyświetl plik

@ -1,6 +1,8 @@
// License: GPL. For details, see LICENSE file. // License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.mapwithai; package org.openstreetmap.josm.plugins.mapwithai;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.Component; import java.awt.Component;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; import java.util.ArrayList;
@ -17,6 +19,7 @@ import javax.swing.JMenu;
import javax.swing.JMenuItem; import javax.swing.JMenuItem;
import org.openstreetmap.josm.actions.JosmAction; import org.openstreetmap.josm.actions.JosmAction;
import org.openstreetmap.josm.actions.PreferencesAction;
import org.openstreetmap.josm.data.validation.OsmValidator; import org.openstreetmap.josm.data.validation.OsmValidator;
import org.openstreetmap.josm.data.validation.Test; import org.openstreetmap.josm.data.validation.Test;
import org.openstreetmap.josm.gui.MainApplication; import org.openstreetmap.josm.gui.MainApplication;
@ -61,6 +64,8 @@ public final class MapWithAIPlugin extends Plugin implements Destroyable {
private final List<Destroyable> destroyables; private final List<Destroyable> destroyables;
private PreferencesAction preferenceAction;
private static final Map<Class<? extends JosmAction>, Boolean> MENU_ENTRIES = new LinkedHashMap<>(); private static final Map<Class<? extends JosmAction>, Boolean> MENU_ENTRIES = new LinkedHashMap<>();
static { static {
MENU_ENTRIES.put(MapWithAIAction.class, false); MENU_ENTRIES.put(MapWithAIAction.class, false);
@ -90,6 +95,11 @@ public final class MapWithAIPlugin extends Plugin implements Destroyable {
} }
} }
// Add the preferences last to data
preferenceAction = PreferencesAction.forPreferenceTab(tr("MapWithAI Preferences"), tr("MapWithAI Preferences"),
MapWithAIPreferences.class);
MainMenu.add(dataMenu, preferenceAction);
VALIDATORS.forEach(clazz -> { VALIDATORS.forEach(clazz -> {
if (!OsmValidator.getAllAvailableTestClasses().contains(clazz)) { if (!OsmValidator.getAllAvailableTestClasses().contains(clazz)) {
OsmValidator.addTest(clazz); OsmValidator.addTest(clazz);
@ -164,6 +174,8 @@ public final class MapWithAIPlugin extends Plugin implements Destroyable {
for (final Entry<Action, Component> action : actions.entrySet()) { for (final Entry<Action, Component> action : actions.entrySet()) {
if (MENU_ENTRIES.containsKey(action.getKey().getClass())) { if (MENU_ENTRIES.containsKey(action.getKey().getClass())) {
dataMenu.remove(action.getValue()); dataMenu.remove(action.getValue());
} else if (action.getKey().equals(preferenceAction)) {
dataMenu.remove(action.getValue());
} }
} }