package lectures.undo_commands;
import util.annotations.WebDocuments;
import lectures.interfaces.ABMISpreadsheet;
import lectures.interfaces.BMISpreadsheet;
@WebDocuments({"Lectures/UndoCommands.pptx", "Lectures/UndoCommands.pdf", "Videos/UndoCommands.avi"})
public class AnUndoableBMISpreadsheet implements UndoableBMISpreadsheet {
BMISpreadsheet bmiSpreadsheet;
Undoer undoer = new HistoryUndoer();
public AnUndoableBMISpreadsheet (double height, double weight) {
bmiSpreadsheet = new ABMISpreadsheet(height, weight);
}
public double getBMI() {return bmiSpreadsheet.getBMI();}
public double getHeight() {return bmiSpreadsheet.getHeight();}
public double getWeight() {return bmiSpreadsheet.getWeight();}
public void setHeight(double theHeight) {
undoer.execute(new ASetHeightCommand(bmiSpreadsheet, theHeight));
}
public void setWeight(double theWeight) {
undoer.execute(new ASetWeightCommand(bmiSpreadsheet, theWeight));
}
public void undo() {undoer.undo();}
public void redo() {undoer.redo();}
public static void main (String[] args) {
bus.uigen.ObjectEditor.edit(new AnUndoableBMISpreadsheet(1.77, 75));
}
}