Package org.gwtoolbox.sample.widget.client.panel

Source Code of org.gwtoolbox.sample.widget.client.panel.SimpleTabPanelSamplePane

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

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.*;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.ioc.core.client.annotation.Order;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.widget.client.button.SimpleButton;
import org.gwtoolbox.widget.client.menu.Menu;
import org.gwtoolbox.widget.client.menu.MenuBuilder;
import org.gwtoolbox.widget.client.menu.item.CheckMenuItem;
import org.gwtoolbox.widget.client.menu.item.MenuItemSelectionListener;
import org.gwtoolbox.widget.client.menu.item.SelectionMenuItem;
import org.gwtoolbox.widget.client.panel.LayoutComposite;
import static org.gwtoolbox.widget.client.panel.LayoutUtils.addGap;
import org.gwtoolbox.widget.client.panel.split.horizontal.SimpleHorizontalSplitPanel;
import org.gwtoolbox.widget.client.panel.tab.SimpleTabPanel;
import org.gwtoolbox.widget.client.panel.layout.tab.TabSpec;

/**
* @author Uri Boness
*/
@Component
@Order(1)
@PanelSample
public class SimpleTabPanelSamplePane extends LayoutComposite implements SamplePanel {

    public SimpleTabPanelSamplePane() {

        final SimpleTabPanel panel = new SimpleTabPanel(true);

        panel.addTab(new TabSpec("tab1", "Tab 1", null, new Label("Tab 1 content"), true));

        ScrollPanel content2 = new ScrollPanel(createContent(createVeryLongText(), "#CCFFCC"));
        content2.setSize("100%", "100%");
        panel.addTab("Tab 2", content2);

        SimpleHorizontalSplitPanel hsp = new SimpleHorizontalSplitPanel();
        hsp.setLeftWidget(new Label("Left"));
        hsp.setRightWidget(new Label("Right"));
        hsp.setSplitPosition("25%");
        hsp.setSize("100%", "100%");
        panel.addTab("Tab 3", hsp);

        TabSpec tab4 = new TabSpec("tab4", "Tab 4", null, new Label("Confent for Tab 4"), false).setMenuBuilder(new MenuBuilder() {
            public void build(Menu menu) {
                CheckMenuItem item = new CheckMenuItem("Disable", !panel.isTabEnabled("tab4"));
                item.addListener(new MenuItemSelectionListener() {
                    public void selectionChanged(SelectionMenuItem item) {
                        panel.setTabEnabled("tab4", !item.isSelected());
                    }
                });
                menu.addItem(item);
            }
        });
        panel.addTab(tab4);
//        panel.addTab("Tab 4", new Label("Content 4"));
        panel.addTab("Tab 5", new Label("Content 5"));
        panel.addTab("Tab 6", new Label("Content 6"));
        panel.setSelectedTab("Tab 3");

        panel.setWidth("100%");
//        panel.setHeight("500px");
        panel.setHeight("100%");
        DOM.setStyleAttribute(panel.getElement(), "borderBottom", "1px solid blue");

        HorizontalPanel hp = new HorizontalPanel();

        SimpleButton button = new SimpleButton("Remove Tab 1", new ClickHandler() {
            public void onClick(ClickEvent event) {
                panel.removeTab("Tab 1");
            }
        });
        hp.add(button);

        addGap(hp, "10px");

        button = new SimpleButton("Clear Tabs", new ClickHandler() {
            public void onClick(ClickEvent event) {
                panel.clear();
            }
        });
        hp.add(button);

        addGap(hp, "10px");

        button = new SimpleButton("Add Tab...", new ClickHandler() {
            public void onClick(ClickEvent event) {
                String tabName = Window.prompt("Enter the tab name", "");
                if (tabName != null) {
                    TabSpec tabSpec = new TabSpec(tabName, tabName, null, new Label("This is the content of '" + tabName + "'"), true);
                    panel.addTab(tabSpec);
                }
            }
        });
        hp.add(button);

        addGap(hp, "10px");

        button = new SimpleButton("Add Tab (Auto)", new ClickHandler() {
            public void onClick(ClickEvent event) {
                String tabName = "Tab " + (panel.getTabCount() + 1);
                GWT.log(tabName, null);
                panel.addTab(tabName, new Label("This is the content of '" + tabName + "'"));
                if (panel.getTabCount() % 2 == 0) {
                    panel.setTabEnabled(tabName, false);
                }
            }
        });
        hp.add(button);

        addGap(hp, "10px");

        button = new SimpleButton("Enable Tab 4", new ClickHandler() {
            public void onClick(ClickEvent event) {
                panel.setTabEnabled("tab4", true);
            }
        });
        hp.add(button);

        DOM.setStyleAttribute(panel.getElement(), "border", "1px solid blue");

//        FixedVerticalPanel main = new FixedVerticalPanel();
//        main.addGap("20px");
//        main.addWidget(panel, new VerticalLayoutData("350px").setOverflow("hidden"));
//        main.addGap("5px");
//        main.addWidget(hp, new VerticalLayoutData("25px"));
//        main.addGap("*");

        VerticalPanel main = new VerticalPanel();
        addGap(main, "20px");
        main.add(panel);
        main.setCellHeight(panel, "100%");
        addGap(main, "5px");
        main.add(hp);
        main.setCellHeight(hp, "25px");
//        addGap(main, "100%");
       
        initWidget(main);
    }

