From 8438a5fc8a1299efead012ec731f5545756a72b5 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 5 Jun 2007 12:33:39 +0000 Subject: [PATCH] svn changeset:1591/svn branch:trunk --- .../terminal/gwt/client/BooleanVariable.java | 4 +- .../toolkit/terminal/gwt/client/Client.java | 1 + .../terminal/gwt/client/GwtClient.java | 178 ------------------ .../toolkit/terminal/gwt/client/Variable.java | 2 + .../terminal/gwt/client/VariableFactory.java | 1 + .../gwt/client/{ => ui}/Component.java | 18 +- .../gwt/client/ui/ContainerComponent.java | 7 +- .../terminal/gwt/client/ui/RootWindow.java | 11 +- .../terminal/gwt/client/ui/TkButton.java | 5 +- .../terminal/gwt/client/ui/TkLabel.java | 5 +- .../gwt/client/ui/TkLegacyComponent.java | 5 +- .../gwt/client/ui/TkOrderedLayout.java | 5 +- .../terminal/gwt/client/ui/TkTextField.java | 5 +- .../terminal/gwt/client/ui/TkUnknown.java | 5 +- 14 files changed, 33 insertions(+), 219 deletions(-) delete mode 100755 src/com/itmill/toolkit/terminal/gwt/client/GwtClient.java rename src/com/itmill/toolkit/terminal/gwt/client/{ => ui}/Component.java (70%) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/BooleanVariable.java b/src/com/itmill/toolkit/terminal/gwt/client/BooleanVariable.java index 19c3ba36b3..342f943ff2 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/BooleanVariable.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/BooleanVariable.java @@ -1,5 +1,7 @@ package com.itmill.toolkit.terminal.gwt.client; +import com.itmill.toolkit.terminal.gwt.client.ui.Component; + public class BooleanVariable extends Variable { private boolean value = true; @@ -9,7 +11,7 @@ public class BooleanVariable extends Variable { } - void update() { + public void update() { owner.getClient().updateVariable(this); if(immediate) owner.getClient().flushVariables(); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Client.java b/src/com/itmill/toolkit/terminal/gwt/client/Client.java index 3f5de7f1e2..bd3eeefb42 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/Client.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/Client.java @@ -15,6 +15,7 @@ import com.google.gwt.xml.client.Document; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; import com.google.gwt.xml.client.XMLParser; +import com.itmill.toolkit.terminal.gwt.client.ui.Component; import com.itmill.toolkit.terminal.gwt.client.ui.RootWindow; /** diff --git a/src/com/itmill/toolkit/terminal/gwt/client/GwtClient.java b/src/com/itmill/toolkit/terminal/gwt/client/GwtClient.java deleted file mode 100755 index 2efdb265bc..0000000000 --- a/src/com/itmill/toolkit/terminal/gwt/client/GwtClient.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.itmill.toolkit.terminal.gwt.client; - -import java.util.HashMap; -import java.util.Vector; - -import com.google.gwt.core.client.EntryPoint; -import com.google.gwt.http.client.Request; -import com.google.gwt.http.client.RequestBuilder; -import com.google.gwt.http.client.RequestCallback; -import com.google.gwt.http.client.RequestException; -import com.google.gwt.http.client.Response; -import com.google.gwt.http.client.URL; -import com.google.gwt.user.client.ui.RootPanel; -import com.google.gwt.xml.client.Document; -import com.google.gwt.xml.client.Node; -import com.google.gwt.xml.client.NodeList; -import com.google.gwt.xml.client.XMLParser; -import com.itmill.toolkit.terminal.gwt.client.ui.RootWindow; - -/** - * Entry point classes define onModuleLoad(). - */ -public class GwtClient implements EntryPoint { - - private String appUri = "http://localhost:8080/tk/HelloWorld"; - - // TODO remove repaintAll things start to pile up - private RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, appUri + "/UIDL/?repaintAll=1&"); - - private Console console; - - private RootWindow rw; - - private Vector pendingVariables = new Vector(); - - private HashMap components = new HashMap(); - - private int requestCount = 0; - - private LegacyClientWrapper lClient; - - /** - * This is the entry point method. - */ - public void onModuleLoad() { - - console = new Console(RootPanel.get("itmtk-loki")); - - console.log("muutos"); - - console.log("Starting app"); - - console.log("Makin fake UIDL Request to fool servlet of an app init"); - RequestBuilder rb2 = new RequestBuilder(RequestBuilder.GET, appUri); - try { - rb2.sendRequest("", new RequestCallback() { - - public void onResponseReceived(Request request, Response response) { - console.log("Got fake response... sending initial UIDL request"); - makeUidlRequest("repaintAll=1"); - } - - public void onError(Request request, Throwable exception) { - // TODO Auto-generated method stub - - } - - }); - } catch (RequestException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - } - - private void makeUidlRequest(String requestData) { - console.log("Making UIDL Request"); - rb = new RequestBuilder(RequestBuilder.GET, appUri + "/UIDL/?requestId=" + (++requestCount) + "&" + requestData); - try { - rb.sendRequest(requestData, new RequestCallback() { - public void onError(Request request, Throwable exception) { - console.error("Got error"); - } - public void onResponseReceived(Request request, Response response) { - console.log("Got response:"); - Document doc = XMLParser.parse(response.getText()); - console.log(doc.toString()); - handleUIDL(doc); - } - }); - console.log("Request sent"); - - } catch (RequestException e) { - console.error(e.getMessage()); - } - } - - private void handleUIDL(Document doc) { - NodeList changes = doc.getElementsByTagName("change"); - - for(int i = 0; i < changes.getLength(); i++) { - applyChange(changes.item(i).getFirstChild()); - } - } - - private void applyChange(Node n) { - if(n.getNodeName().equals("window")) { - console.log("Rendering main window"); - rw = new RootWindow(n, this); - rw.setClient(this); - } else { - int pid = Component.getIdFromUidl(n); - console.log("Updating node: " + n.getNodeName() + ", PID:"+pid); - Component c = getPaintable(pid); - c.updateFromUidl(n); - } - } - - /** - * Queues a changed variable to be sent to server - * - * @param variable - */ - public void updateVariable(Variable variable) { - // remove variable first so we will maintain the correct order (in case of "double change") - pendingVariables.remove(variable); - pendingVariables.add(variable); - } - - /** - * Sends queued variables to server - * - */ - public void flushVariables() { - - StringBuffer sb = new StringBuffer(); - - int i = 0; - while (!pendingVariables.isEmpty()) { - Variable v = (Variable) pendingVariables.lastElement(); - pendingVariables.removeElement(v); - - if (i > 0) { - sb.append("&"); - } - // encode the characters in the name - String encodedName = URL.encodeComponent(v.getId()); - sb.append(encodedName); - sb.append("="); - - // encode the characters in the value - String encodedValue = URL.encodeComponent(v.getEncodedValue()); - sb.append(encodedValue); - } - - String buf = sb.toString(); - - console.log("Making following request to server:"); - console.log(buf); - - makeUidlRequest(buf); - } - - public void registerComponent(Component component) { - components.put(""+component.getId(), component ); - } - - public Component getPaintable(int pid) { - return (Component) components.get(""+pid); - } - - public LegacyClientWrapper getLegacyClient() { - if(lClient == null) - lClient = new LegacyClientWrapper(); - return lClient; - } -} - diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Variable.java b/src/com/itmill/toolkit/terminal/gwt/client/Variable.java index 7b957132f6..365b143472 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/Variable.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/Variable.java @@ -1,5 +1,7 @@ package com.itmill.toolkit.terminal.gwt.client; +import com.itmill.toolkit.terminal.gwt.client.ui.Component; + public abstract class Variable { protected Component owner; diff --git a/src/com/itmill/toolkit/terminal/gwt/client/VariableFactory.java b/src/com/itmill/toolkit/terminal/gwt/client/VariableFactory.java index 52cac4cf15..6bfe74a54f 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/VariableFactory.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/VariableFactory.java @@ -5,6 +5,7 @@ import java.util.HashMap; import com.google.gwt.xml.client.NamedNodeMap; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; +import com.itmill.toolkit.terminal.gwt.client.ui.Component; public class VariableFactory { diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Component.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/Component.java similarity index 70% rename from src/com/itmill/toolkit/terminal/gwt/client/Component.java rename to src/com/itmill/toolkit/terminal/gwt/client/ui/Component.java index bfb498d39e..bc7bf289a2 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/Component.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/Component.java @@ -1,22 +1,16 @@ -package com.itmill.toolkit.terminal.gwt.client; +package com.itmill.toolkit.terminal.gwt.client.ui; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Node; -import com.itmill.toolkit.terminal.gwt.client.ui.ContainerComponent; -import com.itmill.toolkit.terminal.gwt.client.ui.TkButton; -import com.itmill.toolkit.terminal.gwt.client.ui.TkLabel; -import com.itmill.toolkit.terminal.gwt.client.ui.TkLegacyComponent; -import com.itmill.toolkit.terminal.gwt.client.ui.TkOrderedLayout; -import com.itmill.toolkit.terminal.gwt.client.ui.TkTextField; -import com.itmill.toolkit.terminal.gwt.client.ui.TkUnknown; +import com.itmill.toolkit.terminal.gwt.client.Client; public abstract class Component { private ContainerComponent parent; - protected GwtClient client; + protected Client client; private final int id; - public Component(int id, GwtClient c) { + public Component(int id, Client c) { client = c; this.id = id; } @@ -36,7 +30,7 @@ public abstract class Component { return false; } - public static Component createComponent(Node uidl, GwtClient cli) { + public static Component createComponent(Node uidl, Client cli) { Component c = null; String nodeName = uidl.getNodeName(); if(nodeName.equals("label")) { @@ -65,7 +59,7 @@ public abstract class Component { return parent; } - public GwtClient getClient() { + public Client getClient() { if(client == null) client = parent.getClient(); return client; diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ContainerComponent.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ContainerComponent.java index d61322331f..543c2451c4 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ContainerComponent.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ContainerComponent.java @@ -2,18 +2,17 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; abstract class ContainerComponent extends Component { - public ContainerComponent(int id, GwtClient c) { + public ContainerComponent(int id, Client c) { super(id, c); } abstract void appendChild(Component c); - public void renderChildNodes(Node n, GwtClient cli) { + public void renderChildNodes(Node n, Client cli) { NodeList children = n.getChildNodes(); for(int i = 0; i < children.getLength(); i++) { Node child = children.item(i); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/RootWindow.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/RootWindow.java index 8032b1c6d0..101ec44724 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/RootWindow.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/RootWindow.java @@ -4,15 +4,14 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Node; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; public class RootWindow extends ContainerComponent { private RootPanel rp; - private GwtClient client; + private Client client; - public RootWindow(Node uidl, GwtClient c) { + public RootWindow(Node uidl, Client c) { super(0,c); // root panel must be attached to client before childs can be rendered setClient(c); @@ -34,11 +33,11 @@ public class RootWindow extends ContainerComponent { return rp; } - public void setClient(GwtClient client) { + public void setClient(Client client) { this.client = client; } - public GwtClient getClient() { + public Client getClient() { return this.client; } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkButton.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkButton.java index f3f2b882c4..a4362114d9 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkButton.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkButton.java @@ -7,8 +7,7 @@ import com.google.gwt.xml.client.NamedNodeMap; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; import com.itmill.toolkit.terminal.gwt.client.BooleanVariable; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; import com.itmill.toolkit.terminal.gwt.client.VariableFactory; public class TkButton extends Component { @@ -16,7 +15,7 @@ public class TkButton extends Component { private Button b; private BooleanVariable state; - public TkButton(Node uidl, GwtClient c) { + public TkButton(Node uidl, Client c) { super(getIdFromUidl(uidl), c); b = new Button(); updateFromUidl(uidl); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java index 2d2255bc8c..1d41ce822e 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java @@ -5,14 +5,13 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.NamedNodeMap; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; public class TkLabel extends Component { private Label l; - public TkLabel(Node uidl, GwtClient cli) { + public TkLabel(Node uidl, Client cli) { super(getIdFromUidl(uidl), cli); l = new Label(); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLegacyComponent.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLegacyComponent.java index 402b9e24e8..66dcf57a5c 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLegacyComponent.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLegacyComponent.java @@ -6,15 +6,14 @@ import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Node; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; import com.itmill.toolkit.terminal.gwt.client.LegacyClientWrapper; public class TkLegacyComponent extends Component { private Label l; - public TkLegacyComponent(Node uidl, GwtClient cli) { + public TkLegacyComponent(Node uidl, Client cli) { super(getIdFromUidl(uidl), cli); // TODO Check if client has legacy client instantiated diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkOrderedLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkOrderedLayout.java index 90de9aa7e3..f7c590b863 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkOrderedLayout.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkOrderedLayout.java @@ -3,14 +3,13 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Node; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; public class TkOrderedLayout extends ContainerComponent { private FlowPanel p; - public TkOrderedLayout(Node uidl, GwtClient cli) { + public TkOrderedLayout(Node uidl, Client cli) { super(getIdFromUidl(uidl), cli); p = new FlowPanel(); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTextField.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTextField.java index c86e21a7cc..cec2e17597 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTextField.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTextField.java @@ -5,15 +5,14 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.NamedNodeMap; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; public class TkTextField extends Component { private TextBox tb; - public TkTextField(Node uidl, GwtClient cli) { + public TkTextField(Node uidl, Client cli) { super(getIdFromUidl(uidl),cli); tb = new TextBox(); diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkUnknown.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkUnknown.java index 6dc6d65b30..78d18e638a 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkUnknown.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkUnknown.java @@ -3,14 +3,13 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Node; -import com.itmill.toolkit.terminal.gwt.client.Component; -import com.itmill.toolkit.terminal.gwt.client.GwtClient; +import com.itmill.toolkit.terminal.gwt.client.Client; public class TkUnknown extends Component { private Label l; - public TkUnknown(Node uidl, GwtClient cli) { + public TkUnknown(Node uidl, Client cli) { super(getIdFromUidl(uidl),cli); l = new Label("No client side component found for " + uidl.getNodeName()); -- 2.39.5