import com.itmill.toolkit.terminal.gwt.client.ui.ITwinColSelect;
import com.itmill.toolkit.terminal.gwt.client.ui.IUnknownComponent;
import com.itmill.toolkit.terminal.gwt.client.ui.IOrderedLayout;
-import com.itmill.toolkit.terminal.gwt.client.ui.IWindow;
+import com.itmill.toolkit.terminal.gwt.client.ui.IView;
public class DefaultWidgetFactory implements WidgetFactory {
return new IButton();
}
else if ("window".equals(tag))
- return new IWindow();
+ return new IView();
else if ("orderedlayout".equals(tag)) {
if ("horizontal".equals(uidl.getStringAttribute("orientation")))
return new IOrderedLayout(IOrderedLayout.ORIENTATION_HORIZONTAL);
// Remap image srcs in layout
Widget parent = getParent();
- while (parent != null && !(parent instanceof IWindow))
+ while (parent != null && !(parent instanceof IView))
parent = parent.getParent();
- if (parent != null && ((IWindow) parent).getTheme() != null)
+ if (parent != null && ((IView) parent).getTheme() != null)
;
- prefixImgSrcs(getElement(), "../theme/" + ((IWindow) parent).getTheme()
+ prefixImgSrcs(getElement(), "../theme/" + ((IView) parent).getTheme()
+ "/layout/");
}
--- /dev/null
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.Paintable;
+import com.itmill.toolkit.terminal.gwt.client.UIDL;
+
+public class IView extends SimplePanel implements Paintable {
+
+ private String theme;
+
+ private Paintable layout;
+
+ public String getTheme() {
+ return theme;
+ }
+
+ public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
+ theme = uidl.getStringAttribute("theme");
+ com.google.gwt.user.client.Window.setTitle(uidl.getStringAttribute("caption"));
+ UIDL childUidl = uidl.getChildUIDL(0);
+ Paintable lo = (Paintable) client.getWidget(childUidl);
+ if(layout != null) {
+ if(layout != lo) {
+ // remove old
+ client.unregisterPaintable(layout);
+ // add new
+ setWidget((Widget) lo);
+ layout = lo;
+ }
+ } else {
+ setWidget((Widget) lo);
+ }
+ lo.updateFromUIDL(childUidl, client);
+ }
+
+}