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);
+ }
}
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;
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)
*
--- /dev/null
+/*
+ * Copyright 2012 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.server.component.window;
+
+import org.junit.Test;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+public class WindowAttach {
+
+ private static class MyUI extends UI {
+ @Override
+ protected void init(VaadinRequest request) {
+ }
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAttachUsingSetContent() {
+ UI ui = new MyUI();
+ ui.setContent(new Window("foo"));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddToLayout() {
+ VerticalLayout vl = new VerticalLayout();
+ vl.addComponent(new Window("foo"));
+ }
+}