diff options
-rw-r--r-- | client/src/com/vaadin/client/LayoutManager.java | 13 |
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 |