diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
index 10d43d2..697153c 100644
a
|
b
|
|
25 | 25 | private int defaultSegmentWidth; |
26 | 26 | /** Preference: should the segment numbers of ways be displayed */ |
27 | 27 | private boolean showOrderNumber; |
| 28 | /** Preference: should the segment numbers of ways be displayed on selected way */ |
| 29 | private boolean showOrderNumberOnSelectedWay; |
28 | 30 | /** Preference: should only the last arrow of a way be displayed */ |
29 | 31 | private boolean showHeadArrowOnly; |
30 | 32 | private int showNamesDistance; |
… |
… |
private void load() { |
89 | 91 | } |
90 | 92 | |
91 | 93 | showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false); |
| 94 | showOrderNumberOnSelectedWay = Main.pref.getBoolean("draw.segment.order_number.on_selected", false); |
92 | 95 | showHeadArrowOnly = Main.pref.getBoolean("draw.segment.head_only", false); |
93 | 96 | |
94 | 97 | showNamesDistance = Main.pref.getInteger("mappaint.shownames", 10000000); |
… |
… |
public boolean isShowOrderNumber() { |
235 | 238 | } |
236 | 239 | |
237 | 240 | /** |
| 241 | * Determines if the segment numbers of the selected way should be displayed |
| 242 | * @return {@code true} if the segment numbers of the selected way should be displayed |
| 243 | */ |
| 244 | public boolean isShowOrderNumberOnSelectedWay() { |
| 245 | return showOrderNumberOnSelectedWay; |
| 246 | } |
| 247 | |
| 248 | /** |
238 | 249 | * Specifies if only the last arrow of a way should be displayed |
239 | 250 | * @param showHeadArrowOnly {@code true} if only the last arrow of a way should be displayed |
240 | 251 | */ |
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
index 214b38d..6835a30 100644
a
|
b
|
|
59 | 59 | protected boolean showHeadArrowOnly; |
60 | 60 | /** Preference: should the segment numbers of ways be displayed */ |
61 | 61 | protected boolean showOrderNumber; |
| 62 | /** Preference: should the segment numbers of the selected be displayed */ |
| 63 | protected boolean showOrderNumberOnSelectedWay; |
62 | 64 | /** Preference: should selected nodes be filled */ |
63 | 65 | protected boolean fillSelectedNode; |
64 | 66 | /** Preference: should unselected nodes be filled */ |
… |
… |
protected void getSettings(boolean virtual) { |
133 | 135 | showOnewayArrow = settings.isShowOnewayArrow(); |
134 | 136 | showHeadArrowOnly = settings.isShowHeadArrowOnly(); |
135 | 137 | showOrderNumber = settings.isShowOrderNumber(); |
| 138 | showOrderNumberOnSelectedWay = settings.isShowOrderNumberOnSelectedWay(); |
136 | 139 | selectedNodeSize = settings.getSelectedNodeSize(); |
137 | 140 | unselectedNodeSize = settings.getUnselectedNodeSize(); |
138 | 141 | connectionNodeSize = settings.getConnectionNodeSize(); |
… |
… |
public void visit(Way w) { |
320 | 323 | if ((pOutside & lastPOutside) == 0) { |
321 | 324 | drawSegment(lastP, p, wayColor, |
322 | 325 | showOnlyHeadArrowOnly ? !it.hasNext() : showThisDirectionArrow); |
323 | | if (showOrderNumber && !isInactiveMode) { |
| 326 | if ((showOrderNumber || (showOrderNumberOnSelectedWay && w.isSelected())) && !isInactiveMode) { |
324 | 327 | drawOrderNumber(lastP, p, orderNumber, g.getColor()); |
325 | 328 | } |
326 | 329 | } |
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
index f66d4e2..4b024bc 100644
a
|
b
|
public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings paintSetting |
115 | 115 | painter.drawWay(w, myColor, myLine, myDashLine, myDashedColor, offset, showOrientation, |
116 | 116 | showOnlyHeadArrowOnly, showOneway, onewayReversed); |
117 | 117 | |
118 | | if (paintSettings.isShowOrderNumber() && !painter.isInactiveMode()) { |
| 118 | if ((paintSettings.isShowOrderNumber() || (paintSettings.isShowOrderNumberOnSelectedWay() && selected)) |
| 119 | && !painter.isInactiveMode()) { |
119 | 120 | int orderNumber = 0; |
120 | 121 | lastN = null; |
121 | 122 | for (Node n : w.getNodes()) { |
diff --git a/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java b/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java
index 6e72b6c..fb388bf 100644
a
|
b
|
public PreferenceSetting createPreferenceSetting() { |
42 | 42 | private final JCheckBox headArrow = new JCheckBox(tr("Only on the head of a way.")); |
43 | 43 | private final JCheckBox onewayArrow = new JCheckBox(tr("Draw oneway arrows.")); |
44 | 44 | private final JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers")); |
| 45 | private final JCheckBox segmentOrderNumberOnSelectedWay = new JCheckBox(tr("Draw segment order numbers on selected way")); |
45 | 46 | private final JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data")); |
46 | 47 | private final JCheckBox virtualNodes = new JCheckBox(tr("Draw virtual nodes in select mode")); |
47 | 48 | private final JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color")); |
… |
… |
public void addGui(PreferenceTabbedPane gui) { |
91 | 92 | // segment order number |
92 | 93 | segmentOrderNumber.setToolTipText(tr("Draw the order numbers of all segments within their way.")); |
93 | 94 | segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number", false)); |
| 95 | segmentOrderNumberOnSelectedWay.setToolTipText(tr("Draw the order numbers of all segments within their way.")); |
| 96 | segmentOrderNumberOnSelectedWay.setSelected(Main.pref.getBoolean("draw.segment.order_number.on_selected", false)); |
94 | 97 | |
95 | 98 | // downloaded area |
96 | 99 | sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server.")); |
… |
… |
public void addGui(PreferenceTabbedPane gui) { |
135 | 138 | panel.add(headArrow, GBC.eop().insets(40, 0, 0, 0)); |
136 | 139 | panel.add(onewayArrow, GBC.eop().insets(20, 0, 0, 0)); |
137 | 140 | panel.add(segmentOrderNumber, GBC.eop().insets(20, 0, 0, 0)); |
| 141 | panel.add(segmentOrderNumberOnSelectedWay, GBC.eop().insets(20, 0, 0, 0)); |
138 | 142 | |
139 | 143 | panel.add(new JLabel(tr("Select and draw mode options")), |
140 | 144 | GBC.eop().insets(5, 10, 0, 0)); |
… |
… |
public boolean ok() { |
175 | 179 | Main.pref.put("draw.segment.head_only", headArrow.isSelected()); |
176 | 180 | Main.pref.put("draw.oneway", onewayArrow.isSelected()); |
177 | 181 | Main.pref.put("draw.segment.order_number", segmentOrderNumber.isSelected()); |
| 182 | Main.pref.put("draw.segment.order_number.on_selected", segmentOrderNumberOnSelectedWay.isSelected()); |
178 | 183 | Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected()); |
179 | 184 | Main.pref.put("draw.data.inactive_color", inactive.isSelected()); |
180 | 185 | Main.pref.put("mappaint.use-antialiasing", useAntialiasing.isSelected()); |