summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenri Sara <henri.sara@itmill.com>2011-03-16 08:31:31 +0000
committerHenri Sara <henri.sara@itmill.com>2011-03-16 08:31:31 +0000
commit722adf8a3efca33301bf67a9932ae0b22f19847e (patch)
tree6a220a0be02df76f1221a8146e56161f23560434
parent153e258ba43ed46ffb8865ea58051b7719483a61 (diff)
downloadvaadin-framework-722adf8a3efca33301bf67a9932ae0b22f19847e.tar.gz
vaadin-framework-722adf8a3efca33301bf67a9932ae0b22f19847e.zip
Merged some changes from 6.5
svn changeset:17798/svn branch:6.6
-rw-r--r--WebContent/VAADIN/themes/base/styles.css8
-rw-r--r--WebContent/VAADIN/themes/base/tabsheet/tabsheet.css4
-rw-r--r--WebContent/VAADIN/themes/liferay/styles.css8
-rw-r--r--WebContent/VAADIN/themes/reindeer/styles.css10
-rw-r--r--WebContent/VAADIN/themes/runo/styles.css8
-rw-r--r--build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.classbin0 -> 2900 bytes
-rw-r--r--build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java11
-rw-r--r--build/buildhelpers/com/vaadin/buildhelpers/ManifestWriter.classbin0 -> 2930 bytes
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VEmbedded.java168
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VPanel.java43
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VTextField.java12
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VView.java14
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VWindow.java9
-rw-r--r--src/com/vaadin/ui/AbsoluteLayout.java19
-rw-r--r--src/com/vaadin/ui/Embedded.java69
-rw-r--r--src/com/vaadin/ui/Panel.java39
-rw-r--r--src/com/vaadin/ui/Window.java28
-rw-r--r--tests/eclipse-run-selected-test.properties8
-rw-r--r--tests/src/com/vaadin/tests/VaadinClasses.java15
-rw-r--r--tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.html86
-rw-r--r--tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.java142
-rw-r--r--tests/src/com/vaadin/tests/components/caption/IconsInCaption.java136
-rw-r--r--tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.html33
-rw-r--r--tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.java31
-rw-r--r--tests/src/com/vaadin/tests/components/menubar/IconsInSubMenus.html5
-rw-r--r--tests/src/com/vaadin/tests/components/menubar/MenuBarResize.html127
-rw-r--r--tests/src/com/vaadin/tests/components/table/HeaderClick.html65
-rw-r--r--tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.html48
-rw-r--r--tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java48
-rw-r--r--tests/src/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java11
-rw-r--r--tests/src/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.html1060
31 files changed, 1141 insertions, 1124 deletions
diff --git a/WebContent/VAADIN/themes/base/styles.css b/WebContent/VAADIN/themes/base/styles.css
index 6ef3833ce1..0d5e79acbf 100644
--- a/WebContent/VAADIN/themes/base/styles.css
+++ b/WebContent/VAADIN/themes/base/styles.css
@@ -1,5 +1,5 @@
-.v-theme-version:after {content:"6_5_1_dev-20110207";}
-.v-theme-version-6_5_1_dev-20110207 {display: none;}
+.v-theme-version:after {content:"6_5_2_dev-20110303";}
+.v-theme-version-6_5_2_dev-20110303 {display: none;}
/* Automatically compiled css file from subdirectories. */
.v-absolutelayout-wrapper {
@@ -1839,6 +1839,10 @@ div.v-progressindicator-indeterminate-disabled {
border-bottom: none;
position: relative;
}
+.v-ie6 .v-tabsheet-content,
+.v-ie7 .v-tabsheet-content {
+ zoom: 1;
+}
.v-tabsheet-deco {
height: 1px;
background: #aaa;
diff --git a/WebContent/VAADIN/themes/base/tabsheet/tabsheet.css b/WebContent/VAADIN/themes/base/tabsheet/tabsheet.css
index b10afd9979..6fae7381a1 100644
--- a/WebContent/VAADIN/themes/base/tabsheet/tabsheet.css
+++ b/WebContent/VAADIN/themes/base/tabsheet/tabsheet.css
@@ -111,6 +111,10 @@
border-bottom: none;
position: relative;
}
+.v-ie6 .v-tabsheet-content,
+.v-ie7 .v-tabsheet-content {
+ zoom: 1;
+}
.v-tabsheet-deco {
height: 1px;
background: #aaa;
diff --git a/WebContent/VAADIN/themes/liferay/styles.css b/WebContent/VAADIN/themes/liferay/styles.css
index 5e52105283..115119e797 100644
--- a/WebContent/VAADIN/themes/liferay/styles.css
+++ b/WebContent/VAADIN/themes/liferay/styles.css
@@ -1,5 +1,5 @@
-.v-theme-version:after {content:"6_5_1_dev-20110207";}
-.v-theme-version-6_5_1_dev-20110207 {display: none;}
+.v-theme-version:after {content:"6_5_2_dev-20110303";}
+.v-theme-version-6_5_2_dev-20110303 {display: none;}
/* Automatically compiled css file from subdirectories. */
.v-absolutelayout-wrapper {
@@ -1839,6 +1839,10 @@ div.v-progressindicator-indeterminate-disabled {
border-bottom: none;
position: relative;
}
+.v-ie6 .v-tabsheet-content,
+.v-ie7 .v-tabsheet-content {
+ zoom: 1;
+}
.v-tabsheet-deco {
height: 1px;
background: #aaa;
diff --git a/WebContent/VAADIN/themes/reindeer/styles.css b/WebContent/VAADIN/themes/reindeer/styles.css
index f82d5574fb..b0c54c8ec4 100644
--- a/WebContent/VAADIN/themes/reindeer/styles.css
+++ b/WebContent/VAADIN/themes/reindeer/styles.css
@@ -1,5 +1,5 @@
-.v-theme-version:after {content:"6_5_1_dev-20110207";}
-.v-theme-version-6_5_1_dev-20110207 {display: none;}
+.v-theme-version:after {content:"6_5_2_dev-20110303";}
+.v-theme-version-6_5_2_dev-20110303 {display: none;}
/* Automatically compiled css file from subdirectories. */
.v-absolutelayout-wrapper {
@@ -1839,6 +1839,10 @@ div.v-progressindicator-indeterminate-disabled {
border-bottom: none;
position: relative;
}
+.v-ie6 .v-tabsheet-content,
+.v-ie7 .v-tabsheet-content {
+ zoom: 1;
+}
.v-tabsheet-deco {
height: 1px;
background: #aaa;
@@ -4467,9 +4471,9 @@ td.v-datefield-calendarpanel-nextyear {
-webkit-border-bottom-right-radius: 4px;
height: 13px;
padding: 4px 30px;
+ white-space: nowrap;
color: #222;
text-shadow: #fff 0 1px 0;
- width: 100px;
position: relative;
top: 1px;
-webkit-box-shadow: rgba(0,0,0,.5) 0 1px 2px;
diff --git a/WebContent/VAADIN/themes/runo/styles.css b/WebContent/VAADIN/themes/runo/styles.css
index 47c496d62c..120c4daa53 100644
--- a/WebContent/VAADIN/themes/runo/styles.css
+++ b/WebContent/VAADIN/themes/runo/styles.css
@@ -1,5 +1,5 @@
-.v-theme-version:after {content:"6_5_1_dev-20110207";}
-.v-theme-version-6_5_1_dev-20110207 {display: none;}
+.v-theme-version:after {content:"6_5_2_dev-20110303";}
+.v-theme-version-6_5_2_dev-20110303 {display: none;}
/* Automatically compiled css file from subdirectories. */
.v-absolutelayout-wrapper {
@@ -1839,6 +1839,10 @@ div.v-progressindicator-indeterminate-disabled {
border-bottom: none;
position: relative;
}
+.v-ie6 .v-tabsheet-content,
+.v-ie7 .v-tabsheet-content {
+ zoom: 1;
+}
.v-tabsheet-deco {
height: 1px;
background: #aaa;
diff --git a/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.class b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.class
new file mode 100644
index 0000000000..c7f0d86336
--- /dev/null
+++ b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.class
Binary files differ
diff --git a/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
index 742450f3d5..6f477601ed 100644
--- a/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
+++ b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
@@ -92,6 +92,14 @@ public class GeneratePackageExports {
Name name = (Name) attrit.next();
keys.add(name.toString());
}
+
+ // Jar must be closed before updating it below, as it's
+ // locked in Windows until closed. (#6045)
+ try {
+ jar.close();
+ } catch (IOException e) {
+ System.err.println("Unable to close JAR '"+jarFilename+"'");
+ }
// Put the manifest version as the first line
String orderedKeys[] = new String[keys.size()];
@@ -121,7 +129,8 @@ public class GeneratePackageExports {
// the loop above, but it's not guaranteed that it exists.
manifest.writeAttribute("Export-Package", exportPackage);
- // Update the manifest in the Jar
+ // Update the manifest in the Jar. The jar must be closed
+ // before this is done.
int status = manifest.updateJar(jarFilename);
if (status != 0)
diff --git a/build/buildhelpers/com/vaadin/buildhelpers/ManifestWriter.class b/build/buildhelpers/com/vaadin/buildhelpers/ManifestWriter.class
new file mode 100644
index 0000000000..bd48e3b356
--- /dev/null
+++ b/build/buildhelpers/com/vaadin/buildhelpers/ManifestWriter.class
Binary files differ
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VEmbedded.java b/src/com/vaadin/terminal/gwt/client/ui/VEmbedded.java
index f1d61029d4..a0f7cc649c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VEmbedded.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VEmbedded.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -137,35 +137,9 @@ public class VEmbedded extends HTML implements Paintable {
} else if (uidl.hasAttribute("mimetype")) {
final String mime = uidl.getStringAttribute("mimetype");
if (mime.equals("application/x-shockwave-flash")) {
- addStyleName(CLASSNAME + "-flash");
- String html = "<object "
- + "type=\"application/x-shockwave-flash\" "
- + "width=\"" + width + "\" height=\"" + height + "\">";
+ // Handle embedding of Flash
+ setHTML(createFlashEmbed(uidl));
- Map<String, String> parameters = getParameters(uidl);
- if (parameters.get("movie") == null) {
- parameters.put("movie", getSrc(uidl, client));
- }
-
- // Add the parameters to the Object
- for (String name : parameters.keySet()) {
- html += "<param name=\"" + escapeAttribute(name)
- + "\" value=\""
- + escapeAttribute(parameters.get(name)) + "\"/>";
- }
-
- html += "<embed src=\"" + getSrc(uidl, client) + "\" width=\""
- + width + "\" height=\"" + height + "\" "
- + "type=\"application/x-shockwave-flash\" ";
-
- // Add the parameters to the Embed
- for (String name : parameters.keySet()) {
- html += escapeAttribute(name) + "=\""
- + escapeAttribute(parameters.get(name)) + "\" ";
- }
-
- html += "></embed></object>";
- setHTML(html);
} else if (mime.equals("image/svg+xml")) {
addStyleName(CLASSNAME + "-svg");
String data;
@@ -185,6 +159,26 @@ public class VEmbedded extends HTML implements Paintable {
if (height != null) {
obj.getStyle().setProperty("height", "100%");
}
+ if (uidl.hasAttribute("classid")) {
+ obj.setAttribute("classid",
+ uidl.getStringAttribute(escapeAttribute("classid")));
+ }
+ if (uidl.hasAttribute("codebase")) {
+ obj.setAttribute("codebase", uidl
+ .getStringAttribute(escapeAttribute("codebase")));
+ }
+ if (uidl.hasAttribute("codetype")) {
+ obj.setAttribute("codetype", uidl
+ .getStringAttribute(escapeAttribute("codetype")));
+ }
+ if (uidl.hasAttribute("archive")) {
+ obj.setAttribute("archive",
+ uidl.getStringAttribute(escapeAttribute("archive")));
+ }
+ if (uidl.hasAttribute("standby")) {
+ obj.setAttribute("standby",
+ uidl.getStringAttribute(escapeAttribute("standby")));
+ }
getElement().appendChild(obj);
} else {
@@ -197,7 +191,123 @@ public class VEmbedded extends HTML implements Paintable {
if (clearBrowserElement) {
browserElement = null;
}
+ }
+
+ /**
+ * Creates the Object and Embed tags for the Flash plugin so it works
+ * cross-browser
+ *
+ * @param uidl
+ * The UIDL
+ * @return Tags concatenated into a string
+ */
+ private String createFlashEmbed(UIDL uidl) {
+ addStyleName(CLASSNAME + "-flash");
+
+ /*
+ * To ensure cross-browser compatibility we are using the twice-cooked
+ * method to embed flash i.e. we add a OBJECT tag for IE ActiveX and
+ * inside it a EMBED for all other browsers.
+ */
+
+ StringBuilder html = new StringBuilder();
+
+ // Start the object tag
+ html.append("<object ");
+
+ /*
+ * Add classid required for ActiveX to recognize the flash. This is a
+ * predefined value which ActiveX recognizes and must be the given
+ * value. More info can be found on
+ * http://kb2.adobe.com/cps/415/tn_4150.html. Allow user to override
+ * this by setting his own classid.
+ */
+ if (uidl.hasAttribute("classid")) {
+ html.append("classid=\""
+ + escapeAttribute(uidl.getStringAttribute("classid"))
+ + "\" ");
+ } else {
+ html.append("classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ");
+ }
+
+ /*
+ * Add codebase required for ActiveX and must be exactly this according
+ * to http://kb2.adobe.com/cps/415/tn_4150.html to work with the above
+ * given classid. Again, see more info on
+ * http://kb2.adobe.com/cps/415/tn_4150.html. Limiting Flash version to
+ * 6.0.0.0 and above. Allow user to override this by setting his own
+ * codebase
+ */
+ if (uidl.hasAttribute("codebase")) {
+ html.append("codebase=\""
+ + escapeAttribute(uidl.getStringAttribute("codebase"))
+ + "\" ");
+ } else {
+ html.append("codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" ");
+ }
+
+ // Add width and height
+ html.append("width=\"" + width + "\" ");
+ html.append("height=\"" + height + "\" ");
+ html.append("type=\"application/x-shockwave-flash\" ");
+
+ // Codetype
+ if (uidl.hasAttribute("codetype")) {
+ html.append("codetype=\"" + uidl.getStringAttribute("codetype")
+ + "\" ");
+ }
+
+ // Standby
+ if (uidl.hasAttribute("standby")) {
+ html.append("standby=\"" + uidl.getStringAttribute("standby")
+ + "\" ");
+ }
+
+ // Archive
+ if (uidl.hasAttribute("archive")) {
+ html.append("archive=\"" + uidl.getStringAttribute("archive")
+ + "\" ");
+ }
+
+ // End object tag
+ html.append(">");
+
+ // Ensure we have an movie parameter
+ Map<String, String> parameters = getParameters(uidl);
+ if (parameters.get("movie") == null) {
+ parameters.put("movie", getSrc(uidl, client));
+ }
+
+ // Add parameters to OBJECT
+ for (String name : parameters.keySet()) {
+ html.append("<param ");
+ html.append("name=\"" + escapeAttribute(name) + "\" ");
+ html.append("value=\"" + escapeAttribute(parameters.get(name))
+ + "\" ");
+ html.append("/>");
+ }
+
+ // Build inner EMBED tag
+ html.append("<embed ");
+ html.append("src=\"" + getSrc(uidl, client) + "\" ");
+ html.append("width=\"" + width + "\" ");
+ html.append("height=\"" + height + "\" ");
+ html.append("type=\"application/x-shockwave-flash\" ");
+
+ // Add the parameters to the Embed
+ for (String name : parameters.keySet()) {
+ html.append(escapeAttribute(name));
+ html.append("=");
+ html.append("\"" + escapeAttribute(parameters.get(name)) + "\"");
+ }
+
+ // End embed tag
+ html.append("></embed>");
+
+ // End object tag
+ html.append("</object>");
+ return html.toString();
}
/**
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java
index 586e04ed10..692b8a4858 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -21,6 +21,7 @@ import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Container;
+import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.RenderInformation;
import com.vaadin.terminal.gwt.client.RenderSpace;
@@ -29,7 +30,7 @@ import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHandlerOwner;
public class VPanel extends SimplePanel implements Container,
- ShortcutActionHandlerOwner {
+ ShortcutActionHandlerOwner, Focusable {
public static final String CLICK_EVENT_IDENTIFIER = "click";
public static final String CLASSNAME = "v-panel";
@@ -103,7 +104,16 @@ public class VPanel extends SimplePanel implements Container,
bottomDecoration.setClassName(CLASSNAME + "-deco");
getElement().appendChild(captionWrap);
+
+ /*
+ * Make contentNode focusable only by using the setFocus() method. This
+ * behaviour can be changed by invoking setTabIndex() in the serverside
+ * implementation
+ */
+ contentNode.setTabIndex(-1);
+
getElement().appendChild(contentNode);
+
getElement().appendChild(bottomDecoration);
setStyleName(CLASSNAME);
DOM.sinkEvents(getElement(), Event.ONKEYDOWN);
@@ -117,6 +127,30 @@ public class VPanel extends SimplePanel implements Container,
}, TouchStartEvent.getType());
}
+ /**
+ * Sets the keyboard focus on the Panel
+ *
+ * @param focus
+ * Should the panel have focus or not.
+ */
+ public void setFocus(boolean focus) {
+ if (focus) {
+ getContainerElement().focus();
+ } else {
+ getContainerElement().blur();
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.vaadin.terminal.gwt.client.Focusable#focus()
+ */
+ public void focus() {
+ setFocus(true);
+
+ }
+
@Override
protected Element getContainerElement() {
return contentNode;
@@ -236,6 +270,11 @@ public class VPanel extends SimplePanel implements Container,
// scrollTop
runHacks(false);
+ // And apply tab index
+ if (uidl.hasVariable("tabindex")) {
+ contentNode.setTabIndex(uidl.getIntVariable("tabindex"));
+ }
+
rendering = false;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
index 49d18f0867..edf4261988 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
@@ -145,12 +145,14 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
@Override
public void run() {
- updateCursorPosition();
- boolean textChanged = communicateTextValueToServer();
- if (textChanged) {
- client.sendPendingVariableChanges();
+ if (isAttached()) {
+ updateCursorPosition();
+ boolean textChanged = communicateTextValueToServer();
+ if (textChanged) {
+ client.sendPendingVariableChanges();
+ }
+ scheduled = false;
}
- scheduled = false;
}
};
private boolean scheduled = false;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VView.java b/src/com/vaadin/terminal/gwt/client/ui/VView.java
index ea43deba9d..5d7cc18945 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VView.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VView.java
@@ -43,7 +43,7 @@ import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHan
*
*/
public class VView extends SimplePanel implements Container, ResizeHandler,
- Window.ClosingHandler, ShortcutActionHandlerOwner {
+ Window.ClosingHandler, ShortcutActionHandlerOwner, Focusable {
private static final String CLASSNAME = "v-view";
@@ -110,6 +110,10 @@ public class VView extends SimplePanel implements Container, ResizeHandler,
public VView() {
super();
setStyleName(CLASSNAME);
+
+ // Allow focusing the view by using the focus() method, the view
+ // should not be in the document focus flow
+ getElement().setTabIndex(-1);
}
/**
@@ -691,9 +695,9 @@ public class VView extends SimplePanel implements Container, ResizeHandler,
DOM.setStyleAttribute(fElem, "position", "absolute");
DOM.setStyleAttribute(fElem, "opacity", "0.1");
DOM.appendChild(getElement(), fElem);
- Util.focus(fElem);
+ fElem.focus();
} else {
- Util.focus(getElement());
+ getElement().focus();
}
parentFrame = getParentFrame();
@@ -703,4 +707,8 @@ public class VView extends SimplePanel implements Container, ResizeHandler,
return actionHandler;
}
+ public void focus() {
+ getElement().focus();
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java
index 8e03ca89d7..395d6f6ea0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -35,6 +35,7 @@ import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Container;
import com.vaadin.terminal.gwt.client.EventId;
+import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.RenderSpace;
import com.vaadin.terminal.gwt.client.UIDL;
@@ -50,7 +51,7 @@ import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHan
*/
public class VWindow extends VOverlay implements Container,
ShortcutActionHandlerOwner, ScrollHandler, KeyDownHandler,
- FocusHandler, BlurHandler, BeforeShortcutActionListener {
+ FocusHandler, BlurHandler, BeforeShortcutActionListener, Focusable {
/**
* Minimum allowed height of a window. This refers to the content area, not
@@ -1307,4 +1308,8 @@ public class VWindow extends VOverlay implements Container,
// blur/focus )
}
+ public void focus() {
+ contentPanel.focus();
+ }
+
}
diff --git a/src/com/vaadin/ui/AbsoluteLayout.java b/src/com/vaadin/ui/AbsoluteLayout.java
index 3b0239af7b..c7a1583d28 100644
--- a/src/com/vaadin/ui/AbsoluteLayout.java
+++ b/src/com/vaadin/ui/AbsoluteLayout.java
@@ -122,8 +122,23 @@ public class AbsoluteLayout extends AbstractLayout implements
* The css position string
*/
public void addComponent(Component c, String cssPosition) {
- addComponent(c);
- getPosition(c).setCSSString(cssPosition);
+ /*
+ * Create position instance and add it to componentToCoordinates map. We
+ * need to do this before we call addComponent so the attachListeners
+ * can access this position. #6368
+ */
+ ComponentPosition position = new ComponentPosition();
+ position.setCSSString(cssPosition);
+ componentToCoordinates.put(c, position);
+
+ try {
+ addComponent(c);
+
+ } catch (IllegalArgumentException e) {
+ // Remove component coordinates if adding fails
+ componentToCoordinates.remove(c);
+ throw e;
+ }
}
/**
diff --git a/src/com/vaadin/ui/Embedded.java b/src/com/vaadin/ui/Embedded.java
index 85d67ae105..55991eafb2 100644
--- a/src/com/vaadin/ui/Embedded.java
+++ b/src/com/vaadin/ui/Embedded.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -205,8 +205,9 @@ public class Embedded extends AbstractComponent {
}
/**
- * Gets the codebase, the root-path used to access resources with relative
- * paths.
+ * This attribute specifies the base path used to resolve relative URIs
+ * specified by the classid, data, and archive attributes. When absent, its
+ * default value is the base URI of the current document.
*
* @return the code base.
*/
@@ -233,20 +234,22 @@ public class Embedded extends AbstractComponent {
}
/**
- * Gets the standby text displayed when the object is loading.
+ * This attribute specifies a message that a user agent may render while
+ * loading the object's implementation and data.
*
- * @return the standby text.
+ * @return The text displayed when loading
*/
public String getStandby() {
return standby;
}
/**
- * Sets the codebase, the root-path used to access resources with relative
- * paths.
+ * This attribute specifies the base path used to resolve relative URIs
+ * specified by the classid, data, and archive attributes. When absent, its
+ * default value is the base URI of the current document.
*
* @param codebase
- * the codebase to set.
+ * The base path
*/
public void setCodebase(String codebase) {
if (codebase != this.codebase
@@ -257,7 +260,11 @@ public class Embedded extends AbstractComponent {
}
/**
- * Sets the codetype, the MIME-Type of the code.
+ * This attribute specifies the content type of data expected when
+ * downloading the object specified by classid. This attribute is optional
+ * but recommended when classid is specified since it allows the user agent
+ * to avoid loading information for unsupported content types. When absent,
+ * it defaults to the value of the type attribute.
*
* @param codetype
* the codetype to set.
@@ -296,10 +303,11 @@ public class Embedded extends AbstractComponent {
}
/**
- * Sets the standby, the text to display while loading the object.
+ * This attribute specifies a message that a user agent may render while
+ * loading the object's implementation and data.
*
* @param standby
- * the standby to set.
+ * The text to display while loading
*/
public void setStandby(String standby) {
if (standby != this.standby
@@ -310,16 +318,18 @@ public class Embedded extends AbstractComponent {
}
/**
- * Gets the classId attribute.
+ * This attribute may be used to specify the location of an object's
+ * implementation via a URI.
*
- * @return the class id.
+ * @return the classid.
*/
public String getClassId() {
return classId;
}
/**
- * Sets the classId attribute.
+ * This attribute may be used to specify the location of an object's
+ * implementation via a URI.
*
* @param classId
* the classId to set.
@@ -410,19 +420,31 @@ public class Embedded extends AbstractComponent {
}
/**
- * Gets the archive attribute.
+ * This attribute may be used to specify a space-separated list of URIs for
+ * archives containing resources relevant to the object, which may include
+ * the resources specified by the classid and data attributes. Preloading
+ * archives will generally result in reduced load times for objects.
+ * Archives specified as relative URIs should be interpreted relative to the
+ * codebase attribute.
*
- * @return the archive attribute.
+ * @return Space-separated list of URIs with resources relevant to the
+ * object
*/
public String getArchive() {
return archive;
}
/**
- * Sets the archive attribute.
+ * This attribute may be used to specify a space-separated list of URIs for
+ * archives containing resources relevant to the object, which may include
+ * the resources specified by the classid and data attributes. Preloading
+ * archives will generally result in reduced load times for objects.
+ * Archives specified as relative URIs should be interpreted relative to the
+ * codebase attribute.
*
* @param archive
- * the archive string to set.
+ * Space-separated list of URIs with resources relevant to the
+ * object
*/
public void setArchive(String archive) {
if (archive != this.archive
@@ -458,6 +480,12 @@ public class Embedded extends AbstractComponent {
removeListener(CLICK_EVENT, ClickEvent.class, listener);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.vaadin.ui.AbstractComponent#changeVariables(java.lang.Object,
+ * java.util.Map)
+ */
@SuppressWarnings("unchecked")
@Override
public void changeVariables(Object source, Map<String, Object> variables) {
@@ -468,6 +496,11 @@ public class Embedded extends AbstractComponent {
}
+ /**
+ * Notifies click-listeners that a mouse click event has occurred.
+ *
+ * @param parameters
+ */
private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
.deSerialize((String) parameters.get("mouseDetails"));
diff --git a/src/com/vaadin/ui/Panel.java b/src/com/vaadin/ui/Panel.java
index 4d00cddfdd..7ffa11a325 100644
--- a/src/com/vaadin/ui/Panel.java
+++ b/src/com/vaadin/ui/Panel.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -17,6 +17,7 @@ import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Scrollable;
import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.VPanel;
+import com.vaadin.ui.Component.Focusable;
import com.vaadin.ui.themes.Reindeer;
import com.vaadin.ui.themes.Runo;
@@ -32,7 +33,7 @@ import com.vaadin.ui.themes.Runo;
@ClientWidget(VPanel.class)
public class Panel extends AbstractComponentContainer implements Scrollable,
ComponentContainer.ComponentAttachListener,
- ComponentContainer.ComponentDetachListener, Action.Notifier {
+ ComponentContainer.ComponentDetachListener, Action.Notifier, Focusable {
private static final String CLICK_EVENT = VPanel.CLICK_EVENT_IDENTIFIER;
@@ -75,6 +76,13 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
protected ActionManager actionManager;
/**
+ * By default the Panel is not in the normal document focus flow and can
+ * only be focused by using the focus()-method. Change this to 0 if you want
+ * to have the Panel in the normal focus flow.
+ */
+ private int tabIndex = -1;
+
+ /**
* Creates a new empty panel. A VerticalLayout is used as content.
*/
public Panel() {
@@ -234,6 +242,8 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
public void paintContent(PaintTarget target) throws PaintException {
content.paint(target);
+ target.addVariable(this, "tabindex", getTabIndex());
+
if (isScrollable()) {
target.addVariable(this, "scrollLeft", getScrollLeft());
target.addVariable(this, "scrollTop", getScrollTop());
@@ -582,4 +592,29 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
fireEvent(new ClickEvent(this, mouseDetails));
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public int getTabIndex() {
+ return tabIndex;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setTabIndex(int tabIndex) {
+ this.tabIndex = tabIndex;
+ requestRepaint();
+ }
+
+ /**
+ * Moves keyboard focus to the component. {@see Focusable#focus()}
+ *
+ */
+ @Override
+ public void focus() {
+ super.focus();
+ }
+
}
diff --git a/src/com/vaadin/ui/Window.java b/src/com/vaadin/ui/Window.java
index b31255cb26..5c2769c756 100644
--- a/src/com/vaadin/ui/Window.java
+++ b/src/com/vaadin/ui/Window.java
@@ -1,4 +1,4 @@
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
@@ -1120,6 +1120,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler,
if (parent == null) {
fireClose();
} else {
+
+ // focus is restored to the parent window
+ parent.focus();
+
// subwindow is removed from parent
parent.removeWindow(this);
}
@@ -2089,7 +2093,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler,
* <code>
* // within the window using helper
* subWindow.setCloseShortcut(KeyCode.ESCAPE, null);
- *
+ *
* // or globally
* getWindow().addAction(new Window.CloseShortcut(subWindow, KeyCode.ESCAPE));
* </code>
@@ -2180,4 +2184,24 @@ public class Window extends Panel implements URIHandler, ParameterHandler,
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
+ /**
+ * {@inheritDoc}
+ *
+ * If the window is a sub-window focusing will cause the sub-window to be
+ * brought on top of other sub-windows on gain keyboard focus.
+ */
+ @Override
+ public void focus() {
+ if (getParent() != null) {
+ /*
+ * When focusing a sub-window it basically means it should be
+ * brought to the front. Instead of just moving the keyboard focus
+ * we focus the window and bring it top-most.
+ */
+ bringToFront();
+ } else {
+ super.focus();
+ }
+ }
+
}
diff --git a/tests/eclipse-run-selected-test.properties b/tests/eclipse-run-selected-test.properties
index 49925925bc..06e414b902 100644
--- a/tests/eclipse-run-selected-test.properties
+++ b/tests/eclipse-run-selected-test.properties
@@ -1,12 +1,12 @@
; Location where vaadin-testbench jar can be found
-com.vaadin.testbench.lib.dir=<enter location of testbench here>
+com.vaadin.testbench.lib.dir=/home/hesara/dev/software/testbench/vaadin-testbench-2.2.0.development.201103151333
; Deployment url to use for testing. Context path must be /
-com.vaadin.testbench.deployment.url=http://<enter your ip here>:8888/
+com.vaadin.testbench.deployment.url=http://192.168.2.215:8888/
; Location of the screenshot directory.
; This is the directory that contains the "references" directory
-com.vaadin.testbench.screenshot.directory=<enter the full path to the screenshots directory, parent of "references" directory>
+com.vaadin.testbench.screenshot.directory=/home/hesara/dev/workspaces/helios_sr1_jee_vaadin/v66_screenshots
; Run the whole test even if
com.vaadin.testbench.screenshot.softfail=true
@@ -23,7 +23,7 @@ com.vaadin.testbench.screenshot.cursor=true
; Uncomment to limit to certain browsers or override in launch configuration
; browsers=winxp-opera10
-; Claim that the server has started succesfully. Needed for the tests to run
+; Claim that the server has started successfully. Needed for the tests to run
server.start.succeeded=1
test-output-dir=../build/test-output \ No newline at end of file
diff --git a/tests/src/com/vaadin/tests/VaadinClasses.java b/tests/src/com/vaadin/tests/VaadinClasses.java
index 3508f84059..9aef3f5277 100644
--- a/tests/src/com/vaadin/tests/VaadinClasses.java
+++ b/tests/src/com/vaadin/tests/VaadinClasses.java
@@ -20,9 +20,14 @@ import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.DragAndDropWrapper;
+import com.vaadin.ui.HorizontalSplitPanel;
import com.vaadin.ui.LoginForm;
import com.vaadin.ui.PopupView;
+import com.vaadin.ui.SplitPanel;
+import com.vaadin.ui.VerticalSplitPanel;
+import com.vaadin.ui.Window;
+@SuppressWarnings("deprecation")
public class VaadinClasses {
public static void main(String[] args) {
@@ -68,6 +73,16 @@ public class VaadinClasses {
return classes;
}
+ public static List<Class<? extends ComponentContainer>> getComponentContainersSupportingUnlimitedNumberOfComponents() {
+ List<Class<? extends ComponentContainer>> classes = getComponentContainersSupportingAddRemoveComponent();
+ classes.remove(SplitPanel.class);
+ classes.remove(VerticalSplitPanel.class);
+ classes.remove(HorizontalSplitPanel.class);
+ classes.remove(Window.class);
+
+ return classes;
+ }
+
@SuppressWarnings({ "unchecked", "rawtypes" })
public static List<Class<? extends AbstractComponentTest<?>>> getBasicComponentTests() {
try {
diff --git a/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.html b/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.html
new file mode 100644
index 0000000000..10dd21d240
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.html
@@ -0,0 +1,86 @@
+<?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="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.LayoutAttachListenerInfo?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>Top50pxLeft50px</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::Root/VNotification[0]/HTML[0]/domChild[0]</td>
+ <td>351,23</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VOptionGroup[0]/domChild[1]/domChild[0]</td>
+ <td>8,7</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>AttachedToIndex0</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::Root/VNotification[0]/HTML[0]/domChild[0]</td>
+ <td>351,23</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VOptionGroup[0]/domChild[2]/domChild[0]</td>
+ <td>3,5</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsLayoutAttachListenerInfo::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>AttachedTo23</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.java b/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.java
new file mode 100644
index 0000000000..7ed44768fd
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/LayoutAttachListenerInfo.java
@@ -0,0 +1,142 @@
+package com.vaadin.tests.components;
+
+import java.util.Arrays;
+
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.ui.AbsoluteLayout;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.ComponentContainer;
+import com.vaadin.ui.ComponentContainer.ComponentAttachEvent;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.OptionGroup;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window.Notification;
+
+
+public class LayoutAttachListenerInfo extends TestBase {
+
+ private VerticalLayout content = new VerticalLayout();
+
+ @Override
+ protected void setup() {
+
+ OptionGroup layouts = new OptionGroup("Layouts", Arrays.asList(
+ "AbsoluteLayout", "OrderedLayout", "GridLayout"));
+ layouts.select("AbsoluteLayout");
+ layouts.setImmediate(true);
+ layouts.addListener(new ValueChangeListener() {
+ public void valueChange(ValueChangeEvent event) {
+ if (event.getProperty().getValue().equals("AbsoluteLayout")) {
+ testAbsoluteLayout();
+ } else if (event.getProperty().getValue()
+ .equals("OrderedLayout")) {
+ testOrderedLayout();
+ } else if (event.getProperty().getValue().equals("GridLayout")) {
+ testGridLayout();
+ }
+ }
+ });
+
+ addComponent(layouts);
+ addComponent(content);
+
+ testAbsoluteLayout();
+ }
+
+ @Override
+ protected String getDescription() {
+ return "When pressing the attach button a Label with the value \"X\" "
+ + "should get added to the selected layout and a notification of the position"
+ + " of the component should be visible";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6368;
+ }
+
+ private void testAbsoluteLayout() {
+ content.removeAllComponents();
+
+ final AbsoluteLayout a = new AbsoluteLayout();
+ a.setWidth("300px");
+ a.setHeight("300px");
+ a.addListener(new ComponentContainer.ComponentAttachListener() {
+ public void componentAttachedToContainer(ComponentAttachEvent event) {
+ AbsoluteLayout layout = (AbsoluteLayout) event.getContainer();
+ AbsoluteLayout.ComponentPosition position = layout
+ .getPosition(event.getAttachedComponent());
+
+ getMainWindow().showNotification(
+ "Attached to " + position.getCSSString(),
+ Notification.TYPE_ERROR_MESSAGE);
+ }
+ });
+ content.addComponent(a);
+
+ content.addComponent(new Button("Attach label to layout",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ a.addComponent(new Label("X"), "top:50px;left:50px");
+ }
+ }));
+ }
+
+ private void testOrderedLayout(){
+ content.removeAllComponents();
+
+ final VerticalLayout v = new VerticalLayout();
+ v.setWidth("300px");
+ v.setHeight("300px");
+ v.addListener(new ComponentContainer.ComponentAttachListener() {
+ public void componentAttachedToContainer(ComponentAttachEvent event) {
+ VerticalLayout layout = (VerticalLayout) event.getContainer();
+ getMainWindow().showNotification(
+ "Attached to index "
+ + layout.getComponentIndex(event
+ .getAttachedComponent()),
+ Notification.TYPE_ERROR_MESSAGE);
+ }
+ });
+ content.addComponent(v);
+
+ content.addComponent(new Button("Attach label to layout",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ v.addComponent(new Label("X"));
+
+ }
+ }));
+ }
+
+ private void testGridLayout() {
+ content.removeAllComponents();
+
+ final GridLayout g = new GridLayout(4, 4);
+ g.setWidth("300px");
+ g.setHeight("300px");
+ g.addListener(new ComponentContainer.ComponentAttachListener() {
+ public void componentAttachedToContainer(ComponentAttachEvent event) {
+ GridLayout layout = (GridLayout) event.getContainer();
+ GridLayout.Area area = layout.getComponentArea(event
+ .getAttachedComponent());
+ getMainWindow().showNotification(
+ "Attached to " + area.getColumn1() + ","
+ + area.getRow1(),
+ Notification.TYPE_ERROR_MESSAGE);
+ }
+ });
+
+ content.addComponent(g);
+
+ content.addComponent(new Button("Attach label to layout",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ g.addComponent(new Label("X"), 2, 3);
+ }
+ }));
+ }
+}
diff --git a/tests/src/com/vaadin/tests/components/caption/IconsInCaption.java b/tests/src/com/vaadin/tests/components/caption/IconsInCaption.java
new file mode 100644
index 0000000000..926088ff48
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/caption/IconsInCaption.java
@@ -0,0 +1,136 @@
+package com.vaadin.tests.components.caption;
+
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.terminal.ThemeResource;
+import com.vaadin.tests.VaadinClasses;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.ComboBox;
+import com.vaadin.ui.ComponentContainer;
+import com.vaadin.ui.Embedded;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+
+public class IconsInCaption extends TestBase {
+
+ private static final String TYPE_EMBEDDED = "Embedded";
+ private static final String TYPE_CAPTION = "In caption";
+
+ private static final String[] icons = new String[] { "arrow-down.png",
+ "arrow-left.png", "arrow-right.png", "arrow-up.png",
+ "attention.png", "calendar.png", "cancel.png", "document.png",
+ "document-add.png", "document-delete.png", "document-doc.png",
+ "document-image.png", "document-pdf.png", "document-ppt.png",
+ "document-txt.png", "document-web.png", "document-xsl.png",
+ "email.png", "email-reply.png", "email-send.png", "folder.png",
+ "folder-add.png", "folder-delete.png", "globe.png", "help.png",
+ "lock.png", "note.png", "ok.png", "reload.png", "settings.png",
+ "trash.png", "trash-full.png", "user.png", "users.png" };
+
+ private static final String[] sizes = new String[] { "16", "32", "64" };
+
+ private ComponentContainer container = new VerticalLayout();
+
+ private Log log = new Log(5);
+
+ private ComboBox containerSelect;
+
+ private ComboBox iconTypeSelect;
+
+ @Override
+ protected void setup() {
+ iconTypeSelect = new ComboBox("Icon container");
+ iconTypeSelect.addItem(TYPE_EMBEDDED);
+ iconTypeSelect.addItem(TYPE_CAPTION);
+ iconTypeSelect.setImmediate(true);
+ iconTypeSelect.setNullSelectionAllowed(false);
+ iconTypeSelect.addListener(new ValueChangeListener() {
+ public void valueChange(ValueChangeEvent event) {
+ updateContainer();
+ }
+ });
+
+ containerSelect = new ComboBox("Container");
+ for (Class<? extends ComponentContainer> cc : VaadinClasses
+ .getComponentContainersSupportingUnlimitedNumberOfComponents()) {
+ containerSelect.addItem(cc);
+ }
+ containerSelect.setImmediate(true);
+ containerSelect.addListener(new ValueChangeListener() {
+
+ public void valueChange(ValueChangeEvent event) {
+ updateContainer();
+
+ }
+ });
+
+ addComponent(log);
+ addComponent(iconTypeSelect);
+ addComponent(containerSelect);
+ addComponent(container);
+
+ iconTypeSelect.setValue(TYPE_CAPTION);
+ containerSelect.setValue(VerticalLayout.class);
+ }
+
+ protected void updateContainer() {
+ Class<? extends ComponentContainer> containerClass = (Class<? extends ComponentContainer>) containerSelect
+ .getValue();
+ if (containerClass == null) {
+ return;
+ }
+
+ Object iconType = iconTypeSelect.getValue();
+ try {
+ ComponentContainer newContainer = createContainer(containerClass,
+ iconType);
+ replaceComponent(container, newContainer);
+ container = newContainer;
+ log.log("Container changed to " + containerClass.getName() + "/"
+ + iconType);
+ } catch (Exception e) {
+ log.log("Create container failed for " + containerClass.getName()
+ + ": " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ }
+
+ private static ComponentContainer createContainer(
+ Class<? extends ComponentContainer> containerClass, Object iconType)
+ throws InstantiationException, IllegalAccessException {
+ ComponentContainer container = containerClass.newInstance();
+ for (String size : sizes) {
+ Label title = new Label("<h3>" + size + "x" + size + "</h3>",
+ Label.CONTENT_XHTML);
+ container.addComponent(title);
+ for (String icon : icons) {
+ ThemeResource res = new ThemeResource("../runo/icons/" + size
+ + "/" + icon);
+ if (TYPE_CAPTION.equals(iconType)) {
+ Label name = new Label();
+ name.setCaption(icon);
+ name.setIcon(res);
+ container.addComponent(name);
+ } else if (TYPE_EMBEDDED.equals(iconType)) {
+ Embedded e = new Embedded(icon, res);
+ container.addComponent(e);
+ }
+ }
+ }
+
+ return container;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Test for comparing rendering speed of icons in a caption and in an Embedded component in different component containers.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6578;
+ }
+
+}
diff --git a/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.html b/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.html
new file mode 100644
index 0000000000..d3debf3417
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.html
@@ -0,0 +1,33 @@
+<?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="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.embedded.FlashIsVisible</td>
+ <td></td>
+</tr>
+<!--Allow the flash plugin to load before taking the screenshot-->
+<tr>
+ <td>pause</td>
+ <td>5000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.java b/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.java
new file mode 100644
index 0000000000..5d626cfc0b
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/embedded/FlashIsVisible.java
@@ -0,0 +1,31 @@
+package com.vaadin.tests.components.embedded;
+
+import com.vaadin.terminal.ExternalResource;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Embedded;
+
+public class FlashIsVisible extends TestBase {
+
+ @Override
+ protected void setup() {
+ Embedded player = new Embedded();
+ player.setType(Embedded.TYPE_OBJECT);
+ player.setMimeType("application/x-shockwave-flash");
+ player.setWidth("400px");
+ player.setHeight("300px");
+ String url = "http://www.youtube.com/v/qQ9N742QB4g&autoplay=0";
+ player.setSource(new ExternalResource(url));
+ addComponent(player);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Flash plugin should load and be visible on all browsers";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6501;
+ }
+
+}
diff --git a/tests/src/com/vaadin/tests/components/menubar/IconsInSubMenus.html b/tests/src/com/vaadin/tests/components/menubar/IconsInSubMenus.html
index 706fbca002..3ce0986f71 100644
--- a/tests/src/com/vaadin/tests/components/menubar/IconsInSubMenus.html
+++ b/tests/src/com/vaadin/tests/components/menubar/IconsInSubMenus.html
@@ -76,6 +76,11 @@
<td>51,10</td>
</tr>
<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
<td>screenCapture</td>
<td></td>
<td>submenu-1-with-icons</td>
diff --git a/tests/src/com/vaadin/tests/components/menubar/MenuBarResize.html b/tests/src/com/vaadin/tests/components/menubar/MenuBarResize.html
new file mode 100644
index 0000000000..97006323a2
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/menubar/MenuBarResize.html
@@ -0,0 +1,127 @@
+<?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="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.menubar.MenuBarTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::PID_Smenu#item0</td>
+ <td>26,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[0]/VMenuBar[0]#item2</td>
+ <td>71,9</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[1]/VMenuBar[0]#item0</td>
+ <td>34,2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[2]/VMenuBar[0]#item2</td>
+ <td>32,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::PID_Smenu#item1</td>
+ <td>17,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[0]/VMenuBar[0]#item2</td>
+ <td>36,1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[1]/VMenuBar[0]#item0</td>
+ <td>22,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[2]/VMenuBar[0]#item6</td>
+ <td>48,15</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>menubar-100pct-inside-500px</td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.menubar.MenuBarTest</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>menubar-100pct-inside-500px-after-refresh</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::PID_Smenu#item1</td>
+ <td>20,0</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[0]/VMenuBar[0]#item2</td>
+ <td>72,3</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[1]/VMenuBar[0]#item0</td>
+ <td>4,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[2]/VMenuBar[0]#item10</td>
+ <td>26,9</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>menubar-100pct-inside-900px</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::PID_Smenu#item0</td>
+ <td>19,3</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[0]/VMenuBar[0]#item2</td>
+ <td>66,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[1]/VMenuBar[0]#item0</td>
+ <td>6,2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarTest::Root/VOverlay[2]/VMenuBar[0]#item10</td>
+ <td>43,3</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>menubar-900px-inside-900px</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/table/HeaderClick.html b/tests/src/com/vaadin/tests/components/table/HeaderClick.html
index 3f0b111419..d5328b25d3 100644
--- a/tests/src/com/vaadin/tests/components/table/HeaderClick.html
+++ b/tests/src/com/vaadin/tests/components/table/HeaderClick.html
@@ -17,21 +17,11 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]</td>
<td>37,11</td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col1</td>
@@ -42,11 +32,6 @@
<td>36,9</td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col2</td>
@@ -57,11 +42,6 @@
<td>8,11</td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col3</td>
@@ -78,11 +58,6 @@
<td>31,9</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col1</td>
@@ -93,11 +68,6 @@
<td>16,10</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col2</td>
@@ -108,11 +78,6 @@
<td>16,10</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col3</td>
@@ -128,11 +93,6 @@
<td>64,10</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col1</td>
@@ -143,11 +103,6 @@
<td>48,10</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col2</td>
@@ -158,11 +113,6 @@
<td>30,11</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col3</td>
@@ -178,11 +128,6 @@
<td>48,11</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col1</td>
@@ -193,11 +138,6 @@
<td>71,10</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col2</td>
@@ -208,11 +148,6 @@
<td>39,5</td>
</tr>
<tr>
- <td>pause</td>
- <td>500</td>
- <td></td>
-</tr>
-<tr>
<td>assertValue</td>
<td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
<td>col3</td>
diff --git a/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.html b/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.html
new file mode 100644
index 0000000000..544cea9faa
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.html
@@ -0,0 +1,48 @@
+<?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="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.textfield.TextChangeTimeoutAfterDetach?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstextfieldTextChangeTimeoutAfterDetach::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td>
+ <td>119,12</td>
+</tr>
+<tr>
+ <td>enterCharacter</td>
+ <td>vaadin=runcomvaadintestscomponentstextfieldTextChangeTimeoutAfterDetach::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td>
+ <td>aaaa</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstextfieldTextChangeTimeoutAfterDetach::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--Wait for 3 seconds so the timeout occurs-->
+<tr>
+ <td>pause</td>
+ <td>3000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java b/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java
new file mode 100644
index 0000000000..d1f856f40c
--- /dev/null
+++ b/tests/src/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java
@@ -0,0 +1,48 @@
+package com.vaadin.tests.components.textfield;
+
+import com.vaadin.event.FieldEvents.TextChangeEvent;
+import com.vaadin.event.FieldEvents.TextChangeListener;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.AbstractTextField.TextChangeEventMode;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+
+public class TextChangeTimeoutAfterDetach extends TestBase {
+
+ @Override
+ protected void setup() {
+ final TextField field = new TextField();
+ field.setImmediate(false);
+ field.setTextChangeTimeout(2000);
+ field.setTextChangeEventMode(TextChangeEventMode.TIMEOUT);
+ field.addListener(new TextChangeListener() {
+ public void textChange(TextChangeEvent event) {
+ // Need to add a listener for events to occur
+ }
+ });
+ addComponent(field);
+
+ Button detachBtn = new Button("detach field",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ removeComponent(field);
+ getLayout().addComponentAsFirst(
+ new Label("Field detached!"));
+ }
+ });
+ addComponent(detachBtn);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "The textfield has a TextChangeTimout of 1 second. Edit the field and immidietly detach the field and you will cause an \"Out Of Sync\" error.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6507;
+ }
+
+}
diff --git a/tests/src/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java b/tests/src/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
index 35c813293f..ff6e76e480 100644
--- a/tests/src/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
+++ b/tests/src/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
@@ -16,7 +16,6 @@ import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.Link;
-import com.vaadin.ui.NativeSelect;
import com.vaadin.ui.Select;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Table;
@@ -490,7 +489,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
components[3] = getTestTabsheet();
components[3].setIcon(new ThemeResource(LOCK_16_PNG));
- AbstractField[] fields = new AbstractField[6];
+ AbstractField[] fields = new AbstractField[5];
fields[0] = new TextField();
fields[0].setRequired(true);
fields[0].setValidationVisible(true);
@@ -512,14 +511,6 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
fields[4]
.setComponentError(new UserError("component error, user error"));
- fields[5] = new NativeSelect();
- fields[5].setRequired(true);
- fields[5].setValidationVisible(true);
- fields[5].setRequiredError("required error");
- fields[5]
- .setComponentError(new UserError("component error, user error"));
- fields[5].setIcon(new ThemeResource(CALENDAR_32_PNG));
-
for (int i = 0; i < components.length; i++) {
components[i].setComponentError(new UserError(
"component error, user error"));
diff --git a/tests/src/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.html b/tests/src/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.html
index 807984be26..b0e2444986 100644
--- a/tests/src/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.html
+++ b/tests/src/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.html
@@ -17,24 +17,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>1</td>
</tr>
<tr>
<td>click</td>
@@ -42,19 +27,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>2</td>
</tr>
<tr>
<td>click</td>
@@ -62,19 +37,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>3</td>
</tr>
<tr>
<td>click</td>
@@ -82,19 +47,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>4</td>
</tr>
<tr>
<td>click</td>
@@ -102,19 +57,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>5</td>
</tr>
<tr>
<td>click</td>
@@ -122,19 +67,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>6</td>
</tr>
<tr>
<td>click</td>
@@ -142,19 +77,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>7</td>
</tr>
<tr>
<td>click</td>
@@ -162,19 +87,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>8</td>
</tr>
<tr>
<td>click</td>
@@ -182,19 +97,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>9</td>
</tr>
<tr>
<td>click</td>
@@ -202,19 +107,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>10</td>
</tr>
<tr>
<td>click</td>
@@ -222,19 +117,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>11</td>
</tr>
<tr>
<td>click</td>
@@ -242,19 +127,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>12</td>
</tr>
<tr>
<td>click</td>
@@ -262,19 +137,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>13</td>
</tr>
<tr>
<td>click</td>
@@ -282,19 +147,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>14</td>
</tr>
<tr>
<td>click</td>
@@ -302,19 +157,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>15</td>
</tr>
<tr>
<td>click</td>
@@ -322,19 +167,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>16</td>
</tr>
<tr>
<td>click</td>
@@ -342,19 +177,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>17</td>
</tr>
<tr>
<td>click</td>
@@ -362,19 +187,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>18</td>
</tr>
<tr>
<td>click</td>
@@ -382,19 +197,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>19</td>
</tr>
<tr>
<td>click</td>
@@ -402,19 +207,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>20</td>
</tr>
<tr>
<td>click</td>
@@ -422,19 +217,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>21</td>
</tr>
<tr>
<td>click</td>
@@ -442,19 +227,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>22</td>
</tr>
<tr>
<td>click</td>
@@ -462,19 +237,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>23</td>
</tr>
<tr>
<td>click</td>
@@ -482,19 +247,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>24</td>
</tr>
<tr>
<td>click</td>
@@ -502,19 +257,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>25</td>
</tr>
<tr>
<td>click</td>
@@ -522,19 +267,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>26</td>
</tr>
<tr>
<td>click</td>
@@ -542,19 +277,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>27</td>
</tr>
<tr>
<td>click</td>
@@ -562,19 +287,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>28</td>
</tr>
<tr>
<td>select</td>
@@ -582,19 +297,9 @@
<td>label=class com.vaadin.ui.HorizontalLayout</td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>29</td>
</tr>
<tr>
<td>click</td>
@@ -602,39 +307,25 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>30</td>
</tr>
<tr>
<td>click</td>
<td>vaadin=runcomvaadintestslayoutslayouttesterLayoutTesterApplication::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]</td>
<td></td>
</tr>
-<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
+<!-- Only for IE6 so it has time to load images and adjust -->
<tr>
<td>pause</td>
- <td>1000</td>
+ <td>2000</td>
<td></td>
</tr>
<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>31</td>
</tr>
<tr>
<td>click</td>
@@ -642,19 +333,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>32</td>
</tr>
<tr>
<td>click</td>
@@ -662,19 +343,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>33</td>
</tr>
<tr>
<td>click</td>
@@ -682,19 +353,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>34</td>
</tr>
<tr>
<td>click</td>
@@ -702,19 +363,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>35</td>
</tr>
<tr>
<td>click</td>
@@ -722,19 +373,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>36</td>
</tr>
<tr>
<td>click</td>
@@ -742,19 +383,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>37</td>
</tr>
<tr>
<td>click</td>
@@ -762,19 +393,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>38</td>
</tr>
<tr>
<td>click</td>
@@ -782,19 +403,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>39</td>
</tr>
<tr>
<td>click</td>
@@ -802,19 +413,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>40</td>
</tr>
<tr>
<td>click</td>
@@ -822,19 +423,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>41</td>
</tr>
<tr>
<td>click</td>
@@ -842,19 +433,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>42</td>
</tr>
<tr>
<td>click</td>
@@ -862,19 +443,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>43</td>
</tr>
<tr>
<td>click</td>
@@ -882,19 +453,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>44</td>
</tr>
<tr>
<td>click</td>
@@ -902,19 +463,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>45</td>
</tr>
<tr>
<td>click</td>
@@ -922,19 +473,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>46</td>
</tr>
<tr>
<td>click</td>
@@ -942,19 +483,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>47</td>
</tr>
<tr>
<td>click</td>
@@ -962,19 +493,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>48</td>
</tr>
<tr>
<td>click</td>
@@ -982,19 +503,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>49</td>
</tr>
<tr>
<td>click</td>
@@ -1002,19 +513,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>50</td>
</tr>
<tr>
<td>click</td>
@@ -1022,19 +523,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>51</td>
</tr>
<tr>
<td>click</td>
@@ -1042,19 +533,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>52</td>
</tr>
<tr>
<td>click</td>
@@ -1062,19 +543,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>53</td>
</tr>
<tr>
<td>click</td>
@@ -1082,19 +553,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>54</td>
</tr>
<tr>
<td>click</td>
@@ -1102,19 +563,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>55</td>
</tr>
<tr>
<td>click</td>
@@ -1122,19 +573,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>56</td>
</tr>
<tr>
<td>select</td>
@@ -1142,19 +583,9 @@
<td>label=class com.vaadin.ui.GridLayout</td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>57</td>
</tr>
<tr>
<td>click</td>
@@ -1162,19 +593,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>58</td>
</tr>
<tr>
<td>click</td>
@@ -1182,19 +603,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>59</td>
</tr>
<tr>
<td>click</td>
@@ -1202,19 +613,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>60</td>
</tr>
<tr>
<td>click</td>
@@ -1222,19 +623,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>61</td>
</tr>
<tr>
<td>click</td>
@@ -1242,19 +633,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>62</td>
</tr>
<tr>
<td>click</td>
@@ -1262,19 +643,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>63</td>
</tr>
<tr>
<td>click</td>
@@ -1282,19 +653,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>64</td>
</tr>
<tr>
<td>click</td>
@@ -1302,19 +663,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>65</td>
</tr>
<tr>
<td>click</td>
@@ -1322,19 +673,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>66</td>
</tr>
<tr>
<td>click</td>
@@ -1342,19 +683,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>67</td>
</tr>
<tr>
<td>click</td>
@@ -1362,19 +693,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>68</td>
</tr>
<tr>
<td>click</td>
@@ -1382,19 +703,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>69</td>
</tr>
<tr>
<td>click</td>
@@ -1402,19 +713,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>70</td>
</tr>
<tr>
<td>click</td>
@@ -1422,19 +723,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>71</td>
</tr>
<tr>
<td>click</td>
@@ -1442,19 +733,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>72</td>
</tr>
<tr>
<td>click</td>
@@ -1462,19 +743,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>73</td>
</tr>
<tr>
<td>click</td>
@@ -1482,19 +753,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>74</td>
</tr>
<tr>
<td>click</td>
@@ -1502,19 +763,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>75</td>
</tr>
<tr>
<td>click</td>
@@ -1522,19 +773,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>76</td>
</tr>
<tr>
<td>click</td>
@@ -1542,19 +783,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>77</td>
</tr>
<tr>
<td>click</td>
@@ -1562,19 +793,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>78</td>
</tr>
<tr>
<td>click</td>
@@ -1582,19 +803,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>79</td>
</tr>
<tr>
<td>click</td>
@@ -1602,19 +813,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>80</td>
</tr>
<tr>
<td>click</td>
@@ -1622,19 +823,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>81</td>
</tr>
<tr>
<td>click</td>
@@ -1642,19 +833,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>82</td>
</tr>
<tr>
<td>click</td>
@@ -1662,19 +843,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>83</td>
</tr>
<tr>
<td>click</td>
@@ -1682,19 +853,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>84</td>
</tr>
<tr>
<td>click</td>
@@ -1702,19 +863,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>85</td>
</tr>
<tr>
<td>click</td>
@@ -1722,19 +873,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>86</td>
</tr>
<tr>
<td>click</td>
@@ -1742,19 +883,9 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>87</td>
</tr>
<tr>
<td>click</td>
@@ -1762,21 +893,10 @@
<td></td>
</tr>
<tr>
- <td>waitForVaadin</td>
- <td></td>
- <td></td>
-</tr>
-<tr>
- <td>pause</td>
- <td>1000</td>
- <td></td>
-</tr>
-<tr>
<td>screenCapture</td>
<td></td>
- <td></td>
+ <td>88</td>
</tr>
-
</tbody></table>
</body>
</html>