From cb7b02d4e50e91b9377410e79c3578587a900d94 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 24 Apr 2013 11:29:36 +0300 Subject: Assert that connector needing layout is attached (#11698) Change-Id: Ie2d1ec330b857497c7673f3805e35b452f409f3c --- client/src/com/vaadin/client/LayoutManager.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'client/src') 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 -- cgit v1.2.3