package gov.nasa.arc.mct.fastplot.bridge.controls;
import gov.nasa.arc.mct.fastplot.bridge.AbstractAxis;
import gov.nasa.arc.mct.fastplot.bridge.PlotConstants;
import gov.nasa.arc.mct.fastplot.bridge.AbstractAxis.AxisVisibleOrientation;
import gov.nasa.arc.mct.fastplot.view.IconLoader.Icons;
import java.awt.event.KeyEvent;
/**
* Buttons to zoom in/out on an axis.
*
* @author vwoeltje
*
*/
public class ZoomControls extends AbstractPanZoomControls {
private static final long serialVersionUID = 3970100144412350694L;
/**
* Create pan controls for the specified axis.
* @param axis
*/
public ZoomControls(AbstractAxis axis) {
super(axis);
}
@Override
public void adjustAxis(AbstractAxis axis, double currentSpan, boolean less) {
double scale = 1.0 + (PlotConstants.ZOOMING_TIME_AXIS_PERCENTAGE / 100.0);
if (!less) scale = 1 / scale;
double next = currentSpan * scale;
double diff = (next - currentSpan) / 2;
axis.setStart(axis.getStart() - diff);
axis.setEnd (axis.getEnd () + diff);
}
@Override
protected Icons getIcon(AxisVisibleOrientation o, boolean less) {
switch (o) {
case HORIZONTAL: return less ? Icons.PLOT_ZOOM_OUT_X_ICON : Icons.PLOT_ZOOM_IN_X_ICON;
case VERTICAL : return less ? Icons.PLOT_ZOOM_OUT_Y_ICON : Icons.PLOT_ZOOM_IN_Y_ICON;
}
return null;
}
@Override
protected String getName(AxisVisibleOrientation o, boolean less) {
switch (o) {
case HORIZONTAL: return less ? "ZoomOutX" : "ZoomInX";
case VERTICAL : return less ? "ZoomOutY" : "ZoomInY";
}
return null;
}
@Override
protected int getTriggerKeyCode() {
return KeyEvent.VK_ALT;
}
}