Changeset 28696 in osm for applications/editors/josm/plugins/opendata/src/org/openstreetmap
- Timestamp:
- 2012-09-08T19:09:04+02:00 (13 years ago)
- Location:
- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java
r28246 r28696 70 70 private final JMenu menu; 71 71 72 private OdDialog dialog; 73 72 74 public OdPlugin(PluginInformation info) { // NO_UCD 73 75 super(info); … … 167 169 public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) { 168 170 if (newFrame != null) { 169 newFrame.addToggleDialog(new OdDialog()); 171 newFrame.addToggleDialog(dialog = new OdDialog()); 172 } else { 173 dialog = null; 170 174 } 171 175 } … … 203 207 public final File getResourcesDirectory() { 204 208 return getSubDirectory("resources"); 209 } 210 211 public OdDialog getDialog() { 212 return dialog; 205 213 } 206 214 -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/DownloadDataTask.java
r28143 r28696 53 53 @Override 54 54 public Future<?> loadUrl(boolean newLayer, String url, ProgressMonitor progressMonitor) { 55 downloadTask = new InternalDownloadTasK(newLayer, new NetworkReader(url, handler), progressMonitor); 55 downloadTask = new InternalDownloadTasK(newLayer, new NetworkReader(url, handler, true), progressMonitor); 56 56 currentBounds = null; 57 57 if (handler == null || !handler.hasLicenseToBeAccepted() || askLicenseAgreement(handler.getLicense())) { -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java
r28191 r28696 24 24 import java.util.regex.Pattern; 25 25 26 import org.openstreetmap.josm.actions.JosmAction; 26 27 import org.openstreetmap.josm.data.Bounds; 27 28 import org.openstreetmap.josm.data.coor.LatLon; … … 478 479 } 479 480 } 481 482 // Tools 483 484 private final Collection<JosmAction> tools = new ArrayList<JosmAction>(); 485 486 public final Collection<JosmAction> getTools() { 487 return tools; 488 } 489 490 public final boolean addTool(JosmAction tool) { 491 return tool != null ? tools.add(tool) : false; 492 } 493 494 public final boolean removeTool(JosmAction tool) { 495 return tool != null ? tools.remove(tool) : false; 496 } 497 498 public void notifyActive() { 499 // To be overriden when the handler has specific treatments to perform when its layer becomes active 500 } 480 501 } -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdDialog.java
r28616 r28696 6 6 import java.awt.event.ActionEvent; 7 7 import java.awt.event.KeyEvent; 8 import java.awt.event.MouseAdapter; 9 import java.awt.event.MouseEvent; 8 10 import java.util.Arrays; 9 11 import java.util.List; 10 12 13 import javax.swing.JPopupMenu; 11 14 import javax.swing.JTree; 12 15 import javax.swing.tree.DefaultTreeModel; … … 23 26 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 24 27 import org.openstreetmap.josm.plugins.opendata.core.OdConstants; 25 import org.openstreetmap.josm.plugins.opendata.core.actions.ToolsAction;26 28 import org.openstreetmap.josm.plugins.opendata.core.layers.OdDataLayer; 27 29 import org.openstreetmap.josm.plugins.opendata.core.layers.OdLayer; … … 76 78 } 77 79 } 80 81 private class ToolsAction extends JosmAction { 82 public ToolsAction() { 83 super(marktr("Tools"), "dialogs/utils", tr("Open tools menu for this data."), null, false); 84 } 85 @Override 86 public void actionPerformed(ActionEvent e) { 87 // Done via mouseListener 88 } 89 } 78 90 79 91 public OdDialog() { … … 87 99 diffButton = new SideButton(new DiffAction()), 88 100 toolsButton = new SideButton(new ToolsAction()) 101 }); 102 103 this.toolsButton.addMouseListener(new MouseAdapter() { 104 @Override 105 public void mousePressed(MouseEvent e) { 106 if (Main.main.getEditLayer() instanceof OdLayer) { 107 JPopupMenu popup = new JPopupMenu(); 108 for (JosmAction tool : dataLayer.handler.getTools()) { 109 popup.add(tool); 110 } 111 popup.show(e.getComponent(), e.getX(), e.getY()); 112 } 113 } 89 114 }); 90 115 … … 124 149 diffButton.setEnabled(true); 125 150 } 151 toolsButton.setEnabled(dataLayer.handler != null && !dataLayer.handler.getTools().isEmpty()); 126 152 } else { 127 153 disableAllButtons(); … … 143 169 MapView.removeEditLayerChangeListener(this); 144 170 } 171 172 public OdDataLayer getDataLayer() { 173 return dataLayer; 174 } 145 175 } -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java
r28191 r28696 47 47 private final AbstractDataSetHandler handler; 48 48 private Class<? extends AbstractReader> readerClass; 49 private final boolean promptUser; 49 50 50 51 private File file; 51 52 private String filename; 52 53 53 public NetworkReader(String url, AbstractDataSetHandler handler) { 54 public NetworkReader(String url, AbstractDataSetHandler handler, boolean promptUser) { 54 55 CheckParameterUtil.ensureParameterNotNull(url, "url"); 55 56 this.url = url; 56 57 this.handler = handler; 57 58 this.readerClass = null; 59 this.promptUser = promptUser; 58 60 } 59 61 … … 150 152 instance = progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false); 151 153 if (readerClass.equals(ZipReader.class)) { 152 ZipReader zipReader = new ZipReader(in, handler); 154 ZipReader zipReader = new ZipReader(in, handler, promptUser); 153 155 DataSet ds = zipReader.parseDoc(instance); 154 156 file = zipReader.getReadFile(); -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipImporter.java
r28000 r28696 33 33 throws IllegalDataException { 34 34 try { 35 return ZipReader.parseDataSet(in, handler, instance); 35 return ZipReader.parseDataSet(in, handler, instance, true); 36 36 } catch (Exception e) { 37 37 throw new IllegalDataException(e); -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipReader.java
r28374 r28696 55 55 private final AbstractDataSetHandler handler; 56 56 private final ZipHandler zipHandler; 57 private final boolean promptUser; 57 58 58 59 private File file; 59 60 60 public ZipReader(InputStream in, AbstractDataSetHandler handler) { 61 public ZipReader(InputStream in, AbstractDataSetHandler handler, boolean promptUser) { 61 62 this.zis = in instanceof ZipInputStream ? (ZipInputStream) in : new ZipInputStream(in); 62 63 this.handler = handler; 63 64 this.zipHandler = handler != null ? handler.getZipHandler() : null; 65 this.promptUser = promptUser; 64 66 } 65 67 66 public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException { 67 return new ZipReader(in, handler).parseDoc(instance); 68 public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser) 69 throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException { 70 return new ZipReader(in, handler, promptUser).parseDoc(instance); 68 71 } 69 72 … … 156 159 file = null; 157 160 158 if (candidates.size() > 1) { 161 if (promptUser && candidates.size() > 1) { 159 162 DialogPrompter<CandidateChooser> prompt = new DialogPrompter() { 160 163 @Override … … 166 169 file = prompt.getDialog().getSelectedFile(); 167 170 } 168 } else if (candidates. size() == 1) {171 } else if (!candidates.isEmpty()) { 169 172 file = candidates.get(0); 170 173 } -
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java
r28185 r28696 115 115 @Override 116 116 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 117 if (newLayer == this && this.handler != null) { 118 this.handler.notifyActive(); 119 } 117 120 } 118 121
Note:
See TracChangeset
for help on using the changeset viewer.