From 785b0b0afbcce7ecfaa30e837ed41387dee03267 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 26 Nov 2012 19:39:27 +0200 Subject: Fail if a Window is attached to something else than a UI (#10374) Change-Id: Ibe0fcbda1222e2aa781ae14f479fbedd99715ff9 --- server/src/com/vaadin/ui/UI.java | 16 ++++++++++++++++ server/src/com/vaadin/ui/Window.java | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) (limited to 'server/src/com/vaadin/ui') diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java index e99846c84b..55f756010e 100644 --- a/server/src/com/vaadin/ui/UI.java +++ b/server/src/com/vaadin/ui/UI.java @@ -969,4 +969,20 @@ public abstract class UI extends AbstractSingleComponentContainer implements public void detach() { super.detach(); } + + /* + * (non-Javadoc) + * + * @see + * com.vaadin.ui.AbstractSingleComponentContainer#setContent(com.vaadin. + * ui.Component) + */ + @Override + public void setContent(Component content) { + if (content instanceof Window) { + throw new IllegalArgumentException( + "A Window cannot be added using setContent. Use addWindow(Window window) instead"); + } + super.setContent(content); + } } diff --git a/server/src/com/vaadin/ui/Window.java b/server/src/com/vaadin/ui/Window.java index b6f45db86a..30f1fa9e02 100644 --- a/server/src/com/vaadin/ui/Window.java +++ b/server/src/com/vaadin/ui/Window.java @@ -31,6 +31,7 @@ import com.vaadin.event.ShortcutAction; import com.vaadin.event.ShortcutAction.KeyCode; import com.vaadin.event.ShortcutAction.ModifierKey; import com.vaadin.event.ShortcutListener; +import com.vaadin.server.ClientConnector; import com.vaadin.server.PaintException; import com.vaadin.server.PaintTarget; import com.vaadin.shared.MouseEventDetails; @@ -123,6 +124,23 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, super.paintContent(target); } + /* + * (non-Javadoc) + * + * @see + * com.vaadin.ui.AbstractComponent#setParent(com.vaadin.server.ClientConnector + * ) + */ + @Override + public void setParent(ClientConnector parent) { + if (parent == null || parent instanceof UI) { + super.setParent(parent); + } else { + throw new IllegalArgumentException( + "A Window can only be added to a UI using UI.addWindow(Window window)"); + } + } + /* * (non-Javadoc) * -- cgit v1.2.3