diff options
author | Artur Signell <artur.signell@itmill.com> | 2011-10-05 13:23:06 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2011-10-05 13:23:06 +0000 |
commit | 5e80aef92f382aa58451188f147573bc35cf123b (patch) | |
tree | 056a170e0248c4eb1173517260c5bbd70232d9f3 /tests | |
parent | 353a5c81e0d67aac84d46e1a9ba2d674aa5e3c06 (diff) | |
download | vaadin-framework-5e80aef92f382aa58451188f147573bc35cf123b.tar.gz vaadin-framework-5e80aef92f382aa58451188f147573bc35cf123b.zip |
#7708 Added code for handling tooltip events in VDragAndDropWrapper + test
svn changeset:21580/svn branch:6.7
Diffstat (limited to 'tests')
2 files changed, 183 insertions, 0 deletions
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.html b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.html new file mode 100644 index 0000000000..13d6312cf7 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.html @@ -0,0 +1,52 @@ +<?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.draganddropwrapper.DragAndDropWrapperTooltips?restartApplication</td> + <td></td> +</tr> +<tr> + <td>showTooltip</td> + <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragAndDropWrapperTooltips::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VDragAndDropWrapper[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VDragAndDropWrapper[2]</td> + <td>0,0</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>tooltip-initial</td> +</tr> +<tr> + <td>drag</td> + <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragAndDropWrapperTooltips::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VDragAndDropWrapper[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VDragAndDropWrapper[3]</td> + <td>30,41</td> +</tr> +<tr> + <td>drop</td> + <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragAndDropWrapperTooltips::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VDragAndDropWrapper[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VDragAndDropWrapper[1]</td> + <td>4,42</td> +</tr> +<tr> + <td>showTooltip</td> + <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragAndDropWrapperTooltips::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VDragAndDropWrapper[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VDragAndDropWrapper[0]/VLabel[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>tooltip-after-drag</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java new file mode 100644 index 0000000000..b147392480 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java @@ -0,0 +1,131 @@ +package com.vaadin.tests.components.draganddropwrapper; + +import java.util.Iterator; + +import com.vaadin.event.Transferable; +import com.vaadin.event.TransferableImpl; +import com.vaadin.event.dd.DragAndDropEvent; +import com.vaadin.event.dd.DropHandler; +import com.vaadin.event.dd.DropTarget; +import com.vaadin.event.dd.TargetDetails; +import com.vaadin.event.dd.acceptcriteria.AcceptAll; +import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; +import com.vaadin.tests.components.TestBase; +import com.vaadin.tests.util.TestUtils; +import com.vaadin.ui.Component; +import com.vaadin.ui.CssLayout; +import com.vaadin.ui.DragAndDropWrapper; +import com.vaadin.ui.Label; +import com.vaadin.ui.VerticalLayout; + +public class DragAndDropWrapperTooltips extends TestBase { + + private final String BASE = ".greenblock {vertical-align: middle; float:left; width:60px;height:60px;background: green !important; padding:0; margin:2px;-webkit-transition: width 0.3s ease-in-out;color: white;}"; + private final String B2 = ".b2 {background-color: red !important;}"; + private final String B3 = ".b3 {background-color: yellow !important;color: black;}"; + private final String B4 = ".b4 {background-color: blue !important;}"; + private final String HIDEDRAGSOURCE = ".v-active-drag-source { overflow:hidden; width:0px !important;}"; + private DragAndDropWrapper dragAndDropWrapper; + + @Override + protected void setup() { + TestUtils.injectCSS(getMainWindow(), BASE + B4 + B2 + B3 + + HIDEDRAGSOURCE); + + VerticalLayout l = new VerticalLayout(); + l.setWidth("400px"); + l.setHeight("100px"); + dragAndDropWrapper = new DragAndDropWrapper(cssLayout); + dragAndDropWrapper + .setDescription("Tooltip for the wrapper wrapping all the draggable layouts"); + dragAndDropWrapper.setSizeFull(); + l.addComponent(dragAndDropWrapper); + + addComponent(l); + + for (int i = 1; i <= 4; i++) { + WrappedLabel wl = new WrappedLabel("Block"); + wl.addStyleName("b" + i); + cssLayout.addComponent(wl); + } + + } + + int count; + + private CssLayout cssLayout = new CssLayout() { + }; + + class WrappedLabel extends DragAndDropWrapper { + + private static final long serialVersionUID = 1L; + + public WrappedLabel(String content) { + super(new Label(content + " " + ++count)); + getCompositionRoot().setSizeUndefined(); + setHeight("60px"); // FIXME custom component seems to be broken: + // can't set height with css only + setWidth("60px"); + setDragStartMode(DragStartMode.WRAPPER); + addStyleName("greenblock"); + } + + @Override + public DropHandler getDropHandler() { + return dh; + } + + } + + private DropHandler dh = new DropHandler() { + + public AcceptCriterion getAcceptCriterion() { + return AcceptAll.get(); + } + + public void drop(DragAndDropEvent dropEvent) { + Transferable transferable = dropEvent.getTransferable(); + if (transferable instanceof TransferableImpl) { + TransferableImpl ct = (TransferableImpl) transferable; + Component sourceComponent = ct.getSourceComponent(); + if (sourceComponent instanceof WrappedLabel) { + int index = 1; + Iterator<Component> componentIterator = cssLayout + .getComponentIterator(); + Component next = componentIterator.next(); + TargetDetails dropTargetData = dropEvent.getTargetDetails(); + DropTarget target = dropTargetData.getTarget(); + while (next != target) { + if (next != sourceComponent) { + index++; + } + next = componentIterator.next(); + } + if (dropTargetData.getData("horizontalLocation").equals( + "LEFT")) { + index--; + if (index < 0) { + index = 0; + } + } + + cssLayout.removeComponent(sourceComponent); + cssLayout.addComponent(sourceComponent, index); + + dragAndDropWrapper + .setDescription("Drag was performed and tooltip was changed"); + } + } + } + }; + + @Override + protected String getDescription() { + return "A tooltip should be shown when hovering the DragAndDropWrapper containing all the draggable layouts"; + } + + @Override + protected Integer getTicketNumber() { + return 7708; + } +} |