Ticket #19197: 19197.1.patch

File 19197.1.patch, 2.9 KB (added by taylor.smock, 6 years ago)

Use ColorHelper. No tests implemented.

  • src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java

     
    2020import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
    2121import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
    2222import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
     23import org.openstreetmap.josm.data.preferences.NamedColorProperty;
    2324import org.openstreetmap.josm.gui.MainApplication;
    2425import org.openstreetmap.josm.gui.NavigatableComponent;
    2526import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    3940import org.openstreetmap.josm.spi.preferences.Config;
    4041import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
    4142import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
     43import org.openstreetmap.josm.tools.ColorHelper;
    4244import org.openstreetmap.josm.tools.Pair;
    4345
    4446/**
     
    603605     * as frequent preference lookup (using <code>Config.getPref().get()</code>) for
    604606     * each primitive can be slow during rendering.
    605607     *
     608     * @param source style source
    606609     * @param key preference key
    607610     * @param def default value
    608611     * @return the corresponding preference value
    609612     * @see org.openstreetmap.josm.data.Preferences#get(String, String)
    610613     */
    611     public String getPreferenceCached(String key, String def) {
     614    public String getPreferenceCached(StyleSource source, String key, String def) {
    612615        String res;
    613616        if (preferenceCache.containsKey(key)) {
    614617            res = preferenceCache.get(key);
    615618        } else {
    616             res = Config.getPref().get(key, null);
     619            Object realDef = Cascade.convertTo(def, Color.class);
     620            if (realDef instanceof Color) {
     621                res = ColorHelper.color2html(new NamedColorProperty(NamedColorProperty.COLOR_CATEGORY_MAPPAINT, source.getFileNamePart(), key, (Color) realDef).get());
     622            } else {
     623                res = Config.getPref().get(key, null);
     624            }
    617625            preferenceCache.put(key, res);
    618626        }
    619627        return res != null ? res : def;
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java

     
    773773     * @return value for key, or default value if not found
    774774     */
    775775    public static String JOSM_pref(Environment env, String key, String def) { // NO_UCD (unused code)
    776         return MapPaintStyles.getStyles().getPreferenceCached(key, def);
     776        return MapPaintStyles.getStyles().getPreferenceCached(env.source, key, def);
    777777    }
    778778
    779779    /**