Changeset 3440 in josm for trunk/src/org/openstreetmap/josm/command
- Timestamp:
- 2010-08-15T17:31:20+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
r3262 r3440 12 12 13 13 import org.openstreetmap.josm.data.osm.Node; 14 import org.openstreetmap.josm.data.osm.NodeData; 14 15 import org.openstreetmap.josm.data.osm.OsmPrimitive; 15 16 import org.openstreetmap.josm.data.osm.PrimitiveData; … … 23 24 } 24 25 26 @SuppressWarnings("null") 25 27 @Override public boolean executeCommand() { 26 28 … … 28 30 29 31 for (PrimitiveData pd:data) { 30 createdPrimitives.add(getLayer().data.getPrimitiveById(pd, true)); 32 OsmPrimitive primitive = getLayer().data.getPrimitiveById(pd); 33 boolean created = primitive == null; 34 if (created) { 35 primitive = pd.getType().newInstance(pd.getUniqueId(), true); 36 } 37 if (pd instanceof NodeData) { // Load nodes immediately because they can't be added to dataset without coordinates 38 primitive.load(pd); 39 } 40 if (created) { 41 getLayer().data.addPrimitive(primitive); 42 } 43 createdPrimitives.add(primitive); 31 44 } 32 45 33 // Load nodes first to prevent ways with null coordinates 34 for (int i=0; i<createdPrimitives.size(); i++) { 35 if (createdPrimitives.get(i) instanceof Node) { 36 createdPrimitives.get(i).load(data.get(i)); 37 } 38 } 39 40 // Now load ways and relations 46 //Then load ways and relations 41 47 for (int i=0; i<createdPrimitives.size(); i++) { 42 48 if (!(createdPrimitives.get(i) instanceof Node)) { … … 57 63 @Override public JLabel getDescription() { 58 64 return new JLabel(trn("Added {0} object", "Added {0} objects", data.size(), data.size()), null, 59 65 JLabel.HORIZONTAL 60 66 ); 61 67 }
Note: See TracChangeset
for help on using the changeset viewer.