Changeset 35643 in osm


Ignore:
Timestamp:
2020-11-16T17:01:04+01:00 (3 years ago)
Author:
Don-vip
Message:

see #19968 - see #7548 - move colorscheme preferences to Color preferences tab + code cleanup

Location:
applications/editors/josm/plugins/colorscheme
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/colorscheme/build.xml

    r34573 r35643  
    55    <property name="commit.message" value="Uses new constructor for Plugin"/>
    66    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    7     <property name="plugin.main.version" value="14153"/>
     7    <property name="plugin.main.version" value="17314"/>
    88
    99    <property name="plugin.author" value="Christof Dallermassl"/>
  • applications/editors/josm/plugins/colorscheme/src/org/openstreetmap/josm/plugins/colorscheme/ColorSchemePreference.java

    r34573 r35643  
    88
    99import java.awt.GridBagLayout;
    10 import java.util.ArrayList;
    1110import java.util.Arrays;
    12 import java.util.Collections;
    1311import java.util.HashMap;
    14 import java.util.List;
    1512import java.util.Map;
    1613import java.util.StringTokenizer;
     
    2926import org.openstreetmap.josm.data.preferences.ColorInfo;
    3027import org.openstreetmap.josm.gui.MainApplication;
    31 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    3228import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
    3329import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
     
    4339    public static final String PREF_KEY_COLOR_PREFIX = "color.";
    4440    private JList<String> schemesList;
    45     private DefaultListModel<String> listModel;
    46     private List<String>colorKeys;
    47     private ColorPreference colorPreference;
    48 
    49     /**
    50      * Default Constructor
    51      */
    52     public ColorSchemePreference() {
    53     }
    5441
    5542    @Override
     
    5845        panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
    5946
    60         Map<String, String> colorMap = Preferences.main().getAllPrefix(PREF_KEY_COLOR_PREFIX);
    61         colorKeys = new ArrayList<>(colorMap.keySet());
    62         Collections.sort(colorKeys);
    63         listModel = new DefaultListModel<>();
     47        DefaultListModel<String> listModel = new DefaultListModel<>();
    6448        schemesList = new JList<>(listModel);
    65         String schemes = Config.getPref().get(PREF_KEY_SCHEMES_NAMES);
    66         StringTokenizer st = new StringTokenizer(schemes, ";");
    67         String schemeName;
     49        StringTokenizer st = new StringTokenizer(Config.getPref().get(PREF_KEY_SCHEMES_NAMES), ";");
    6850        while (st.hasMoreTokens()) {
    69             schemeName = st.nextToken();
    70             listModel.addElement(schemeName);
     51            listModel.addElement(st.nextToken());
    7152        }
    7253
     
    7657                JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Please select a scheme to use."));
    7758            else {
    78                 String schemeName1 = (String) listModel.get(schemesList.getSelectedIndex());
     59                String schemeName1 = listModel.get(schemesList.getSelectedIndex());
    7960                getColorPreference(gui).setColors(getColorMap(schemeName1));
    8061            }
     
    8263        JButton addScheme = new JButton(tr("Add"));
    8364        addScheme.addActionListener(e -> {
    84             String schemeName1 = JOptionPane.showInputDialog(MainApplication.getMainFrame(), tr("Color Scheme"));
    85             if (schemeName1 == null)
     65            String schemeName = JOptionPane.showInputDialog(MainApplication.getMainFrame(), tr("Color Scheme"));
     66            if (schemeName == null)
    8667                return;
    87             schemeName1 = schemeName1.replaceAll("\\.", "_");
    88             setColorScheme(schemeName1, getColorPreference(gui).getColors());
    89             listModel.addElement(schemeName1);
     68            schemeName = schemeName.replace("\\.", "_");
     69            setColorScheme(schemeName, getColorPreference(gui).getColors());
     70            listModel.addElement(schemeName);
    9071            saveSchemeNamesToPref();
    9172        });
     
    9677                JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Please select the scheme to delete."));
    9778            else {
    98                 String schemeName1 = (String) listModel.get(schemesList.getSelectedIndex());
    99                 removeColorSchemeFromPreferences(schemeName1);
     79                String schemeName = listModel.get(schemesList.getSelectedIndex());
     80                removeColorSchemeFromPreferences(schemeName);
    10081                listModel.remove(schemesList.getSelectedIndex());
    10182                saveSchemeNamesToPref();
     
    119100        JScrollPane scrollpane = new JScrollPane(panel);
    120101        scrollpane.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
    121         gui.getDisplayPreference().getTabPane().addTab(tr("Color Schemes"), scrollpane);
     102        getColorPreference(gui).getTabPane().addTab(tr("Color Schemes"), scrollpane);
    122103    }
    123104
    124105    @Override
    125106    public TabPreferenceSetting getTabPreferenceSetting(final PreferenceTabbedPane gui) {
    126         return gui.getDisplayPreference();
     107        return getColorPreference(gui);
    127108    }
    128109
     
    156137    public void removeColorSchemeFromPreferences(String schemeName) {
    157138        // delete color entries for scheme in preferences:
    158         Map<String, String> colors = Preferences.main().getAllPrefix(PREF_KEY_SCHEMES_PREFIX + schemeName + ".");
    159         for(String key : colors.keySet()) {
     139        for (String key : Preferences.main().getAllPrefix(PREF_KEY_SCHEMES_PREFIX + schemeName + ".").keySet()) {
    160140            Config.getPref().put(key, null);
    161141        }
     
    168148     */
    169149    public void setColorScheme(String schemeName, Map<String, ColorInfo> colorMap) {
    170         String key;
    171         for(String colorKey : colorMap.keySet()) {
    172             key = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX + colorKey;
    173             Config.getPref().put(key, ColorHelper.color2html(colorMap.get(colorKey).getValue()));
     150        for (Map.Entry<String, ColorInfo> color : colorMap.entrySet()) {
     151                String key = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX + color.getKey();
     152            Config.getPref().put(key, ColorHelper.color2html(color.getValue().getValue()));
    174153        }
    175154    }
     
    182161     */
    183162    public Map<String, ColorInfo> getColorMap(String schemeName) {
    184         String colorKey;
    185163        String prefix = PREF_KEY_SCHEMES_PREFIX + schemeName + "." + PREF_KEY_COLOR_PREFIX;
    186164        Map<String, ColorInfo> colorMap = new HashMap<>();
    187165        for(String schemeColorKey : Preferences.main().getAllPrefix(prefix).keySet()) {
    188             colorKey = schemeColorKey.substring(prefix.length());
     166            String colorKey = schemeColorKey.substring(prefix.length());
    189167            colorMap.put(colorKey, ColorInfo.fromPref(Arrays.asList(
    190168                    // FIXME: does not work, corrupts the color table ? See #16110
     
    195173
    196174    public ColorPreference getColorPreference(PreferenceTabbedPane gui) {
    197         if(colorPreference == null) {
    198             for(PreferenceSetting setting : gui.getSettings()) {
    199                 if(setting instanceof ColorPreference) {
    200                     colorPreference = (ColorPreference) setting;
    201                     break;
    202                 }
    203             }
    204         }
    205         return colorPreference;
     175        return gui.getSetting(ColorPreference.class);
    206176    }
    207177}
Note: See TracChangeset for help on using the changeset viewer.