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

Last change on this file since 11535 was 10378, checked in by Don-vip, 8 years ago

Checkstyle 6.19: enable SingleSpaceSeparator and fix violations

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