summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/com/vaadin/client/LayoutManager.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/client/src/com/vaadin/client/LayoutManager.java b/client/src/com/vaadin/client/LayoutManager.java
index 14b155c92f..381aff5afa 100644
--- a/client/src/com/vaadin/client/LayoutManager.java
+++ b/client/src/com/vaadin/client/LayoutManager.java
@@ -827,6 +827,7 @@ public class LayoutManager {
* the managed layout that should be layouted
*/
public final void setNeedsHorizontalLayout(ManagedLayout layout) {
+ assert isAttached(layout);
needsHorizontalLayout.add(layout.getConnectorId());
}
@@ -842,9 +843,21 @@ public class LayoutManager {
* the managed layout that should be layouted
*/
public final void setNeedsVerticalLayout(ManagedLayout layout) {
+ assert isAttached(layout);
needsVerticalLayout.add(layout.getConnectorId());
}
+ private boolean isAttached(ServerConnector connector) {
+ while (connector != null) {
+ connector = connector.getParent();
+ if (connector == connection.getUIConnector()) {
+ return true;
+ }
+ }
+ // Reaching null parent before reaching UI connector -> not attached
+ return false;
+ }
+
/**
* Gets the outer height (including margins, paddings and borders) of the
* given element, provided that it has been measured. These elements are