# HG changeset patch # User Jaroslav Tulach # Date 1366977075 -7200 # Node ID 9af5b2f49cb081778bad2a6beb21249eda127cfa # Parent ad9a37489365ba12f9ba1300d941c6169b459358 Twitter demo rewritten to use net.java.html.json annotations diff -r ad9a37489365 -r 9af5b2f49cb0 javaquery/demo-twitter/nbactions.xml --- a/javaquery/demo-twitter/nbactions.xml Fri Apr 26 13:48:36 2013 +0200 +++ b/javaquery/demo-twitter/nbactions.xml Fri Apr 26 13:51:15 2013 +0200 @@ -23,7 +23,7 @@ run process-classes - org.apidesign.bck2brwsr:mojo:0.6-SNAPSHOT:brwsr + org.apidesign.bck2brwsr:mojo:0.7-SNAPSHOT:brwsr diff -r ad9a37489365 -r 9af5b2f49cb0 javaquery/demo-twitter/pom.xml --- a/javaquery/demo-twitter/pom.xml Fri Apr 26 13:48:36 2013 +0200 +++ b/javaquery/demo-twitter/pom.xml Fri Apr 26 13:51:15 2013 +0200 @@ -128,6 +128,7 @@ org.apidesign.bck2brwsr javaquery.api 0.7-SNAPSHOT + runtime org.testng @@ -141,5 +142,11 @@ 0.7-SNAPSHOT test + + org.apidesign.html + net.java.html.json + 0.1-SNAPSHOT + jar + diff -r ad9a37489365 -r 9af5b2f49cb0 javaquery/demo-twitter/src/main/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClient.java --- a/javaquery/demo-twitter/src/main/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClient.java Fri Apr 26 13:48:36 2013 +0200 +++ b/javaquery/demo-twitter/src/main/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClient.java Fri Apr 26 13:51:15 2013 +0200 @@ -19,16 +19,19 @@ import java.util.Arrays; import java.util.List; -import org.apidesign.bck2brwsr.htmlpage.api.*; -import org.apidesign.bck2brwsr.htmlpage.api.Page; -import org.apidesign.bck2brwsr.htmlpage.api.Property; -import org.apidesign.bck2brwsr.htmlpage.api.ComputedProperty; +import net.java.html.json.ComputedProperty; +import net.java.html.json.Context; +import net.java.html.json.Function; +import net.java.html.json.Model; +import net.java.html.json.OnPropertyChange; +import net.java.html.json.OnReceive; +import net.java.html.json.Property; /** Controller class for access to Twitter. * * @author Jaroslav Tulach */ -@Page(xhtml="index.html", className="TwitterModel", properties={ +@Model(className="TwitterModel", properties={ @Property(name="savedLists", type=Tweeters.class, array = true), @Property(name="activeTweetersName", type=String.class), @Property(name="activeTweeters", type=String.class, array = true), @@ -106,8 +109,9 @@ model.queryTweets("http://search.twitter.com", sb.toString()); } + private static final Context DEFAULT = Context.findDefault(TwitterClient.class); static { - final TwitterModel model = new TwitterModel(); + final TwitterModel model = new TwitterModel(DEFAULT); final List svdLst = model.getSavedLists(); svdLst.add(newTweeters("API Design", "JaroslavTulach")); svdLst.add(newTweeters("Celebrities", "JohnCleese", "MCHammer", "StephenFry", "algore", "StevenSanderson")); @@ -143,19 +147,19 @@ !activeTweeters.contains(userNameToAdd); } - @OnFunction + @Function static void deleteList(TwitterModel model) { final List sl = model.getSavedLists(); sl.remove(findByName(sl, model.getActiveTweetersName())); if (sl.isEmpty()) { - final Tweeters t = new Tweeters(); + final Tweeters t = new Tweeters(DEFAULT); t.setName("New"); sl.add(t); } model.setActiveTweetersName(sl.get(0).getName()); } - @OnFunction + @Function static void saveChanges(TwitterModel model) { Tweeters t = findByName(model.getSavedLists(), model.getActiveTweetersName()); int indx = model.getSavedLists().indexOf(t); @@ -166,12 +170,12 @@ } } - @OnFunction + @Function static void addUser(TwitterModel model) { String n = model.getUserNameToAdd(); model.getActiveTweeters().add(n); } - @OnFunction + @Function static void removeUser(String data, TwitterModel model) { model.getActiveTweeters().remove(data); } @@ -182,11 +186,11 @@ return l; } } - return list.isEmpty() ? new Tweeters() : list.get(0); + return list.isEmpty() ? new Tweeters(DEFAULT) : list.get(0); } private static Tweeters newTweeters(String listName, String... userNames) { - Tweeters t = new Tweeters(); + Tweeters t = new Tweeters(DEFAULT); t.setName(listName); t.getUserNames().addAll(Arrays.asList(userNames)); return t; diff -r ad9a37489365 -r 9af5b2f49cb0 javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClientTest.java --- a/javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClientTest.java Fri Apr 26 13:48:36 2013 +0200 +++ b/javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClientTest.java Fri Apr 26 13:51:15 2013 +0200 @@ -18,6 +18,7 @@ package org.apidesign.bck2brwsr.demo.twitter; import java.util.List; +import net.java.html.json.Context; import static org.testng.Assert.*; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -32,12 +33,12 @@ @BeforeMethod public void initModel() { - model = new TwitterModel().applyBindings(); + model = new TwitterModel(Context.EMPTY); } @Test public void testIsValidToAdd() { model.setUserNameToAdd("Joe"); - Tweeters t = new Tweeters(); + Tweeters t = new Tweeters(Context.EMPTY); t.setName("test"); model.getSavedLists().add(t); model.setActiveTweetersName("test"); diff -r ad9a37489365 -r 9af5b2f49cb0 javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterProtocolTest.java --- a/javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterProtocolTest.java Fri Apr 26 13:48:36 2013 +0200 +++ b/javaquery/demo-twitter/src/test/java/org/apidesign/bck2brwsr/demo/twitter/TwitterProtocolTest.java Fri Apr 26 13:51:15 2013 +0200 @@ -17,6 +17,7 @@ */ package org.apidesign.bck2brwsr.demo.twitter; +import net.java.html.json.Context; import org.apidesign.bck2brwsr.vmtest.BrwsrTest; import org.apidesign.bck2brwsr.vmtest.Http; import org.apidesign.bck2brwsr.vmtest.VMTest; @@ -73,7 +74,7 @@ )) @BrwsrTest public void readFromTwttr() throws InterruptedException { if (page == null) { - page = new TwitterModel(); + page = new TwitterModel(Context.findDefault(TwitterProtocolTest.class)); page.applyBindings(); page.queryTweets("", "q=xyz"); }