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.TerrainInterpolator;
import org.osm2world.viewer.model.Data;
import org.osm2world.viewer.model.RenderOptions;
import org.osm2world.viewer.view.ViewerFrame;
public class SetTerrainInterpolatorAction extends AbstractAction {
private static final long serialVersionUID = 6034246138682723498L; //generated serialVersionUID
Class<? extends TerrainInterpolator> interpolatorClass;
ViewerFrame viewerFrame;
Data data;
RenderOptions renderOptions;
public SetTerrainInterpolatorAction(
Class<? extends TerrainInterpolator> interpolatorClass,
ViewerFrame viewerFrame, Data data, RenderOptions renderOptions) {
super(interpolatorClass.getSimpleName().replaceAll("Interpolator", ""));
putValue(SELECTED_KEY, interpolatorClass.equals(
renderOptions.getInterpolatorClass()));
this.interpolatorClass = interpolatorClass;
this.viewerFrame = viewerFrame;
this.data = data;
this.renderOptions = renderOptions;
}
@Override
public void actionPerformed(ActionEvent e) {
renderOptions.setInterpolatorClass(interpolatorClass);
putValue(SELECTED_KEY,
renderOptions.getInterpolatorClass().equals(interpolatorClass));
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);
}
}
}