jaroslav@141: package org.apidesign.bck2brwsr.mavenhtml; jaroslav@141: jaroslav@141: import org.apidesign.bck2brwsr.htmlpage.api.OnClick; jaroslav@141: import org.apidesign.bck2brwsr.htmlpage.api.Page; jaroslav@141: jaroslav@141: @Page(xhtml="Calculator.xhtml") jaroslav@141: public class App { jaroslav@141: private static final int OP_PLUS = 1; jaroslav@141: private static final int OP_MINUS = 2; jaroslav@141: private static final int OP_MUL = 3; jaroslav@141: private static final int OP_DIV = 4; jaroslav@141: jaroslav@141: static double memory = 0; jaroslav@141: static int operation = 0; jaroslav@141: jaroslav@141: jaroslav@141: jaroslav@141: @OnClick(id="clear") jaroslav@141: static void clear() { jaroslav@141: setValue(0.0); jaroslav@141: } jaroslav@141: jaroslav@141: private static void setValue(double v) { jaroslav@141: StringBuilder sb = new StringBuilder(); jaroslav@141: sb.append(v); jaroslav@141: Calculator.DISPLAY.setValue(sb.toString()); jaroslav@141: } jaroslav@141: jaroslav@141: private static double getValue() { jaroslav@141: return Double.parseDouble(Calculator.DISPLAY.getValue()); jaroslav@141: } jaroslav@141: jaroslav@141: @OnClick(id="plus") jaroslav@141: static void plus() { jaroslav@141: memory = getValue(); jaroslav@141: operation = OP_PLUS; jaroslav@141: setValue(0.0); jaroslav@141: } jaroslav@141: jaroslav@141: @OnClick(id="minus") jaroslav@141: static void minus() { jaroslav@141: memory = getValue(); jaroslav@141: operation = OP_MINUS; jaroslav@141: setValue(0.0); jaroslav@141: } jaroslav@141: jaroslav@141: @OnClick(id="mul") jaroslav@141: static void mul() { jaroslav@141: memory = getValue(); jaroslav@141: operation = OP_MUL; jaroslav@141: setValue(0.0); jaroslav@141: } jaroslav@141: jaroslav@141: @OnClick(id="result") jaroslav@141: static void computeTheValue() { jaroslav@141: switch (operation) { jaroslav@141: case 0: break; jaroslav@141: case OP_PLUS: setValue(memory + getValue()); break; jaroslav@141: case OP_MINUS: setValue(memory - getValue()); break; jaroslav@141: case OP_MUL: setValue(memory * getValue()); break; jaroslav@141: } jaroslav@141: } jaroslav@141: jaroslav@141: @OnClick(id={"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9"}) jaroslav@141: static void addDigit(String digit) { jaroslav@141: digit = digit.substring(1); jaroslav@141: String v = Calculator.DISPLAY.getValue(); jaroslav@141: if ("0".equals(v) || v == null) { jaroslav@141: Calculator.DISPLAY.setValue(digit); jaroslav@141: } else { jaroslav@141: Calculator.DISPLAY.setValue(v + digit); jaroslav@141: } jaroslav@141: } jaroslav@141: }