Changeset 3371 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java
- Timestamp:
- 2010-07-09T08:24:57+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java
r3356 r3371 8 8 import java.awt.Graphics; 9 9 import java.awt.Graphics2D; 10 import java.util.ArrayList; 10 11 import java.util.Collection; 11 12 import java.util.HashSet; … … 25 26 import org.openstreetmap.josm.data.osm.FilterMatcher; 26 27 import org.openstreetmap.josm.data.osm.FilterWorker; 28 import org.openstreetmap.josm.data.osm.Node; 27 29 import org.openstreetmap.josm.data.osm.OsmPrimitive; 28 30 … … 59 61 60 62 61 63 62 64 public void executeFilters() { 63 65 DataSet ds = Main.main.getCurrentDataSet(); … … 65 67 return; 66 68 67 final Collection<OsmPrimitive> all = ds.allNonDeletedCompletePrimitives();68 69 FilterWorker.executeFilters(all, filterMatcher);70 71 disabledCount = 0;72 disabledAndHiddenCount = 0;73 // collect disabled and selected the primitives74 69 final Collection<OsmPrimitive> deselect = new HashSet<OsmPrimitive>(); 75 for (OsmPrimitive osm : all) { 76 if (osm.isDisabled()) { 77 disabledCount++; 78 if (osm.isSelected()) { 79 deselect.add(osm); 80 } 81 if (osm.isDisabledAndHidden()) { 82 disabledAndHiddenCount++; 70 71 ds.beginUpdate(); 72 try { 73 74 final Collection<OsmPrimitive> all = ds.allNonDeletedCompletePrimitives(); 75 76 FilterWorker.executeFilters(all, filterMatcher); 77 78 disabledCount = 0; 79 disabledAndHiddenCount = 0; 80 // collect disabled and selected the primitives 81 for (OsmPrimitive osm : all) { 82 if (osm.isDisabled()) { 83 disabledCount++; 84 if (osm.isSelected()) { 85 deselect.add(osm); 86 } 87 if (osm.isDisabledAndHidden()) { 88 disabledAndHiddenCount++; 89 } 83 90 } 84 91 } 85 } 86 disabledCount -= disabledAndHiddenCount; 92 disabledCount -= disabledAndHiddenCount; 93 } finally { 94 ds.endUpdate(); 95 } 96 87 97 if (!deselect.isEmpty()) { 88 98 ds.clearSelection(deselect); … … 91 101 Main.map.mapView.repaint(); 92 102 Main.map.filterDialog.updateDialogHeader(); 103 } 104 105 106 public void executeFilters(Collection<? extends OsmPrimitive> primitives) { 107 DataSet ds = Main.main.getCurrentDataSet(); 108 if (ds == null) 109 return; 110 111 boolean changed = false; 112 List<OsmPrimitive> deselect = new ArrayList<OsmPrimitive>(); 113 114 ds.beginUpdate(); 115 try { 116 for (int i=0; i<2; i++) { 117 for (OsmPrimitive primitive: primitives) { 118 119 if (i == 0 && primitive instanceof Node) { 120 continue; 121 } 122 123 if (i == 1 && !(primitive instanceof Node)) { 124 continue; 125 } 126 127 if (primitive.isDisabled()) { 128 disabledCount--; 129 } 130 if (primitive.isDisabledAndHidden()) { 131 disabledAndHiddenCount--; 132 } 133 changed = changed | FilterWorker.executeFilters(primitive, filterMatcher); 134 if (primitive.isDisabled()) { 135 disabledCount++; 136 } 137 if (primitive.isDisabledAndHidden()) { 138 disabledAndHiddenCount++; 139 } 140 141 if (primitive.isSelected() && primitive.isDisabled()) { 142 deselect.add(primitive); 143 } 144 145 } 146 } 147 } finally { 148 ds.endUpdate(); 149 } 150 151 if (changed) { 152 Main.map.mapView.repaint(); 153 Main.map.filterDialog.updateDialogHeader(); 154 ds.clearSelection(deselect); 155 } 156 93 157 } 94 158
Note:
See TracChangeset
for help on using the changeset viewer.