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

Last change on this file since 7050 was 7033, checked in by Don-vip, 10 years ago

see #8465 - global use of try-with-resources, according to

  • 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.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;
17
18/**
19 * Import a WMS layer from a serialized binary file previously exported via {@link WMSLayerExporter}.
20 * @since 5457
21 */
22public class WMSLayerImporter extends FileImporter {
23
24 /**
25 * The file filter used in "open" and "save" dialogs for WMS layers.
26 */
27 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
28 "wms", "wms", tr("WMS Files (*.wms)"));
29
30 private final WMSLayer wmsLayer;
31
32 /**
33 * Constructs a new {@code WMSLayerImporter}.
34 */
35 public WMSLayerImporter() {
36 this(new WMSLayer());
37 }
38
39 /**
40 * Constructs a new {@code WMSLayerImporter} that will import data to the specified WMS layer.
41 * @param wmsLayer The WMS layer.
42 */
43 public WMSLayerImporter(WMSLayer wmsLayer) {
44 super(FILE_FILTER);
45 this.wmsLayer = wmsLayer;
46 }
47
48 @Override
49 public void importData(File file, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
50 CheckParameterUtil.ensureParameterNotNull(file, "file");
51 try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) {
52 wmsLayer.readExternal(ois);
53 } catch (ClassNotFoundException e) {
54 throw new IllegalDataException(e);
55 }
56
57 // FIXME: remove UI stuff from IO subsystem
58 GuiHelper.runInEDT(new Runnable() {
59 @Override
60 public void run() {
61 Main.main.addLayer(wmsLayer);
62 wmsLayer.onPostLoadFromFile();
63 }
64 });
65 }
66
67 /**
68 * Replies the imported WMS layer.
69 * @return The imported WMS layer.
70 * @see #importData(File, ProgressMonitor)
71 */
72 public final WMSLayer getWmsLayer() {
73 return wmsLayer;
74 }
75}
Note: See TracBrowser for help on using the repository browser.