diff -r 9a7df12648b9 -r 26f7eeb81aec 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 Thu Apr 04 13:12:17 2013 +0200 +++ b/javaquery/demo-twitter/src/main/java/org/apidesign/bck2brwsr/demo/twitter/TwitterClient.java Sun Apr 07 22:32:41 2013 +0200 @@ -33,7 +33,7 @@ @Property(name="activeTweetersName", type=String.class), @Property(name="modifiedList", type=TwitterClient.Twttrs.class), @Property(name="userNameToAdd", type=String.class), - @Property(name="currentTweets", type=String.class, array = true) + @Property(name="currentTweets", type=TwitterClient.Twt.class, array = true) }) public class TwitterClient { @Model(className = "Tweeters", properties = { @@ -42,6 +42,41 @@ }) static class Twttrs { } + @Model(className = "Tweet", properties = { + @Property(name = "from_user", type = String.class), + @Property(name = "from_user_id", type = int.class), + @Property(name = "profile_image_url", type = String.class), + @Property(name = "text", type = String.class), + + }) + static final class Twt { + } + @Model(className = "TwitterQuery", properties = { + @Property(array = true, name = "results", type = Twt.class) + }) + public static final class TwttrQr { + } + + @OnReceive(url="{url}") + static void queryTweets(TwitterModel page, TwitterQuery q) { + page.getCurrentTweets().clear(); + page.getCurrentTweets().addAll(q.getResults()); + } + + @OnFunction + static void refreshTweets(TwitterModel model) { + Tweeters people = model.getActiveTweeters(); + StringBuilder sb = new StringBuilder(); + sb.append("http://search.twitter.com/search.json?callback=?&rpp=25&q="); + String sep = ""; + for (String p : people.getUserNames()) { + sb.append(sep); + sb.append("from:"); + sb.append(p); + sep = " OR "; + } + model.queryTweets(sb.toString()); + } private static Tweeters tweeters(String listName, String... userNames) { Tweeters t = new Tweeters(); @@ -60,7 +95,7 @@ svdLst.add(tweeters("Tech pundits", "Scobleizer", "LeoLaporte", "techcrunch", "BoingBoing", "timoreilly", "codinghorror")); model.setActiveTweetersName("NetBeans"); - + model.applyBindings(); }