Ticket #18463: 18463.patch
File 18463.patch, 8.2 KB (added by , 4 years ago) |
---|
-
src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java
220 220 } 221 221 222 222 protected void tryToPasteFromClipboard(OsmIdTextField tfId, OsmPrimitiveTypesComboBox cbType) { 223 String buf = ClipboardUtils.getClipboardStringContent(); 223 tryToPasteFromBuf(ClipboardUtils.getClipboardStringContent(), tfId, cbType); 224 } 225 226 protected void tryToPasteFromBuf(String buf, OsmIdTextField tfId, OsmPrimitiveTypesComboBox cbType) { 224 227 if (buf == null || buf.isEmpty()) return; 225 228 if (buf.length() > Config.getPref().getInt("downloadprimitive.max-autopaste-length", 2000)) return; 226 229 final List<SimplePrimitiveId> ids = SimplePrimitiveId.fuzzyParse(buf); 227 230 if (!ids.isEmpty()) { 228 final String parsedText = ids.stream().map(x -> x.getType().getAPIName().charAt(0) + String.valueOf(x.getUniqueId())) 229 .collect(Collectors.joining(", ")); 231 final String parsedText = idsToString(ids); 230 232 tfId.tryToPasteFrom(parsedText); 231 233 final EnumSet<OsmPrimitiveType> types = ids.stream().map(SimplePrimitiveId::getType).collect( 232 234 Collectors.toCollection(() -> EnumSet.noneOf(OsmPrimitiveType.class))); … … 243 245 } 244 246 } 245 247 248 protected String idsToString(Collection<? extends PrimitiveId> primitiveIds) { 249 return primitiveIds.stream().map(pid -> pid.getType().getAPIName().substring(0, 1) + pid.getUniqueId()) 250 .collect(Collectors.joining(", ")); 251 } 252 246 253 @Override public void windowClosed(WindowEvent e) { 247 254 if (e != null && e.getComponent() == this && getValue() == getContinueButtonIndex()) { 248 255 Config.getPref().putInt("downloadprimitive.lasttype", cbType.getSelectedIndex()); -
src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
57 57 import org.openstreetmap.josm.gui.datatransfer.ChangesetTransferable; 58 58 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils; 59 59 import org.openstreetmap.josm.gui.dialogs.changeset.query.ChangesetQueryDialog; 60 import org.openstreetmap.josm.gui.download.DownloadObjectDialog; 60 61 import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction; 61 62 import org.openstreetmap.josm.gui.help.HelpUtil; 62 63 import org.openstreetmap.josm.gui.io.CloseChangesetTask; … … 569 570 private class DownloadSelectedChangesetObjectsAction extends AbstractAction implements ListSelectionListener { 570 571 571 572 DownloadSelectedChangesetObjectsAction() { 572 putValue(NAME, tr("Download changed objects "));573 putValue(NAME, tr("Download changed objects ...")); 573 574 new ImageProvider("downloadprimitive").getResource().attachImageIcon(this); 574 575 putValue(SHORT_DESCRIPTION, tr("Download the current version of the changed objects in the selected changesets")); 575 576 updateEnabledState(); … … 579 580 public void actionPerformed(ActionEvent e) { 580 581 if (!GraphicsEnvironment.isHeadless()) { 581 582 actDownloadSelectedContent.actionPerformed(e); 582 MainApplication.worker.submit(() -> {583 GuiHelper.executeByMainWorkerInEDT(() -> { 583 584 final List<PrimitiveId> primitiveIds = model.getSelectedChangesets().stream() 584 585 .map(Changeset::getContent) 585 586 .filter(Objects::nonNull) … … 588 589 .map(HistoryOsmPrimitive::getPrimitiveId) 589 590 .distinct() 590 591 .collect(Collectors.toList()); 591 new DownloadPrimitivesWithReferrersTask(false, primitiveIds, true, true, null, null).run(); 592 if (primitiveIds.isEmpty()) 593 return; 594 DownloadObjectDialog dialog = new DownloadObjectDialog(getInstance()); 595 dialog.setupDialog(primitiveIds); 596 if (dialog.showDialog().getValue() != dialog.getContinueButtonIndex()) 597 return; 598 new DownloadPrimitivesWithReferrersTask(false, dialog.getOsmIds(), dialog.isReferrersRequested(), 599 dialog.isFullRelationRequested(), null, null).run(); 592 600 }); 593 601 } 594 602 } -
src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
45 45 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive; 46 46 import org.openstreetmap.josm.gui.HelpAwareOptionPane; 47 47 import org.openstreetmap.josm.gui.MainApplication; 48 import org.openstreetmap.josm.gui.download.DownloadObjectDialog; 48 49 import org.openstreetmap.josm.gui.help.HelpUtil; 49 50 import org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager; 50 51 import org.openstreetmap.josm.gui.io.DownloadPrimitivesWithReferrersTask; … … 250 251 class DownloadObjectAction extends AbstractAction implements ListSelectionListener { 251 252 252 253 DownloadObjectAction() { 253 putValue(NAME, tr("Download objects "));254 putValue(NAME, tr("Download objects ...")); 254 255 new ImageProvider("downloadprimitive").getResource().attachImageIcon(this, true); 255 256 putValue(SHORT_DESCRIPTION, tr("Download the current version of the selected objects")); 256 257 updateEnabledState(); … … 260 261 public void actionPerformed(ActionEvent e) { 261 262 final List<PrimitiveId> primitiveIds = getSelectedPrimitives().stream().map(HistoryOsmPrimitive::getPrimitiveId) 262 263 .collect(Collectors.toList()); 263 MainApplication.worker.submit(new DownloadPrimitivesWithReferrersTask(false, primitiveIds, true, true, null, null)); 264 if (primitiveIds.isEmpty()) 265 return; 266 DownloadObjectDialog dialog = new DownloadObjectDialog(ChangesetContentPanel.this); 267 dialog.setupDialog(primitiveIds); 268 if (dialog.showDialog().getValue() != dialog.getContinueButtonIndex()) 269 return; 270 MainApplication.worker.submit(new DownloadPrimitivesWithReferrersTask(false, dialog.getOsmIds(), 271 dialog.isReferrersRequested(), dialog.isFullRelationRequested(), null, null)); 264 272 } 265 273 266 274 protected final void updateEnabledState() { -
src/org/openstreetmap/josm/gui/download/DownloadObjectDialog.java
11 11 import javax.swing.JCheckBox; 12 12 13 13 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 14 import org.openstreetmap.josm.data.osm.PrimitiveId; 14 15 import org.openstreetmap.josm.gui.MainApplication; 15 16 import org.openstreetmap.josm.gui.dialogs.OsmIdSelectionDialog; 16 17 import org.openstreetmap.josm.io.NetworkManager; … … 57 58 buttons.get(0).setEnabled(!NetworkManager.isOffline(OnlineResource.OSM_API)); 58 59 } 59 60 61 /** 62 * Fill dialog with ids from given collection. 63 * @param primitiveIds collection of primitive ids used to fill the dialog 64 * @since xxx 65 */ 66 public void setupDialog(Collection<? extends PrimitiveId> primitiveIds) { 67 setupDialog(); 68 tryToPasteFromBuf(idsToString(primitiveIds), tfId, cbType); 69 } 70 60 71 @Override 61 72 protected Collection<Component> getComponentsBeforeHelp() { 62 73 newLayer.setToolTipText(tr("Select if the data should be downloaded into a new layer"));