    public String getName() {
        return "SimpleTabPanel";
    }

    public Widget getContentWidget() {
        return this;
    }

    public void reset() {
    }


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

    private static Widget createContent(String text, String color) {
        VerticalPanel main = new VerticalPanel();
        DOM.setStyleAttribute(main.getElement(), "backgroundColor", color);
        HTML html = new HTML(text);
        html.setHorizontalAlignment(HTML.ALIGN_CENTER);
        main.add(html);
        main.setSize("100%", "100%");
        return main;
    }

    private static String createVeryLongText() {
        return "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc laoreet pharetra nunc. Nulla magna lorem, " +
                "vehicula lobortis, dignissim eu, adipiscing in, metus. Nullam velit massa, fringilla in, congue quis, " +
                "fringilla eu, libero. Cras sapien. Cras ut lectus. Lorem ipsum dolor sit amet, consectetur adipiscing " +
                "elit. Phasellus pharetra lectus non quam. Fusce turpis ante, iaculis sit amet, rutrum ut, eleifend eu, " +
                "justo. Morbi sollicitudin lacus vel magna. Cras varius volutpat diam. Quisque a lorem. Fusce in risus " +
                "vel dui semper tempus. Proin iaculis nulla sit amet ligula suscipit egestas. Duis eleifend neque id " +
                "nunc. Etiam et orci.\n" + "\n" + "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices " +
                "posuere cubilia Curae; Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos " +
                "himenaeos. Integer sagittis. Integer porttitor odio non metus. Quisque sagittis feugiat magna. Integer " +
                "venenatis nulla sollicitudin nunc tristique consectetur. Duis tincidunt odio. Nulla id arcu. Quisque " +
                "tortor. Nulla purus arcu, bibendum nec, placerat sit amet, egestas a, tellus. Curabitur tempus justo " +
                "non velit. Proin et metus. Sed risus mauris, aliquet quis, imperdiet sit amet, dictum vel, massa. " +
                "Praesent quis augue. Fusce dictum augue non mi. Donec eu tortor. Praesent tempor posuere felis. " +
                "Phasellus convallis mattis tellus.\n" + "\n" + "Donec ultricies, mauris quis egestas interdum, " +
                "turpis quam tincidunt enim, sit amet varius dui nulla in sem. Mauris scelerisque sodales nisi. " +
                "Suspendisse neque justo, egestas interdum, laoreet quis, tristique vel, metus. Vestibulum augue. " +
                "Aliquam eget odio. Donec consectetur. Ut neque. Suspendisse orci eros, aliquam id, pharetra vel, " +
                "vestibulum a, nulla. In varius. Praesent pretium augue a sem. Cras tincidunt. Nulla sollicitudin. " +
                "Suspendisse ullamcorper, dui nec lobortis gravida, odio elit convallis leo, eu porttitor arcu erat " +
                "eu lacus. Pellentesque nec mauris at massa pharetra varius. Integer bibendum. Fusce pulvinar massa " +
                "id enim mattis lacinia. Donec libero urna, bibendum a, ullamcorper eu, commodo id, risus. Maecenas " +
                "nec ipsum. Etiam egestas. Donec aliquet.\n" + "\n" + "Cras semper euismod lacus. Fusce sit amet " +
                "neque et turpis pulvinar vestibulum. Nullam magna. Vestibulum erat. Donec ipsum libero, dapibus ac, " +
                "gravida eget, dignissim pharetra, libero. Aliquam lobortis ullamcorper nunc. In purus lectus, " +
                "tincidunt quis, euismod sed, ornare in, nisl. Aenean faucibus, massa volutpat sagittis gravida, " +
                "lectus quam aliquet dolor, eget elementum metus eros pharetra neque. Praesent condimentum velit " +
                "luctus erat tristique feugiat. Aliquam volutpat, nulla at volutpat tristique, velit lectus molestie " +
                "pede, vitae placerat est enim eget libero. Nullam varius, lorem a sagittis eleifend, dui diam " +
                "scelerisque ante, in adipiscing eros ante quis ligula. Vivamus faucibus convallis ipsum. Vivamus " +
                "sollicitudin lacus vel diam. Morbi volutpat ultricies velit. Aenean tellus. Morbi semper erat sit amet " +
                "sem. Nullam a ipsum in leo hendrerit rutrum.";
    }
}
TOP

Related Classes of org.gwtoolbox.sample.widget.client.panel.SimpleTabPanelSamplePane

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.