Ignore:
Timestamp:
2016-01-03T18:13:45+01:00 (9 years ago)
Author:
bastiK
Message:

refactor some code from StyleCache into separate classes (see #9891)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java

    r9278 r9284  
    2121import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
    2222import org.openstreetmap.josm.gui.NavigatableComponent;
    23 import org.openstreetmap.josm.gui.mappaint.StyleCache.StyleList;
    2423import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
    2524import org.openstreetmap.josm.gui.mappaint.styleelement.AreaElement;
     
    8079     * @return list of styles
    8180     */
    82     public StyleList get(OsmPrimitive osm, double scale, NavigatableComponent nc) {
     81    public StyleElementList get(OsmPrimitive osm, double scale, NavigatableComponent nc) {
    8382        return getStyleCacheWithRange(osm, scale, nc).a;
    8483    }
     
    9493     * @return pair containing style list and range
    9594     */
    96     public Pair<StyleList, Range> getStyleCacheWithRange(OsmPrimitive osm, double scale, NavigatableComponent nc) {
     95    public Pair<StyleElementList, Range> getStyleCacheWithRange(OsmPrimitive osm, double scale, NavigatableComponent nc) {
    9796        if (osm.mappaintStyle == null || osm.mappaintCacheIdx != cacheIdx || scale <= 0) {
    9897            osm.mappaintStyle = StyleCache.EMPTY_STYLECACHE;
    9998        } else {
    100             Pair<StyleList, Range> lst = osm.mappaintStyle.getWithRange(scale);
     99            Pair<StyleElementList, Range> lst = osm.mappaintStyle.getWithRange(scale);
    101100            if (lst.a != null)
    102101                return lst;
    103102        }
    104         Pair<StyleList, Range> p = getImpl(osm, scale, nc);
     103        Pair<StyleElementList, Range> p = getImpl(osm, scale, nc);
    105104        if (osm instanceof Node && isDefaultNodes()) {
    106105            if (p.a.isEmpty()) {
     
    123122                }
    124123                if (!hasNonModifier) {
    125                     p.a = new StyleList(p.a, NodeElement.SIMPLE_NODE_ELEMSTYLE);
     124                    p.a = new StyleElementList(p.a, NodeElement.SIMPLE_NODE_ELEMSTYLE);
    126125                    if (!hasText) {
    127126                        if (TextLabel.AUTO_LABEL_COMPOSITION_STRATEGY.compose(osm) != null) {
    128                             p.a = new StyleList(p.a, BoxTextElement.SIMPLE_NODE_TEXT_ELEMSTYLE);
     127                            p.a = new StyleElementList(p.a, BoxTextElement.SIMPLE_NODE_TEXT_ELEMSTYLE);
    129128                        }
    130129                    }
     
    142141                AreaElement area = Utils.find(p.a, AreaElement.class);
    143142                LineElement line = area == null ? LineElement.UNTAGGED_WAY : LineElement.createSimpleLineStyle(area.color, true);
    144                 p.a = new StyleList(p.a, line);
     143                p.a = new StyleElementList(p.a, line);
    145144            }
    146145        }
     
    186185     * @return pair containing style list and range
    187186     */
    188     private Pair<StyleList, Range> getImpl(OsmPrimitive osm, double scale, NavigatableComponent nc) {
     187    private Pair<StyleElementList, Range> getImpl(OsmPrimitive osm, double scale, NavigatableComponent nc) {
    189188        if (osm instanceof Node)
    190189            return generateStyles(osm, scale, false);
    191190        else if (osm instanceof Way) {
    192             Pair<StyleList, Range> p = generateStyles(osm, scale, false);
     191            Pair<StyleElementList, Range> p = generateStyles(osm, scale, false);
    193192
    194193            boolean isOuterWayOfSomeMP = false;
     
    216215                            }
    217216                        }
    218                         p.a = new StyleList(tmp);
     217                        p.a = new StyleElementList(tmp);
    219218                        isOuterWayOfSomeMP = true;
    220219                    }
    221220
    222221                    if (!hasIndependentLineStyle) {
    223                         Pair<StyleList, Range> mpElemStyles;
     222                        Pair<StyleElementList, Range> mpElemStyles;
    224223                        synchronized (r) {
    225224                            mpElemStyles = getStyleCacheWithRange(r, scale, nc);
     
    234233                        p.b = Range.cut(p.b, mpElemStyles.b);
    235234                        if (mpLine != null) {
    236                             p.a = new StyleList(p.a, mpLine);
     235                            p.a = new StyleElementList(p.a, mpLine);
    237236                            break;
    238237                        } else if (wayColor == null && isDefaultLines()) {
     
    255254                    }
    256255                    if (!hasLineStyle) {
    257                         p.a = new StyleList(p.a, LineElement.createSimpleLineStyle(wayColor, true));
     256                        p.a = new StyleElementList(p.a, LineElement.createSimpleLineStyle(wayColor, true));
    258257                    }
    259258                }
     
    281280                    if (!hasIndependentElemStyle && !multipolygon.getOuterWays().isEmpty()) {
    282281                        Color mpColor = null;
    283                         StyleList mpElemStyles = null;
     282                        StyleElementList mpElemStyles = null;
    284283                        synchronized (ref) {
    285284                            mpElemStyles = get(ref, scale, nc);
     
    291290                            }
    292291                        }
    293                         p.a = new StyleList(p.a, LineElement.createSimpleLineStyle(mpColor, true));
     292                        p.a = new StyleElementList(p.a, LineElement.createSimpleLineStyle(mpColor, true));
    294293                    }
    295294                    return p;
     
    298297            return p;
    299298        } else if (osm instanceof Relation) {
    300             Pair<StyleList, Range> p = generateStyles(osm, scale, true);
     299            Pair<StyleElementList, Range> p = generateStyles(osm, scale, true);
    301300            if (drawMultipolygon && ((Relation) osm).isMultipolygon()) {
    302301                if (!Utils.exists(p.a, AreaElement.class) && Main.pref.getBoolean("multipolygon.deprecated.outerstyle", true)) {
     
    304303                    Multipolygon multipolygon = MultipolygonCache.getInstance().get(nc, (Relation) osm);
    305304                    for (Way w : multipolygon.getOuterWays()) {
    306                         Pair<StyleList, Range> wayStyles = generateStyles(w, scale, false);
     305                        Pair<StyleElementList, Range> wayStyles = generateStyles(w, scale, false);
    307306                        p.b = Range.cut(p.b, wayStyles.b);
    308307                        StyleElement area = Utils.find(wayStyles.a, AreaElement.class);
    309308                        if (area != null) {
    310                             p.a = new StyleList(p.a, area);
     309                            p.a = new StyleElementList(p.a, area);
    311310                            break;
    312311                        }
     
    332331     * @return the generated styles and the valid range as a pair
    333332     */
    334     public Pair<StyleList, Range> generateStyles(OsmPrimitive osm, double scale, boolean pretendWayIsClosed) {
     333    public Pair<StyleElementList, Range> generateStyles(OsmPrimitive osm, double scale, boolean pretendWayIsClosed) {
    335334
    336335        List<StyleElement> sl = new ArrayList<>();
     
    377376            }
    378377        }
    379         return new Pair<>(new StyleList(sl), mc.range);
     378        return new Pair<>(new StyleElementList(sl), mc.range);
    380379    }
    381380
     
    501500            if (MapPaintStyles.getStyles() == null)
    502501                return false;
    503             StyleList styles = MapPaintStyles.getStyles().generateStyles(p, 1.0, false).a;
     502            StyleElementList styles = MapPaintStyles.getStyles().generateStyles(p, 1.0, false).a;
    504503            if (styles.isEmpty()) {
    505504                return false;
Note: See TracChangeset for help on using the changeset viewer.