Changeset 10074 in josm
- Timestamp:
- 2016-03-29T02:19:23+02:00 (9 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/AbstractMergeAction.java
r8443 r10074 5 5 6 6 import java.awt.Component; 7 import java.awt.GraphicsEnvironment; 7 8 import java.awt.GridBagLayout; 8 9 import java.util.List; … … 57 58 } 58 59 59 protected Layer askTargetLayer(List<Layer> targetLayers) { 60 JosmComboBox<Layer> layerList = new JosmComboBox<>(targetLayers.toArray(new Layer[0])); 60 protected static Layer askTargetLayer(List<Layer> targetLayers) { 61 return askTargetLayer(targetLayers.toArray(new Layer[0]), 62 tr("Please select the target layer."), 63 tr("Select target layer"), 64 tr("Merge"), "dialogs/mergedown"); 65 } 66 67 /** 68 * Asks a target layer. 69 * @param <T> type of layer 70 * @param targetLayers array of proposed target layers 71 * @param label label displayed in dialog 72 * @param title title of dialog 73 * @param buttonText text of button used to select target layer 74 * @param buttonIcon icon name of button used to select target layer 75 * @return choosen target layer 76 */ 77 @SuppressWarnings("unchecked") 78 public static <T extends Layer> T askTargetLayer(T[] targetLayers, String label, String title, String buttonText, String buttonIcon) { 79 JosmComboBox<T> layerList = new JosmComboBox<>(targetLayers); 61 80 layerList.setRenderer(new LayerListCellRenderer()); 62 81 layerList.setSelectedIndex(0); 63 82 64 83 JPanel pnl = new JPanel(new GridBagLayout()); 65 pnl.add(new JLabel( tr("Please select the target layer.")), GBC.eol());84 pnl.add(new JLabel(label), GBC.eol()); 66 85 pnl.add(layerList, GBC.eol()); 67 68 ExtendedDialog ed = new ExtendedDialog(Main.parent, 69 tr("Select target layer"), 70 new String[] {tr("Merge"), tr("Cancel")}); 71 ed.setButtonIcons(new String[] {"dialogs/mergedown", "cancel"}); 86 if (GraphicsEnvironment.isHeadless()) { 87 // return first layer in headless mode, for unit tests 88 return targetLayers[0]; 89 } 90 ExtendedDialog ed = new ExtendedDialog(Main.parent, title, new String[] {buttonText, tr("Cancel")}); 91 ed.setButtonIcons(new String[] {buttonIcon, "cancel"}); 72 92 ed.setContent(pnl); 73 93 ed.showDialog(); 74 if (ed.getValue() != 1) 94 if (ed.getValue() != 1) { 75 95 return null; 76 77 return ( Layer) layerList.getSelectedItem();96 } 97 return (T) layerList.getSelectedItem(); 78 98 } 79 99 -
trunk/src/org/openstreetmap/josm/actions/DownloadAlongAction.java
r9804 r10074 117 117 final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor(tr("Download data")); 118 118 final Future<?> future = new DownloadTaskList().download(false, toDownload, osmDownload, gpxDownload, monitor); 119 Main.worker.submit(new Runnable() { 120 @Override 121 public void run() { 122 try { 123 future.get(); 124 } catch (Exception e) { 125 Main.error(e); 126 return; 127 } 128 monitor.close(); 129 } 130 }); 119 waitFuture(future, monitor); 131 120 } 132 121 } -
trunk/src/org/openstreetmap/josm/actions/JosmAction.java
r10000 r10074 6 6 import java.awt.event.KeyEvent; 7 7 import java.util.Collection; 8 import java.util.concurrent.Future; 8 9 9 10 import javax.swing.AbstractAction; … … 17 18 import org.openstreetmap.josm.gui.layer.Layer; 18 19 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 20 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor; 19 21 import org.openstreetmap.josm.gui.util.GuiHelper; 20 22 import org.openstreetmap.josm.tools.Destroyable; … … 230 232 } 231 233 234 protected static void waitFuture(final Future<?> future, final PleaseWaitProgressMonitor monitor) { 235 Main.worker.submit( 236 new Runnable() { 237 @Override 238 public void run() { 239 try { 240 future.get(); 241 } catch (Exception e) { 242 Main.error(e); 243 return; 244 } 245 monitor.close(); 246 } 247 } 248 ); 249 } 250 232 251 /** 233 252 * Override in subclasses to init the enabled state of an action when it is -
trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
r10043 r10074 367 367 * @return List of ways to split 368 368 */ 369 privatestatic List<Way> getApplicableWays(List<Way> selectedWays, List<Node> selectedNodes) {369 static List<Way> getApplicableWays(List<Way> selectedWays, List<Node> selectedNodes) { 370 370 if (selectedNodes.isEmpty()) 371 371 return null; 372 372 373 // Special case - one of the selected ways touches (not cross) way that we 374 // want to split 373 // Special case - one of the selected ways touches (not cross) way that we want to split 375 374 if (selectedNodes.size() == 1) { 376 375 Node n = selectedNodes.get(0); … … 395 394 396 395 // List of ways shared by all nodes 397 List<Way> result = 398 new ArrayList<>(OsmPrimitive.getFilteredList(selectedNodes.get(0).getReferrers(), 399 Way.class)); 400 for (int i = 1; i < selectedNodes.size(); i++) { 401 List<OsmPrimitive> ref = selectedNodes.get(i).getReferrers(); 402 for (Iterator<Way> it = result.iterator(); it.hasNext();) { 403 if (!ref.contains(it.next())) { 404 it.remove(); 405 } 406 } 407 } 408 409 // Remove broken ways 410 for (Iterator<Way> it = result.iterator(); it.hasNext();) { 411 if (it.next().getNodesCount() <= 2) { 412 it.remove(); 413 } 414 } 415 416 if (selectedWays.isEmpty()) 417 return result; 418 else { 419 // Return only selected ways 420 for (Iterator<Way> it = result.iterator(); it.hasNext();) { 421 if (!selectedWays.contains(it.next())) { 422 it.remove(); 423 } 424 } 425 return result; 426 } 396 return UnJoinNodeWayAction.getApplicableWays(selectedWays, selectedNodes); 427 397 } 428 398 -
trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java
r10043 r10074 149 149 * @return List of relevant ways 150 150 */ 151 privatestatic List<Way> getApplicableWays(List<Way> selectedWays, List<Node> selectedNodes) {151 static List<Way> getApplicableWays(List<Way> selectedWays, List<Node> selectedNodes) { 152 152 if (selectedNodes.isEmpty()) 153 153 return null; -
trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java
r8510 r10074 89 89 final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor(tr("Download data")); 90 90 final Future<?> future = new DownloadTaskList().download(false /* no new layer */, areasToDownload, true, false, monitor); 91 Main.worker.submit( 92 new Runnable() { 93 @Override 94 public void run() { 95 try { 96 future.get(); 97 } catch (Exception e) { 98 Main.error(e); 99 return; 100 } 101 monitor.close(); 102 } 103 } 104 ); 91 waitFuture(future, monitor); 105 92 } 106 93 } -
trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java
r9860 r10074 5 5 6 6 import java.awt.GraphicsEnvironment; 7 import java.awt.GridBagLayout;8 7 import java.awt.event.ActionEvent; 9 8 import java.io.IOException; … … 12 11 13 12 import javax.swing.AbstractAction; 14 import javax.swing.JLabel;15 13 import javax.swing.JOptionPane; 16 import javax.swing.JPanel;17 14 18 15 import org.openstreetmap.gui.jmapviewer.tilesources.AbstractTMSTileSource; 19 16 import org.openstreetmap.josm.Main; 20 import org.openstreetmap.josm.actions.AbstractMergeAction .LayerListCellRenderer;17 import org.openstreetmap.josm.actions.AbstractMergeAction; 21 18 import org.openstreetmap.josm.data.coor.LatLon; 22 19 import org.openstreetmap.josm.data.gpx.GpxData; … … 24 21 import org.openstreetmap.josm.data.gpx.GpxTrackSegment; 25 22 import org.openstreetmap.josm.data.gpx.WayPoint; 26 import org.openstreetmap.josm.gui.ExtendedDialog;27 23 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 28 24 import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer; 29 25 import org.openstreetmap.josm.gui.progress.ProgressTaskId; 30 26 import org.openstreetmap.josm.gui.progress.ProgressTaskIds; 31 import org.openstreetmap.josm.gui.widgets.JosmComboBox;32 27 import org.openstreetmap.josm.io.OsmTransferException; 33 import org.openstreetmap.josm.tools.GBC;34 28 import org.openstreetmap.josm.tools.ImageProvider; 35 29 import org.xml.sax.SAXException; … … 129 123 return null; 130 124 } 131 JosmComboBox<AbstractTileSourceLayer> layerList = new JosmComboBox<>(targetLayers.toArray(new AbstractTileSourceLayer[0])); 132 layerList.setRenderer(new LayerListCellRenderer()); 133 layerList.setSelectedIndex(0); 134 JPanel pnl = new JPanel(new GridBagLayout()); 135 pnl.add(new JLabel(tr("Please select the imagery layer.")), GBC.eol()); 136 pnl.add(layerList, GBC.eol()); 137 if (GraphicsEnvironment.isHeadless()) { 138 // return first layer in headless mode, for unit tests 139 return targetLayers.get(0); 140 } 141 ExtendedDialog ed = new ExtendedDialog(Main.parent, tr("Select imagery layer"), new String[]{tr("Download"), tr("Cancel")}); 142 ed.setButtonIcons(new String[]{"dialogs/down", "cancel"}); 143 ed.setContent(pnl); 144 ed.showDialog(); 145 if (ed.getValue() != 1) { 146 return null; 147 } 148 return (AbstractTileSourceLayer) layerList.getSelectedItem(); 125 return AbstractMergeAction.askTargetLayer(targetLayers.toArray(new AbstractTileSourceLayer[0]), 126 tr("Please select the imagery layer."), 127 tr("Select imagery layer"), 128 tr("Download"), "dialogs/down"); 149 129 } 150 130
Note:
See TracChangeset
for help on using the changeset viewer.