123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package com.vaadin.tests.components.table;
-
- import com.vaadin.event.dd.DragAndDropEvent;
- import com.vaadin.event.dd.DropHandler;
- import com.vaadin.event.dd.acceptcriteria.AcceptAll;
- import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
- import com.vaadin.server.Resource;
- import com.vaadin.server.ThemeResource;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.ui.Component;
- import com.vaadin.ui.Embedded;
- import com.vaadin.v7.data.Item;
- import com.vaadin.v7.data.util.IndexedContainer;
- import com.vaadin.v7.event.DataBoundTransferable;
- import com.vaadin.v7.ui.AbstractSelect.AbstractSelectTargetDetails;
- import com.vaadin.v7.ui.Label;
- import com.vaadin.v7.ui.Table;
- import com.vaadin.v7.ui.Table.ColumnGenerator;
- import com.vaadin.v7.ui.Table.RowHeaderMode;
- import com.vaadin.v7.ui.Table.TableDragMode;
- import com.vaadin.v7.ui.TextField;
-
- public class TableClickAndDragOnIconAndComponents
- extends AbstractReindeerTestUI {
-
- private static final long serialVersionUID = -2534880024131980135L;
- private Table table;
-
- @Override
- protected void setup(VaadinRequest request) {
- table = new Table();
- table.addContainerProperty("foo", String.class, "foo");
- table.addContainerProperty("red", String.class, "red");
- table.addContainerProperty("icon", Resource.class, null);
- table.setSelectable(true);
- table.setRowHeaderMode(RowHeaderMode.ICON_ONLY);
- table.setItemIconPropertyId("icon");
- table.setId("testable-table");
- addComponent(table);
- for (int i = 0; i < 5; i++) {
- addItemAfter(i + "foo", null);
- }
-
- table.addGeneratedColumn("Label", new ColumnGenerator() {
-
- private static final long serialVersionUID = -5042109683675242407L;
-
- @Override
- public Component generateCell(Table source, Object itemId,
- Object columnId) {
- Item item = source.getItem(itemId);
- return new Label("" + item.getItemProperty("foo").getValue());
- }
- });
- table.addGeneratedColumn("textField", new ColumnGenerator() {
-
- private static final long serialVersionUID = -5042109683675242407L;
-
- @Override
- public Component generateCell(Table source, Object itemId,
- Object columnId) {
- Item item = source.getItem(itemId);
- TextField textfield = new TextField();
- textfield.setValue(
- String.valueOf(item.getItemProperty("foo").getValue()));
- return textfield;
- }
- });
- table.addGeneratedColumn("readOnlyTextField", new ColumnGenerator() {
-
- private static final long serialVersionUID = -5042109683675242407L;
-
- @Override
- public Component generateCell(Table source, Object itemId,
- Object columnId) {
- Item item = source.getItem(itemId);
- TextField textfield = new TextField();
- textfield.setValue(
- String.valueOf(item.getItemProperty("foo").getValue()));
- textfield.setReadOnly(true);
- return textfield;
- }
- });
- table.addGeneratedColumn("embedded", new ColumnGenerator() {
-
- private static final long serialVersionUID = -5042109683675242407L;
-
- @Override
- public Component generateCell(Table source, Object itemId,
- Object columnId) {
- Embedded embedded = new Embedded(null,
- new ThemeResource("../runo/icons/16/ok.png"));
- return embedded;
- }
- });
-
- table.setDragMode(TableDragMode.ROW);
- table.setDropHandler(new DropHandler() {
-
- @Override
- public AcceptCriterion getAcceptCriterion() {
- return AcceptAll.get();
- }
-
- @Override
- public void drop(DragAndDropEvent event) {
- DataBoundTransferable t = (DataBoundTransferable) event
- .getTransferable();
- Object dragged = t.getItemId();
-
- AbstractSelectTargetDetails dropData = ((AbstractSelectTargetDetails) event
- .getTargetDetails());
- Object target = dropData.getItemIdOver();
-
- if (dragged == target || target == null) {
- return;
- }
-
- IndexedContainer container = (IndexedContainer) table
- .getContainerDataSource();
- container.removeItem(dragged);
- addItemAfter(dragged, target);
- }
- });
- }
-
- @SuppressWarnings("unchecked")
- private void addItemAfter(Object itemId, Object afterItemId) {
- Item item;
- if (afterItemId != null) {
- item = table.addItemAfter(afterItemId, itemId);
- } else {
- item = table.addItem(itemId);
- }
- item.getItemProperty("foo").setValue("foo " + itemId);
- item.getItemProperty("red").setValue("red " + itemId);
- item.getItemProperty("icon")
- .setValue(new ThemeResource("../runo/icons/16/ok.png"));
- }
-
- @Override
- protected String getTestDescription() {
- return "Tests that you can click on a row icon in a table to select the row, or to drag the row. Verifies also that the table doesn't capture the click events meant for components inside the table";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 7026;
- }
-
- }
|