Ticket #5843: remotecontrol.patch

File remotecontrol.patch, 3.3 KB (added by freemaps.osm@…, 11 years ago)

Patch for the remotecontrol to add tags

  • src/org/openstreetmap/josm/io/remotecontrol/gui/AddTagsDialog.java

     
     1package org.openstreetmap.josm.io.remotecontrol.gui;
     2
     3import static org.openstreetmap.josm.tools.I18n.tr;
     4
     5import java.awt.event.ActionEvent;
     6import java.util.Collection;
     7
     8import javax.swing.JTable;
     9import javax.swing.table.TableModel;
     10
     11import org.openstreetmap.josm.Main;
     12import org.openstreetmap.josm.command.ChangePropertyCommand;
     13import org.openstreetmap.josm.data.osm.OsmPrimitive;
     14import org.openstreetmap.josm.gui.ExtendedDialog;
     15
     16
     17public class AddTagsDialog extends ExtendedDialog {
     18
     19
     20        private final JTable propertyTable;
     21
     22        public AddTagsDialog(String[][] tags) {
     23                super(Main.parent, "", new String[] { tr("Add tags"), tr("Cancel")},
     24                                false,
     25                                true);
     26
     27                propertyTable = new JTable(tags, new String[] {"Key", "Value"});
     28                propertyTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
     29                setContent(propertyTable);
     30
     31
     32                showDialog();
     33        }
     34
     35        @Override
     36        protected void buttonAction(int buttonIndex, ActionEvent evt) {
     37                if (buttonIndex == 0) {
     38                        TableModel tm = propertyTable.getModel();
     39                        Collection<OsmPrimitive> sel = Main.main.getCurrentDataSet().getSelected();
     40                        for (int i=0; i<tm.getRowCount(); i++) {
     41                                Main.main.undoRedo.add(new ChangePropertyCommand(sel, (String)tm.getValueAt(i, 0), (String)tm.getValueAt(i, 1)));
     42                        }
     43                }
     44                setVisible(false);
     45        }
     46
     47}
  • src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java

     
    55
    66import java.awt.geom.Area;
    77import java.awt.geom.Rectangle2D;
     8import java.io.UnsupportedEncodingException;
     9import java.net.URLDecoder;
    810import java.util.HashSet;
    911import java.util.concurrent.Future;
    1012
     
    2123import org.openstreetmap.josm.data.osm.Relation;
    2224import org.openstreetmap.josm.data.osm.Way;
    2325import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
     26import org.openstreetmap.josm.io.remotecontrol.gui.AddTagsDialog;
    2427
    2528/**
    2629 * Handler for load_and_zoom request.
     
    157160            // after downloading, zoom to downloaded area.
    158161            zoom(minlat, maxlat, minlon, maxlon);
    159162        }
     163
     164                if (args.containsKey("addtags")) {
     165                        String[] tags = args.get("addtags").split("\\|");
     166                        String[][] keyValue = new String[tags.length][2];
     167                        for (int i = 0; i<tags.length; i++) {
     168                                keyValue[i] = tags[i].split("=");
     169                                try {
     170                                        keyValue[i][0] = URLDecoder.decode(keyValue[i][0], "UTF-8");
     171                                        keyValue[i][1] = URLDecoder.decode(keyValue[i][1], "UTF-8");
     172                                } catch (UnsupportedEncodingException e) {
     173                                        System.err.println("Your System has no support for UTF8.\nDamn Windows!");
     174                                }
     175                        }
     176
     177                        new AddTagsDialog(keyValue);
     178                }
     179
    160180    }
    161181
    162182    protected void zoom(double minlat, double maxlat, double minlon, double maxlon) {
     
    175195            });
    176196        }
    177197    }
    178 }
    179  No newline at end of file
     198}