]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merged (partly by hand) [9477]:
authorArtur Signell <artur.signell@itmill.com>
Mon, 2 Nov 2009 15:03:28 +0000 (15:03 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 2 Nov 2009 15:03:28 +0000 (15:03 +0000)
svn changeset:9578/svn branch:6.2

src/com/vaadin/terminal/gwt/client/ui/VWindow.java
tests/src/com/vaadin/tests/components/window/SubWindows-runo.html [new file with mode: 0644]
tests/src/com/vaadin/tests/components/window/SubWindows.html [new file with mode: 0644]
tests/src/com/vaadin/tests/components/window/SubWindows.java [new file with mode: 0644]
tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html [deleted file]
tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.java [deleted file]

index 90d31698ed56c75bd939a78fd8e85f8334acb68e..119ea9d88c6f06c5dc77ef21c187d80c500a6255 100644 (file)
@@ -39,19 +39,34 @@ import com.vaadin.terminal.gwt.client.VDebugConsole;
  */
 public class VWindow extends VOverlay implements Container, ScrollListener {
 
-    private static final int MIN_HEIGHT = 100;
+    /**
+     * Minimum allowed height of a window. This refers to the content area, not
+     * the outer borders.
+     */
+    private static final int MIN_CONTENT_AREA_HEIGHT = 100;
 
-    private static final int MIN_WIDTH = 150;
+    /**
+     * Minimum allowed width of a window. This refers to the content area, not
+     * the outer borders.
+     */
+    private static final int MIN_CONTENT_AREA_WIDTH = 150;
 
     private static ArrayList<VWindow> windowOrder = new ArrayList<VWindow>();
 
     public static final String CLASSNAME = "v-window";
 
+    /**
+     * Difference between offsetWidth and inner width for the content area.
+     */
+    private int contentAreaBorderPadding = -1;
     /**
      * Pixels used by inner borders and paddings horizontally (calculated only
-     * once)
+     * once). This is the difference between the width of the root element and
+     * the content area, such that if root element width is set to "XYZpx" the
+     * inner width (width-border-padding) of the content area is
+     * X-contentAreaRootDifference.
      */
-    private int borderWidth = -1;
+    private int contentAreaToRootDifference = -1;
 
     private static final int STACKING_OFFSET_PIXELS = 15;
 
@@ -120,8 +135,8 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
     // resizes the window.
     boolean centered = false;
 
-    private RenderSpace renderSpace = new RenderSpace(MIN_WIDTH, MIN_HEIGHT,
-            true);
+    private RenderSpace renderSpace = new RenderSpace(MIN_CONTENT_AREA_WIDTH,
+            MIN_CONTENT_AREA_HEIGHT, true);
 
     private String width;
 
@@ -129,6 +144,8 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
 
     private boolean immediate;
 
+    private Element wrapper, wrapper2;
+
     public VWindow() {
         super(false, false, true); // no autohide, not modal, shadow
         // Different style of shadow for windows
@@ -198,10 +215,10 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
         DOM.sinkEvents(closeBox, Event.ONCLICK);
         DOM.sinkEvents(contents, Event.ONCLICK);
 
-        final Element wrapper = DOM.createDiv();
+        wrapper = DOM.createDiv();
         DOM.setElementProperty(wrapper, "className", CLASSNAME + "-wrap");
 
-        final Element wrapper2 = DOM.createDiv();
+        wrapper2 = DOM.createDiv();
         DOM.setElementProperty(wrapper2, "className", CLASSNAME + "-wrap2");
 
         DOM.sinkEvents(wrapper, Event.ONKEYDOWN);
@@ -439,39 +456,76 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
             client.updateVariable(id, "width", w, true);
         }
 
+        Util.runWebkitOverflowAutoFix(contentPanel.getElement());
+
     }
 
     private void setNaturalWidth() {
         /*
-         * For some reason IE6 has title DIV set to width 100% which messes this
-         * up. Also IE6 has a 0 wide element so we use the container element.
+         * Use max(layout width, window width) i.e layout content width or
+         * caption width. We remove the previous set width so the width is
+         * allowed to shrink. All widths are measured as outer sizes, i.e. the
+         * borderWidth is added to the content.
          */
-        int naturalWidth;
+
+        DOM.setStyleAttribute(getElement(), "width", "");
+
+        String oldHeaderWidth = ""; // Only for IE6
         if (BrowserInfo.get().isIE6()) {
-            String headerW = headerText.getStyle().getProperty("width");
+            /*
+             * For some reason IE6 has title DIV set to width 100% which
+             * interferes with the header measuring. Also IE6 has width set to
+             * the contentPanel.
+             */
+            oldHeaderWidth = headerText.getStyle().getProperty("width");
+            DOM.setStyleAttribute(contentPanel.getElement(), "width", "auto");
+            DOM.setStyleAttribute(contentPanel.getElement(), "zoom", "1");
             headerText.getStyle().setProperty("width", "auto");
-            naturalWidth = getElement().getOffsetWidth();
-            headerText.getStyle().setProperty("width", headerW);
-        } else {
-            // use max(layout width, window width)
-            // i.e layout content width or caption width
-            int lowidth = contentPanel.getElement().getScrollWidth()
-                    + getBorderWidth(); // layout does not know about border
-            int elwidth = getElement().getOffsetWidth();
-            naturalWidth = (lowidth > elwidth ? lowidth : elwidth);
+        }
+
+        // Content
+        int contentWidth = contentPanel.getElement().getScrollWidth();
+        contentWidth += getContentAreaToRootDifference();
+
+        // Window width (caption)
+        int windowCaptionWidth = getOffsetWidth();
+
+        int naturalWidth = (contentWidth > windowCaptionWidth ? contentWidth
+                : windowCaptionWidth);
+
+        if (BrowserInfo.get().isIE6()) {
+            headerText.getStyle().setProperty("width", oldHeaderWidth);
         }
 
         setWidth(naturalWidth + "px");
     }
 
-    private int getBorderWidth() {
-        if (borderWidth < 0) {
-            if (!isAttached()) {
-                return 0;
-            }
-            borderWidth = Util.measureHorizontalPaddingAndBorder(contents, 4);
+    private int getContentAreaToRootDifference() {
+        if (contentAreaToRootDifference < 0) {
+            measure();
+        }
+        return contentAreaToRootDifference;
+    }
+
+    private int getContentAreaBorderPadding() {
+        if (contentAreaBorderPadding < 0) {
+            measure();
+        }
+        return contentAreaBorderPadding;
+    }
+
+    private void measure() {
+        if (!isAttached()) {
+            return;
         }
-        return borderWidth;
+
+        contentAreaBorderPadding = Util.measureHorizontalPaddingAndBorder(
+                contents, 4);
+        int wrapperPaddingBorder = Util.measureHorizontalPaddingAndBorder(wrapper, 0)
+                + Util.measureHorizontalPaddingAndBorder(wrapper2, 0);
+
+        contentAreaToRootDifference = wrapperPaddingBorder + contentAreaBorderPadding;
+
     }
 
     private void setReadOnly(boolean readonly) {
@@ -755,13 +809,13 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
 
     private void setSize(Event event, boolean updateVariables) {
         int w = event.getScreenX() - startX + origW;
-        if (w < MIN_WIDTH + getBorderWidth()) {
-            w = MIN_WIDTH + getBorderWidth();
+        if (w < MIN_CONTENT_AREA_WIDTH + getContentAreaToRootDifference()) {
+            w = MIN_CONTENT_AREA_WIDTH + getContentAreaToRootDifference();
         }
 
         int h = event.getScreenY() - startY + origH;
-        if (h < MIN_HEIGHT + getExtraHeight()) {
-            h = MIN_HEIGHT + getExtraHeight();
+        if (h < MIN_CONTENT_AREA_HEIGHT + getExtraHeight()) {
+            h = MIN_CONTENT_AREA_HEIGHT + getExtraHeight();
         }
 
         setWidth(w + "px");
@@ -795,22 +849,37 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
             return;
         }
         if (width != null && !"".equals(width)) {
-            int pixelWidth;
-            // Convert non-pixel values to pixels
+            int rootPixelWidth = -1;
             if (width.indexOf("px") < 0) {
+                /*
+                 * Convert non-pixel values to pixels by setting the width and
+                 * then measuring it. Updates the "width" variable with the
+                 * pixel width.
+                 */
                 DOM.setStyleAttribute(getElement(), "width", width);
-                pixelWidth = getElement().getOffsetWidth();
-                width = pixelWidth + "px";
+                rootPixelWidth = getElement().getOffsetWidth();
+                width = rootPixelWidth + "px";
+            } else {
+                rootPixelWidth = Integer.parseInt(width.substring(0, width
+                        .indexOf("px")));
             }
+
+            // "width" now contains the new width in pixels
+
             if (BrowserInfo.get().isIE6()) {
                 getElement().getStyle().setProperty("overflow", "hidden");
             }
+
+            // Apply the new pixel width
             getElement().getStyle().setProperty("width", width);
 
-            pixelWidth = getElement().getOffsetWidth() - getBorderWidth();
-            if (pixelWidth < MIN_WIDTH) {
-                pixelWidth = MIN_WIDTH;
-                int rootWidth = pixelWidth + getBorderWidth();
+            // Caculate the inner width of the content area
+            int contentAreaInnerWidth = rootPixelWidth
+                    - getContentAreaToRootDifference();
+            if (contentAreaInnerWidth < MIN_CONTENT_AREA_WIDTH) {
+                contentAreaInnerWidth = MIN_CONTENT_AREA_WIDTH;
+                int rootWidth = contentAreaInnerWidth
+                        + getContentAreaToRootDifference();
                 DOM.setStyleAttribute(getElement(), "width", rootWidth + "px");
             }
 
@@ -819,10 +888,10 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
             // appear, content flows out of window)
             if (BrowserInfo.get().isIE6()) {
                 DOM.setStyleAttribute(contentPanel.getElement(), "width",
-                        pixelWidth + "px");
+                        contentAreaInnerWidth + "px");
             }
 
-            renderSpace.setWidth(contents.getOffsetWidth() - getBorderWidth());
+            renderSpace.setWidth(contentAreaInnerWidth);
 
             updateShadowSizeAndPosition();
         }
@@ -843,8 +912,8 @@ public class VWindow extends VOverlay implements Container, ScrollListener {
         if (height != null && !"".equals(height)) {
             DOM.setStyleAttribute(getElement(), "height", height);
             int pixels = getElement().getOffsetHeight() - getExtraHeight();
-            if (pixels < MIN_HEIGHT) {
-                pixels = MIN_HEIGHT;
+            if (pixels < MIN_CONTENT_AREA_HEIGHT) {
+                pixels = MIN_CONTENT_AREA_HEIGHT;
                 int rootHeight = pixels + getExtraHeight();
                 DOM.setStyleAttribute(getElement(), "height", (rootHeight)
                         + "px");
diff --git a/tests/src/com/vaadin/tests/components/window/SubWindows-runo.html b/tests/src/com/vaadin/tests/components/window/SubWindows-runo.html
new file mode 100644 (file)
index 0000000..cbe55d1
--- /dev/null
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>UndefinedWidthSubWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">UndefinedWidthSubWindow</td></tr>
+</thead><tbody>
+<tr>
+       <td>open</td>
+       <td>/run/com.vaadin.tests.components.window.UndefinedWidthSubWindow?theme=runo</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button</td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add+2 remove</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button only</td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/run/com.vaadin.tests.components.window.UndefinedWidthSubWindow?theme=runo</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button</td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add+2 remove</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button only</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/window/SubWindows.html b/tests/src/com/vaadin/tests/components/window/SubWindows.html
new file mode 100644 (file)
index 0000000..68bb3c5
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>UndefinedWidthSubWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">UndefinedWidthSubWindow</td></tr>
+</thead><tbody>
+<tr>
+       <td>open</td>
+       <td>/run/com.vaadin.tests.components.window.UndefinedWidthSubWindow</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button</td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add+2 remove</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForVaadin</td>
+       <td></td>
+       <td></td>
+</tr>
+<tr>
+       <td>screenCapture</td>
+       <td></td>
+       <td>add-button only</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/window/SubWindows.java b/tests/src/com/vaadin/tests/components/window/SubWindows.java
new file mode 100644 (file)
index 0000000..036475b
--- /dev/null
@@ -0,0 +1,112 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.ComponentContainer;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.Window;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+
+public class SubWindows extends TestBase {
+
+    private Window autoWideWindow;
+
+    @Override
+    protected String getDescription() {
+        return "Three windows should be shown. "
+                + "The width of the one in the upper left corner should be adjusted according to the contents. "
+                + "The centered windows width should be set according to the caption and the second textfield should be clipped. "
+                + "The third window should be initially the width and height of its content and when resizing the window the content width should be updated so it is always 100% of the window.";
+    }
+
+    @Override
+    protected Integer getTicketNumber() {
+        return null;
+    }
+
+    private Component createRemoveButton() {
+        Button b = new Button("Remove");
+        b.addListener(new ClickListener() {
+
+            public void buttonClick(ClickEvent event) {
+                Button b = event.getButton();
+                ComponentContainer cc = (ComponentContainer) b.getParent();
+                cc.removeComponent(b);
+            }
+        });
+
+        return b;
+    }
+
+    @Override
+    protected void setup() {
+        autoWideWindow = new Window("Dialog - width by contents",
+                new HorizontalLayout());
+        autoWideWindow.getContent().setSizeUndefined();
+        autoWideWindow.addComponent(new TextField("Field 1"));
+        autoWideWindow.addComponent(new TextField("Field 2"));
+        autoWideWindow.addComponent(new Button("Add", new ClickListener() {
+
+            public void buttonClick(ClickEvent event) {
+                autoWideWindow.addComponent(createRemoveButton());
+
+            }
+
+        }));
+
+        getMainWindow().addWindow(autoWideWindow);
+
+        {
+            Window dialog = new Window("Dialog - width defined by caption");
+            dialog.addComponent(new TextField("Field 1"));
+
+            TextField tf2 = new TextField("Field 2");
+            tf2.setWidth("500px");
+            dialog.addComponent(tf2);
+            dialog.addComponent(new Button("Ok"));
+
+            dialog.center();
+            getMainWindow().addWindow(dialog);
+        }
+
+        {
+            Window dialog = new Window("Dialog - width defined by content");
+            dialog.getContent().setHeight(null);
+            dialog.getContent().setWidth("100%");
+
+            TextField tf = new TextField();
+            tf
+                    .setValue("The textfield should fill the window (except margins)."
+                            + "\n - Try to resize the window\n");
+            tf.setRows(5);
+            tf.setWidth("100%");
+            dialog.addComponent(tf);
+
+            dialog.setPositionX(20);
+            dialog.setPositionY(100);
+            getMainWindow().addWindow(dialog);
+        }
+
+        {
+            Window dialog = new Window("Dialog - size defined by content");
+            dialog.getContent().setHeight("100%");
+            dialog.getContent().setWidth("100%");
+
+            TextField tf = new TextField();
+            tf
+                    .setValue("The textfield should fill the window (except margins)."
+                            + "\n - Try to resize the window\n");
+            tf.setRows(5);
+            tf.setWidth("100%");
+            tf.setHeight("100%");
+            dialog.addComponent(tf);
+
+            dialog.setPositionX(20);
+            dialog.setPositionY(300);
+            getMainWindow().addWindow(dialog);
+        }
+    }
+}
diff --git a/tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html b/tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html
deleted file mode 100644 (file)
index 68bb3c5..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="http://localhost:8888/" />
-<title>UndefinedWidthSubWindow</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">UndefinedWidthSubWindow</td></tr>
-</thead><tbody>
-<tr>
-       <td>open</td>
-       <td>/run/com.vaadin.tests.components.window.UndefinedWidthSubWindow</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>screenCapture</td>
-       <td></td>
-       <td>add-button</td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>screenCapture</td>
-       <td></td>
-       <td>add+2 remove</td>
-</tr>
-<tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentswindowUndefinedWidthSubWindow::/VWindow[0]/ScrollPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForVaadin</td>
-       <td></td>
-       <td></td>
-</tr>
-<tr>
-       <td>screenCapture</td>
-       <td></td>
-       <td>add-button only</td>
-</tr>
-
-</tbody></table>
-</body>
-</html>
diff --git a/tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.java b/tests/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.java
deleted file mode 100644 (file)
index c8009c8..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.vaadin.tests.components.window;
-
-import com.vaadin.tests.components.TestBase;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Component;
-import com.vaadin.ui.ComponentContainer;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.Window;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-
-public class UndefinedWidthSubWindow extends TestBase {
-
-    private Window autoWideWindow;
-
-    @Override
-    protected String getDescription() {
-        return "Two windows should be shown. The width of the one in the upper left corner should be adjusted according to the contents. The centered windows width should be set according to the caption and the second textfield should be clipped.";
-    }
-
-    @Override
-    protected Integer getTicketNumber() {
-        return null;
-    }
-
-    private Component createRemoveButton() {
-        Button b = new Button("Remove");
-        b.addListener(new ClickListener() {
-
-            public void buttonClick(ClickEvent event) {
-                Button b = event.getButton();
-                ComponentContainer cc = (ComponentContainer) b.getParent();
-                cc.removeComponent(b);
-            }
-        });
-
-        return b;
-    }
-
-    @Override
-    protected void setup() {
-        autoWideWindow = new Window("Dialog - width defined by contents",
-                new HorizontalLayout());
-        autoWideWindow.getContent().setSizeUndefined();
-        autoWideWindow.addComponent(new TextField("Field 1"));
-        autoWideWindow.addComponent(new TextField("Field 2"));
-        autoWideWindow.addComponent(new Button("Add", new ClickListener() {
-
-            public void buttonClick(ClickEvent event) {
-                autoWideWindow.addComponent(createRemoveButton());
-
-            }
-
-        }));
-
-        getMainWindow().addWindow(autoWideWindow);
-
-        Window dialog2 = new Window("Dialog - width defined by caption");
-        dialog2.addComponent(new TextField("Field 1"));
-
-        TextField tf2 = new TextField("Field 2");
-        tf2.setWidth("500px");
-        dialog2.addComponent(tf2);
-        dialog2.addComponent(new Button("Ok"));
-
-        dialog2.center();
-        getMainWindow().addWindow(dialog2);
-    }
-}