1.1 --- a/rt/archetype/src/main/resources/archetype-resources/src/main/java/App.java Mon Sep 09 17:34:30 2013 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,88 +0,0 @@
1.4 -package ${package};
1.5 -
1.6 -import java.util.List;
1.7 -import org.apidesign.bck2brwsr.htmlpage.api.*;
1.8 -import static org.apidesign.bck2brwsr.htmlpage.api.OnEvent.*;
1.9 -import org.apidesign.bck2brwsr.htmlpage.api.Page;
1.10 -import org.apidesign.bck2brwsr.htmlpage.api.Property;
1.11 -import org.apidesign.bck2brwsr.htmlpage.api.ComputedProperty;
1.12 -
1.13 -/** This is the controller class for associated index.html page. The <code>Index</code>
1.14 - * is autogenerated by parsing the index.html page. It fields represent individual
1.15 - * elements annotated by "id" in the page.
1.16 - */
1.17 -@Page(xhtml="index.html", className="Index", properties={
1.18 - @Property(name="name", type=String.class),
1.19 - @Property(name="messages", type=String.class, array=true),
1.20 -})
1.21 -public class App {
1.22 - static {
1.23 - Index model = new Index();
1.24 - model.setName("World");
1.25 - model.applyBindings();
1.26 - }
1.27 -
1.28 - /**
1.29 - * @param m the model of the index page creates in static initializer
1.30 - */
1.31 - @On(event = CLICK, id="hello")
1.32 - static void hello(Index m) {
1.33 - display(m.getHelloMessage(), m);
1.34 - m.getMessages().add(m.getHelloMessage());
1.35 - }
1.36 -
1.37 - /** Reacts when mouse moves over the canvas.
1.38 - *
1.39 - * @param m the model of the page
1.40 - * @param x property "x" extracted from the event generated by the browser
1.41 - * @param y property "y" from the mouse event
1.42 - */
1.43 - @On(event = MOUSE_MOVE, id="canvas")
1.44 - static void clearPoint(Index m, int x, int y) {
1.45 - GraphicsContext g = m.canvas.getContext();
1.46 - boolean even = (x + y) % 2 == 0;
1.47 - if (even) {
1.48 - g.setFillStyle("blue");
1.49 - } else {
1.50 - g.setFillStyle("red");
1.51 - }
1.52 - g.clearRect(0, 0, 1000, 1000);
1.53 - g.setFont("italic 40px Calibri");
1.54 - g.fillText(m.getHelloMessage(), 10, 40);
1.55 - }
1.56 -
1.57 - /** Callback function called by the KnockOut/Java binding on elements
1.58 - * representing href's with individual messages being their data.
1.59 - *
1.60 - * @param data the data associated with the element
1.61 - * @param m the model of the page
1.62 - */
1.63 - @OnFunction
1.64 - static void display(String data, Index m) {
1.65 - GraphicsContext g = m.canvas.getContext();
1.66 - g.clearRect(0, 0, 1000, 1000);
1.67 - g.setFillStyle("black");
1.68 - g.setFont("italic 40px Calibri");
1.69 - g.fillText(data, 10, 40);
1.70 - }
1.71 -
1.72 - /** Callback function.
1.73 - *
1.74 - * @param data data associated with the actual element on the page
1.75 - * @param m the model of the page
1.76 - */
1.77 - @OnFunction
1.78 - static void remove(String data, Index m) {
1.79 - m.getMessages().remove(data);
1.80 - }
1.81 -
1.82 - @ComputedProperty
1.83 - static String helloMessage(String name) {
1.84 - return "Hello " + name + "!";
1.85 - }
1.86 -
1.87 - @ComputedProperty
1.88 - static boolean noMessages(List<String> messages) {
1.89 - return messages.isEmpty();
1.90 - }
1.91 -}