package com.tddinaction.calculator;
/**
* This isn't a real implementation of a Presenter (as in Model-View-Presenter)
* but rather a stub that does enough for demonstrating the necessary Fit stuff.
*
* @author lkoskela
*/
public class CalculatorPresenter {
private double display;
private double left;
private double right;
private char operator;
private Calculator calculator;
public CalculatorPresenter(Calculator calculator) {
this.calculator = calculator;
}
public double display() {
return display;
}
public void inputValue(double input) {
left = right;
right = input;
display = input;
}
public void evaluate() {
switch (operator) {
case '+':
display = calculator.add(left, right);
break;
case '-':
display = calculator.subtract(left, right);
break;
case '*':
display = calculator.multiply(left, right);
break;
case '/':
display = calculator.divide(left, right);
break;
default:
System.err.println("Unknown operator: " + operator);
}
}
public void plusClicked() {
operator = '+';
}
public void minusClicked() {
operator = '-';
}
public void multiplyClicked() {
operator = '*';
}
public void divideClicked() {
operator = '/';
}
}