Change-Id: Ic707632ee51181e660b64935f68e564bdfc4443btags/7.2.0.beta1
@@ -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(" ")); | |||
} | |||
} | |||
@@ -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()); | |||
} | |||
/** |
@@ -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); | |||
} | |||
} | |||
/** |
@@ -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 |
@@ -44,6 +44,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)) { |
@@ -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> |
@@ -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); |
@@ -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> |
@@ -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> |
@@ -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> |
@@ -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> |
@@ -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); |
@@ -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> |
@@ -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> |
@@ -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> |