Changeset 17981 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2021-07-10T20:52:12+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetValidation.java
r17643 r17981 2 2 package org.openstreetmap.josm.gui.tagging.presets; 3 3 4 import static java.util.Collections.singleton; 5 import static org.openstreetmap.josm.tools.I18n.tr; 6 7 import java.util.ArrayList; 8 import java.util.Arrays; 9 import java.util.Collection; 10 import java.util.List; 11 12 import javax.swing.JLabel; 13 4 14 import org.openstreetmap.josm.command.Command; 5 15 import org.openstreetmap.josm.data.osm.DataSet; 6 import org.openstreetmap.josm.data.osm.Node; 16 import org.openstreetmap.josm.data.osm.FilterModel; 17 import org.openstreetmap.josm.data.osm.INode; 18 import org.openstreetmap.josm.data.osm.IRelation; 19 import org.openstreetmap.josm.data.osm.IWay; 7 20 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 import org.openstreetmap.josm.data.osm.Relation;9 21 import org.openstreetmap.josm.data.osm.Tag; 10 import org.openstreetmap.josm.data.osm.Way;11 22 import org.openstreetmap.josm.data.preferences.sources.ValidatorPrefHelper; 12 23 import org.openstreetmap.josm.data.validation.OsmValidator; … … 17 28 import org.openstreetmap.josm.gui.util.GuiHelper; 18 29 import org.openstreetmap.josm.tools.Logging; 30 import org.openstreetmap.josm.tools.SubclassFilteredCollection; 19 31 import org.openstreetmap.josm.tools.Utils; 20 21 import javax.swing.JLabel;22 import java.util.ArrayList;23 import java.util.Arrays;24 import java.util.Collections;25 import java.util.List;26 27 import static org.openstreetmap.josm.tools.I18n.tr;28 32 29 33 /** … … 74 78 75 79 static OsmPrimitive applyChangedTags(OsmPrimitive original, List<Tag> changedTags) { 76 OsmPrimitive primitive = clone(original); 77 new DataSet(primitive); 78 Command command = TaggingPreset.createCommand(Collections.singleton(primitive), changedTags); 80 DataSet ds = new DataSet(); 81 Collection<OsmPrimitive> primitives = FilterModel.getAffectedPrimitives(singleton(original)); 82 ds.clonePrimitives( 83 new SubclassFilteredCollection<>(primitives, INode.class::isInstance), 84 new SubclassFilteredCollection<>(primitives, IWay.class::isInstance), 85 new SubclassFilteredCollection<>(primitives, IRelation.class::isInstance)); 86 OsmPrimitive primitive = ds.getPrimitiveById(original.getOsmPrimitiveId()); 87 Command command = TaggingPreset.createCommand(singleton(primitive), changedTags); 79 88 if (command != null) { 80 89 command.executeCommand(); … … 82 91 return primitive; 83 92 } 84 85 static OsmPrimitive clone(OsmPrimitive original) {86 if (original instanceof Node) {87 return new Node(((Node) original));88 } else if (original instanceof Way) {89 return new Way(((Way) original), false, false);90 } else if (original instanceof Relation) {91 return new Relation(((Relation) original), false, false);92 } else {93 throw new IllegalStateException();94 }95 }96 93 }
Note:
See TracChangeset
for help on using the changeset viewer.