// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.imageryxmlbounds.actions;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.ActionEvent;
import java.io.File;
import org.openstreetmap.josm.actions.SaveAsAction;
import org.openstreetmap.josm.gui.layer.Layer;
import org.openstreetmap.josm.gui.layer.Layer.LayerSaveAsAction;
import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsConstants;
import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsLayer;
/**
* Save Imagery XML file.
* @author Don-vip
*/
public class BoundsLayerSaveAsAction extends LayerSaveAsAction {
/**
* Save Imagery XML file
*/
public static class SaveBoundsAsAction extends SaveAsAction {
@Override
public File getFile(Layer layer) {
return openFileDialog(layer);
}
/**
* Opens a "File/Save as" dialog if the given layer is an XML bounds layer
* @param layer layer
* @return chosen destination file, or {@code null}
*/
public static File openFileDialog(Layer layer) {
if (layer instanceof XmlBoundsLayer) {
return createAndOpenSaveFileChooser(tr("Save Imagery XML file"), XmlBoundsConstants.EXTENSION);
} else {
return null;
}
}
}
protected final XmlBoundsLayer layer;
/**
* Constructs a new {@code BoundsLayerSaveAsAction}.
* @param layer XML Bounds layer
*/
public BoundsLayerSaveAsAction(XmlBoundsLayer layer) {
super(layer);
this.layer = layer;
}
@Override
public void actionPerformed(ActionEvent e) {
new SaveBoundsAsAction().doSave(layer);
}
}