Changeset 5844 in josm for trunk


Ignore:
Timestamp:
2013-04-13T12:04:29+02:00 (7 years ago)
Author:
akks
Message:

Remote control: fix table cell editing in add_tags dialog, fixed all EDT violations

Location:
trunk/src/org/openstreetmap/josm/io/remotecontrol
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/AddTagsDialog.java

    r5790 r5844  
    1313import java.util.Collection;
    1414import javax.swing.AbstractAction;
     15import javax.swing.DefaultCellEditor;
    1516
    1617import javax.swing.JPanel;
    1718import javax.swing.JTable;
     19import javax.swing.JTextField;
    1820import javax.swing.KeyStroke;
    1921import javax.swing.table.DefaultTableModel;
     22import javax.swing.table.TableCellEditor;
    2023import javax.swing.table.TableCellRenderer;
    2124import javax.swing.table.TableModel;
     
    2730import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2831import org.openstreetmap.josm.gui.ExtendedDialog;
     32import org.openstreetmap.josm.gui.util.TableCellEditorSupport;
    2933import org.openstreetmap.josm.gui.util.TableHelper;
    3034import org.openstreetmap.josm.tools.GBC;
     
    6771
    6872        DefaultTableModel tm = new DefaultTableModel(new String[] {tr("Assume"), tr("Key"), tr("Value")}, tags.length) {
     73            final Class<?> types[] = {Boolean.class, String.class, Object.class};
    6974            @Override
    7075            public Class getColumnClass(int c) {
    71                 return getValueAt(0, c).getClass();
     76                return types[c];
    7277            }
    7378
     
    97102
    98103            private static final long serialVersionUID = 1L;
     104            ///private final DefaultCellEditor textEditor = new DefaultCellEditor( new JTextField() );
    99105
    100106            @Override
     
    109115                }
    110116                return c;
     117            }
     118
     119            @Override
     120            public TableCellEditor getCellEditor(int row, int column) {
     121                Object value = getValueAt(row,column);
     122                System.out.println(value);
     123                if (value instanceof DeleteTagMarker) return null;
     124                return getDefaultEditor(value.getClass());
    111125            }
    112126        };
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/AddNodeHandler.java

    r5707 r5844  
    1010import org.openstreetmap.josm.data.coor.LatLon;
    1111import org.openstreetmap.josm.data.osm.Node;
     12import org.openstreetmap.josm.gui.util.GuiHelper;
    1213import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    1314import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
     
    2829    @Override
    2930    protected void handleRequest() {
    30         addNode(args);
     31        GuiHelper.runInEDTAndWait(new Runnable() {
     32            @Override public void run() {
     33                 addNode(args);
     34            }
     35        });
    3136    }
    3237
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/AddWayHandler.java

    r5707 r5844  
    1616import org.openstreetmap.josm.data.osm.Node;
    1717import org.openstreetmap.josm.data.osm.Way;
     18import org.openstreetmap.josm.gui.util.GuiHelper;
    1819import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    1920import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
     
    3839    @Override
    3940    protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException {
    40         Way way = new Way();
    41         List<Command> commands = new LinkedList<Command>();
    42         for (LatLon ll : allCoordinates) {
    43             Node node = new Node(ll);
    44             way.addNode(node);
    45             commands.add(new AddCommand(node));
    46         }
    47         allCoordinates.clear();
    48         commands.add(new AddCommand(way));
    49         Main.main.undoRedo.add(new SequenceCommand(tr("Add way"), commands));
    50         Main.main.getCurrentDataSet().setSelected(way);
    51         if (PermissionPrefWithDefault.CHANGE_VIEWPORT.isAllowed()) {
    52             AutoScaleAction.autoScale("selection");
    53         } else {
    54             Main.map.mapView.repaint();
    55         }
    56         // parse parameter addtags=tag1=value1|tag2=vlaue2
     41        GuiHelper.runInEDTAndWait(new Runnable() {
     42            @Override public void run() {
     43                addWay();
     44            }
     45        });
     46        // parse parameter addtags=tag1=value1|tag2=value2
    5747        LoadAndZoomHandler.addTags(args);       
    5848    }
     
    9484        }
    9585    }
     86
     87    /*
     88     * This function creates the way with given coordinates of nodes
     89     */
     90    private void addWay() {
     91        Way way = new Way();
     92        List<Command> commands = new LinkedList<Command>();
     93        for (LatLon ll : allCoordinates) {
     94            Node node = new Node(ll);
     95            way.addNode(node);
     96            commands.add(new AddCommand(node));
     97        }
     98        allCoordinates.clear();
     99        commands.add(new AddCommand(way));
     100        Main.main.undoRedo.add(new SequenceCommand(tr("Add way"), commands));
     101        Main.main.getCurrentDataSet().setSelected(way);
     102        if (PermissionPrefWithDefault.CHANGE_VIEWPORT.isAllowed()) {
     103            AutoScaleAction.autoScale("selection");
     104        } else {
     105            Main.map.mapView.repaint();
     106        }
     107    }
    96108}
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java

    r5837 r5844  
    99import org.openstreetmap.josm.data.imagery.ImageryInfo;
    1010import org.openstreetmap.josm.gui.layer.ImageryLayer;
     11import org.openstreetmap.josm.gui.util.GuiHelper;
    1112import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    1213
     
    4748        }
    4849        String cookies = args.get("cookies");
    49         ImageryInfo imgInfo = new ImageryInfo(title, url, type, null, cookies);
     50        final ImageryInfo imgInfo = new ImageryInfo(title, url, type, null, cookies);
    5051        String min_zoom = args.get("min_zoom");
    5152        if (min_zoom != null && !min_zoom.isEmpty()) {
     
    6465            }
    6566        }
    66         Main.main.addLayer(ImageryLayer.create(imgInfo));
     67        GuiHelper.runInEDT(new Runnable() {
     68            @Override public void run() {
     69                Main.main.addLayer(ImageryLayer.create(imgInfo));
     70            }
     71        });
    6772    }
    6873
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadObjectHandler.java

    r5680 r5844  
    99import org.openstreetmap.josm.data.osm.PrimitiveId;
    1010import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
     11import org.openstreetmap.josm.gui.util.GuiHelper;
    1112import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    1213
     
    3637        }
    3738        if (!ps.isEmpty()) {
    38             boolean newLayer = isLoadInNewLayer();
    39             boolean relationMembers = Boolean.parseBoolean(args.get("relation_members"));
    40             DownloadPrimitiveAction.processItems(newLayer, ps, true, relationMembers);
    41             Main.worker.submit(new Runnable() {
    42    
     39            final boolean newLayer = isLoadInNewLayer();
     40            final boolean relationMembers = Boolean.parseBoolean(args.get("relation_members"));
     41            GuiHelper.runInEDTAndWait(new Runnable() {
     42                @Override public void run() {
     43                    DownloadPrimitiveAction.processItems(newLayer, ps, true, relationMembers);
     44                }
     45            });
     46            GuiHelper.executeByMainWorkerInEDT(new Runnable() {
    4347                @Override
    4448                public void run() {
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/OpenFileHandler.java

    r5680 r5844  
    44import java.util.Arrays;
    55import org.openstreetmap.josm.actions.OpenFileAction;
     6import org.openstreetmap.josm.gui.util.GuiHelper;
    67import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    78import static org.openstreetmap.josm.tools.I18n.tr;
     
    2930    @Override
    3031    protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException {
    31         OpenFileAction.openFiles(Arrays.asList(new File(args.get("filename"))));
     32        GuiHelper.runInEDTAndWait(new Runnable() {
     33            @Override public void run() {
     34                OpenFileAction.openFiles(Arrays.asList(new File(args.get("filename"))));
     35            }
     36        });
    3237    }
    3338
Note: See TracChangeset for help on using the changeset viewer.