diff options
author | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2008-09-24 15:10:40 +0000 |
---|---|---|
committer | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2008-09-24 15:10:40 +0000 |
commit | b515618fedf9dff7ef534dec1d3b82fa6aa2206f (patch) | |
tree | 3d2369826c7416b9982810b5fde76a45b7713aa5 /src/com/itmill/toolkit/ui/Window.java | |
parent | 38d99c4777b6451689c138833b7ca619c1b41b94 (diff) | |
download | vaadin-framework-b515618fedf9dff7ef534dec1d3b82fa6aa2206f.tar.gz vaadin-framework-b515618fedf9dff7ef534dec1d3b82fa6aa2206f.zip |
Fixes #2100 : Prevent window from being added to multiple places
svn changeset:5507/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/ui/Window.java')
-rw-r--r-- | src/com/itmill/toolkit/ui/Window.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/com/itmill/toolkit/ui/Window.java b/src/com/itmill/toolkit/ui/Window.java index 8615480553..2d9ce6e9cf 100644 --- a/src/com/itmill/toolkit/ui/Window.java +++ b/src/com/itmill/toolkit/ui/Window.java @@ -1009,13 +1009,19 @@ public class Window extends Panel implements URIHandler, ParameterHandler { public void addWindow(Window window) throws IllegalArgumentException, NullPointerException { - if (getParent() != null) { + if (window == null) { + throw new NullPointerException("Argument must not be null"); + } + + if (application.getWindows().contains(window)) { throw new IllegalArgumentException( - "You can only add windows inside application-level windows"); + "Window was already added to application" + + " - it can not be added to another window also."); } - if (window == null) { - throw new NullPointerException("Argument must not be null"); + if (getParent() != null) { + throw new IllegalArgumentException( + "You can only add windows inside application-level windows"); } subwindows.add(window); |