Ticket #2801: junction_nodes.patch
| File junction_nodes.patch, 4.7 KB (added by , 16 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/mappaint/ElemStyle.java
16 16 public String code; 17 17 Collection<Rule> rules = null; 18 18 19 public enum NodeBorderStyle { 20 NONE, SQUARE, TRIANGLE 21 } 22 19 23 @Override 20 24 public boolean equals(Object o) { 21 25 return (o instanceof ElemStyle) && (((ElemStyle) o).getCode().equals(getCode())); -
src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java
20 20 boolean selected) { 21 21 Node n = (Node)primitive; 22 22 String name = painter.isShowNames()?painter.getNodeName(n):null; 23 NodeBorderStyle border = NodeBorderStyle.NONE; 24 if (n.isConnection()) { 25 border = NodeBorderStyle.SQUARE; 26 } 23 27 if (n.isHighlighted()) { 24 painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name );28 painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name, border); 25 29 } else if (selected) { 26 painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name );30 painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name, border); 27 31 } else if (n.isTagged()) { 28 painter.drawNode(n, settings.getNodeColor(), settings.getTaggedNodeSize(), settings.isFillUnselectedNode(), name );32 painter.drawNode(n, settings.getNodeColor(), settings.getTaggedNodeSize(), settings.isFillUnselectedNode(), name, border); 29 33 } else if (painter.isInactive() || n.isDisabled()) { 30 painter.drawNode(n, settings.getInactiveColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name );34 painter.drawNode(n, settings.getInactiveColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name, border); 31 35 } else { 32 painter.drawNode(n, settings.getNodeColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name );36 painter.drawNode(n, settings.getNodeColor(), settings.getUnselectedNodeSize(), settings.isFillUnselectedNode(), name, border); 33 37 } 34 38 } 35 39 -
src/org/openstreetmap/josm/data/osm/Node.java
195 195 public void updatePosition() { 196 196 // Do nothing for now, but in future replace CachedLatLon with simple doubles and update precalculated EastNorth value here 197 197 } 198 199 public boolean isConnection() { 200 return (OsmPrimitive.getFilteredList(getReferrers(), Way.class)).size() > 1; 201 } 198 202 } -
src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java
22 22 import org.openstreetmap.josm.data.osm.Node; 23 23 import org.openstreetmap.josm.data.osm.Way; 24 24 import org.openstreetmap.josm.gui.NavigatableComponent; 25 import org.openstreetmap.josm.gui.mappaint.ElemStyle.NodeBorderStyle; 25 26 import org.openstreetmap.josm.tools.ImageProvider; 26 27 import org.openstreetmap.josm.tools.LanguageInfo; 27 28 … … 210 211 * @param color The color of the node. 211 212 */ 212 213 public void drawNode(Node n, Color color, int size, boolean fill, String name) { 214 drawNode(n, color, size, fill, name, NodeBorderStyle.NONE); 215 } 216 217 public void drawNode(Node n, Color color, int size, boolean fill, String name, NodeBorderStyle border) { 213 218 if (size > 1) { 214 219 int radius = size / 2; 215 220 Point p = nc.getPoint(n); … … 229 234 g.drawRect(p.x - radius, p.y - radius, size, size); 230 235 } 231 236 237 if (border == NodeBorderStyle.SQUARE) { 238 g.drawRect(p.x - 2*radius, p.y - 2*radius, 2*size, 2*size); 239 } 240 232 241 if(name != null) { 233 242 if (inactive || n.isDisabled()) { 234 243 g.setColor(inactiveColor);
