source: josm/trunk/src/org/openstreetmap/josm/io/WMSLayerImporter.java@ 7029

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

see #8853 remove tabs, trailing spaces, windows line ends, strange characters

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.io.File;
7import java.io.FileInputStream;
8import java.io.IOException;
9import java.io.ObjectInputStream;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.actions.ExtensionFileFilter;
13import org.openstreetmap.josm.gui.layer.WMSLayer;
14import org.openstreetmap.josm.gui.progress.ProgressMonitor;
15import org.openstreetmap.josm.gui.util.GuiHelper;
16import org.openstreetmap.josm.tools.CheckParameterUtil;
17import org.openstreetmap.josm.tools.Utils;
18
19/**
20 * Import a WMS layer from a serialized binary file previously exported via {@link WMSLayerExporter}.
21 * @since 5457
22 */
23public class WMSLayerImporter extends FileImporter {
24
25 /**
26 * The file filter used in "open" and "save" dialogs for WMS layers.
27 */
28 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
29 "wms", "wms", tr("WMS Files (*.wms)"));
30
31 private final WMSLayer wmsLayer;
32
33 /**
34 * Constructs a new {@code WMSLayerImporter}.
35 */
36 public WMSLayerImporter() {
37 this(new WMSLayer());
38 }
39
40 /**
41 * Constructs a new {@code WMSLayerImporter} that will import data to the specified WMS layer.
42 * @param wmsLayer The WMS layer.
43 */
44 public WMSLayerImporter(WMSLayer wmsLayer) {
45 super(FILE_FILTER);
46 this.wmsLayer = wmsLayer;
47 }
48
49 @Override
50 public void importData(File file, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
51 CheckParameterUtil.ensureParameterNotNull(file, "file");
52 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
53 try {
54 wmsLayer.readExternal(ois);
55 } catch (ClassNotFoundException e) {
56 throw new IllegalDataException(e);
57 } finally {
58 Utils.close(ois);
59 }
60
61 // FIXME: remove UI stuff from IO subsystem
62 GuiHelper.runInEDT(new Runnable() {
63 @Override
64 public void run() {
65 Main.main.addLayer(wmsLayer);
66 wmsLayer.onPostLoadFromFile();
67 }
68 });
69 }
70
71 /**
72 * Replies the imported WMS layer.
73 * @return The imported WMS layer.
74 * @see #importData(File, ProgressMonitor)
75 */
76 public final WMSLayer getWmsLayer() {
77 return wmsLayer;
78 }
79}
Note: See TracBrowser for help on using the repository browser.