# HG changeset patch # User Jaroslav Tulach # Date 1364217309 -3600 # Node ID 4508b8b6b45b11ba2393a7d74763535a59a71452 # Parent 89891834511c58aeb6fcff42cc334067c90cfec6 Dynamic calculator sample supports binding of array values. Modified to execute from classes only (again) and not require the built of whole deployed site. diff -r 89891834511c -r 4508b8b6b45b javaquery/demo-calculator-dynamic/pom.xml --- a/javaquery/demo-calculator-dynamic/pom.xml Mon Mar 25 13:48:45 2013 +0100 +++ b/javaquery/demo-calculator-dynamic/pom.xml Mon Mar 25 14:15:09 2013 +0100 @@ -27,8 +27,7 @@ - ${project.build.directory}/${project.build.finalName}-bck2brwsr/public_html - index.xhtml + org/apidesign/bck2brwsr/demo/calc/Calculator.xhtml diff -r 89891834511c -r 4508b8b6b45b javaquery/demo-calculator-dynamic/src/main/java/org/apidesign/bck2brwsr/demo/calc/Calc.java --- a/javaquery/demo-calculator-dynamic/src/main/java/org/apidesign/bck2brwsr/demo/calc/Calc.java Mon Mar 25 13:48:45 2013 +0100 +++ b/javaquery/demo-calculator-dynamic/src/main/java/org/apidesign/bck2brwsr/demo/calc/Calc.java Mon Mar 25 14:15:09 2013 +0100 @@ -17,9 +17,11 @@ */ package org.apidesign.bck2brwsr.demo.calc; +import java.util.List; import org.apidesign.bck2brwsr.htmlpage.api.ComputedProperty; import org.apidesign.bck2brwsr.htmlpage.api.On; import static org.apidesign.bck2brwsr.htmlpage.api.OnEvent.*; +import org.apidesign.bck2brwsr.htmlpage.api.OnFunction; import org.apidesign.bck2brwsr.htmlpage.api.Page; import org.apidesign.bck2brwsr.htmlpage.api.Property; @@ -34,12 +36,11 @@ @Property(name = "display", type = double.class), @Property(name = "operation", type = String.class), @Property(name = "hover", type = boolean.class), - @Property(name = "results", type = String.class, array = true) + @Property(name = "history", type = double.class, array = true) }) public class Calc { static { - Calculator m = new Calculator(); - m.applyBindings(); + new Calculator().applyBindings().setOperation("plus"); } @On(event = CLICK, id="clear") @@ -67,16 +68,26 @@ @On(event = CLICK, id="result") static void computeTheValue(Calculator c) { - final double val = compute( + final double newValue = compute( c.getOperation(), c.getMemory(), c.getDisplay() ); - c.getResults().add("another result " + val); - c.setDisplay(val); + c.setDisplay(newValue); + c.getHistory().add(newValue); c.setMemory(0); } + @OnFunction + static void recoverMemory(Calculator c, double data) { + c.setDisplay(data); + } + + @OnFunction + static void removeMemory(Calculator c, double data) { + c.getHistory().remove(data); + } + private static double compute(String op, double memory, double display) { switch (op) { case "plus": return memory + display; @@ -113,4 +124,9 @@ } return "Attempt to compute " + memory + " " + operation + " " + display + " = " + compute(operation, memory, display); } + + @ComputedProperty + static boolean emptyHistory(List history) { + return history.isEmpty(); + } } diff -r 89891834511c -r 4508b8b6b45b javaquery/demo-calculator-dynamic/src/main/resources/org/apidesign/bck2brwsr/demo/calc/Calculator.xhtml --- a/javaquery/demo-calculator-dynamic/src/main/resources/org/apidesign/bck2brwsr/demo/calc/Calculator.xhtml Mon Mar 25 13:48:45 2013 +0100 +++ b/javaquery/demo-calculator-dynamic/src/main/resources/org/apidesign/bck2brwsr/demo/calc/Calculator.xhtml Mon Mar 25 14:15:09 2013 +0100 @@ -78,10 +78,15 @@
-

Results

+

Previous Results

-