package com.vaadin.tests.components.table; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.MouseEventDetails; import com.vaadin.shared.ui.ContentMode; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Label; import com.vaadin.ui.Window; import com.vaadin.v7.data.util.BeanItemContainer; import com.vaadin.v7.ui.Table; public class HeaderRightClickAfterDrag extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { Table table = new Table(); table.setContainerDataSource(new BeanItemContainer<>(TestBean.class)); for (int i = 0; i < 10; i++) { table.addItem(new TestBean(i)); } table.setPageLength(10); table.setColumnReorderingAllowed(true); table.addHeaderClickListener(new Table.HeaderClickListener() { @Override public void headerClick(Table.HeaderClickEvent event) { if (MouseEventDetails.MouseButton.RIGHT .equals(event.getButton())) { Window window = new Window("Right-clicked:", new Label( "<center>" + event.getPropertyId().toString() .toUpperCase() + "</center>", ContentMode.HTML)); window.setPositionX(event.getClientX()); window.setPositionY(event.getClientY()); window.setResizable(false); addWindow(window); } } }); addComponent(table); } @Override protected String getTestDescription() { return "1) Right click a column header and see a popup<br>" + "2) Reorder (or at least start dragging) that column<br>" + "3) Right click that same column header, and you should get a popup again.<br>" + "Before fix: no popup, unless you first left-click the header."; } @Override protected Integer getTicketNumber() { return 15167; } public class TestBean { private String foo, bar, baz, fiz; public TestBean(int i) { foo = "Foo " + i; bar = "Bar " + i; baz = "Baz " + i; fiz = "Fix " + i; } public String getFoo() { return foo; } public String getBar() { return bar; } public String getBaz() { return baz; } public String getFiz() { return fiz; } } }