]> source.dussan.org Git - vaadin-framework.git/commitdiff
Now Calculator works!
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>
Wed, 6 Jun 2007 17:17:59 +0000 (17:17 +0000)
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>
Wed, 6 Jun 2007 17:17:59 +0000 (17:17 +0000)
svn changeset:1630/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/Client.java
src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java
src/com/itmill/toolkit/terminal/gwt/client/ui/Button.java
src/com/itmill/toolkit/terminal/gwt/client/ui/GridLayout.java [new file with mode: 0644]
src/com/itmill/toolkit/terminal/gwt/client/ui/OrderedLayout.java

index f3ac00f8632f2a88c7abb9081349c56d4e47c7a0..3ab9ef8ca4706ce26340abacd524d3279b8049b8 100755 (executable)
@@ -23,7 +23,7 @@ import com.google.gwt.user.client.ui.Widget;
  */
 public class Client implements EntryPoint {
 
-       private String appUri = "http://127.0.0.1:8080/tk/HelloWorld";
+       private String appUri = "http://127.0.0.1:8080/tk/Calc";
 
        // TODO remove repaintAll things start to pile up
        private RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, appUri
index 2e80534f38e615eb96dbc9aaf2d4e797e121037a..03fae654412ea11a3eaed60a98f277991c9aac21 100644 (file)
@@ -2,6 +2,7 @@ package com.itmill.toolkit.terminal.gwt.client;
 
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ui.Button;
+import com.itmill.toolkit.terminal.gwt.client.ui.GridLayout;
 import com.itmill.toolkit.terminal.gwt.client.ui.Label;
 import com.itmill.toolkit.terminal.gwt.client.ui.OrderedLayout;
 import com.itmill.toolkit.terminal.gwt.client.ui.Window;
@@ -18,6 +19,8 @@ public class DefaultWidgetFactory implements WidgetFactory {
                        return new OrderedLayout();
                if ("label".equals(tag))
                        return new Label();
+               if ("gridlayout".equals(tag))
+                       return new GridLayout();
 
                return null;
        }
index 4443dc6cf3722ce17d21e7ad649d8b42bdfaae19..342e7516669da4bf9f2ed5aba0d5e6c73d21ebe7 100644 (file)
@@ -1,16 +1,31 @@
 package com.itmill.toolkit.terminal.gwt.client.ui;
 
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.Client;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
 
-public class Button extends com.google.gwt.user.client.ui.Button implements Paintable {
+public class Button extends com.google.gwt.user.client.ui.Button implements
+               Paintable, ClickListener {
 
        String id;
-       
+
+       Client client;
+
+       public Button() {
+               addClickListener(this);
+       }
+
        public void updateFromUIDL(UIDL uidl, Client client) {
+               this.client = client;
                id = uidl.getId();
                setText(uidl.getStringAttribute("caption"));
        }
 
+       public void onClick(Widget sender) {
+               if (id == null || client == null)
+                       return;
+               client.updateVariable(id, "state", true, true);
+       }
 }
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/GridLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/GridLayout.java
new file mode 100644 (file)
index 0000000..6260ee9
--- /dev/null
@@ -0,0 +1,35 @@
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import java.util.Iterator;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.itmill.toolkit.terminal.gwt.client.Client;
+import com.itmill.toolkit.terminal.gwt.client.Paintable;
+import com.itmill.toolkit.terminal.gwt.client.UIDL;
+
+public class GridLayout extends VerticalPanel implements Paintable {
+
+       public void updateFromUIDL(UIDL uidl, Client client) {
+               clear();
+               if (uidl.hasAttribute("caption")) setTitle(uidl.getStringAttribute("caption"));
+               for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
+                       UIDL r = (UIDL) i.next();
+                       if ("gr".equals(r.getTag())) { 
+                               HorizontalPanel row = new HorizontalPanel();
+                               add(row);
+                               for (Iterator j = r.getChildIterator(); j.hasNext();) {
+                                       UIDL c = (UIDL) j.next();
+                                       if ("gc".equals(c.getTag())) {
+                                               UIDL u = c.getChildUIDL(0);                                             
+                                               Widget child = client.createWidgetFromUIDL(u);
+                                               if (child != null)
+                                                       row.add(child);
+                                       }
+                               }
+                       }
+               }
+       }
+       
+}
index 7b8c7a328c608854bef1090082e8715e3e8f93f7..b0a5aec571ff2e7f5de2e695d6ec1bfad39a7e2a 100644 (file)
@@ -2,13 +2,13 @@ package com.itmill.toolkit.terminal.gwt.client.ui;
 
 import java.util.Iterator;
 
-import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.Client;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
 
-public class OrderedLayout extends FlowPanel implements Paintable {
+public class OrderedLayout extends VerticalPanel implements Paintable {
 
        public void updateFromUIDL(UIDL uidl, Client client) {
                clear();