Ticket #2302: tagged.patch

File tagged.patch, 12.5 KB (added by jttt, 17 years ago)

Patch to change hasDirectionKeys and isTagged to read only properties

  • src/org/openstreetmap/josm/actions/SplitWayAction.java

     
    253253            Way wayToAdd = new Way();
    254254            if (selectedWay.keys != null) {
    255255                wayToAdd.keys = new HashMap<String, String>(selectedWay.keys);
    256                 wayToAdd.checkTagged();
    257                 wayToAdd.checkDirectionTagged();
    258256            }
    259257            newWays.add(wayToAdd);
    260258            wayToAdd.nodes.addAll(chunkIt.next());
  • src/org/openstreetmap/josm/actions/search/SearchCompiler.java

     
    314314
    315315    private static class Untagged extends Match {
    316316        @Override public boolean match(OsmPrimitive osm) {
    317             return !osm.tagged;
     317            return !osm.isTagged();
    318318        }
    319319        @Override public String toString() {return "untagged";}
    320320    }
  • src/org/openstreetmap/josm/actions/UnGlueAction.java

     
    139139
    140140        Node c = new Node(selectedNode);
    141141        c.keys = null;
    142         c.tagged = false;
    143142        c.selected = false;
    144143        cmds.add(new ChangeCommand(selectedNode, c));
    145144       
     
    188187            return false;
    189188       
    190189        selectedNode = (Node)n;
    191         return  selectedNode.tagged;
     190        return  selectedNode.isTagged();
    192191    }
    193192
    194193    /**
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

     
    401401                    trkseg = new ArrayList<WayPoint>();
    402402                    trk.trackSegs.add(trkseg);
    403403                }
    404                 if (!n.tagged) {
     404                if (!n.isTagged()) {
    405405                    doneNodes.add(n);
    406406                }
    407407                WayPoint wpt = new WayPoint(n.coor);
  • src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java

     
    409409        if (RelationEditor.this.relation == null) {
    410410            // If the user wanted to create a new relation, but hasn't added any members or
    411411            // tags, don't add an empty relation
    412             clone.checkTagged();
    413             if(clone.members.size() == 0 && !clone.tagged)
     412            if(clone.members.size() == 0 && !clone.isTagged())
    414413                return;
    415414            Main.main.undoRedo.add(new AddCommand(clone));
    416415            DataSet.fireSelectionChanged(Main.ds.getSelected());
  • src/org/openstreetmap/josm/io/OsmReader.java

     
    104104               osm.user = user;
    105105               osm.visible = visible;
    106106               osm.version = version;
    107                osm.checkTagged();
    108                osm.checkDirectionTagged();
    109107               osm.mappaintStyle = null;
    110108          }
    111109     }
  • src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java

     
    162162
    163163        //profilerN = 0;
    164164        for (final OsmPrimitive osm : data.ways)
    165             if (!osm.deleted && !osm.selected && osm.tagged)
     165            if (!osm.deleted && !osm.selected && osm.isTagged())
    166166            {
    167167                osm.visit(this);
    168168        //        profilerN++;
     
    170170        displaySegments();
    171171
    172172        for (final OsmPrimitive osm : data.ways)
    173             if (!osm.deleted && !osm.selected && !osm.tagged)
     173            if (!osm.deleted && !osm.selected && !osm.isTagged())
    174174            {
    175175                osm.visit(this);
    176176        //        profilerN++;
     
    254254            drawNode(n, highlightColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
    255255        else if (n.selected)
    256256            drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
    257         else if(n.tagged)
     257        else if(n.isTagged())
    258258            drawNode(n, nodeColor, taggedNodeSize, taggedNodeRadius, fillUnselectedNode);
    259259        else
    260260            drawNode(n, nodeColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode);
     
    300300           (even if the tag is negated as in oneway=false) or the way is selected */
    301301
    302302        boolean showThisDirectionArrow = w.selected
    303         || (showDirectionArrow && (!showRelevantDirectionsOnly || w.hasDirectionKeys));
     303        || (showDirectionArrow && (!showRelevantDirectionsOnly || w.hasDirectionKeys()));
    304304        /* head only takes over control if the option is true,
    305305           the direction should be shown at all and not only because it's selected */
    306306        boolean showOnlyHeadArrowOnly = showThisDirectionArrow && !w.selected && showHeadArrowOnly;
     
    312312            wayColor = highlightColor;
    313313        } else if(w.selected) {
    314314            wayColor = selectedColor;
    315         } else if (!w.tagged) {
     315        } else if (!w.isTagged()) {
    316316            wayColor = untaggedWayColor;
    317317        } else {
    318318            wayColor = dfltWayColor;
  • src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java

     
    156156            drawNode(n, highlightColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
    157157        else if (n.selected)
    158158            drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
    159         else if (n.tagged)
     159        else if (n.isTagged())
    160160            drawNode(n, nodeColor, taggedNodeSize, taggedNodeRadius, fillUnselectedNode);
    161161        else
    162162            drawNode(n, nodeColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode);
     
    244244           the way is tagged with a direction key
    245245           (even if the tag is negated as in oneway=false) or the way is selected */
    246246        boolean showDirection = w.selected || ((!useRealWidth) && (showDirectionArrow
    247         && (!showRelevantDirectionsOnly || w.hasDirectionKeys)));
     247        && (!showRelevantDirectionsOnly || w.hasDirectionKeys())));
    248248        /* head only takes over control if the option is true,
    249249           the direction should be shown at all and not only because it's selected */
    250250        boolean showOnlyHeadArrowOnly = showDirection && !w.selected && showHeadArrowOnly;
  • src/org/openstreetmap/josm/data/osm/Way.java

     
    9191        super.cloneFrom(osm);
    9292        nodes.clear();
    9393        nodes.addAll(((Way)osm).nodes);
    94         checkDirectionTagged();
    9594    }
    9695
    9796    @Override public String toString() {
  • src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

     
    106106    public User user = null;
    107107
    108108    /**
    109      * true if this object is considered "tagged". To be "tagged", an object
    110      * must have one or more "non-standard" tags. "created_by" and "source"
    111      * are typically considered "standard" tags and do not make an object
    112      * "tagged".
    113      */
    114     public boolean tagged = false;
    115 
    116     /**
    117      * true if this object has direction dependent tags (e.g. oneway)
    118      */
    119     public boolean hasDirectionKeys = false;
    120 
    121     /**
    122109     * If set to true, this object is currently selected.
    123110     */
    124111    public volatile boolean selected = false;
     
    241228                keys = new HashMap<String, String>();
    242229            keys.put(key, value);
    243230        }
    244         checkTagged();
    245         checkDirectionTagged();
    246231        mappaintStyle = null;
    247232    }
    248233    /**
     
    254239            if (keys.isEmpty())
    255240                keys = null;
    256241        }
    257         checkTagged();
    258         checkDirectionTagged();
    259242        mappaintStyle = null;
    260243    }
    261244
     
    291274        selected = osm.selected;
    292275        timestamp = osm.timestamp;
    293276        version = osm.version;
    294         tagged = osm.tagged;
    295277        incomplete = osm.incomplete;
    296278        clearCached();
    297279        clearErrors();
     
    320302    }
    321303
    322304    /**
    323      * Updates the "tagged" flag. "keys" property should probably be made private
    324      * to make sure this gets called when keys are set.
     305     * true if this object is considered "tagged". To be "tagged", an object
     306     * must have one or more "non-standard" tags. "created_by" and "source"
     307     * are typically considered "standard" tags and do not make an object
     308     * "tagged".
    325309     */
    326     public void checkTagged() {
    327         tagged = false;
     310    public boolean isTagged() {
     311        // TODO Cache value after keys are made private
    328312        if(uninteresting == null)
    329313            uninteresting = Main.pref.getCollection("tags.uninteresting",
    330314            Arrays.asList(new String[]{"source","note","comment","converted_by","created_by"}));
    331315        if (keys != null) {
    332316            for (Entry<String,String> e : keys.entrySet()) {
    333317                if (!uninteresting.contains(e.getKey())) {
    334                     tagged = true;
    335                     break;
     318                    return true;
    336319                }
    337320            }
    338321        }
     322        return false;
    339323    }
    340324    /**
    341      * Updates the "hasDirectionKeys" flag. "keys" property should probably be made private
    342      * to make sure this gets called when keys are set.
     325     * true if this object has direction dependent tags (e.g. oneway)
    343326     */
    344     public void checkDirectionTagged() {
    345         hasDirectionKeys = false;
     327    public boolean hasDirectionKeys() {
     328        // TODO Cache value after keys are made private
    346329        if(directionKeys == null)
    347330            directionKeys = Main.pref.getCollection("tags.direction",
    348331            Arrays.asList(new String[]{"oneway","incline","incline_steep","aerialway"}));
    349332        if (keys != null) {
    350333            for (Entry<String,String> e : keys.entrySet()) {
    351334                if (directionKeys.contains(e.getKey())) {
    352                     hasDirectionKeys = true;
    353                     break;
     335                    return true;
    354336                }
    355337            }
    356338        }
     339        return false;
    357340    }
    358341}
  • src/org/openstreetmap/josm/command/DeleteCommand.java

     
    188188            for (OsmPrimitive osm : del) {
    189189                if (osm instanceof Way) {
    190190                    for (Node n : ((Way) osm).nodes) {
    191                         if (!n.tagged) {
     191                        if (!n.isTagged()) {
    192192                            CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds, false);
    193193                            n.visit(v);
    194194                            v.data.removeAll(del);
     
    321321            Way wnew2 = new Way();
    322322            if (wnew.keys != null) {
    323323                wnew2.keys = new HashMap<String, String>(wnew.keys);
    324                 wnew2.checkTagged();
    325                 wnew2.checkDirectionTagged();
    326324            }
    327325            wnew2.nodes.addAll(n2);
    328326            cmds.add(new AddCommand(wnew2))