package com.vaadin.tests.tickets; import com.vaadin.data.Container; import com.vaadin.event.ItemClickEvent; import com.vaadin.tests.TestForTablesInitialColumnWidthLogicRendering; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.LegacyWindow; import com.vaadin.ui.Panel; import com.vaadin.ui.Table; import com.vaadin.ui.TextField; import com.vaadin.ui.Tree; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; public class Ticket2009 extends com.vaadin.server.LegacyApplication { TextField f = new TextField(); @Override public void init() { final LegacyWindow main = new LegacyWindow(getClass().getName() .substring(getClass().getName().lastIndexOf(".") + 1)); setMainWindow(main); HorizontalLayout ol = new HorizontalLayout(); main.setContent(ol); ol.setSizeFull(); VerticalLayout pl = new VerticalLayout(); pl.setMargin(true); Panel p = new Panel("Tree test", pl); p.setSizeFull(); Tree t = new Tree(); t.addItem("Foo"); t.addItem("Bar"); final VerticalLayout events = new VerticalLayout(); t.addListener(new ItemClickEvent.ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { events.addComponent(new Label(new Label("Click:" + (event.isDoubleClick() ? "double" : "single") + " button:" + event.getButtonName() + " propertyId:" + event.getPropertyId() + " itemID:" + event.getItemId() + " item:" + event.getItem()))); } }); main.addComponent(p); pl.addComponent(t); pl.addComponent(events); VerticalLayout p2l = new VerticalLayout(); p2l.setMargin(true); Panel p2 = new Panel("Table test (try dbl click also)", p2l); p2.setSizeFull(); final VerticalLayout events2 = new VerticalLayout(); Table table = TestForTablesInitialColumnWidthLogicRendering .getTestTable(5, 100); table.setRowHeaderMode(Table.ROW_HEADER_MODE_ID); table.addListener(new ItemClickEvent.ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { events2.addComponent(new Label("Click:" + (event.isDoubleClick() ? "double" : "single") + " button:" + event.getButtonName() + " propertyId:" + event.getPropertyId() + " itemID:" + event.getItemId() + " item:" + event.getItem())); if (event.isDoubleClick()) { new PropertyEditor(event); } } }); p2l.addComponent(table); p2l.addComponent(events2); main.addComponent(p2); } class PropertyEditor extends Window { private static final int W = 300; private static final int H = 150; private Container c; private Object itemid; private Object propertyid; TextField editor = new TextField(); Button done = new Button("Done"); PropertyEditor(ItemClickEvent event) { VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); setContent(layout); c = (Container) event.getSource(); propertyid = event.getPropertyId(); itemid = event.getItemId(); setCaption("Editing " + itemid + " : " + propertyid); editor.setPropertyDataSource(c.getContainerProperty(itemid, propertyid)); layout.addComponent(editor); layout.addComponent(done); setWidth(W + "px"); setHeight(H + "px"); setPositionX(event.getClientX() - W / 2); setPositionY(event.getClientY() - H / 2); getMainWindow().addWindow(this); done.addListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { getMainWindow().removeWindow(PropertyEditor.this); } }); } } }