Changeset 3518 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
- Timestamp:
- 10.09.2010 07:45:16 (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
r3508 r3518 24 24 import java.util.Collection; 25 25 import java.util.Collections; 26 import java.util.HashMap; 26 27 import java.util.HashSet; 27 28 import java.util.Iterator; 28 29 import java.util.List; 30 import java.util.Map; 29 31 import java.util.Set; 30 32 import java.util.logging.Logger; … … 61 63 import org.openstreetmap.josm.data.osm.Relation; 62 64 import org.openstreetmap.josm.data.osm.RelationMember; 65 import org.openstreetmap.josm.data.osm.Tag; 63 66 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil; 64 67 import org.openstreetmap.josm.gui.DefaultNameFormatter; … … 66 69 import org.openstreetmap.josm.gui.SideButton; 67 70 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec; 71 import org.openstreetmap.josm.gui.dialogs.properties.PresetListPanel.PresetHandler; 68 72 import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction; 69 73 import org.openstreetmap.josm.gui.help.HelpUtil; 70 74 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 71 75 import org.openstreetmap.josm.gui.tagging.TagEditorPanel; 76 import org.openstreetmap.josm.gui.tagging.TagModel; 72 77 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField; 73 78 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList; … … 123 128 referrerModel = new ReferringRelationsBrowserModel(relation); 124 129 125 tagEditorPanel = new TagEditorPanel(); 130 tagEditorPanel = new TagEditorPanel(new PresetHandler() { 131 132 @Override 133 public void updateTags(List<Tag> tags) { 134 Map<String, TagModel> modelTags = new HashMap<String, TagModel>(); 135 for (int i=0; i<tagEditorPanel.getModel().getRowCount(); i++) { 136 TagModel tagModel = tagEditorPanel.getModel().get(i); 137 modelTags.put(tagModel.getName(), tagModel); 138 } 139 for (Tag tag: tags) { 140 TagModel existing = modelTags.get(tag.getKey()); 141 142 if (tag.getValue().isEmpty()) { 143 if (existing != null) { 144 tagEditorPanel.getModel().delete(tag.getKey()); 145 } 146 } else { 147 if (existing != null) { 148 tagEditorPanel.getModel().updateTagValue(existing, tag.getValue()); 149 } else { 150 tagEditorPanel.getModel().add(tag.getKey(), tag.getValue()); 151 } 152 } 153 154 } 155 } 156 157 @Override 158 public Collection<OsmPrimitive> getSelection() { 159 Relation relation = new Relation(); 160 tagEditorPanel.getModel().applyToPrimitive(relation); 161 return Collections.<OsmPrimitive>singletonList(relation); 162 } 163 }); 164 126 165 // populate the models 127 166 //
Note: See TracChangeset
for help on using the changeset viewer.
