source: josm/trunk/src/org/openstreetmap/josm/io/WMSLayerExporter.java@ 12119

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

fix #12937 - Use the new LayerChangeListener (patch by michael2402) - gsoc-core

  • Property svn:eol-style set to native
File size: 1.9 KB
RevLine 
[3719]1// License: GPL. For details, see LICENSE file.
[3715]2package org.openstreetmap.josm.io;
3
[5457]4import java.io.File;
5import java.io.FileOutputStream;
6import java.io.IOException;
7import java.io.ObjectOutputStream;
8
[8526]9import org.openstreetmap.josm.Main;
10import org.openstreetmap.josm.data.Preferences;
11import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryPreferenceEntry;
12import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer;
[5457]13import org.openstreetmap.josm.gui.layer.Layer;
[10345]14import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
[5457]15import org.openstreetmap.josm.tools.CheckParameterUtil;
16
17/**
[6070]18 * Export a WMS layer to a serialized binary file that can be imported later via {@link WMSLayerImporter}.
19 *
[5457]20 * @since 5457
21 */
[5361]22public class WMSLayerExporter extends FileExporter {
[3715]23
[8526]24 /** Which version of the file we export */
25 public static final int CURRENT_FILE_VERSION = 6;
26
[5457]27 /**
28 * Constructs a new {@code WMSLayerExporter}
29 */
[3715]30 public WMSLayerExporter() {
[5361]31 super(WMSLayerImporter.FILE_FILTER);
[3715]32 }
[5457]33
34 @Override
35 public void exportData(File file, Layer layer) throws IOException {
36 CheckParameterUtil.ensureParameterNotNull(file, "file");
37 CheckParameterUtil.ensureParameterNotNull(layer, "layer");
[8526]38
39 if (layer instanceof AbstractTileSourceLayer) {
[7033]40 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file))) {
[8526]41 oos.writeInt(CURRENT_FILE_VERSION); // file version
42 oos.writeObject(Main.map.mapView.getCenter());
43 ImageryPreferenceEntry entry = new ImageryPreferenceEntry(((AbstractTileSourceLayer) layer).getInfo());
44 oos.writeObject(Preferences.serializeStruct(entry, ImageryPreferenceEntry.class));
[5457]45 }
46 }
47 }
[5459]48
49 @Override
[10345]50 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
51 setEnabled(e.getSource().getActiveLayer() instanceof AbstractTileSourceLayer);
[5459]52 }
[3719]53}
Note: See TracBrowser for help on using the repository browser.