diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-04-02 14:51:19 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-04-02 14:51:19 +0300 |
commit | a19c07e1b351b2a03e184bc92811868a0f1fba72 (patch) | |
tree | 8ad4a97dda637908a71f39f4e04ea47e81feffe4 | |
parent | dc91fbefa590aeac3efa8845b4b04c1bd9505c1a (diff) | |
parent | ec8f056ee82a889edd0d88b6905a9ed9a2107f32 (diff) | |
download | vaadin-framework-a19c07e1b351b2a03e184bc92811868a0f1fba72.tar.gz vaadin-framework-a19c07e1b351b2a03e184bc92811868a0f1fba72.zip |
Merge branch 'master' into layoutgraph
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ServerConnector.java | 2 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/RootConnector.java | 26 | ||||
-rw-r--r-- | src/com/vaadin/ui/Root.java | 1 |
3 files changed, 25 insertions, 4 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ServerConnector.java b/src/com/vaadin/terminal/gwt/client/ServerConnector.java index d8e3989b8a..740644458c 100644 --- a/src/com/vaadin/terminal/gwt/client/ServerConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ServerConnector.java @@ -6,7 +6,7 @@ package com.vaadin.terminal.gwt.client; import java.util.Collection; import com.google.gwt.event.shared.GwtEvent; -import com.google.web.bindery.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HandlerRegistration; import com.vaadin.terminal.gwt.client.communication.ClientRpc; import com.vaadin.terminal.gwt.client.communication.SharedState; import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler; diff --git a/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java b/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java index 245c92f352..988c1558cc 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/RootConnector.java @@ -11,6 +11,7 @@ import com.google.gwt.core.client.Scheduler; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.dom.client.Style; import com.google.gwt.dom.client.Style.Position; +import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; @@ -29,9 +30,10 @@ import com.vaadin.terminal.gwt.client.UIDL; import com.vaadin.terminal.gwt.client.Util; import com.vaadin.terminal.gwt.client.VConsole; import com.vaadin.terminal.gwt.client.communication.ServerRpc; +import com.vaadin.terminal.gwt.client.communication.StateChangeEvent; +import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler; -public class RootConnector extends AbstractComponentContainerConnector - implements SimpleManagedLayout { +public class RootConnector extends AbstractComponentContainerConnector { public interface RootServerRPC extends ClickRPC, ServerRpc { @@ -39,6 +41,16 @@ public class RootConnector extends AbstractComponentContainerConnector private RootServerRPC rpc = GWT.create(RootServerRPC.class); + private HandlerRegistration childStateChangeHandlerRegistration; + + private final StateChangeHandler childStateChangeHandler = new StateChangeHandler() { + public void onStateChanged(StateChangeEvent stateChangeEvent) { + // TODO Should use a more specific handler that only reacts to + // size changes + onChildSizeChange(); + } + }; + @Override protected void init() { super.init(); @@ -149,11 +161,19 @@ public class RootConnector extends AbstractComponentContainerConnector if (getWidget().layout != lo) { // remove old client.unregisterPaintable(getWidget().layout); + if (childStateChangeHandlerRegistration != null) { + childStateChangeHandlerRegistration.removeHandler(); + childStateChangeHandlerRegistration = null; + } // add new getWidget().setWidget(lo.getWidget()); getWidget().layout = lo; } } else { + if (getWidget().layout != lo) { + childStateChangeHandlerRegistration = lo + .addStateChangeHandler(childStateChangeHandler); + } getWidget().setWidget(lo.getWidget()); getWidget().layout = lo; } @@ -331,7 +351,7 @@ public class RootConnector extends AbstractComponentContainerConnector return GWT.create(VView.class); } - public void layout() { + protected void onChildSizeChange() { ComponentConnector child = getWidget().layout; Style childStyle = child.getWidget().getElement().getStyle(); /* diff --git a/src/com/vaadin/ui/Root.java b/src/com/vaadin/ui/Root.java index 6e01952545..144b640be5 100644 --- a/src/com/vaadin/ui/Root.java +++ b/src/com/vaadin/ui/Root.java @@ -425,6 +425,7 @@ public abstract class Root extends AbstractComponentContainer implements */ public Root() { registerRpcImplementation(rpc, RootServerRPC.class); + setSizeFull(); } /** |