Ticket #4876: style-v3.patch
| File style-v3.patch, 12.1 KB (added by , 16 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java
1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.gui.mappaint; 3 3 4 import java.awt.Color; 4 5 import org.openstreetmap.josm.data.osm.Node; 5 6 import org.openstreetmap.josm.data.osm.OsmPrimitive; 6 7 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings; … … 15 16 maxScale = 1500; 16 17 } 17 18 19 private static final int max(int a, int b) { 20 return (a >= b) ? a : b; 21 } 22 23 private static final int max(int a, int b, int c) { 24 return max(max(a,b), c); 25 } 26 27 private static final int max(int a, int b, int c, int d) { 28 return max(max(a,b), max(c,d)); 29 } 30 18 31 @Override 19 32 public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings settings, MapPainter painter, 20 33 boolean selected) { 21 34 Node n = (Node)primitive; 22 35 String name = painter.isShowNames()?painter.getNodeName(n):null; 36 37 23 38 if (n.isHighlighted()) { 24 39 painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name); 25 } else if (selected) {26 painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);27 40 } else { 28 painter.drawNode( 29 n, 30 (painter.isInactive() || n.isDisabled()) ? settings.getInactiveColor() : settings.getNodeColor(), 31 n.isJunctionNode() ? settings.getJunctionNodeSize() : settings.getUnselectedNodeSize(), 32 n.isTagged() ? settings.isFillTaggedNode() : settings.isFillUnselectedNode(), 33 name); 41 42 Color color; 43 int size; 44 boolean fill; 45 46 if (painter.isInactive() || n.isDisabled()) { 47 color = settings.getInactiveColor(); 48 } else if (selected) { 49 color = settings.getSelectedColor(); 50 } else if (n.isJunctionNode()) { 51 if (n.isTagged()) { 52 color = settings.getTaggedJunctionColor(); 53 } else { 54 color = settings.getJunctionColor(); 55 } 56 } else { 57 if (n.isTagged()) { 58 color = settings.getTaggedColor(); 59 } else { 60 color = settings.getNodeColor(); 61 } 62 } 63 64 size = max((selected ? settings.getSelectedNodeSize() : 0), 65 (n.isTagged() ? settings.getTaggedNodeSize() : 0), 66 (n.isJunctionNode() ? settings.getJunctionNodeSize() : 0), 67 settings.getUnselectedNodeSize()); 68 69 fill = (selected && settings.isFillSelectedNode()) || 70 (n.isTagged() && settings.isFillTaggedNode()) || 71 (n.isJunctionNode() && settings.isFillJunctionNode()) || 72 settings.isFillUnselectedNode(); 73 74 painter.drawNode(n, color, size, fill, name); 34 75 } 35 76 } 36 77 -
src/org/openstreetmap/josm/data/osm/visitor/paint/SimplePaintVisitor.java
61 61 protected Color backgroundColor; 62 62 protected Color highlightColor; 63 63 protected Color taggedColor; 64 protected Color junctionColor; 65 protected Color taggedJunctionColor; 64 66 protected boolean showDirectionArrow; 65 67 protected boolean showRelevantDirectionsOnly; 66 68 protected boolean showHeadArrowOnly; … … 68 70 protected boolean fillSelectedNode; 69 71 protected boolean fillUnselectedNode; 70 72 protected boolean fillTaggedNode; 73 protected boolean fillJunctionNode; 71 74 protected int selectedNodeSize; 72 75 protected int selectedNodeRadius; 73 76 protected int unselectedNodeSize; 74 77 protected int unselectedNodeRadius; 75 78 protected int junctionNodeSize; 76 79 protected int junctionNodeRadius; 80 protected int taggedNodeSize; 81 protected int taggedNodeRadius; 77 82 protected int defaultSegmentWidth; 78 83 protected int virtualNodeSize; 79 84 protected int virtualNodeSpace; … … 97 102 backgroundColor = PaintColors.BACKGROUND.get(); 98 103 highlightColor = PaintColors.HIGHLIGHT.get(); 99 104 taggedColor = PaintColors.TAGGED.get(); 105 junctionColor = PaintColors.JUNCTION.get(); 106 107 if (taggedColor != nodeColor) { 108 taggedJunctionColor = taggedColor; 109 } else { 110 taggedJunctionColor = junctionColor; 111 } 100 112 } 101 113 102 114 protected void getSettings(boolean virtual) { … … 111 123 unselectedNodeRadius = unselectedNodeSize / 2; 112 124 junctionNodeSize = settings.getJunctionNodeSize(); 113 125 junctionNodeRadius = junctionNodeSize / 2; 126 taggedNodeSize = settings.getTaggedNodeSize(); 127 taggedNodeRadius = taggedNodeSize / 2; 114 128 defaultSegmentWidth = settings.getDefaultSegmentWidth(); 115 129 fillSelectedNode = settings.isFillSelectedNode(); 116 130 fillUnselectedNode = settings.isFillUnselectedNode(); 131 fillJunctionNode = settings.isFillJunctionNode(); 117 132 fillTaggedNode = settings.isFillTaggedNode(); 118 133 virtualNodeSize = virtual ? Main.pref.getInteger("mappaint.node.virtual-size", 8) / 2 : 0; 119 134 virtualNodeSpace = Main.pref.getInteger("mappaint.node.virtual-space", 70); … … 223 238 //} 224 239 } 225 240 241 private static final int max(int a, int b) { 242 return (a >= b) ? a : b; 243 } 244 private static final int max(int a, int b, int c) { 245 return max(max(a, b), c); 246 } 247 private static final int max(int a, int b, int c, int d) { 248 return max(max(a, b), max(c, d)); 249 } 250 226 251 /** 227 252 * Draw a small rectangle. 228 253 * White if selected (as always) or red otherwise. … … 234 259 235 260 if (n.isHighlighted()) { 236 261 drawNode(n, highlightColor, selectedNodeSize, unselectedNodeRadius, fillSelectedNode); 237 } else if (ds.isSelected(n)) {238 drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);239 262 } else { 240 boolean junction = n.isJunctionNode(); 241 drawNode( 242 n, 243 (inactive || n.isDisabled()) ? inactiveColor : 244 (n.isTagged() ? taggedColor : nodeColor), 245 junction ? junctionNodeSize : unselectedNodeSize, 246 junction ? junctionNodeRadius : unselectedNodeRadius, 247 n.isTagged() ? fillTaggedNode : fillUnselectedNode); 263 Color color; 264 int size; 265 int radius; 266 boolean fill; 267 268 if (inactive || n.isDisabled()) { 269 color = inactiveColor; 270 } else if (ds.isSelected(n)) { 271 color = selectedColor; 272 } else if (n.isJunctionNode()) { 273 if (n.isTagged()) { 274 color = taggedJunctionColor; 275 } else { 276 color = junctionColor; 277 } 278 } else { 279 if (n.isTagged()) { 280 color = taggedColor; 281 } else { 282 color = nodeColor; 283 } 284 } 285 286 size = max((ds.isSelected(n) ? selectedNodeSize : 0), 287 (n.isTagged() ? taggedNodeSize : 0), 288 (n.isJunctionNode() ? junctionNodeSize : 0), 289 unselectedNodeSize); 290 291 radius = max((ds.isSelected(n) ? selectedNodeRadius : 0), 292 (n.isTagged() ? taggedNodeRadius : 0), 293 (n.isJunctionNode() ? junctionNodeRadius : 0), 294 unselectedNodeRadius); 295 296 fill = (ds.isSelected(n) && fillSelectedNode) || 297 (n.isTagged() && fillTaggedNode) || 298 (n.isJunctionNode() && fillJunctionNode) || 299 fillUnselectedNode; 300 301 drawNode(n, color, size, radius, fill); 248 302 } 249 303 } 250 304 -
src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
23 23 private int selectedNodeSize; 24 24 private int junctionNodeSize; 25 25 private int unselectedNodeSize; 26 private int taggedNodeSize; 26 27 private boolean fillSelectedNode; 27 28 private boolean fillUnselectedNode; 28 29 private boolean fillTaggedNode; 30 private boolean fillJunctionNode; 29 31 private Color selectedColor; 30 32 private Color highlightColor; 31 33 private Color inactiveColor; 32 34 private Color nodeColor; 33 35 private Color taggedColor; 36 private Color junctionColor; 37 private Color taggedJunctionColor; 34 38 35 39 private MapPaintSettings() { 36 40 load(); … … 48 52 inactiveColor = PaintColors.INACTIVE.get(); 49 53 nodeColor = PaintColors.NODE.get(); 50 54 taggedColor = PaintColors.TAGGED.get(); 55 junctionColor = PaintColors.JUNCTION.get(); 56 if (taggedColor != nodeColor) { 57 taggedJunctionColor = taggedColor; 58 } else { 59 taggedJunctionColor = junctionColor; 60 } 51 61 62 52 63 showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false); 53 64 showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false); 54 65 … … 59 70 selectedNodeSize = Main.pref.getInteger("mappaint.node.selected-size", 5); 60 71 unselectedNodeSize = Main.pref.getInteger("mappaint.node.unselected-size", 3); 61 72 junctionNodeSize = Main.pref.getInteger("mappaint.node.junction-size", 5); 73 taggedNodeSize = Main.pref.getInteger("mappaint.node.tagged-size", 5); 62 74 fillSelectedNode = Main.pref.getBoolean("mappaint.node.fill-selected", true); 63 75 fillUnselectedNode = Main.pref.getBoolean("mappaint.node.fill-unselected", false); 64 76 fillTaggedNode = Main.pref.getBoolean("mappaint.node.fill-tagged", true); 77 fillJunctionNode = Main.pref.getBoolean("mappaint.node.fill-junction", false); 65 78 } 66 79 67 80 public void preferenceChanged(PreferenceChangeEvent e) { … … 104 117 return taggedColor; 105 118 } 106 119 120 public Color getJunctionColor() { 121 return junctionColor; 122 } 123 124 public Color getTaggedJunctionColor() { 125 return taggedJunctionColor; 126 } 127 107 128 public boolean isShowOrderNumber() { 108 129 return showOrderNumber; 109 130 } … … 140 161 return unselectedNodeSize; 141 162 } 142 163 164 public int getTaggedNodeSize() { 165 return taggedNodeSize; 166 } 167 143 168 public boolean isFillSelectedNode() { 144 169 return fillSelectedNode; 145 170 } … … 148 173 return fillUnselectedNode; 149 174 } 150 175 176 public boolean isFillJunctionNode() { 177 return fillJunctionNode; 178 } 179 151 180 public boolean isFillTaggedNode() { 152 181 return fillTaggedNode; 153 182 } -
src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
13 13 INACTIVE(marktr("inactive"), Color.darkGray), 14 14 SELECTED(marktr("selected"), Color.red), 15 15 NODE(marktr("node"), Color.yellow), 16 JUNCTION(marktr("junction"), Color.yellow), 16 17 TAGGED(marktr("tagged"), new Color(204, 255, 255)), // turquoise 17 18 DEFAULT_WAY(marktr("way"), new Color(0,0,128)), // dark blue 18 19 RELATION(marktr("relation"), new Color(0,128,128)), // teal
