jaroslav@1202
|
1 |
package ${package};
|
jaroslav@1202
|
2 |
|
jaroslav@1202
|
3 |
import net.java.html.json.ComputedProperty;
|
jaroslav@1202
|
4 |
import net.java.html.json.Function;
|
jaroslav@1202
|
5 |
import net.java.html.json.Model;
|
jaroslav@1202
|
6 |
import net.java.html.json.Property;
|
jaroslav@1202
|
7 |
|
jaroslav@1273
|
8 |
/** Model annotation generates class Data with
|
jaroslav@1273
|
9 |
* one message property, boolean property and read only words property
|
jaroslav@1273
|
10 |
*/
|
jaroslav@1273
|
11 |
@Model(className = "Data", properties = {
|
jaroslav@1273
|
12 |
@Property(name = "message", type = String.class),
|
jaroslav@1273
|
13 |
@Property(name = "on", type = boolean.class)
|
jaroslav@1202
|
14 |
})
|
jaroslav@1273
|
15 |
final class DataModel {
|
jaroslav@1273
|
16 |
@ComputedProperty static java.util.List<String> words(String message) {
|
jaroslav@1273
|
17 |
String[] arr = new String[6];
|
jaroslav@1273
|
18 |
String[] words = message == null ? new String[0] : message.split(" ", 6);
|
jaroslav@1273
|
19 |
for (int i = 0; i < 6; i++) {
|
jaroslav@1273
|
20 |
arr[i] = words.length > i ? words[i] : "!";
|
jaroslav@1202
|
21 |
}
|
jaroslav@1273
|
22 |
return java.util.Arrays.asList(arr);
|
jaroslav@1202
|
23 |
}
|
jaroslav@1202
|
24 |
|
jaroslav@1273
|
25 |
@Function static void turnOn(Data model) {
|
jaroslav@1273
|
26 |
model.setOn(true);
|
jaroslav@1202
|
27 |
}
|
jaroslav@1433
|
28 |
|
jaroslav@1433
|
29 |
@Function static void turnOff(final Data model) {
|
jaroslav@1433
|
30 |
confirmByUser("Really turn off?", new Runnable() {
|
jaroslav@1433
|
31 |
@Override
|
jaroslav@1433
|
32 |
public void run() {
|
jaroslav@1433
|
33 |
model.setOn(false);
|
jaroslav@1433
|
34 |
}
|
jaroslav@1433
|
35 |
});
|
jaroslav@1202
|
36 |
}
|
jaroslav@1433
|
37 |
|
jaroslav@1433
|
38 |
/** Shows direct interaction with JavaScript */
|
jaroslav@1433
|
39 |
@net.java.html.js.JavaScriptBody(
|
jaroslav@1433
|
40 |
args = { "msg", "callback" },
|
jaroslav@1433
|
41 |
javacall = true,
|
jaroslav@1433
|
42 |
body = "alert(msg); callback.@java.lang.Runnable::run()();"
|
jaroslav@1433
|
43 |
)
|
jaroslav@1433
|
44 |
static native void confirmByUser(String msg, Runnable callback);
|
jaroslav@1202
|
45 |
}
|