Package com.vaadin.tests.components.menubar

Source Code of com.vaadin.tests.components.menubar.MenuBarsWithNesting

/*
* Copyright 2000-2014 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.menubar;

import com.vaadin.server.FontAwesome;
import com.vaadin.server.Resource;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Label;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.MenuBar.MenuItem;

/**
* A UI for testing VMenuBar.getSubPartElement(String). The UI contains two
* MenuBars, one without icons and one containing items with and without icons.
* Some of the icons are textual (using FontAwesome) and should behave like
* items with image icons: the icon should not be considered to be a part of the
* item's caption.
*
* @since
* @author Vaadin
*/
@SuppressWarnings("serial")
public class MenuBarsWithNesting extends AbstractTestUI {

    // The label displays the last selection.
    private final Label label = new Label("Initial content");

    // The captions and icons used in the second MenuBar.
    public final static String[] itemNames = { "Icon item", "Arrow down",
            "Arrow up", "Warning" };
    private final static Resource[] itemIcons = {
            new ThemeResource("window/img/restore.png"),
            FontAwesome.ARROW_DOWN, FontAwesome.ARROW_UP, FontAwesome.WARNING };

    // The last menu item is nested with the following submenu items.
    public final static String[] nestedItemnames = { "No icon", "Font icon",
            "Image icon" };
    private final static Resource[] nestedItemIcons = { null, FontAwesome.LINK,
            new ThemeResource("window/img/restore.png") };

    private MenuBar.Command selectionCommand;

    @Override
    protected void setup(VaadinRequest request) {
        selectionCommand = new MenuBar.Command() {
            @Override
            public void menuSelected(MenuItem selectedItem) {
                label.setValue(selectedItem.getText());
            }
        };
        addComponent(createFirstMenuBar());
        addComponent(createSecondMenuBar());
        addComponent(label);
    }

    /*
     * Returns a menu bar with three levels of nesting but no icons.
     */
    private MenuBar createFirstMenuBar() {
        MenuBar menuBar = new MenuBar();
        MenuItem file = menuBar.addItem("File", null);
        file.addItem("Open", selectionCommand);
        file.addItem("Save", selectionCommand);
        file.addItem("Save As..", selectionCommand);
        file.addSeparator();
        MenuItem export = file.addItem("Export..", null);
        export.addItem("As PDF...", selectionCommand);
        export.addItem("As Doc...", selectionCommand);
        file.addSeparator();
        file.addItem("Exit", selectionCommand);

        MenuItem edit = menuBar.addItem("Edit", null);
        edit.addItem("Copy", selectionCommand);
        edit.addItem("Cut", selectionCommand);
        edit.addItem("Paste", selectionCommand);

        menuBar.addItem("Help", selectionCommand);
        return menuBar;
    }

    /*
     * Returns a menu bar containing items with icons. The last menu item is
     * nested and its submenu contains items with and without icons.
     */
    private MenuBar createSecondMenuBar() {
        MenuBar menuBar = new MenuBar();
        int n = itemNames.length;
        for (int i = 0; i < n - 1; i++) {
            menuBar.addItem(itemNames[i], itemIcons[i], selectionCommand);
        }
        MenuItem last = menuBar.addItem(itemNames[n - 1], itemIcons[n - 1],
                null);
        for (int i = 0; i < nestedItemnames.length; i++) {
            last.addItem(nestedItemnames[i], nestedItemIcons[i],
                    selectionCommand);
        }
        return menuBar;
    }

    @Override
    protected String getTestDescription() {
        return "This UI is used for testing subpart functionality of MenuBar. The "
                + "functionality is used in TestBench tests.";
    }

    @Override
    protected Integer getTicketNumber() {
        return 14879;
    }
}
TOP

Related Classes of com.vaadin.tests.components.menubar.MenuBarsWithNesting

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.