aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormichaelvogt <michael@vaadin.com>2013-08-27 10:53:23 +0200
committerVaadin Code Review <review@vaadin.com>2013-09-03 07:22:18 +0000
commitf14fc3cbd235b6004d93b10a660bb3a97d13cd64 (patch)
treeb5f69db6021269574722997392d92c612228d441
parentce110b8b060d7c215f69a7e03c24ca80d88da037 (diff)
downloadvaadin-framework-f14fc3cbd235b6004d93b10a660bb3a97d13cd64.tar.gz
vaadin-framework-f14fc3cbd235b6004d93b10a660bb3a97d13cd64.zip
Keep the Tooltip in the DOM (#12458)
Change-Id: Ic707632ee51181e660b64935f68e564bdfc4443b
-rw-r--r--client/src/com/vaadin/client/ApplicationConnection.java4
-rw-r--r--client/src/com/vaadin/client/VErrorMessage.java3
-rw-r--r--client/src/com/vaadin/client/VTooltip.java59
-rw-r--r--client/src/com/vaadin/client/ui/VTree.java17
-rw-r--r--client/src/com/vaadin/client/ui/tree/TreeConnector.java5
-rw-r--r--uitest/src/com/vaadin/tests/components/ErrorMessages.html8
-rw-r--r--uitest/src/com/vaadin/tests/components/button/ButtonsWaiAria.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/form/FormTooltips.html36
-rw-r--r--uitest/src/com/vaadin/tests/components/slider/SliderTooltip.html15
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.html114
-rw-r--r--uitest/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html2
-rw-r--r--uitest/src/com/vaadin/tests/components/tree/SimpleTree.java13
-rw-r--r--uitest/src/com/vaadin/tests/components/ui/TooltipConfiguration.html9
-rw-r--r--uitest/src/com/vaadin/tests/components/window/TooltipInWindow.html9
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html41
15 files changed, 221 insertions, 115 deletions
diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java
index 0d9c859ee8..2865e04757 100644
--- a/client/src/com/vaadin/client/ApplicationConnection.java
+++ b/client/src/com/vaadin/client/ApplicationConnection.java
@@ -490,6 +490,10 @@ public class ApplicationConnection {
// initial UIDL provided in DOM, continue as if returned by request
handleJSONText(jsonText, -1);
+
+ // Tooltip can't be created earlier because the necessary fields are
+ // not setup to add it in the correct place in the DOM
+ getVTooltip().showAssistive(new TooltipInfo(" "));
}
}
diff --git a/client/src/com/vaadin/client/VErrorMessage.java b/client/src/com/vaadin/client/VErrorMessage.java
index 2e42b98a05..a384b451dd 100644
--- a/client/src/com/vaadin/client/VErrorMessage.java
+++ b/client/src/com/vaadin/client/VErrorMessage.java
@@ -31,9 +31,6 @@ public class VErrorMessage extends FlowPanel {
public VErrorMessage() {
super();
setStyleName(CLASSNAME);
-
- // Needed for binding with WAI-ARIA attributes
- getElement().setId(DOM.createUniqueId());
}
/**
diff --git a/client/src/com/vaadin/client/VTooltip.java b/client/src/com/vaadin/client/VTooltip.java
index 57e72aedfc..e687712b9c 100644
--- a/client/src/com/vaadin/client/VTooltip.java
+++ b/client/src/com/vaadin/client/VTooltip.java
@@ -15,7 +15,8 @@
*/
package com.vaadin.client;
-import com.google.gwt.aria.client.Id;
+import com.google.gwt.aria.client.LiveValue;
+import com.google.gwt.aria.client.RelevantValue;
import com.google.gwt.aria.client.Roles;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
@@ -36,12 +37,12 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.client.ui.VOverlay;
+import com.vaadin.client.ui.VWindowOverlay;
/**
* TODO open for extension
*/
-public class VTooltip extends VOverlay {
+public class VTooltip extends VWindowOverlay {
private static final String CLASSNAME = "v-tooltip";
private static final int MARGIN = 4;
public static final int TOOLTIP_EVENTS = Event.ONKEYDOWN
@@ -57,7 +58,6 @@ public class VTooltip extends VOverlay {
private boolean justClosed = false;
private String uniqueId = DOM.createUniqueId();
- private Element layoutElement;
private int maxWidth;
// Delays for the tooltip, configurable on the server side
@@ -80,17 +80,17 @@ public class VTooltip extends VOverlay {
setWidget(layout);
layout.add(em);
DOM.setElementProperty(description, "className", CLASSNAME + "-text");
-
- layoutElement = layout.getElement();
- DOM.appendChild(layoutElement, description);
+ DOM.appendChild(layout.getElement(), description);
setSinkShadowEvents(true);
- // Used to bind the tooltip to the owner for assistive devices
- layoutElement.setId(uniqueId);
-
- description.setId(DOM.createUniqueId());
- Roles.getTooltipRole().set(layoutElement);
- Roles.getTooltipRole().setAriaHiddenState(layoutElement, true);
+ // When a tooltip is shown, the content of the tooltip changes. With a
+ // tooltip being a live-area, this change is notified to a assistive
+ // device.
+ Roles.getTooltipRole().set(getElement());
+ Roles.getTooltipRole().setAriaLiveProperty(getElement(),
+ LiveValue.ASSERTIVE);
+ Roles.getTooltipRole().setAriaRelevantProperty(getElement(),
+ RelevantValue.ADDITIONS);
}
/**
@@ -240,10 +240,11 @@ public class VTooltip extends VOverlay {
@Override
public void hide() {
- super.hide();
- Roles.getTooltipRole().setAriaHiddenState(layoutElement, true);
- Roles.getTooltipRole().removeAriaDescribedbyProperty(
- tooltipEventHandler.currentElement);
+ em.updateMessage("");
+ description.setInnerHTML("");
+
+ updatePosition(null, true);
+ setPopupPosition(tooltipEventMouseX, tooltipEventMouseY);
}
private int tooltipEventMouseX;
@@ -298,9 +299,9 @@ public class VTooltip extends VOverlay {
private com.google.gwt.dom.client.Element currentElement = null;
/**
- * Current element focused
+ * Marker for handling of tooltip through focus
*/
- private boolean currentIsFocused;
+ private boolean handledByFocus;
/**
* Current tooltip active
@@ -403,6 +404,7 @@ public class VTooltip extends VOverlay {
*/
@Override
public void onBlur(BlurEvent be) {
+ handledByFocus = false;
handleHideEvent();
}
@@ -412,7 +414,7 @@ public class VTooltip extends VOverlay {
.getEventTarget());
// We can ignore move event if it's handled by move or over already
- if (currentElement == element && currentIsFocused == isFocused) {
+ if (currentElement == element && handledByFocus == true) {
return;
}
@@ -420,8 +422,6 @@ public class VTooltip extends VOverlay {
if (!connectorAndTooltipFound) {
if (isShowing()) {
handleHideEvent();
- Roles.getButtonRole()
- .removeAriaDescribedbyProperty(element);
} else {
currentTooltipInfo = null;
}
@@ -430,17 +430,12 @@ public class VTooltip extends VOverlay {
if (isShowing()) {
replaceCurrentTooltip();
- Roles.getTooltipRole().removeAriaDescribedbyProperty(
- currentElement);
} else {
showTooltip();
}
-
- Roles.getTooltipRole().setAriaDescribedbyProperty(element,
- Id.of(uniqueId));
}
- currentIsFocused = isFocused;
+ handledByFocus = isFocused;
currentElement = element;
}
}
@@ -475,9 +470,11 @@ public class VTooltip extends VOverlay {
@Override
public void setPopupPositionAndShow(PositionCallback callback) {
- super.setPopupPositionAndShow(callback);
-
- Roles.getTooltipRole().setAriaHiddenState(layoutElement, false);
+ if (isAttached()) {
+ callback.setPosition(getOffsetWidth(), getOffsetHeight());
+ } else {
+ super.setPopupPositionAndShow(callback);
+ }
}
/**
diff --git a/client/src/com/vaadin/client/ui/VTree.java b/client/src/com/vaadin/client/ui/VTree.java
index 51c00ca310..1acd4bd05f 100644
--- a/client/src/com/vaadin/client/ui/VTree.java
+++ b/client/src/com/vaadin/client/ui/VTree.java
@@ -70,6 +70,7 @@ import com.vaadin.client.ui.dd.VDragEvent;
import com.vaadin.client.ui.dd.VDropHandler;
import com.vaadin.client.ui.dd.VHasDropHandler;
import com.vaadin.client.ui.dd.VTransferable;
+import com.vaadin.client.ui.tree.TreeConnector;
import com.vaadin.shared.MouseEventDetails;
import com.vaadin.shared.MouseEventDetails.MouseButton;
import com.vaadin.shared.ui.MultiSelectMode;
@@ -162,6 +163,9 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
/** For internal use only. May be removed or replaced in the future. */
public String[] bodyActionKeys;
+ /** For internal use only. May be removed or replaced in the future. */
+ public TreeConnector connector;
+
public VLazyExecutor iconLoaded = new VLazyExecutor(50,
new ScheduledCommand() {
@@ -1729,6 +1733,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
}
}
+ showTooltipForKeyboardNavigation(node);
return true;
}
@@ -1754,6 +1759,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
}
}
+ showTooltipForKeyboardNavigation(node);
return true;
}
@@ -1774,6 +1780,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
focusAndSelectNode(focusedNode.getParentNode());
}
}
+ showTooltipForKeyboardNavigation(focusedNode);
return true;
}
@@ -1792,6 +1799,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
focusAndSelectNode(focusedNode.getChildren().get(0));
}
}
+ showTooltipForKeyboardNavigation(focusedNode);
return true;
}
@@ -1820,6 +1828,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
selectNode(node, true);
}
sendSelectionToServer();
+ showTooltipForKeyboardNavigation(node);
return true;
}
@@ -1836,12 +1845,20 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
selectNode(node, true);
}
sendSelectionToServer();
+ showTooltipForKeyboardNavigation(node);
return true;
}
return false;
}
+ private void showTooltipForKeyboardNavigation(TreeNode node) {
+ if (connector != null) {
+ getClient().getVTooltip().showAssistive(
+ connector.getTooltipInfo(node.nodeCaptionSpan));
+ }
+ }
+
private void focusAndSelectNode(TreeNode node) {
/*
* Keyboard navigation doesn't work reliably if the tree is in
diff --git a/client/src/com/vaadin/client/ui/tree/TreeConnector.java b/client/src/com/vaadin/client/ui/tree/TreeConnector.java
index ef016c31b7..6f89137918 100644
--- a/client/src/com/vaadin/client/ui/tree/TreeConnector.java
+++ b/client/src/com/vaadin/client/ui/tree/TreeConnector.java
@@ -45,6 +45,11 @@ public class TreeConnector extends AbstractComponentConnector implements
protected final Map<TreeNode, TooltipInfo> tooltipMap = new HashMap<TreeNode, TooltipInfo>();
@Override
+ protected void init() {
+ getWidget().connector = this;
+ }
+
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
diff --git a/uitest/src/com/vaadin/tests/components/ErrorMessages.html b/uitest/src/com/vaadin/tests/components/ErrorMessages.html
index 5379ff59e0..2b7032ea79 100644
--- a/uitest/src/com/vaadin/tests/components/ErrorMessages.html
+++ b/uitest/src/com/vaadin/tests/components/ErrorMessages.html
@@ -3,17 +3,17 @@
<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://artur-laptop.office.itmill.com:8888/" />
-<title>New Test</title>
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>ErrorMessages</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
-<tr><td rowspan="1" colspan="3">New Test</td></tr>
+<tr><td rowspan="1" colspan="3">ErrorMessages</td></tr>
</thead><tbody>
<tr>
<td>open</td>
- <td>/run/com.vaadin.tests.components.ErrorMessages</td>
+ <td>/run/com.vaadin.tests.components.ErrorMessages?restartApplication</td>
<td></td>
</tr>
<tr>
diff --git a/uitest/src/com/vaadin/tests/components/button/ButtonsWaiAria.java b/uitest/src/com/vaadin/tests/components/button/ButtonsWaiAria.java
index 1208b8be3b..cc75f87a71 100644
--- a/uitest/src/com/vaadin/tests/components/button/ButtonsWaiAria.java
+++ b/uitest/src/com/vaadin/tests/components/button/ButtonsWaiAria.java
@@ -22,6 +22,7 @@ public class ButtonsWaiAria extends ComponentTestCase<Button> {
l = createButton("Icon Button, empty alt", nat);
l.setIcon(ICON_16_USER_PNG_CACHEABLE);
+ l.setDescription("Empty alt text");
addTestComponent(l);
l = createButton("Icon Button with alt", nat);
diff --git a/uitest/src/com/vaadin/tests/components/form/FormTooltips.html b/uitest/src/com/vaadin/tests/components/form/FormTooltips.html
index ee693fd4be..5e412c3aad 100644
--- a/uitest/src/com/vaadin/tests/components/form/FormTooltips.html
+++ b/uitest/src/com/vaadin/tests/components/form/FormTooltips.html
@@ -3,7 +3,7 @@
<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:8070" />
+<link rel="selenium.base" href="http://localhost:8888" />
<title>FormTooltips</title>
</head>
<body>
@@ -38,10 +38,15 @@
<td></td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>-1000</td>
+</tr>
<!--first name caption tooltip-->
<tr>
<td>showTooltip</td>
@@ -64,10 +69,15 @@
<td></td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>-1000</td>
+</tr>
<!--Form should not have a description tooltip-->
<tr>
<td>showTooltip</td>
@@ -80,9 +90,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]</td>
- <td></td>
+ <td>-1000</td>
</tr>
<!--Form error message should not have a tooltip-->
<tr>
@@ -96,9 +106,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]</td>
- <td></td>
+ <td>-1000</td>
</tr>
<!--last name should have no tooltip-->
<tr>
@@ -112,9 +122,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
- <td></td>
+ <td>-1000</td>
</tr>
<!--last name caption should have no tooltip-->
<tr>
@@ -128,9 +138,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentsformFormTooltips::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
- <td></td>
+ <td>-1000</td>
</tr>
</tbody></table>
diff --git a/uitest/src/com/vaadin/tests/components/slider/SliderTooltip.html b/uitest/src/com/vaadin/tests/components/slider/SliderTooltip.html
index 4e8296050f..806e7d1b44 100644
--- a/uitest/src/com/vaadin/tests/components/slider/SliderTooltip.html
+++ b/uitest/src/com/vaadin/tests/components/slider/SliderTooltip.html
@@ -3,13 +3,13 @@
<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://arturwin.office.itmill.com:9999/" />
-<title>New Test</title>
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>SliderTooltip</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
-<tr><td rowspan="1" colspan="3">New Test</td></tr>
+<tr><td rowspan="1" colspan="3">SliderTooltip</td></tr>
</thead><tbody>
<tr>
<td>open</td>
@@ -57,9 +57,14 @@
<td>40,16</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>pause</td>
<td></td>
+ <td>1000</td>
+</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>-1000</td>
</tr>
</tbody></table>
diff --git a/uitest/src/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.html b/uitest/src/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.html
index eb3efc28fd..2df9fb678c 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.html
+++ b/uitest/src/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.html
@@ -3,13 +3,13 @@
<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://arturwin.office.itmill.com:8888/" />
-<title>New Test</title>
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>TableItemDescriptionGeneratorTest</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
-<tr><td rowspan="1" colspan="3">New Test</td></tr>
+<tr><td rowspan="1" colspan="3">TableItemDescriptionGeneratorTest</td></tr>
</thead><tbody>
<tr>
<td>open</td>
@@ -39,10 +39,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Button tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -65,10 +70,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--TextField tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -91,10 +101,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Cell and row tooltips-->
<tr>
<td>mouseClick</td>
@@ -123,10 +138,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Button tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -149,10 +169,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--TextField tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -175,10 +200,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Row and Component tooltips-->
<tr>
<td>mouseClick</td>
@@ -212,10 +242,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Button tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -238,10 +273,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--TextField tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -264,10 +304,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Row tooltips-->
<tr>
<td>mouseClick</td>
@@ -296,10 +341,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--Button tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -322,10 +372,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
<!--TextField tooltip-->
<tr>
<td>mouseMoveAt</td>
@@ -348,10 +403,15 @@
<td>22,7</td>
</tr>
<tr>
- <td>waitForElementNotPresent</td>
- <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>pause</td>
+ <td>1000</td>
<td></td>
</tr>
+<tr>
+ <td>assertElementPositionLeft</td>
+ <td>vaadin=runTableItemDescriptionGeneratorTest::Root/VTooltip[0]</td>
+ <td>-1000</td>
+</tr>
</tbody></table>
</body>
diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html b/uitest/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html
index d133ab9937..38ff6ab8ca 100644
--- a/uitest/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html
+++ b/uitest/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html
@@ -13,7 +13,7 @@
</thead><tbody>
<tr>
<td>open</td>
- <td>/run/com.vaadin.tests.components.tabsheet.TabsheetTooltip</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabsheetTooltip?restartApplication</td>
<td></td>
</tr>
<tr>
diff --git a/uitest/src/com/vaadin/tests/components/tree/SimpleTree.java b/uitest/src/com/vaadin/tests/components/tree/SimpleTree.java
index 2fd3f05dbb..06b8af1ec6 100644
--- a/uitest/src/com/vaadin/tests/components/tree/SimpleTree.java
+++ b/uitest/src/com/vaadin/tests/components/tree/SimpleTree.java
@@ -8,6 +8,8 @@ import com.vaadin.event.Action;
import com.vaadin.server.ThemeResource;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractSelect;
+import com.vaadin.ui.AbstractSelect.ItemDescriptionGenerator;
+import com.vaadin.ui.Component;
import com.vaadin.ui.Tree;
public class SimpleTree extends TestBase implements Action.Handler {
@@ -53,6 +55,17 @@ public class SimpleTree extends TestBase implements Action.Handler {
tree.setItemIcon(9, notCachedFolderIconLargeOther, "First Choice");
tree.setItemIcon(11, notCachedFolderIconLarge);
+ tree.setItemDescriptionGenerator(new ItemDescriptionGenerator() {
+ @Override
+ public String generateDescription(Component source, Object itemId,
+ Object propertyId) {
+ if ((Integer) itemId == 3) {
+ return "tree item tooltip";
+ }
+ return "";
+ }
+ });
+
// Expand whole tree
for (Object id : tree.rootItemIds()) {
tree.expandItemsRecursively(id);
diff --git a/uitest/src/com/vaadin/tests/components/ui/TooltipConfiguration.html b/uitest/src/com/vaadin/tests/components/ui/TooltipConfiguration.html
index e41cf5e176..338e4a2c5b 100644
--- a/uitest/src/com/vaadin/tests/components/ui/TooltipConfiguration.html
+++ b/uitest/src/com/vaadin/tests/components/ui/TooltipConfiguration.html
@@ -4,12 +4,12 @@
<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>New Test</title>
+<title>TooltipConfiguration</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
-<tr><td rowspan="1" colspan="3">New Test</td></tr>
+<tr><td rowspan="1" colspan="3">TooltipConfiguration</td></tr>
</thead><tbody>
<tr>
<td>open</td>
@@ -43,9 +43,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentsuiTooltipConfiguration::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
- <td></td>
+ <td>-1000</td>
</tr>
<!--Long close delay-->
<tr>
@@ -140,6 +140,7 @@
<td>vaadin=runcomvaadintestscomponentsuiTooltipConfiguration::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
<td>100</td>
</tr>
+
</tbody></table>
</body>
</html>
diff --git a/uitest/src/com/vaadin/tests/components/window/TooltipInWindow.html b/uitest/src/com/vaadin/tests/components/window/TooltipInWindow.html
index 63e371e379..575eb652b7 100644
--- a/uitest/src/com/vaadin/tests/components/window/TooltipInWindow.html
+++ b/uitest/src/com/vaadin/tests/components/window/TooltipInWindow.html
@@ -44,9 +44,9 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::Root/VTooltip[0]</td>
- <td></td>
+ <td>-1000</td>
</tr>
<!--Show tooltip in Window-->
<tr>
@@ -76,10 +76,11 @@
<td></td>
</tr>
<tr>
- <td>assertElementNotPresent</td>
+ <td>assertElementPositionLeft</td>
<td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
- <td></td>
+ <td>-1000</td>
</tr>
+
</tbody></table>
</body>
</html>
diff --git a/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html b/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
index b7c40b4d9e..7c6f9ceb39 100644
--- a/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
+++ b/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
@@ -1,17 +1,17 @@
- <?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>
+<?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:88888/" />
+<title>IntegerRangeValidator</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">IntegerRangeValidator</td></tr>
+</thead><tbody>
+<tr>
<td>open</td>
<td>/run/com.vaadin.tests.fieldgroup.BasicPersonForm?restartApplication</td>
<td></td>
@@ -82,12 +82,7 @@
</tr>
<tr>
<td>showTooltip</td>
- <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForElementPresent</td>
- <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VTooltip[0]</td>
+ <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[5]/VTextField[0]</td>
<td></td>
</tr>
<tr>
@@ -95,7 +90,7 @@
<td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VTooltip[0]/FlowPanel[0]/VErrorMessage[0]/HTML[0]</td>
<td>Must be between 0 and 150, -1 is not</td>
</tr>
-</tbody></table>
- </body>
- </html>
+</tbody></table>
+</body>
+</html>