Ticket #6364: remove_tag_with_preset.patch

File remove_tag_with_preset.patch, 2.5 KB (added by simon04, 13 years ago)
  • src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

     
    14941494    public static Command createCommand(Collection<OsmPrimitive> sel, List<Tag> changedTags) {
    14951495        List<Command> cmds = new ArrayList<Command>();
    14961496        for (Tag tag: changedTags) {
    1497             if (!tag.getValue().isEmpty()) {
    1498                 cmds.add(new ChangePropertyCommand(sel, tag.getKey(), tag.getValue()));
    1499             }
     1497            cmds.add(new ChangePropertyCommand(sel, tag.getKey(), tag.getValue()));
    15001498        }
    15011499
    15021500        if (cmds.size() == 0)
  • src/org/openstreetmap/josm/command/ChangePropertyCommand.java

     
    55import static org.openstreetmap.josm.tools.I18n.tr;
    66
    77import java.util.ArrayList;
     8import java.util.Arrays;
    89import java.util.Collection;
    910import java.util.Collections;
    1011import java.util.LinkedList;
     
    4445        super();
    4546        this.objects = new LinkedList<OsmPrimitive>();
    4647        this.key = key;
    47         this.value = value;
    48         if (value == null) {
     48        this.value = (value == null || value.isEmpty()) ? null : value;
     49        if (this.value == null) {
    4950            for (OsmPrimitive osm : objects) {
    5051                if(osm.get(key) != null) {
    5152                    this.objects.add(osm);
     
    5455        } else {
    5556            for (OsmPrimitive osm : objects) {
    5657                String val = osm.get(key);
    57                 if (val == null || !value.equals(val)) {
     58                if (val == null || !this.value.equals(val)) {
    5859                    this.objects.add(osm);
    5960                }
    6061            }
     
    6263    }
    6364
    6465    public ChangePropertyCommand(OsmPrimitive object, String key, String value) {
    65         this.objects = new LinkedList<OsmPrimitive>();
    66         this.key = key;
    67         this.value = value;
    68         String val = object.get(key);
    69         if ((value == null && val != null)
    70                 || (value != null && (val == null || !value.equals(val)))) {
    71             this.objects.add(object);
    72         }
     66        this(Arrays.asList(object), key, value);
    7367    }
    7468
    7569    @Override public boolean executeCommand() {