// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.imageryxmlbounds.actions;
import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.ActionEvent;
import java.io.File;
import org.openstreetmap.josm.actions.SaveActionBase;
import org.openstreetmap.josm.gui.layer.Layer;
import org.openstreetmap.josm.gui.layer.Layer.LayerSaveAction;
import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsLayer;
/**
* Save the current data.
* @author Don-vip
*/
public class BoundsLayerSaveAction extends LayerSaveAction {
/**
* Save the current data.
*/
public static class SaveBoundsAction extends SaveActionBase {
/**
* Constructs a new {@code SaveBoundsAction}.
*/
public SaveBoundsAction() {
super(tr("Save"), "save", tr("Save the current data."), null);
putValue("help", ht("/Action/Save"));
}
@Override
public File getFile(Layer layer) {
File f = layer.getAssociatedFile();
if (f != null && ! f.exists()) {
f = null;
}
return f == null ? BoundsLayerSaveAsAction.SaveBoundsAsAction.openFileDialog(layer) : f;
}
}
protected final XmlBoundsLayer layer;
/**
* Constructs a new {@code BoundsLayerSaveAction}.
* @param layer XML bounds layer
*/
public BoundsLayerSaveAction(XmlBoundsLayer layer) {
super(layer);
this.layer = layer;
}
@Override
public void actionPerformed(ActionEvent e) {
new SaveBoundsAction().doSave(layer);
}
}