nl.cloudfarming.client.geoviewer.layers.SettingsForLayerAction Maven / Gradle / Ivy
The newest version!
/**
* Copyright (C) 2010 Cloudfarming
*
* Licensed under the Eclipse Public License - v 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.cloudfarming.client.geoviewer.layers;
import java.awt.Dialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import nl.cloudfarming.client.geoviewer.Layer;
import nl.cloudfarming.client.geoviewer.MapController;
import org.openide.DialogDescriptor;
import org.openide.DialogDisplayer;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
/**
* Action to open and close the settings panel for a layer.
*
* @author Timon Veenstra
*/
class SettingsForLayerAction extends AbstractAction {
private static final String KEY_ACTION_SETTINGS = "action.name.settings";
private LayerSettingsPanel panel;
private Dialog dlg;
private Layer layer;
private MapController mapApi;
public SettingsForLayerAction() {
putValue(NAME, NbBundle.getMessage(this.getClass(), KEY_ACTION_SETTINGS));
}
@Override
public void actionPerformed(ActionEvent arg0) {
layer = Utilities.actionsGlobalContext().lookup(Layer.class);
mapApi = Utilities.actionsGlobalContext().lookup(MapController.class);
assert mapApi != null;
assert layer != null;
panel = new LayerSettingsPanel(mapApi, layer);
DialogDescriptor dd = new DialogDescriptor(panel, NbBundle.getMessage(this.getClass(), "dialog.settings.title"));
dd.setOptions(new Object[]{getOkButton(), getCancelButton()});
dlg = DialogDisplayer.getDefault().createDialog(dd);
dlg.setVisible(true);
}
private JButton getOkButton() {
JButton jButtonOK = new JButton();
jButtonOK.setText(NbBundle.getMessage(this.getClass(), "dialog.settings.ok"));
jButtonOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
LayerListTopComponent.findInstance().refresh();
dlg.setVisible(false);
}
});
return jButtonOK;
}
private JButton getCancelButton() {
JButton jButtonCancel = new JButton();
jButtonCancel.setText(NbBundle.getMessage(this.getClass(), "dialog.settings.cancel"));
jButtonCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
panel.cancelSettings();
LayerListTopComponent.findInstance().refresh();
dlg.setVisible(false);
}
});
return jButtonCancel;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy