aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>2007-06-14 12:56:01 +0000
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>2007-06-14 12:56:01 +0000
commit3a85ab6c2d37d8a36c5e744aaf2ec514ee1dfe21 (patch)
tree7ade74b983289701188ddb947561e9571c471365 /src
parent7211bdd1901fba4dfd528a77109be3e22893bed2 (diff)
downloadvaadin-framework-3a85ab6c2d37d8a36c5e744aaf2ec514ee1dfe21.tar.gz
vaadin-framework-3a85ab6c2d37d8a36c5e744aaf2ec514ee1dfe21.zip
Now captions almost work :)
svn changeset:1720/svn branch:trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/itmill/toolkit/terminal/gwt/client/Client.java26
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkGridLayout.java17
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkHorizontalLayout.java18
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java3
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkPanel.java31
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkTable.java3
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkTabsheet.java8
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkVerticalLayout.java10
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/TkWindow.java14
9 files changed, 55 insertions, 75 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Client.java b/src/com/itmill/toolkit/terminal/gwt/client/Client.java
index 17e7ff622f..5c805b923a 100755
--- a/src/com/itmill/toolkit/terminal/gwt/client/Client.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/Client.java
@@ -127,7 +127,11 @@ public class Client implements EntryPoint {
+ uidl.getTag()
+ ", but there is no such paintable ("
+ uidl.getId() + ") registered yet.");
- Widget window = createWidgetFromUIDL(uidl);
+ Widget window = widgetFactory.createWidget(uidl);
+ registerPaintable(uidl.getId(), (Paintable) window);
+ ((Paintable)window).updateFromUIDL(uidl, this);
+
+
// TODO We should also handle other windows
RootPanel.get("itmtk-ajax-window").add(window);
}
@@ -149,16 +153,14 @@ public class Client implements EntryPoint {
public Paintable getPaintable(String id) {
return (Paintable) paintables.get(id);
}
-
+/*
public Widget createWidgetFromUIDL(UIDL uidlForChild) {
Widget w = widgetFactory.createWidget(uidlForChild);
- if (w instanceof Paintable) {
registerPaintable(uidlForChild.getId(), (Paintable) w);
((Paintable)w).updateFromUIDL(uidlForChild, this);
- }
return w;
}
-
+*/
private void addVariableToQueue(String paintableId, String variableName,
String encodedValue, boolean immediate) {
@@ -241,7 +243,11 @@ public class Client implements EntryPoint {
if (widgetFactory.isCorrectImplementation(currentWidget, uidl)) return false;
Layout parent = getParentLayout(currentWidget);
if (parent == null) return false;
- parent.replaceChildComponent(currentWidget, createWidgetFromUIDL(uidl));
+ Widget w = widgetFactory.createWidget(uidl);
+ registerPaintable(uidl.getId(), (Paintable) w);
+ parent.replaceChildComponent(currentWidget, w);
+ ((Paintable)w).updateFromUIDL(uidl, this);
+
return true;
}
@@ -250,5 +256,13 @@ public class Client implements EntryPoint {
if (parent != null) parent.updateCaption(component, uidl);
}
+ public Widget getWidget(UIDL uidl) {
+ String id = uidl.getId();
+ Widget w = (Widget) getPaintable(id);
+ if (w != null) return w;
+ w = widgetFactory.createWidget(uidl);
+ registerPaintable(id, (Paintable)w);
+ return w;
+ }
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkGridLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkGridLayout.java
index 6a6e7bacae..c8eb36906b 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkGridLayout.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkGridLayout.java
@@ -12,7 +12,8 @@ public class TkGridLayout extends FlexTable implements Paintable {
public void updateFromUIDL(UIDL uidl, Client client) {
clear();
- if (uidl.hasAttribute("caption")) setTitle(uidl.getStringAttribute("caption"));
+ 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();
@@ -23,21 +24,21 @@ public class TkGridLayout extends FlexTable implements Paintable {
UIDL c = (UIDL) j.next();
if ("gc".equals(c.getTag())) {
column++;
- if(c.hasAttribute("w")) {
+ if (c.hasAttribute("w")) {
int w = c.getIntAttribute("w");
- ((FlexCellFormatter)getCellFormatter()).setColSpan(row,column, w);
+ ((FlexCellFormatter) getCellFormatter())
+ .setColSpan(row, column, w);
}
- UIDL u = c.getChildUIDL(0);
+ UIDL u = c.getChildUIDL(0);
if (u != null) {
- Widget child = client.createWidgetFromUIDL(u);
- if (child != null)
+ Widget child = client.getWidget(u);
setWidget(row, column, child);
-
+ ((Paintable) child).updateFromUIDL(u, client);
}
}
}
}
}
}
-
+
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkHorizontalLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkHorizontalLayout.java
index 61aa86f5d8..ca70d56b97 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkHorizontalLayout.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkHorizontalLayout.java
@@ -17,7 +17,7 @@ public class TkHorizontalLayout extends HorizontalPanel implements Paintable, La
public void updateFromUIDL(UIDL uidl, Client client) {
-// Ensure correct implementation
+ // Ensure correct implementation
if (client.replaceComponentWithCorrectImplementation(this, uidl))
return;
@@ -26,12 +26,12 @@ public class TkHorizontalLayout extends HorizontalPanel implements Paintable, La
for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
UIDL uidlForChild = (UIDL) i.next();
- Widget child = client.createWidgetFromUIDL(uidlForChild);
+ Widget child = client.getWidget(uidlForChild);
add(child);
+ ((Paintable)child).updateFromUIDL(uidlForChild, client);
}
}
-
-
+
public void replaceChildComponent(Widget from, Widget to) {
CaptionWrapper wrapper = (CaptionWrapper) componentToWrapper.get(from);
if (wrapper != null) {
@@ -54,21 +54,21 @@ public class TkHorizontalLayout extends HorizontalPanel implements Paintable, La
CaptionWrapper wrapper = (CaptionWrapper) componentToWrapper.get(component);
if (CaptionWrapper.isNeeded(uidl)) {
if (wrapper == null) {
+ int index = getWidgetIndex(component);
+ remove(component);
wrapper = new CaptionWrapper(component);
+ insert(wrapper, index);
componentToWrapper.put(component, wrapper);
}
wrapper.updateCaption(uidl);
} else {
if (wrapper != null) {
int index = getWidgetIndex(wrapper);
- if (index >= 0) {
- remove(index);
- insert(wrapper.getWidget(), index);
- }
+ remove(wrapper);
+ insert(wrapper.getWidget(), index);
componentToWrapper.remove(component);
}
}
}
-
}
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 596a53b733..9004f6fd18 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java
@@ -20,7 +20,4 @@ public class TkLabel extends Label implements Paintable {
}
}
-
-
-
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkPanel.java
index 225ef46872..e665200a47 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkPanel.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkPanel.java
@@ -1,35 +1,6 @@
package com.itmill.toolkit.terminal.gwt.client.ui;
-import java.util.Iterator;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Label;
-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.itmill.toolkit.terminal.gwt.client.Client;
import com.itmill.toolkit.terminal.gwt.client.Paintable;
-import com.itmill.toolkit.terminal.gwt.client.UIDL;
-
-public class TkPanel extends Composite implements Paintable {
-
- Panel p = new VerticalPanel();
- Label caption = new Label();
- public TkPanel() {
- p.add(caption);
- initWidget(p);
- }
-
- public void updateFromUIDL(UIDL uidl, Client client) {
- p.clear();
- p.add(caption);
-
- if(uidl.hasAttribute("caption"));
- caption.setText(uidl.getStringAttribute("caption"));
-
- Iterator it = uidl.getChildIterator();
- while(it.hasNext())
- p.add(client.createWidgetFromUIDL((UIDL) it.next()));
- }
+public class TkPanel extends TkVerticalLayout implements Paintable {
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTable.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTable.java
index 1c79acb993..cea85306e3 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTable.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTable.java
@@ -191,8 +191,9 @@ public class TkTable extends Composite implements Paintable, ScrollListener {
public void setCellContent(int rowId, int colId, UIDL cell) {
if(cell == null)
return;
- Widget cellContent = client.createWidgetFromUIDL(cell);
+ Widget cellContent = client.getWidget(cell);
tBody.setWidget(rowId, colId, cellContent);
+ ((Paintable)cell).updateFromUIDL(cell, client);
}
public void setCellContent(int rowId, int colId, String text) {
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTabsheet.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTabsheet.java
index 373f869cbb..bf2a857c89 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTabsheet.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkTabsheet.java
@@ -75,12 +75,14 @@ public class TkTabsheet extends TabPanel implements Paintable {
UIDL tab = (UIDL) it.next();
if (tab.getBooleanAttribute("selected")) {
activeTabIndex = index;
- Widget content = client.createWidgetFromUIDL(tab
+ Widget content = client.getWidget(tab
.getChildUIDL(0));
getTabBar().selectTab(index);
DeckPanel dp = getDeckPanel();
dp.remove(index);
dp.insert(content, index);
+ ((Paintable)content).updateFromUIDL(tab
+ .getChildUIDL(0), client);
dp.showWidget(index);
}
index++;
@@ -98,9 +100,11 @@ public class TkTabsheet extends TabPanel implements Paintable {
tabKeys.add(key);
if (tab.getBooleanAttribute("selected")) {
activeTabIndex = index;
- Widget content = client.createWidgetFromUIDL(tab
+ Widget content = client.getWidget(tab
.getChildUIDL(0));
this.add(content, caption);
+ ((Paintable)content).updateFromUIDL(tab
+ .getChildUIDL(0), client);
this.selectTab(this.getWidgetIndex(content));
} else {
this.add(new Label(), caption);
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkVerticalLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkVerticalLayout.java
index 086ea8c9ea..fa2b2a1d95 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkVerticalLayout.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkVerticalLayout.java
@@ -17,7 +17,7 @@ public class TkVerticalLayout extends VerticalPanel implements Paintable, Layout
public void updateFromUIDL(UIDL uidl, Client client) {
-// Ensure correct implementation
+ // Ensure correct implementation
if (client.replaceComponentWithCorrectImplementation(this, uidl))
return;
@@ -26,8 +26,9 @@ public class TkVerticalLayout extends VerticalPanel implements Paintable, Layout
for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
UIDL uidlForChild = (UIDL) i.next();
- Widget child = client.createWidgetFromUIDL(uidlForChild);
+ Widget child = client.getWidget(uidlForChild);
add(child);
+ ((Paintable)child).updateFromUIDL(uidlForChild, client);
}
}
@@ -54,15 +55,16 @@ public class TkVerticalLayout extends VerticalPanel implements Paintable, Layout
if (CaptionWrapper.isNeeded(uidl)) {
if (wrapper == null) {
int index = getWidgetIndex(component);
+ remove(component);
wrapper = new CaptionWrapper(component);
- insert(wrapper.getWidget(), index);
+ insert(wrapper, index);
componentToWrapper.put(component, wrapper);
}
wrapper.updateCaption(uidl);
} else {
if (wrapper != null) {
int index = getWidgetIndex(wrapper);
- remove(index);
+ remove(wrapper);
insert(wrapper.getWidget(), index);
componentToWrapper.remove(component);
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkWindow.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkWindow.java
index 6b69d7d79e..43d9e391cb 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkWindow.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkWindow.java
@@ -5,21 +5,11 @@ 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 class TkWindow extends TkVerticalLayout implements Paintable {
public void updateFromUIDL(UIDL uidl, Client client) {
-
- id = uidl.getId();
+ super.updateFromUIDL( uidl, client);
com.google.gwt.user.client.Window.setTitle(uidl.getStringAttribute("caption"));
- clear();
- UIDL child = uidl.getChildUIDL(0);
- add(client.createWidgetFromUIDL(child));
}
}