Ignore:
Timestamp:
2017-10-12T16:02:15+02:00 (2 years ago)
Author:
bastiK
Message:

see #15410 - change preferences scheme for named colors - makes runtime color name registry obsolete

Location:
trunk/src/org/openstreetmap/josm/data
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/Preferences.java

    r12982 r12987  
    4343import org.openstreetmap.josm.Main;
    4444import org.openstreetmap.josm.data.preferences.BooleanProperty;
    45 import org.openstreetmap.josm.data.preferences.ColorProperty;
    4645import org.openstreetmap.josm.data.preferences.DoubleProperty;
    4746import org.openstreetmap.josm.data.preferences.IntegerProperty;
     47import org.openstreetmap.josm.data.preferences.ColorInfo;
     48import org.openstreetmap.josm.data.preferences.LongProperty;
     49import org.openstreetmap.josm.data.preferences.NamedColorProperty;
     50import org.openstreetmap.josm.data.preferences.PreferencesReader;
     51import org.openstreetmap.josm.data.preferences.PreferencesWriter;
     52import org.openstreetmap.josm.spi.preferences.AbstractPreferences;
     53import org.openstreetmap.josm.spi.preferences.IBaseDirectories;
     54import org.openstreetmap.josm.spi.preferences.IPreferences;
    4855import org.openstreetmap.josm.spi.preferences.ListListSetting;
    4956import org.openstreetmap.josm.spi.preferences.ListSetting;
    50 import org.openstreetmap.josm.data.preferences.LongProperty;
    5157import org.openstreetmap.josm.spi.preferences.MapListSetting;
    52 import org.openstreetmap.josm.data.preferences.PreferencesReader;
    53 import org.openstreetmap.josm.data.preferences.PreferencesWriter;
    5458import org.openstreetmap.josm.spi.preferences.Setting;
    5559import org.openstreetmap.josm.spi.preferences.StringSetting;
    5660import org.openstreetmap.josm.io.OfflineAccessException;
    5761import org.openstreetmap.josm.io.OnlineResource;
    58 import org.openstreetmap.josm.spi.preferences.AbstractPreferences;
    59 import org.openstreetmap.josm.spi.preferences.IBaseDirectories;
    60 import org.openstreetmap.josm.spi.preferences.IPreferences;
    6162import org.openstreetmap.josm.tools.CheckParameterUtil;
    6263import org.openstreetmap.josm.tools.ColorHelper;
     
    143144    /**
    144145     * Maps color keys to human readable color name
    145      */
     146     * @deprecated (since 12987) no longer supported
     147     */
     148    @Deprecated
    146149    protected final SortedMap<String, String> colornames = new TreeMap<>();
    147150
     
    251254     * @since 12634
    252255     */
     256    @SuppressWarnings("deprecation")
    253257    public Preferences(Preferences pref) {
    254258        settingsMap.putAll(pref.settingsMap);
     
    630634
    631635    /**
     636     * Get all named colors, including customized and the default ones.
     637     * @return a map of all named colors (maps preference key to {@link ColorInfo})
     638     */
     639    public synchronized Map<String, ColorInfo> getAllNamedColors() {
     640        final Map<String, ColorInfo> all = new TreeMap<>();
     641        for (final Entry<String, Setting<?>> e : settingsMap.entrySet()) {
     642            if (!e.getKey().startsWith(NamedColorProperty.NAMED_COLOR_PREFIX))
     643                continue;
     644            Utils.instanceOfAndCast(e.getValue(), ListSetting.class)
     645                    .map(d -> d.getValue())
     646                    .map(lst -> ColorInfo.fromPref(lst, false))
     647                    .ifPresent(info -> all.put(e.getKey(), info));
     648        }
     649        for (final Entry<String, Setting<?>> e : defaultsMap.entrySet()) {
     650            if (!e.getKey().startsWith(NamedColorProperty.NAMED_COLOR_PREFIX))
     651                continue;
     652            Utils.instanceOfAndCast(e.getValue(), ListSetting.class)
     653                    .map(d -> d.getValue())
     654                    .map(lst -> ColorInfo.fromPref(lst, true))
     655                    .ifPresent(infoDef -> {
     656                        ColorInfo info = all.get(e.getKey());
     657                        if (info == null) {
     658                            all.put(e.getKey(), infoDef);
     659                        } else {
     660                            info.setDefaultValue(infoDef.getDefaultValue());
     661                        }
     662                    });
     663        }
     664        return all;
     665    }
     666
     667    /**
    632668     * Gets all known colors (preferences starting with the color prefix)
    633669     * @return All colors
    634      */
     670     * @deprecated (since 12987) replaced by {@link #getAllNamedColors()}
     671     */
     672    @Deprecated
    635673    public synchronized Map<String, String> getAllColors() {
    636674        final Map<String, String> all = new TreeMap<>();
     
    9751013    }
    9761014
    977     /* only for preferences */
     1015    /**
     1016     * only for preferences
     1017     * @deprecated (since 12987) no longer supported
     1018     */
     1019    @Deprecated
    9781020    public synchronized String getColorName(String o) {
    9791021        Matcher m = COLOR_LAYER_PATTERN.matcher(o);
     
    10081050    @Deprecated
    10091051    public synchronized Color getColor(String colName, String specName, Color def) {
    1010         String colKey = ColorProperty.getColorKey(colName);
     1052        String colKey = org.openstreetmap.josm.data.preferences.ColorProperty.getColorKey(colName);
    10111053        registerColor(colKey, colName);
    10121054        String colStr = specName != null ? get(COLOR_PREFIX+specName) : "";
     
    10261068     * @param colName The name of the color.
    10271069     * @since 10824
    1028      */
     1070     * @deprecated (since 12987) no longer supported
     1071     */
     1072    @Deprecated
    10291073    public void registerColor(String colKey, String colName) {
    10301074        if (!colKey.equals(colName)) {
     
    10501094     * @return true if the setting was modified
    10511095     * @see ColorProperty#put(Color)
    1052      */
     1096     * @deprecated (since 12987) no longer supported (see {@link NamedColorProperty})
     1097     */
     1098    @Deprecated
    10531099    public synchronized boolean putColor(String colKey, Color val) {
    10541100        return put(COLOR_PREFIX+colKey, val != null ? ColorHelper.color2html(val, true) : null);
     
    14351481    }
    14361482
     1483    @Override
     1484    public Set<String> getKeySet() {
     1485        return Collections.unmodifiableSet(settingsMap.keySet());
     1486    }
     1487
    14371488    /**
    14381489     * Gets a map of all settings that are currently stored
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java

    r12966 r12987  
    77
    88import org.openstreetmap.josm.data.preferences.CachingProperty;
    9 import org.openstreetmap.josm.data.preferences.ColorProperty;
     9import org.openstreetmap.josm.data.preferences.NamedColorProperty;
    1010import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
    1111
     
    8484    private final String name;
    8585    private final Color defaultColor;
    86     private final ColorProperty baseProperty;
     86    private final NamedColorProperty baseProperty;
    8787    private final CachingProperty<Color> property;
    8888
    8989    PaintColors(String name, Color defaultColor) {
    90         baseProperty = new ColorProperty(name, defaultColor);
     90        baseProperty = new NamedColorProperty(name, defaultColor);
    9191        property = baseProperty.cached();
    9292        this.name = name;
     
    123123     * @since 10874
    124124     */
    125     public ColorProperty getProperty() {
     125    public NamedColorProperty getProperty() {
    126126        return baseProperty;
    127127    }
  • trunk/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java

    r12983 r12987  
    191191     */
    192192    public boolean isSet() {
    193         return !getPreferences().get(key).isEmpty();
     193        return getPreferences().getKeySet().contains(key);
    194194    }
    195195
     
    206206     */
    207207    public void remove() {
    208         put(getDefaultValue());
     208        getPreferences().put(key, null);
    209209    }
    210210
  • trunk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java

    r11542 r12987  
    1111 * A property containing a {@link Color} value.
    1212 * @since 5464
     13 * @deprecated (since 12987) replaced by {@link NamedColorProperty}
    1314 */
     15@Deprecated
    1416public class ColorProperty extends AbstractToStringProperty<Color> {
    1517
  • trunk/src/org/openstreetmap/josm/data/validation/Severity.java

    r12667 r12987  
    77import java.awt.Color;
    88
    9 import org.openstreetmap.josm.data.preferences.ColorProperty;
     9import org.openstreetmap.josm.data.preferences.NamedColorProperty;
    1010import org.openstreetmap.josm.tools.Logging;
    1111
     
    1414    // CHECKSTYLE.OFF: SingleSpaceSeparator
    1515    /** Error messages */
    16     ERROR(1, tr("Errors"), /* ICON(data/) */"error",       new ColorProperty(marktr("validation error"), Color.RED).get()),
     16    ERROR(1, tr("Errors"), /* ICON(data/) */"error",       new NamedColorProperty(marktr("validation error"), Color.RED).get()),
    1717    /** Warning messages */
    18     WARNING(2, tr("Warnings"), /* ICON(data/) */"warning", new ColorProperty(marktr("validation warning"), Color.YELLOW).get()),
     18    WARNING(2, tr("Warnings"), /* ICON(data/) */"warning", new NamedColorProperty(marktr("validation warning"), Color.YELLOW).get()),
    1919    /** Other messages */
    20     OTHER(3, tr("Other"), /* ICON(data/) */"other",        new ColorProperty(marktr("validation other"), Color.CYAN).get());
     20    OTHER(3, tr("Other"), /* ICON(data/) */"other",        new NamedColorProperty(marktr("validation other"), Color.CYAN).get());
    2121    // CHECKSTYLE.ON: SingleSpaceSeparator
    2222
Note: See TracChangeset for help on using the changeset viewer.