Changeset 1811 in josm for trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
- Timestamp:
- 2009-07-19T17:38:55+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
r1810 r1811 18 18 import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask; 19 19 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 20 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 21 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 20 22 import org.openstreetmap.josm.io.BoundingBoxDownloader; 21 23 import org.openstreetmap.josm.io.OsmServerLocationReader; … … 38 40 private DataSet dataSet; 39 41 private boolean newLayer; 40 private String msg = "";41 42 42 public Task(boolean newLayer, OsmServerReader reader, boolean silent, String msg) { 43 super(tr("Downloading data")); 44 this.msg = msg; 43 public Task(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) { 44 super(tr("Downloading data"), progressMonitor, false); 45 45 this.reader = reader; 46 46 this.newLayer = newLayer; 47 this.silent = silent;48 47 } 49 48 50 49 @Override public void realRun() throws IOException, SAXException, OsmTransferException { 51 Main.pleaseWaitDlg.setCustomText(msg); 52 dataSet = reader.parseOsm(); 50 dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 53 51 } 54 52 … … 63 61 return; // user canceled download or error occurred 64 62 if (dataSet.allPrimitives().isEmpty()) { 65 // If silent is set to true, we don't want to see information messages 66 if(!silent) { 67 errorMessage = tr("No data imported."); 68 } 63 progressMonitor.setErrorMessage(tr("No data imported.")); 69 64 // need to synthesize a download bounds lest the visual indication of downloaded 70 65 // area doesn't work … … 78 73 getEditLayer().mergeFrom(dataSet); 79 74 } 80 81 Main.pleaseWaitDlg.setCustomText("");82 75 } 83 76 … … 86 79 reader.cancel(); 87 80 } 88 Main.pleaseWaitDlg.cancel.setEnabled(false);89 81 } 90 82 } … … 100 92 101 93 public void download(DownloadAction action, double minlat, double minlon, 102 double maxlat, double maxlon, boolean silent, String message) {94 double maxlat, double maxlon, ProgressMonitor progressMonitor) { 103 95 // Swap min and max if user has specified them the wrong way round 104 96 // (easy to do if you are crossing 0, for example) … … 115 107 116 108 Task t = new Task(newLayer, 117 new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), 118 silent, 119 message); 109 new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), progressMonitor); 120 110 currentBounds = new Bounds(new LatLon(minlat, minlon), new LatLon(maxlat, maxlon)); 121 111 // We need submit instead of execute so we can wait for it to finish and get the error 122 112 // message if necessary. If no one calls getErrorMessage() it just behaves like execute. 123 113 task = Main.worker.submit(t, t); 124 }125 126 public void download(DownloadAction action, double minlat, double minlon,127 double maxlat, double maxlon) {128 download(action, minlat, minlon, maxlat, maxlon, false, "");129 114 } 130 115 … … 137 122 Task t = new Task(new_layer, 138 123 new OsmServerLocationReader(url), 139 false, 140 ""); 124 NullProgressMonitor.INSTANCE); 141 125 task = Main.worker.submit(t, t); 142 126 } … … 160 144 try { 161 145 Task t = task.get(); 162 return t. errorMessage == null146 return t.getProgressMonitor().getErrorMessage() == null 163 147 ? "" 164 : t. errorMessage;148 : t.getProgressMonitor().getErrorMessage(); 165 149 } catch (Exception e) { 166 150 return "";
Note:
See TracChangeset
for help on using the changeset viewer.