Ticket #17695: 17695.patch
File 17695.patch, 2.5 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
41 41 import org.openstreetmap.josm.data.osm.INode; 42 42 import org.openstreetmap.josm.data.osm.IRelation; 43 43 import org.openstreetmap.josm.data.osm.IWay; 44 import org.openstreetmap.josm.data.osm.Node; 44 45 import org.openstreetmap.josm.data.osm.OsmPrimitive; 45 46 import org.openstreetmap.josm.data.osm.OsmUtils; 46 47 import org.openstreetmap.josm.data.osm.Relation; … … 69 70 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource.MapCSSRuleIndex; 70 71 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector; 71 72 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.AbstractSelector; 73 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.ChildOrParentSelector; 74 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.ChildOrParentSelectorType; 72 75 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.GeneralSelector; 73 76 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector.OptimizedGeneralSelector; 74 77 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser; … … 854 857 while (candidates.hasNext()) { 855 858 MapCSSRule r = candidates.next(); 856 859 env.clearSelectorMatchingInformation(); 860 if (partialSelection && r.selector instanceof Selector.ChildOrParentSelector) { 861 ChildOrParentSelector sel = (Selector.ChildOrParentSelector) r.selector; 862 if (sel.type == ChildOrParentSelectorType.ELEMENT_OF && p instanceof Node && p.getDataSet() != null) { 863 List<OsmPrimitive> toCheck = new ArrayList<>(); 864 toCheck.addAll(p.getDataSet().searchWays(p.getBBox())); 865 toCheck.addAll(p.getDataSet().searchRelations(p.getBBox())); 866 toCheck.removeIf(OsmPrimitive::isSelected); 867 Set<Set<TagCheck>> checksCol = Collections.singleton(Collections.singleton(indexData.getCheck(r))); 868 toCheck.forEach(p2 -> res.addAll(getErrorsForPrimitive(p2, includeOtherSeverity, checksCol))); 869 } 870 } 857 871 if (r.selector.matches(env)) { // as side effect env.parent will be set (if s is a child selector) 858 872 TagCheck check = indexData.getCheck(r); 859 873 if (check != null) {