import java.util.HashMap;
import java.util.Map;
-import com.vaadin.shared.MouseEventDetails;
-
/**
* A HashMap backed implementation of {@link TargetDetails} for terminal
* implementation and for extension.
this.dropTarget = dropTarget;
}
- /**
- * @return details about the actual event that caused the event details.
- * Practically mouse move or mouse up.
- */
- public MouseEventDetails getMouseEvent() {
- return MouseEventDetails.deSerialize((String) getData("mouseEvent"));
- }
-
@Override
public Object getData(String key) {
return data.get(key);
@Override
public TargetDetails translateDropTargetDetails(
Map<String, Object> clientVariables) {
- Map<String, Object> serverVariables = new HashMap<String, Object>();
+ Map<String, Object> serverVariables = new HashMap<String, Object>(1);
if (clientVariables.containsKey("dropSlotIndex")) {
int slotIndex = (Integer) clientVariables.get("dropSlotIndex");
currentCalendar.add(java.util.Calendar.DATE, dayIndex);
serverVariables.put("dropDay", currentCalendar.getTime());
}
- serverVariables.put("mouseEvent", clientVariables.get("mouseEvent"));
CalendarTargetDetails td = new CalendarTargetDetails(serverVariables,
this);
return (Integer) getData("absoluteTop");
}
+ /**
+ * @return details about the actual event that caused the event details.
+ * Practically mouse move or mouse up.
+ */
+ public MouseEventDetails getMouseEvent() {
+ return MouseEventDetails
+ .deSerialize((String) getData("mouseEvent"));
+ }
+
/**
* @return a detail about the drags vertical position over the wrapper.
*/
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.calendar;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.table.DndTableTargetDetails;
-import com.vaadin.ui.Calendar;
-
-/**
- * Test UI for calendar as a drop target: CalendarTargetDetails should provide
- * getMouseEvent() method.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndCalendarTargetDetails extends DndTableTargetDetails {
-
- @Override
- protected void setup(VaadinRequest request) {
- createSourceTable();
-
- Calendar calendar = new Calendar();
- calendar.addStyleName("target");
- calendar.setDropHandler(new TestDropHandler());
- calendar.setWidth(100, Unit.PERCENTAGE);
- addComponent(calendar);
- }
-
- @Override
- protected String getTestDescription() {
- return "Mouse details should be available for CalendarTargetDetails DnD when calendar is a target";
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.calendar;
-
-import org.openqa.selenium.WebElement;
-
-import com.vaadin.testbench.By;
-import com.vaadin.tests.components.table.DndTableTargetDetailsTest;
-
-/**
- * Test for mouse details in CalendarTargetDetails class when DnD target is a
- * calendar.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndCalendarTargetDetailsTest extends DndTableTargetDetailsTest {
-
- @Override
- protected WebElement getTarget() {
- return driver.findElement(By.className("v-datecellslot-even"));
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.table;
-
-import com.vaadin.data.util.BeanItemContainer;
-import com.vaadin.event.dd.DragAndDropEvent;
-import com.vaadin.event.dd.DropHandler;
-import com.vaadin.event.dd.TargetDetailsImpl;
-import com.vaadin.event.dd.acceptcriteria.AcceptAll;
-import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.shared.MouseEventDetails;
-import com.vaadin.tests.components.AbstractTestUI;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.Table.TableDragMode;
-import com.vaadin.ui.VerticalLayout;
-
-/**
- * Test UI for table as a drop target: AbstractSelectTargetDetails should
- * provide getMouseEvent() method.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndTableTargetDetails extends AbstractTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- createSourceTable();
-
- Table target = new Table();
- BeanItemContainer<TestBean> container = new BeanItemContainer<TestBean>(
- TestBean.class);
- container.addBean(new TestBean("target-item"));
- target.setContainerDataSource(container);
- target.setPageLength(1);
- target.addStyleName("target");
- target.setWidth(100, Unit.PERCENTAGE);
- target.setDropHandler(new TestDropHandler());
- addComponent(target);
- }
-
- protected void createSourceTable() {
- Table table = new Table();
- table.setPageLength(1);
- table.setDragMode(TableDragMode.ROW);
- table.setWidth(100, Unit.PERCENTAGE);
- BeanItemContainer<TestBean> container = new BeanItemContainer<TestBean>(
- TestBean.class);
- container.addBean(new TestBean("item"));
- table.setContainerDataSource(container);
- addComponent(table);
- }
-
- @Override
- protected String getTestDescription() {
- return "Mouse details should be available for AbstractSelectTargetDetails DnD when table is a target";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 13416;
- }
-
- protected static class TestDropHandler implements DropHandler {
-
- public TestDropHandler() {
- }
-
- @Override
- public void drop(DragAndDropEvent event) {
- TargetDetailsImpl details = (TargetDetailsImpl) event
- .getTargetDetails();
- MouseEventDetails mouseDetails = details.getMouseEvent();
-
- VerticalLayout layout = (VerticalLayout) details.getTarget()
- .getUI().getContent();
-
- Label name = new Label("Button name="
- + mouseDetails.getButtonName());
- name.addStyleName("dnd-button-name");
- layout.addComponent(name);
- if (mouseDetails.isCtrlKey()) {
- name.addStyleName("ctrl");
- }
- if (mouseDetails.isAltKey()) {
- name.addStyleName("alt");
- }
- if (mouseDetails.isShiftKey()) {
- name.addStyleName("shift");
- }
-
- layout.addComponent(name);
- }
-
- @Override
- public AcceptCriterion getAcceptCriterion() {
- return AcceptAll.get();
- }
-
- }
-
- public static class TestBean {
- private String name;
-
- public TestBean(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.table;
-
-import java.io.IOException;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.openqa.selenium.Keys;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.interactions.Actions;
-
-import com.vaadin.testbench.By;
-import com.vaadin.tests.tb3.MultiBrowserTest;
-
-/**
- * Test for mouse details in AbstractSelectTargetDetails class when DnD target
- * is a table.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndTableTargetDetailsTest extends MultiBrowserTest {
-
- @Test
- public void testMouseDetails() throws IOException, InterruptedException {
- openTestURL();
-
- WebElement row = driver.findElement(By
- .className("v-table-cell-wrapper"));
-
- Actions actions = new Actions(driver);
- actions.moveToElement(row);
- pressKeys(actions);
- actions.clickAndHold();
- actions.release(getTarget());
- actions.build().perform();
-
- WebElement label = driver.findElement(By.className("dnd-button-name"));
- Assert.assertEquals("Button name=left", label.getText());
- checkPressedKeys();
- }
-
- protected WebElement getTarget() {
- return driver.findElement(By.className("target")).findElement(
- By.className("v-table-row-spacer"));
- }
-
- protected void pressKeys(Actions actions) {
- actions.keyDown(Keys.CONTROL);
- }
-
- protected void checkPressedKeys() {
- Assert.assertTrue(isElementPresent(By.className("ctrl")));
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.tree;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.table.DndTableTargetDetails;
-import com.vaadin.ui.Tree;
-
-/**
- * Test UI for tree as a drop target: AbstractSelectTargetDetails should provide
- * getMouseEvent() method.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndTreeTargetDetails extends DndTableTargetDetails {
-
- @Override
- protected void setup(VaadinRequest request) {
- createSourceTable();
-
- Tree target = new Tree();
- target.addStyleName("target");
- target.setWidth(100, Unit.PERCENTAGE);
- target.addItem("treeItem");
- target.setDropHandler(new TestDropHandler());
- addComponent(target);
- }
-
- @Override
- protected String getTestDescription() {
- return "Mouse details should be available for AbstractSelectTargetDetails DnD when tree is a target";
- }
-
-}
+++ /dev/null
-/*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.components.tree;
-
-import org.openqa.selenium.WebElement;
-
-import com.vaadin.testbench.By;
-import com.vaadin.tests.components.table.DndTableTargetDetailsTest;
-
-/**
- * Test for mouse details in AbstractSelectTargetDetails class when DnD target
- * is a tree.
- *
- * @since 7.3
- * @author Vaadin Ltd
- */
-public class DndTreeTargetDetailsTest extends DndTableTargetDetailsTest {
-
- @Override
- protected WebElement getTarget() {
- return driver.findElement(By.className("target"));
- }
-
-}