package org.osm2world.viewer.control.actions;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import org.osm2world.core.map_elevation.creation.EleConstraintEnforcer;
import org.osm2world.viewer.model.Data;
import org.osm2world.viewer.model.RenderOptions;
import org.osm2world.viewer.view.ViewerFrame;
public class SetEleConstraintEnforcerAction extends AbstractAction {
private static final long serialVersionUID = -5241031810160447221L; //generated serialVersionUID
Class<? extends EleConstraintEnforcer> enforcerClass;
ViewerFrame viewerFrame;
Data data;
RenderOptions renderOptions;
public SetEleConstraintEnforcerAction(
Class<? extends EleConstraintEnforcer> enforcerClass,
ViewerFrame viewerFrame, Data data, RenderOptions renderOptions) {
super(enforcerClass.getSimpleName().replace("EleConstraintEnforcer", ""));
putValue(SELECTED_KEY, enforcerClass.equals(
renderOptions.getEnforcerClass()));
this.enforcerClass = enforcerClass;
this.viewerFrame = viewerFrame;
this.data = data;
this.renderOptions = renderOptions;
}
@Override
public void actionPerformed(ActionEvent e) {
renderOptions.setEnforcerClass(enforcerClass);
putValue(SELECTED_KEY,
renderOptions.getEnforcerClass().equals(enforcerClass));
if (data.getConversionResults() != null) {
JOptionPane.showMessageDialog(viewerFrame, "You need to reload or" +
" open a new OSM file for this option to have any effect!",
"Reload required", JOptionPane.INFORMATION_MESSAGE);
}
}
}