javaquery/demo-calculator/src/main/java/org/apidesign/bck2brwsr/mavenhtml/App.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/javaquery/demo-calculator/src/main/java/org/apidesign/bck2brwsr/mavenhtml/App.java Fri Nov 09 12:06:45 2012 +0100
1.3 @@ -0,0 +1,74 @@
1.4 +package org.apidesign.bck2brwsr.mavenhtml;
1.5 +
1.6 +import org.apidesign.bck2brwsr.htmlpage.api.OnClick;
1.7 +import org.apidesign.bck2brwsr.htmlpage.api.Page;
1.8 +
1.9 +@Page(xhtml="Calculator.xhtml")
1.10 +public class App {
1.11 + private static final int OP_PLUS = 1;
1.12 + private static final int OP_MINUS = 2;
1.13 + private static final int OP_MUL = 3;
1.14 + private static final int OP_DIV = 4;
1.15 +
1.16 + static double memory = 0;
1.17 + static int operation = 0;
1.18 +
1.19 +
1.20 +
1.21 + @OnClick(id="clear")
1.22 + static void clear() {
1.23 + setValue(0.0);
1.24 + }
1.25 +
1.26 + private static void setValue(double v) {
1.27 + StringBuilder sb = new StringBuilder();
1.28 + sb.append(v);
1.29 + Calculator.DISPLAY.setValue(sb.toString());
1.30 + }
1.31 +
1.32 + private static double getValue() {
1.33 + return Double.parseDouble(Calculator.DISPLAY.getValue());
1.34 + }
1.35 +
1.36 + @OnClick(id="plus")
1.37 + static void plus() {
1.38 + memory = getValue();
1.39 + operation = OP_PLUS;
1.40 + setValue(0.0);
1.41 + }
1.42 +
1.43 + @OnClick(id="minus")
1.44 + static void minus() {
1.45 + memory = getValue();
1.46 + operation = OP_MINUS;
1.47 + setValue(0.0);
1.48 + }
1.49 +
1.50 + @OnClick(id="mul")
1.51 + static void mul() {
1.52 + memory = getValue();
1.53 + operation = OP_MUL;
1.54 + setValue(0.0);
1.55 + }
1.56 +
1.57 + @OnClick(id="result")
1.58 + static void computeTheValue() {
1.59 + switch (operation) {
1.60 + case 0: break;
1.61 + case OP_PLUS: setValue(memory + getValue()); break;
1.62 + case OP_MINUS: setValue(memory - getValue()); break;
1.63 + case OP_MUL: setValue(memory * getValue()); break;
1.64 + }
1.65 + }
1.66 +
1.67 + @OnClick(id={"n0", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9"})
1.68 + static void addDigit(String digit) {
1.69 + digit = digit.substring(1);
1.70 + String v = Calculator.DISPLAY.getValue();
1.71 + if ("0".equals(v) || v == null) {
1.72 + Calculator.DISPLAY.setValue(digit);
1.73 + } else {
1.74 + Calculator.DISPLAY.setValue(v + digit);
1.75 + }
1.76 + }
1.77 +}