Changeset 4113 in josm for trunk/src/org/openstreetmap/josm/data
- Timestamp:
- 2011-06-01T21:50:26+02:00 (13 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/data
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/APIDataSet.java
r4104 r4113 20 20 import org.openstreetmap.josm.data.osm.Node; 21 21 import org.openstreetmap.josm.data.osm.OsmPrimitive; 22 import org.openstreetmap.josm.data.osm.OsmPrimitiveComparator; 22 23 import org.openstreetmap.josm.data.osm.PrimitiveId; 23 24 import org.openstreetmap.josm.data.osm.Relation; … … 70 71 } 71 72 } 72 sortDeleted(); 73 sortNew(); 74 sortUpdated(); 75 } 76 77 /** 78 * Ensures that primitives are deleted in the following order: Relations, then Ways, 79 * then Nodes. 80 * 81 */ 82 protected void sortDeleted() { 83 Collections.sort( 84 toDelete, 85 new Comparator<OsmPrimitive>() { 86 public int compare(OsmPrimitive o1, OsmPrimitive o2) { 87 if (o1 instanceof Node && o2 instanceof Node) 88 return 0; 89 else if (o1 instanceof Node) 90 return 1; 91 else if (o2 instanceof Node) 92 return -1; 93 94 if (o1 instanceof Way && o2 instanceof Way) 95 return 0; 96 else if (o1 instanceof Way && o2 instanceof Relation) 97 return 1; 98 else if (o2 instanceof Way && o1 instanceof Relation) 99 return -1; 100 101 return 0; 102 } 103 } 104 ); 105 } 106 107 /** 108 * Ensures that primitives are added in the following order: Nodes, then Ways, 109 * then Relations. 110 * 111 */ 112 protected void sortNew() { 113 Collections.sort( 114 toAdd, 115 new Comparator<OsmPrimitive>() { 116 public int compare(OsmPrimitive o1, OsmPrimitive o2) { 117 if (o1 instanceof Node && o2 instanceof Node) 118 return 0; 119 else if (o1 instanceof Node) 120 return -1; 121 else if (o2 instanceof Node) 122 return 1; 123 124 if (o1 instanceof Way && o2 instanceof Way) 125 return 0; 126 else if (o1 instanceof Way && o2 instanceof Relation) 127 return -1; 128 else if (o2 instanceof Way && o1 instanceof Relation) 129 return 1; 130 131 return 0; 132 } 133 } 134 ); 135 } 136 /* 137 * Sort list of updated elements, so it looks neat in the confirmation dialog. 138 */ 139 protected void sortUpdated() { 140 Collections.sort( 141 toUpdate, 142 new Comparator<OsmPrimitive>() { 143 public int compare(OsmPrimitive o1, OsmPrimitive o2) { 144 if (o1 instanceof Node && o2 instanceof Node) 145 return 0; 146 else if (o1 instanceof Node) 147 return -1; 148 else if (o2 instanceof Node) 149 return 1; 150 151 if (o1 instanceof Way && o2 instanceof Way) 152 return 0; 153 else if (o1 instanceof Way && o2 instanceof Relation) 154 return -1; 155 else if (o2 instanceof Way && o1 instanceof Relation) 156 return 1; 157 158 return 0; 159 } 160 } 161 ); 162 } 163 73 OsmPrimitiveComparator c = new OsmPrimitiveComparator(); 74 c.relationsFirst = true; 75 Collections.sort(toDelete, c); 76 Collections.sort(toAdd, c); 77 Collections.sort(toUpdate, c); 78 } 79 164 80 /** 165 81 * initializes the API data set with the modified primitives in <code>ds</code> … … 236 152 } 237 153 } 238 sortNew(); 239 sortDeleted(); 154 OsmPrimitiveComparator c = new OsmPrimitiveComparator(); 155 c.relationsFirst = true; 156 Collections.sort(toDelete, c); 157 Collections.sort(toAdd, c); 158 Collections.sort(toUpdate, c); 240 159 } 241 160
Note:
See TracChangeset
for help on using the changeset viewer.