summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-04-02 14:51:19 +0300
committerLeif Åstrand <leif@vaadin.com>2012-04-02 14:51:19 +0300
commita19c07e1b351b2a03e184bc92811868a0f1fba72 (patch)
tree8ad4a97dda637908a71f39f4e04ea47e81feffe4
parentdc91fbefa590aeac3efa8845b4b04c1bd9505c1a (diff)
parentec8f056ee82a889edd0d88b6905a9ed9a2107f32 (diff)
downloadvaadin-framework-a19c07e1b351b2a03e184bc92811868a0f1fba72.tar.gz
vaadin-framework-a19c07e1b351b2a03e184bc92811868a0f1fba72.zip
Merge branch 'master' into layoutgraph
-rw-r--r--src/com/vaadin/terminal/gwt/client/ServerConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/RootConnector.java26
-rw-r--r--src/com/vaadin/ui/Root.java1
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();
}
/**