Ticket #3475: filters_core.diff
File filters_core.diff, 19.9 KB (added by , 15 years ago) |
---|
-
src/org/openstreetmap/josm/actions/SplitWayAction.java
101 101 HashMap<Way, Integer> wayOccurenceCounter = new HashMap<Way, Integer>(); 102 102 for (Node n : selectedNodes) { 103 103 for (Way w : getCurrentDataSet().ways) { 104 if ( w.isDeleted() || w.incomplete) {104 if (!w.isUsable()) { 105 105 continue; 106 106 } 107 107 int last = w.getNodesCount()-1; … … 292 292 // now copy all relations to new way also 293 293 294 294 for (Relation r : getCurrentDataSet().relations) { 295 if ( r.isDeleted() || r.incomplete) {295 if (!r.isUsable()) { 296 296 continue; 297 297 } 298 298 Relation c = null; -
src/org/openstreetmap/josm/actions/UnGlueAction.java
65 65 if (checkSelection(selection)) { 66 66 int count = 0; 67 67 for (Way w : getCurrentDataSet().ways) { 68 if ( w.isDeleted() || w.incomplete|| w.getNodesCount() < 1) {68 if (!w.isUsable() || w.getNodesCount() < 1) { 69 69 continue; 70 70 } 71 71 if (!w.containsNode(selectedNode)) { -
src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
766 766 public Way getWayForNode(Node n) { 767 767 Way way = null; 768 768 for (Way w : getCurrentDataSet().ways) { 769 if ( w.isDeleted() || w.incomplete|| w.getNodesCount() < 1) {769 if (!w.isUsable() || w.getNodesCount() < 1) { 770 770 continue; 771 771 } 772 772 Node firstNode = w.getNode(0); -
src/org/openstreetmap/josm/actions/CombineWayAction.java
285 285 */ 286 286 public void build(DataSet ds) { 287 287 for (Relation r: ds.relations) { 288 if ( r.isDeleted() || r.incomplete) {288 if (!r.isUsable()) { 289 289 continue; 290 290 } 291 291 Set<Way> referringWays = OsmPrimitive.getFilteredSet(r.getMemberPrimitives(), Way.class); -
src/org/openstreetmap/josm/gui/SelectionManager.java
285 285 } else { 286 286 // nodes 287 287 for (Node n : nc.getCurrentDataSet().nodes) { 288 if ( !n.isDeleted() && !n.incomplete&& r.contains(nc.getPoint(n))) {288 if (n.isUsable() && r.contains(nc.getPoint(n))) { 289 289 selection.add(n); 290 290 } 291 291 } 292 292 293 293 // ways 294 294 for (Way w : nc.getCurrentDataSet().ways) { 295 if ( w.isDeleted() || w.getNodesCount() == 0 || w.incomplete){295 if (!w.isUsable() || w.getNodesCount() == 0){ 296 296 continue; 297 297 } 298 298 if (alt) { -
src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
317 317 318 318 @Override public void visitBoundingBox(final BoundingXYVisitor v) { 319 319 for (final Node n : data.nodes) 320 if ( !n.isDeleted() && !n.incomplete) {320 if (n.isUsable()) { 321 321 v.visit(n); 322 322 } 323 323 } … … 440 440 gpxData.storageFile = file; 441 441 HashSet<Node> doneNodes = new HashSet<Node>(); 442 442 for (Way w : data.ways) { 443 if ( w.incomplete || w.isDeleted()) {443 if (!w.isUsable()) { 444 444 continue; 445 445 } 446 446 GpxTrack trk = new GpxTrack(); … … 452 452 453 453 ArrayList<WayPoint> trkseg = null; 454 454 for (Node n : w.getNodes()) { 455 if ( n.incomplete || n.isDeleted()) {455 if (!n.isUsable()) { 456 456 trkseg = null; 457 457 continue; 458 458 } -
src/org/openstreetmap/josm/gui/NavigatableComponent.java
306 306 if(ds == null) 307 307 return null; 308 308 for (Node n : ds.nodes) { 309 if ( n.isDeleted() || n.incomplete) {309 if (!n.isUsable()) { 310 310 continue; 311 311 } 312 312 Point sp = getPoint(n); … … 337 337 if(ds == null) 338 338 return null; 339 339 for (Way w : ds.ways) { 340 if ( w.isDeleted() || w.incomplete) {340 if (!w.isUsable()) { 341 341 continue; 342 342 } 343 343 Node lastN = null; … … 461 461 if(ds == null) 462 462 return null; 463 463 for (Way w : ds.ways) { 464 if ( w.isDeleted() || w.incomplete) {464 if (!w.isUsable()) { 465 465 continue; 466 466 } 467 467 Node lastN = null; 468 468 for (Node n : w.getNodes()) { 469 if ( n.isDeleted() || n.incomplete) {469 if (!n.isUsable()) { 470 470 continue; 471 471 } 472 472 if (lastN == null) { … … 487 487 } 488 488 } 489 489 for (Node n : ds.nodes) { 490 if ( !n.isDeleted() && !n.incomplete490 if (n.isUsable() 491 491 && getPoint(n).distanceSq(p) < snapDistance) { 492 492 nearest.add(n); 493 493 } … … 509 509 if(ds == null) 510 510 return null; 511 511 for (Node n : ds.nodes) { 512 if ( !n.isDeleted() && !n.incomplete512 if (n.isUsable() 513 513 && getPoint(n).distanceSq(p) < snapDistance) { 514 514 nearest.add(n); 515 515 } -
src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
134 134 if (getNumRelations() > 0 ) { 135 135 int i = 0; 136 136 for (OsmPrimitive e : DataSet.sort(Main.main.getCurrentDataSet().relations)) { 137 if ( !e.isDeleted() && !e.incomplete){137 if (e.isUsable()){ 138 138 list.setElementAt(e, i++); 139 139 } 140 140 } -
src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
749 749 Map<Relation, Collection<RelationMember>> roles = new HashMap<Relation, Collection<RelationMember>>(); 750 750 if (Main.main.getCurrentDataSet() != null) { 751 751 for (Relation r : Main.main.getCurrentDataSet().relations) { 752 if (!r.is Deleted() && !r.incomplete) {752 if (!r.isFiltered() && r.isUsable()) { 753 753 for (RelationMember m : r.getMembers()) { 754 754 if (newSelection.contains(m.getMember())) { 755 755 Collection<RelationMember> value = roles.get(r); -
src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java
148 148 require changing the colour while painting... */ 149 149 //profilerN = 0; 150 150 for (final OsmPrimitive osm : data.relations) 151 if (!osm.isDeleted() && !osm.isSelected() )151 if (!osm.isDeleted() && !osm.isSelected() && !osm.isFiltered()) 152 152 { 153 153 osm.visit(this); 154 154 // profilerN++; … … 162 162 163 163 //profilerN = 0; 164 164 for (final OsmPrimitive osm : data.ways) 165 if (!osm.isDeleted() && !osm.isSelected() && osm.isTagged())165 if (!osm.isDeleted() && !osm.isSelected() && !osm.isFiltered() && osm.isTagged()) 166 166 { 167 167 osm.visit(this); 168 168 // profilerN++; … … 170 170 displaySegments(); 171 171 172 172 for (final OsmPrimitive osm : data.ways) 173 if (!osm.isDeleted() && !osm.isSelected() && !osm.is Tagged())173 if (!osm.isDeleted() && !osm.isSelected() && !osm.isFiltered() && !osm.isTagged()) 174 174 { 175 175 osm.visit(this); 176 176 // profilerN++; … … 201 201 202 202 //profilerN = 0; 203 203 for (final OsmPrimitive osm : data.nodes) 204 if (!osm.isDeleted() && !osm.isSelected() )204 if (!osm.isDeleted() && !osm.isSelected() && !osm.isFiltered()) 205 205 { 206 206 osm.visit(this); 207 207 // profilerN++; … … 219 219 // profilerN = 0; 220 220 currentColor = nodeColor; 221 221 for (final OsmPrimitive osm : data.ways) 222 if (!osm.isDeleted() )222 if (!osm.isDeleted() && !osm.isDisabled() && !osm.isFiltered()) 223 223 { 224 224 visitVirtual((Way)osm); 225 225 // profilerN++; … … 248 248 public void visit(Node n) { 249 249 if (n.incomplete) return; 250 250 251 if (inactive ) {251 if (inactive || n.isDisabled()) { 252 252 drawNode(n, inactiveColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode); 253 253 } else if (n.highlighted) { 254 254 drawNode(n, highlightColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); … … 311 311 boolean showOnlyHeadArrowOnly = showThisDirectionArrow && !w.isSelected() && showHeadArrowOnly; 312 312 Color wayColor; 313 313 314 if (inactive ) {314 if (inactive || w.isDisabled()) { 315 315 wayColor = inactiveColor; 316 316 } else if(w.highlighted) { 317 317 wayColor = highlightColor; … … 344 344 if (r.incomplete) return; 345 345 346 346 Color col; 347 if (inactive ) {347 if (inactive || r.isDisabled()) { 348 348 col = inactiveColor; 349 349 } else if (r.isSelected()) { 350 350 col = selectedColor; -
src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
158 158 drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); 159 159 } else if (n.isTagged()) { 160 160 drawNode(n, nodeColor, taggedNodeSize, taggedNodeRadius, fillUnselectedNode); 161 } else if (n.isDisabled()) { 162 drawNode(n, inactiveColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode); 161 163 } else { 162 164 drawNode(n, nodeColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode); 163 165 } … … 306 308 color = highlightColor; 307 309 } else if(w.isSelected()) { 308 310 color = selectedColor; 311 } else if(w.isDisabled()) { 312 color = inactiveColor; 309 313 } 310 314 311 315 /* draw overlays under the way */ … … 529 533 { 530 534 for (RelationMember m : r.getMembers()) 531 535 { 532 if (m.isNode() && !m.getMember().incomplete && !m.getMember().isDeleted() )536 if (m.isNode() && !m.getMember().incomplete && !m.getMember().isDeleted() && !m.getMember().isFiltered()) 533 537 { 534 538 drawSelectedMember(m.getMember(), styles != null ? getPrimitiveStyle(m.getMember()) : null, true, true); 535 539 } … … 1394 1398 // profilerN = 0; 1395 1399 for (final Relation osm : data.relations) 1396 1400 { 1397 if(!osm.isDeleted() && !osm.i ncomplete && osm.mappaintVisibleCode != viewid)1401 if(!osm.isDeleted() && !osm.isFiltered() && !osm.incomplete && osm.mappaintVisibleCode != viewid) 1398 1402 { 1399 1403 osm.visit(this); 1400 1404 // profilerN++; … … 1411 1415 // profilerN = 0; 1412 1416 for (final Way osm : data.ways) 1413 1417 { 1414 if (!osm.incomplete && !osm.isDeleted() 1418 if (!osm.incomplete && !osm.isDeleted() && !osm.isFiltered() 1415 1419 && osm.mappaintVisibleCode != viewid && osm.mappaintDrawnCode != paintid) 1416 1420 { 1417 1421 if(isPrimitiveArea(osm) && osm.mappaintDrawnAreaCode != paintid) … … 1452 1456 /*** WAYS (filling disabled) ***/ 1453 1457 // profilerN = 0; 1454 1458 for (final OsmPrimitive osm : data.ways) 1455 if (!osm.incomplete && !osm.isDeleted() && !osm.is Selected()1459 if (!osm.incomplete && !osm.isDeleted() && !osm.isFiltered() && !osm.isSelected() 1456 1460 && osm.mappaintVisibleCode != viewid ) 1457 1461 { 1458 1462 osm.visit(this); … … 1491 1495 /*** NODES ***/ 1492 1496 //profilerN = 0; 1493 1497 for (final OsmPrimitive osm : data.nodes) 1494 if (!osm.incomplete && !osm.isDeleted() 1498 if (!osm.incomplete && !osm.isDeleted() && (osm.isSelected() || !osm.isFiltered()) 1495 1499 && osm.mappaintVisibleCode != viewid && osm.mappaintDrawnCode != paintid) 1496 1500 { 1497 1501 osm.visit(this); … … 1511 1515 // profilerN = 0; 1512 1516 currentColor = nodeColor; 1513 1517 for (final OsmPrimitive osm : data.ways) 1514 if ( !osm.incomplete && !osm.isDeleted()1518 if (osm.isUsable() && !osm.isFiltered() 1515 1519 && osm.mappaintVisibleCode != viewid ) 1516 1520 { 1517 1521 /* TODO: move this into the SimplePaint code? */ -
src/org/openstreetmap/josm/data/osm/DataSet.java
183 183 return getSelected(relations); 184 184 } 185 185 186 public void setFiltered(Collection<? extends OsmPrimitive> selection) { 187 clearFiltered(nodes); 188 clearFiltered(ways); 189 clearFiltered(relations); 190 for (OsmPrimitive osm : selection) { 191 osm.setFiltered(true); 192 } 193 } 194 195 public void setFiltered(OsmPrimitive... osm) { 196 if (osm.length == 1 && osm[0] == null) { 197 setFiltered(); 198 return; 199 } 200 clearFiltered(nodes); 201 clearFiltered(ways); 202 clearFiltered(relations); 203 for (OsmPrimitive o : osm) 204 if (o != null) { 205 o.setFiltered(true); 206 } 207 } 208 209 public void setDisabled(Collection<? extends OsmPrimitive> selection) { 210 clearDisabled(nodes); 211 clearDisabled(ways); 212 clearDisabled(relations); 213 for (OsmPrimitive osm : selection) { 214 osm.setDisabled(true); 215 } 216 } 217 218 public void setDisabled(OsmPrimitive... osm) { 219 if (osm.length == 1 && osm[0] == null) { 220 setDisabled(); 221 return; 222 } 223 clearDisabled(nodes); 224 clearDisabled(ways); 225 clearDisabled(relations); 226 for (OsmPrimitive o : osm) 227 if (o != null) { 228 o.setDisabled(true); 229 } 230 } 231 186 232 public void setSelected(Collection<? extends OsmPrimitive> selection) { 187 233 clearSelection(nodes); 188 234 clearSelection(ways); … … 209 255 } 210 256 211 257 /** 258 * Remove the filtered parameter from every value in the collection. 259 * @param list The collection to remove the filtered parameter from. 260 */ 261 private void clearFiltered(Collection<? extends OsmPrimitive> list) { 262 if (list == null) 263 return; 264 for (OsmPrimitive osm : list) { 265 osm.setFiltered(false); 266 } 267 } 268 /** 269 * Remove the disabled parameter from every value in the collection. 270 * @param list The collection to remove the disabled parameter from. 271 */ 272 private void clearDisabled(Collection<? extends OsmPrimitive> list) { 273 if (list == null) 274 return; 275 for (OsmPrimitive osm : list) { 276 osm.setDisabled(false); 277 } 278 } 279 280 /** 212 281 * Remove the selection from every value in the collection. 213 282 * @param list The collection to remove the selection from. 214 283 */ -
src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
123 123 private boolean visible = true; 124 124 125 125 /** 126 * <code>true</code>, if the object has been set inactive 127 * 128 */ 129 public boolean disabled = false; 130 131 /** 132 * <code>true</code>, if the object has been filtered out 133 * 134 */ 135 public boolean filtered = false; 136 137 /** 126 138 * User that last modified this primitive, as specified by the server. 127 139 * Never changed by JOSM. 128 140 */ … … 172 184 /* ------------------------------------------------------------------------------------ */ 173 185 /* accessors */ 174 186 /* ------------------------------------------------------------------------------------ */ 187 /** 188 * Sets whether this primitive is disabled or not. 189 * 190 * @param selected true, if this primitive is disabled; false, otherwise 191 */ 192 public void setDisabled(boolean disabled) { 193 this.disabled = disabled; 194 } 175 195 176 196 /** 197 * Replies true, if this primitive is disabled. 198 * 199 * @return true, if this primitive is disabled 200 */ 201 public boolean isDisabled() { 202 return disabled; 203 } 204 /** 205 * Sets whether this primitive is filtered out or not. 206 * 207 * @param selected true, if this primitive is filtered out; false, otherwise 208 */ 209 public void setFiltered(boolean filtered) { 210 this.filtered = filtered; 211 } 212 /** 213 * Replies true, if this primitive is filtered out. 214 * 215 * @return true, if this primitive is filtered out 216 */ 217 public boolean isFiltered() { 218 return filtered; 219 } 220 221 /** 177 222 * Sets whether this primitive is selected or not. 178 223 * 179 224 * @param selected true, if this primitive is selected; false, otherwise … … 229 274 * @see #delete(boolean) 230 275 */ 231 276 public boolean isUsable() { 232 return !deleted && !incomplete ;277 return !deleted && !incomplete && !disabled; 233 278 } 234 279 235 280 /**