Package org.gwtoolbox.sample.widget.client.button

Source Code of org.gwtoolbox.sample.widget.client.button.SimpleMenuButtonSample

package org.gwtoolbox.sample.widget.client.button;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.*;
import org.gwtoolbox.commons.ui.client.ggrowl.GGrowl;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.widget.client.WidgetImages;
import org.gwtoolbox.widget.client.button.SimpleButton;
import org.gwtoolbox.widget.client.button.SimpleMenuButton;
import org.gwtoolbox.widget.client.menu.Menu;

/**
* @author Uri Boness
*/
@Component
@ButtonSample
public class SimpleMenuButtonSample extends Composite implements SamplePanel {

    public SimpleMenuButtonSample() {

        HorizontalPanel buttons = new HorizontalPanel();

        SimpleMenuButton button = new SimpleMenuButton("Vertical Menu", true);
        Menu menu = button.getMenu();
        menu.addItem("Item 1", new Command() {
            public void execute() {
                showMessage("Item 1 was clicked");
            }
        });
        menu.addItem("Item 2", new Command() {
            public void execute() {
                showMessage("Item 2 was clicked");
            }
        });

        Menu subMenu = new Menu(true);
        subMenu.addItem("Item 3", new Command() {
            public void execute() {
                showMessage("Item 3 was clicked");
            }
        });
        menu.addItem("Sub Menu", subMenu);
        buttons.add(button);

        addGap(buttons, "20px");

        button = new SimpleMenuButton("Horizontal Menu", false);
        menu = button.getMenu();
        menu.addItem("Item 1", new Command() {
            public void execute() {
                showMessage("Item 1 was clicked");
            }
        });
        menu.addItem("Item 2", new Command() {
            public void execute() {
                showMessage("Item 2 was clicked");
            }
        });

        subMenu = new Menu(true);
        subMenu.addItem("Item 3", new Command() {
            public void execute() {
                showMessage("Item 3 was clicked");
            }
        });
        menu.addItem("Sub Menu", subMenu);
        buttons.add(button);

        addGap(buttons, "20px");

        SimpleButton sb = new SimpleButton(WidgetImages.Instance.get().icon_CubeBlue().createImage());
        button = new SimpleMenuButton(sb, true);
        menu = button.getMenu();
        menu.addItem("Item 4", new Command() {
            public void execute() {
                showMessage("Item 1 was clicked");
            }
        });
        menu.addItem("Item 5", new Command() {
            public void execute() {
                showMessage("Item 2 was clicked");
            }
        });
        buttons.add(button);

        addGap(buttons, "40px");

        sb = new SimpleButton(WidgetImages.Instance.get().icon_CubeBlue().createImage());
        final SimpleMenuButton smb = new SimpleMenuButton(sb, true);
        buttons.add(smb);

        addGap(buttons, "20px");
        SimpleButton addItemBtn = new SimpleButton("Add Item", new ClickHandler() {
            public void onClick(ClickEvent event) {
                smb.getMenu().addItem("Item 4", new Command() {
                    public void execute() {
                        showMessage("Item 1 was clicked");
                    }
                });
            }
        });
        buttons.add(addItemBtn);

        addGap(buttons, "20px");
        SimpleButton removeItemBtn = new SimpleButton("Remove Items", new ClickHandler() {
            public void onClick(ClickEvent event) {
                smb.getMenu().clearItems();
            }
        });
        buttons.add(removeItemBtn);

       
        VerticalPanel main = new VerticalPanel();

        main.add(buttons);
        main.setCellWidth(buttons, "100%");

        Label gap = new Label();
        main.add(gap);
        main.setCellHeight(gap, "100%");

        initWidget(main);
    }

    public String getName() {
        return "Menu Button";
    }

    public Widget getContentWidget() {
        return this;
    }

    public void reset() {
        // do nothing
    }

    //============================================== Helper Methods ====================================================

    private void addGap(HorizontalPanel panel, String width) {
        Label gap = new Label();
        panel.add(gap);
        panel.setCellWidth(gap, width);
    }

    private void showMessage(String message) {
        GGrowl.showMessage("Message", message);
    }
}
TOP

Related Classes of org.gwtoolbox.sample.widget.client.button.SimpleMenuButtonSample

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.