--- /dev/null
+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 TkButton extends com.google.gwt.user.client.ui.Button implements
+ Paintable, ClickListener {
+
+ String id;
+
+ Client client;
+
+ public TkButton() {
+ 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);
+ }
+}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import java.util.Iterator;
+
+import com.google.gwt.user.client.ui.FlexTable;
+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 TkGridLayout extends FlexTable implements Paintable {
+
+ public void updateFromUIDL(UIDL uidl, Client client) {
+ clear();
+ if (uidl.hasAttribute("caption")) setTitle(uidl.getStringAttribute("caption"));
+ int row = 0, column = 0;
+ for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
+ UIDL r = (UIDL) i.next();
+ if ("gr".equals(r.getTag())) {
+ row++;
+ column = 0;
+ for (Iterator j = r.getChildIterator(); j.hasNext();) {
+ UIDL c = (UIDL) j.next();
+ if ("gc".equals(c.getTag())) {
+ column++;
+ if(c.hasAttribute("w")) {
+ int w = c.getIntAttribute("w");
+ ((FlexCellFormatter)getCellFormatter()).setColSpan(row,column, w);
+ }
+ UIDL u = c.getChildUIDL(0);
+ Widget child = client.createWidgetFromUIDL(u);
+ if (child != null)
+ setWidget(row, column, child);
+ }
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.VerticalPanel;
+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 TkLabel extends Composite implements Paintable{
+
+ com.google.gwt.user.client.ui.Label caption = new com.google.gwt.user.client.ui.Label();;
+ HTML content = new HTML();
+
+ public TkLabel() {
+ VerticalPanel panel = new VerticalPanel();
+ panel.add(caption);
+ panel.add(content);
+ initWidget(panel);
+ setStyleName("itmtk-label");
+ caption.setStyleName("itmtk-label-caption");
+ content.setStyleName("itmtk-label-content");
+ }
+
+ public void updateFromUIDL(UIDL uidl, Client client) {
+ try{
+ UIDL child = uidl.getChildUIDL(0).getChildUIDL(0);
+ if(child.hasAttribute("xmlns") &&
+ child.getStringAttribute("xmlns").
+ equals("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd")) {
+ setContent(child.getChildString(0));
+ } else {
+ setContent("Terminals Label compoent can't handle this content type.");
+ }
+ } catch (Exception e) {
+ setContent(uidl.getChildString(0));
+ }
+ if(uidl.hasAttribute("caption"))
+ setCaption(uidl.getStringAttribute("caption"));
+ else
+ caption.setVisible(false);
+ }
+
+ public void setContent(String c) {
+ content.setHTML(c);
+ }
+ public void setCaption(String c) {
+ caption.setText(c);
+ }
+}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import java.util.Iterator;
+
+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 TkOrderedLayout 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 uidlForChild = (UIDL)i.next();
+ Widget child = client.createWidgetFromUIDL(uidlForChild);
+ add(child);
+ }
+ }
+
+}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.VerticalPanel;
+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 TkUnknownComponent extends Composite implements Paintable{
+
+ com.google.gwt.user.client.ui.Label caption = new com.google.gwt.user.client.ui.Label();;
+ Tree uidlTree = new Tree();
+
+ public TkUnknownComponent() {
+ VerticalPanel panel = new VerticalPanel();
+ panel.add(caption);
+ panel.add(uidlTree);
+ initWidget(panel);
+ setStyleName("itmtk-unknown");
+ caption.setStyleName("itmtk-unknown-caption");
+ }
+
+ public void updateFromUIDL(UIDL uidl, Client client) {
+ setCaption("Client faced an unknown component type. Unrendered UIDL:");
+ uidlTree.addItem(uidl.dir());
+ }
+
+ public void setCaption(String c) {
+ caption.setText(c);
+ }
+}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import com.google.gwt.user.client.ui.FlowPanel;
+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 TkWindow extends FlowPanel implements Paintable {
+
+ String id;
+
+ public TkWindow() {
+ super();
+ }
+
+ public void updateFromUIDL(UIDL uidl, Client client) {
+
+ id = uidl.getId();
+ com.google.gwt.user.client.Window.setTitle(uidl.getStringAttribute("caption"));
+ UIDL child = uidl.getChildUIDL(0);
+ add(client.createWidgetFromUIDL(child));
+ }
+
+}