com.rex.components.valo.MenuBars.java Source code

Java tutorial

Introduction

Here is the source code for com.rex.components.valo.MenuBars.java

Source

/*
 * 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.rex.components.valo;

import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.server.FontAwesome;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.MenuBar.Command;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.Notification;
import com.vaadin.ui.VerticalLayout;

public class MenuBars extends VerticalLayout implements View {
    public MenuBars() {
        setMargin(true);
        setSpacing(true);

        Label h1 = new Label("Menu Bars");
        h1.addStyleName("h1");
        addComponent(h1);

        MenuBar menuBar = getMenuBar();
        menuBar.setCaption("Normal style");
        addComponent(menuBar);

        menuBar = getMenuBar();
        menuBar.setCaption("Small style");
        menuBar.addStyleName("small");
        addComponent(menuBar);

        menuBar = getMenuBar();
        menuBar.setCaption("Borderless style");
        menuBar.addStyleName("borderless");
        addComponent(menuBar);

        menuBar = getMenuBar();
        menuBar.setCaption("Small borderless style");
        menuBar.addStyleName("borderless");
        menuBar.addStyleName("small");
        addComponent(menuBar);

        Label h2 = new Label("Drop Down Button");
        h2.addStyleName("h2");
        addComponent(h2);

        HorizontalLayout wrap = new HorizontalLayout();
        wrap.addStyleName("wrapping");
        wrap.setSpacing(true);
        addComponent(wrap);

        wrap.addComponent(getMenuButton("Normal", false));

        MenuBar split = getMenuButton("Small", false);
        split.addStyleName("small");
        wrap.addComponent(split);

        split = getMenuButton("Borderless", false);
        split.addStyleName("borderless");
        wrap.addComponent(split);

        split = getMenuButton("Themed", false);
        split.addStyleName("color1");
        wrap.addComponent(split);

        split = getMenuButton("Small", false);
        split.addStyleName("color1");
        split.addStyleName("small");
        wrap.addComponent(split);

        h2 = new Label("Split Button");
        h2.addStyleName("h2");
        addComponent(h2);

        wrap = new HorizontalLayout();
        wrap.addStyleName("wrapping");
        wrap.setSpacing(true);
        addComponent(wrap);

        wrap.addComponent(getMenuButton("Normal", true));

        split = getMenuButton("Small", true);
        split.addStyleName("small");
        wrap.addComponent(split);

        split = getMenuButton("Borderless", true);
        split.addStyleName("borderless");
        wrap.addComponent(split);

        split = getMenuButton("Themed", true);
        split.addStyleName("color1");
        wrap.addComponent(split);

        split = getMenuButton("Small", true);
        split.addStyleName("color1");
        split.addStyleName("small");
        wrap.addComponent(split);
    }

    static MenuBar getMenuBar() {
        Command click = new Command() {
            @Override
            public void menuSelected(MenuItem selectedItem) {
                Notification.show("Clicked " + selectedItem.getText());
            }
        };

        MenuBar menubar = new MenuBar();
        menubar.setWidth("100%");
        final MenuBar.MenuItem file = menubar.addItem("File", null);
        final MenuBar.MenuItem newItem = file.addItem("New", null);
        file.addItem("Open file...", click);
        file.addSeparator();

        newItem.addItem("File", click);
        newItem.addItem("Folder", click);
        newItem.addItem("Project...", click);

        file.addItem("Close", click);
        file.addItem("Close All", click);
        file.addSeparator();

        file.addItem("Save", click);
        file.addItem("Save As...", click);
        file.addItem("Save All", click);

        final MenuBar.MenuItem edit = menubar.addItem("Edit", null);
        edit.addItem("Undo", click);
        edit.addItem("Redo", click).setEnabled(false);
        edit.addSeparator();

        edit.addItem("Cut", click);
        edit.addItem("Copy", click);
        edit.addItem("Paste", click);
        edit.addSeparator();

        final MenuBar.MenuItem find = edit.addItem("Find/Replace", null);

        find.addItem("Google Search", click);
        find.addSeparator();
        find.addItem("Find/Replace...", click);
        find.addItem("Find Next", click);
        find.addItem("Find Previous", click);

        Command check = new Command() {
            @Override
            public void menuSelected(MenuItem selectedItem) {
                Notification.show(selectedItem.isChecked() ? "Checked" : "Unchecked");
            }
        };

        final MenuBar.MenuItem view = menubar.addItem("View", null);
        view.addItem("Show Status Bar", check).setCheckable(true);
        MenuItem title = view.addItem("Show Title Bar", check);
        title.setCheckable(true);
        title.setChecked(true);
        view.addItem("Customize Toolbar...", click);
        view.addSeparator();

        view.addItem("Actual Size", click);
        view.addItem("Zoom In", click);
        view.addItem("Zoom Out", click);

        TestIcon testIcon = new TestIcon(50);

        MenuItem fav = menubar.addItem("", check);
        fav.setIcon(testIcon.get());
        fav.setStyleName("icon-only");
        fav.setCheckable(true);
        fav.setChecked(true);

        fav = menubar.addItem("", check);
        fav.setIcon(testIcon.get());
        fav.setStyleName("icon-only");
        fav.setCheckable(true);
        fav.setCheckable(true);

        menubar.addItem("Attach", click).setIcon(FontAwesome.PAPERCLIP);
        menubar.addItem("Undo", click).setIcon(FontAwesome.UNDO);
        MenuItem redo = menubar.addItem("Redo", click);
        redo.setIcon(FontAwesome.REPEAT);
        redo.setEnabled(false);
        menubar.addItem("Upload", click).setIcon(FontAwesome.UPLOAD);

        return menubar;
    }

    static MenuBar getToolBar() {
        MenuBar menubar = new MenuBar();
        menubar.setWidth("100%");

        MenuItem fav = menubar.addItem("", null);
        fav.setIcon(FontAwesome.ALIGN_LEFT);
        fav.setStyleName("icon-only");
        fav.setCheckable(true);
        // fav.setChecked(true);

        fav = menubar.addItem("", null);
        fav.setIcon(FontAwesome.ALIGN_CENTER);
        fav.setStyleName("icon-only");
        fav.setCheckable(true);

        fav = menubar.addItem("", null);
        fav.setIcon(FontAwesome.ALIGN_RIGHT);
        fav.setStyleName("icon-only");
        fav.setCheckable(true);

        MenuItem clip = menubar.addItem("", null);
        clip.setIcon(FontAwesome.PAPERCLIP);
        clip.setStyleName("icon-only");

        MenuItem undo = menubar.addItem("", null);
        undo.setIcon(FontAwesome.UNDO);
        undo.setStyleName("icon-only");

        MenuItem redo = menubar.addItem("", null);
        redo.setIcon(FontAwesome.REPEAT);
        redo.setEnabled(false);
        redo.setStyleName("icon-only");

        return menubar;
    }

    static MenuBar getMenuButton(String caption, boolean splitButton) {
        MenuBar split = new MenuBar();
        MenuBar.MenuItem dropdown = split.addItem(caption, null);
        if (splitButton) {
            dropdown = split.addItem("", null);
        }
        dropdown.addItem("Another Action", null);
        dropdown.addItem("Secondary Action", null);
        dropdown.addSeparator();
        dropdown.addItem("Last Action", null);

        return split;
    }

    @Override
    public void enter(ViewChangeEvent event) {
        // TODO Auto-generated method stub

    }

}