package org.osm2world.viewer.control.actions; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import org.osm2world.viewer.model.Data; import org.osm2world.viewer.model.Defaults; import org.osm2world.viewer.model.RenderOptions; import org.osm2world.viewer.view.ViewerFrame; public class ToggleOrthographicProjectionAction extends AbstractAction { private static final long serialVersionUID = 8546764815038965935L; private final ViewerFrame viewerFrame; private final Data data; private final RenderOptions renderOptions; public ToggleOrthographicProjectionAction(ViewerFrame viewerFrame, Data data, RenderOptions renderOptions) { super("Orthographic projection"); putValue(SHORT_DESCRIPTION, "Switches between orthographic and perspective projection"); putValue(MNEMONIC_KEY, KeyEvent.VK_C); putValue(SELECTED_KEY, renderOptions.projection.isOrthographic()); this.viewerFrame = viewerFrame; this.data = data; this.renderOptions = renderOptions; } @Override public void actionPerformed(ActionEvent e) { if (renderOptions.projection.isOrthographic()) { renderOptions.projection = Defaults.PERSPECTIVE_PROJECTION; } else { renderOptions.projection = Defaults.ORTHOGRAPHIC_PROJECTION; } putValue(SELECTED_KEY, renderOptions.projection.isOrthographic()); } }