Index: /applications/editors/josm/plugins/colorscheme/build.xml
===================================================================
--- /applications/editors/josm/plugins/colorscheme/build.xml	(revision 35642)
+++ /applications/editors/josm/plugins/colorscheme/build.xml	(revision 35643)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Uses new constructor for Plugin"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="14153"/>
+    <property name="plugin.main.version" value="17314"/>
 
     <property name="plugin.author" value="Christof Dallermassl"/>
Index: /applications/editors/josm/plugins/colorscheme/src/org/openstreetmap/josm/plugins/colorscheme/ColorSchemePreference.java
===================================================================
--- /applications/editors/josm/plugins/colorscheme/src/org/openstreetmap/josm/plugins/colorscheme/ColorSchemePreference.java	(revision 35642)
+++ /applications/editors/josm/plugins/colorscheme/src/org/openstreetmap/josm/plugins/colorscheme/ColorSchemePreference.java	(revision 35643)
@@ -8,9 +8,6 @@
 
 import java.awt.GridBagLayout;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
@@ -29,5 +26,4 @@
 import org.openstreetmap.josm.data.preferences.ColorInfo;
 import org.openstreetmap.josm.gui.MainApplication;
-import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
@@ -43,13 +39,4 @@
     public static final String PREF_KEY_COLOR_PREFIX = "color.";
     private JList<String> schemesList;
-    private DefaultListModel<String> listModel;
-    private List<String>colorKeys;
-    private ColorPreference colorPreference;
-
-    /**
-     * Default Constructor
-     */
-    public ColorSchemePreference() {
-    }
 
     @Override
@@ -58,15 +45,9 @@
         panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
 
-        Map<String, String> colorMap = Preferences.main().getAllPrefix(PREF_KEY_COLOR_PREFIX);
-        colorKeys = new ArrayList<>(colorMap.keySet());
-        Collections.sort(colorKeys);
-        listModel = new DefaultListModel<>();
+        DefaultListModel<String> listModel = new DefaultListModel<>();
         schemesList = new JList<>(listModel);
-        String schemes = Config.getPref().get(PREF_KEY_SCHEMES_NAMES);
-        StringTokenizer st = new StringTokenizer(schemes, ";");
-        String schemeName;
+        StringTokenizer st = new StringTokenizer(Config.getPref().get(PREF_KEY_SCHEMES_NAMES), ";");
         while (st.hasMoreTokens()) {
-            schemeName = st.nextToken();
-            listModel.addElement(schemeName);
+            listModel.addElement(st.nextToken());
         }
 
@@ -76,5 +57,5 @@
                 JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Please select a scheme to use."));
             else {
-                String schemeName1 = (String) listModel.get(schemesList.getSelectedIndex());
+                String schemeName1 = listModel.get(schemesList.getSelectedIndex());
                 getColorPreference(gui).setColors(getColorMap(schemeName1));
             }
@@ -82,10 +63,10 @@
         JButton addScheme = new JButton(tr("Add"));
         addScheme.addActionListener(e -> {
-            String schemeName1 = JOptionPane.showInputDialog(MainApplication.getMainFrame(), tr("Color Scheme"));
-            if (schemeName1 == null)
+            String schemeName = JOptionPane.showInputDialog(MainApplication.getMainFrame(), tr("Color Scheme"));
+            if (schemeName == null)
                 return;
-            schemeName1 = schemeName1.replaceAll("\\.", "_");
-            setColorScheme(schemeName1, getColorPreference(gui).getColors());
-            listModel.addElement(schemeName1);
+            schemeName = schemeName.replace("\\.", "_");
+            setColorScheme(schemeName, getColorPreference(gui).getColors());
+            listModel.addElement(schemeName);
             saveSchemeNamesToPref();
         });
@@ -96,6 +77,6 @@
                 JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Please select the scheme to delete."));
             else {
-                String schemeName1 = (String) listModel.get(schemesList.getSelectedIndex());
-                removeColorSchemeFromPreferences(schemeName1);
+                String schemeName = listModel.get(schemesList.getSelectedIndex());
+                removeColorSchemeFromPreferences(schemeName);
                 listModel.remove(schemesList.getSelectedIndex());
                 saveSchemeNamesToPref();
@@ -119,10 +100,10 @@
         JScrollPane scrollpane = new JScrollPane(panel);
         scrollpane.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
-        gui.getDisplayPreference().getTabPane().addTab(tr("Color Schemes"), scrollpane);
+        getColorPreference(gui).getTabPane().addTab(tr("Color Schemes"), scrollpane);
     }
 
     @Override
     public TabPreferenceSetting getTabPreferenceSetting(final PreferenceTabbedPane gui) {
-        return gui.getDisplayPreference();
+        return getColorPreference(gui);
     }
 
@@ -156,6 +137,5 @@
     public void removeColorSchemeFromPreferences(String schemeName) {
         // delete color entries for scheme in preferences:
-        Map<String, String> colors = Preferences.main().getAllPrefix(PREF_KEY_SCHEMES_PREFIX + schemeName + ".");
-        for(String key : colors.keySet()) {
+        for (String key : Preferences.main().getAllPrefix(PREF_KEY_SCHEMES_PREFIX + schemeName + ".").keySet()) {
             Config.getPref().put(key, null);
         }
@@ -168,8 +148,7 @@
      */
     public void setColorScheme(String schemeName, Map<String, ColorInfo> colorMap) {
-        String key;
-        for(String colorKey : colorMap.keySet()) {
-            key = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX + colorKey;
-            Config.getPref().put(key, ColorHelper.color2html(colorMap.get(colorKey).getValue()));
+        for (Map.Entry<String, ColorInfo> color : colorMap.entrySet()) {
+        	String key = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX + color.getKey();
+            Config.getPref().put(key, ColorHelper.color2html(color.getValue().getValue()));
         }
     }
@@ -182,9 +161,8 @@
      */
     public Map<String, ColorInfo> getColorMap(String schemeName) {
-        String colorKey;
         String prefix = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX;
         Map<String, ColorInfo> colorMap = new HashMap<>();
         for(String schemeColorKey : Preferences.main().getAllPrefix(prefix).keySet()) {
-            colorKey = schemeColorKey.substring(prefix.length());
+            String colorKey = schemeColorKey.substring(prefix.length());
             colorMap.put(colorKey, ColorInfo.fromPref(Arrays.asList(
                     // FIXME: does not work, corrupts the color table ? See #16110
@@ -195,13 +173,5 @@
 
     public ColorPreference getColorPreference(PreferenceTabbedPane gui) {
-        if(colorPreference == null) {
-            for(PreferenceSetting setting : gui.getSettings()) {
-                if(setting instanceof ColorPreference) {
-                    colorPreference = (ColorPreference) setting;
-                    break;
-                }
-            }
-        }
-        return colorPreference;
+    	return gui.getSetting(ColorPreference.class);
     }
 }
