/* * Copyright 2000-2016 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.event.Action; import com.vaadin.event.Action.Handler; import com.vaadin.event.ShortcutAction; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.HorizontalLayout; import com.vaadin.v7.ui.Table; /** * A test UI for context menus on different parts of a VSCrollTable. * * This UI has no attached unit test due to the poor support of touch events on * Selenium. * * @since * @author Vaadin Ltd */ public class TabletContextMenu extends AbstractReindeerTestUI { /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server. * VaadinRequest) */ @Override protected void setup(VaadinRequest request) { setSizeFull(); HorizontalLayout layout = new HorizontalLayout(); layout.setSizeFull(); layout.setSpacing(true); addComponent(layout); Table table1 = createTable("no scrolling, has context menu"); addActionHandler(table1); table1.addItem(); layout.addComponent(table1); Table table2 = createTable("should scroll, has context menu"); for (int i = 0; i < 100; ++i) { table2.addItem(); } addActionHandler(table2); layout.addComponent(table2); Table table3 = createTable("no scrolling, no context menu"); table3.addItem(); layout.addComponent(table3); Table table4 = createTable("should scroll, no context menu"); for (int i = 0; i < 100; ++i) { table4.addItem(); } layout.addComponent(table4); } private Table createTable(String caption) { Table table = new Table(caption); table.setImmediate(true); table.addContainerProperty("column1", String.class, "test"); table.setSizeFull(); table.setHeight("500px"); table.setSelectable(true); return table; } private void addActionHandler(Table table) { table.addActionHandler(new Handler() { Action tabNext = new ShortcutAction("Shift", ShortcutAction.KeyCode.TAB, null); Action tabPrev = new ShortcutAction("Shift+Tab", ShortcutAction.KeyCode.TAB, new int[] { ShortcutAction.ModifierKey.SHIFT }); Action curDown = new ShortcutAction("Down", ShortcutAction.KeyCode.ARROW_DOWN, null); Action curUp = new ShortcutAction("Up", ShortcutAction.KeyCode.ARROW_UP, null); Action enter = new ShortcutAction("Enter", ShortcutAction.KeyCode.ENTER, null); Action add = new ShortcutAction("Add Below", ShortcutAction.KeyCode.A, null); Action delete = new ShortcutAction("Delete", ShortcutAction.KeyCode.DELETE, null); @Override public void handleAction(Action action, Object sender, Object target) { System.out.println(action.getCaption()); } @Override public Action[] getActions(Object target, Object sender) { return new Action[] { tabNext, tabPrev, curDown, curUp, enter, add, delete }; } }); } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription() */ @Override protected String getTestDescription() { return "Make sure empty table parts have context menu on touch screen devices"; } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber() */ @Override protected Integer getTicketNumber() { return 13694; } }