source: josm/trunk/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java@ 5835

Last change on this file since 5835 was 5835, checked in by stoecker, 11 years ago

Javadoc fixes

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import org.openstreetmap.josm.actions.SaveAction;
7import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
8import org.openstreetmap.josm.gui.progress.ProgressMonitor;
9import org.openstreetmap.josm.tools.CheckParameterUtil;
10
11/**
12 * SaveLayerTask saves the data managed by an {@link org.openstreetmap.josm.gui.layer.OsmDataLayer} to the
13 * {@link org.openstreetmap.josm.gui.layer.OsmDataLayer#getAssociatedFile()}.
14 *
15 * <pre>
16 * ExecutorService executorService = ...
17 * SaveLayerTask task = new SaveLayerTask(layer, monitor);
18 * Future<?> taskFuture = executorServce.submit(task)
19 * try {
20 * // wait for the task to complete
21 * taskFuture.get();
22 * } catch(Exception e) {
23 * e.printStackTracek();
24 * }
25 * </pre>
26 */
27class SaveLayerTask extends AbstractIOTask {
28 private SaveLayerInfo layerInfo;
29 private ProgressMonitor parentMonitor;
30
31 /**
32 *
33 * @param layerInfo information about the layer to be saved to save. Must not be null.
34 * @param monitor the monitor. Set to {@link NullProgressMonitor#INSTANCE} if null
35 * @throws IllegalArgumentException thrown if layer is null
36 */
37 protected SaveLayerTask(SaveLayerInfo layerInfo, ProgressMonitor monitor) {
38 CheckParameterUtil.ensureParameterNotNull(layerInfo, "layerInfo");
39 if (monitor == null) {
40 monitor = NullProgressMonitor.INSTANCE;
41 }
42 this.layerInfo = layerInfo;
43 this.parentMonitor = monitor;
44 }
45
46 @Override
47 public void run() {
48 try {
49 parentMonitor.subTask(tr("Saving layer to ''{0}'' ...", layerInfo.getFile().toString()));
50 if (!SaveAction.doSave(layerInfo.getLayer(), layerInfo.getFile())) {
51 setFailed(true);
52 return;
53 }
54 if (!isCanceled()) {
55 layerInfo.getLayer().onPostSaveToFile();
56 }
57 } catch(Exception e) {
58 e.printStackTrace();
59 setLastException(e);
60 }
61 }
62
63 @Override
64 public void cancel() {
65 setCanceled(true);
66 }
67}
Note: See TracBrowser for help on using the repository browser.