package com.isti.traceview.commands;
import org.apache.log4j.Logger;
import com.isti.traceview.AbstractUndoableCommand;
import com.isti.traceview.UndoException;
import com.isti.traceview.gui.GraphPanel;
/**
* This command selects values range, i.e sets desired range of Y values on axis
*
* @author Max Kokoulin
*/
public class SelectValueCommand extends AbstractUndoableCommand {
private static final Logger logger = Logger.getLogger(SelectValueCommand.class); // @jve:decl-index=0:
private GraphPanel graphPanel = null;
private double previousMax;
private double previousMin;
private double max;
private double min;
/**
* @param gp
* target graph panel
* @param min
* minimum Y axis value
* @param max
* maximum Y axis value
*/
public SelectValueCommand(GraphPanel gp, double min, double max) {
this.max = max;
this.min = min;
this.graphPanel = gp;
this.previousMax = graphPanel.getManualValueMax();
this.previousMin = graphPanel.getManualValueMin();
}
public void run() {
try {
super.run();
graphPanel.setManualValueMax(max);
graphPanel.setManualValueMin(min);
} catch (Exception e) {
logger.error("Exception:", e);
}
}
public void undo() throws UndoException {
try {
super.undo();
graphPanel.setManualValueMax(previousMax);
graphPanel.setManualValueMin(previousMin);
} catch (UndoException e) {
// do nothing
logger.error("UndoException:", e);
}
}
public boolean canUndo() {
// if (previousMax == Integer.MIN_VALUE || previousMin == Integer.MAX_VALUE)
// return false;
// else
return true;
}
}