package com.vaadin.tests.components.table; 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.shared.ui.label.ContentMode; import com.vaadin.v7.ui.Label; import com.vaadin.v7.ui.Table; public class LabelEmbeddedClickThroughForTable extends AbstractReindeerTestUI { @Override protected String getTestDescription() { return "Clicking on a Label or Embedded inside a Table should select the row in the same way that clicking on a text selects the row."; } @Override protected Integer getTicketNumber() { return 2688; } @SuppressWarnings("unchecked") @Override protected void setup(VaadinRequest request) { Table table = new Table(); table.setHeight("500px"); table.setSelectable(true); table.addContainerProperty("Column 1", String.class, ""); table.addContainerProperty("Column 2", Component.class, ""); table.addContainerProperty("Column 3", Component.class, ""); table.addContainerProperty("Column 4", Component.class, ""); Item item = table.addItem("Item 1 (row 1)"); item.getItemProperty("Column 1").setValue("String A"); item.getItemProperty("Column 2").setValue(new Label("Label A")); item.getItemProperty("Column 3") .setValue(new Label("Label A", ContentMode.HTML)); item.getItemProperty("Column 4") .setValue(new Embedded("An embedded image", new ThemeResource("../runo/icons/32/ok.png"))); item = table.addItem("Item 2 (row 2)"); item.getItemProperty("Column 1").setValue("String B"); item.getItemProperty("Column 2").setValue(new Label("Label B")); item.getItemProperty("Column 3").setValue(new Label( "Label B", ContentMode.HTML)); item.getItemProperty("Column 4").setValue(new Embedded("", new ThemeResource("../runo/icons/32/cancel.png"))); table.addItemClickListener(event -> System.out .println("Clickevent on item " + event.getItemId() + ", column: " + event.getPropertyId())); addComponent(table); } }