Example usage for com.google.gwt.user.client.ui StackLayoutPanel showWidget

List of usage examples for com.google.gwt.user.client.ui StackLayoutPanel showWidget

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui StackLayoutPanel showWidget.

Prototype

public void showWidget(Widget child) 

Source Link

Document

Shows the specified widget and fires events.

Usage

From source file:com.mashery.examples.api.client.Examples.java

License:Open Source License

@Override
public void onModuleLoad() {
    DockLayoutPanel mainPanel = new DockLayoutPanel(Unit.PX);
    RootLayoutPanel.get().add(mainPanel);

    DockLayoutPanel headerPanel = new DockLayoutPanel(Unit.PX);
    mainPanel.addNorth(headerPanel, 80d);

    FlexTable rightPanel = new FlexTable();
    headerPanel.addEast(rightPanel, 250d);
    rightPanel.setCellPadding(4);//from   ww  w. ja  va  2 s .co  m
    rightPanel.setSize("100%", "100%");
    rightPanel.getCellFormatter().setHeight(0, 0, "100%");
    rightPanel.getCellFormatter().setWidth(1, 0, "100%");
    rightPanel.getCellFormatter().setAlignment(0, 0, HasHorizontalAlignment.ALIGN_RIGHT,
            HasVerticalAlignment.ALIGN_TOP);
    ((FlexTable.FlexCellFormatter) rightPanel.getCellFormatter()).setColSpan(0, 0, 2);

    final FlowPanel userPanel = new FlowPanel();
    rightPanel.setWidget(0, 0, userPanel);

    LoginServiceAsync loginSvc = GWT.create(LoginService.class);
    loginSvc.getUserEmail(new AsyncCallback<String>() {

        @Override
        public void onSuccess(final String email) {
            final Anchor loginLink = new Anchor();
            loginLink.setHref(email == null ? "/examples/login" : "/examples/login?logout=true");
            loginLink.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    String callbackURL = Window.Location.createUrlBuilder().buildString();
                    StringBuilder buf = new StringBuilder("/examples/login?callbackURL=");
                    buf.append(URL.encodeQueryString(callbackURL));
                    if (email != null)
                        buf.append("&logout=true");

                    loginLink.setHref(buf.toString());
                }
            });

            if (email == null) {
                loginLink.setHTML("Sign&nbsp;in");
            } else {
                loginLink.setHTML("Sign&nbsp;out");
                userPanel.add(new InlineLabel(email));
                userPanel.add(new InlineHTML("&nbsp;|&nbsp;"));
            }

            userPanel.add(loginLink);
        }

        @Override
        public void onFailure(Throwable caught) {
            userPanel.add(new Label(caught.getLocalizedMessage()));
        }
    });

    mapWidget = new PopupMapWidget();
    rightPanel.setWidget(1, 1, mapWidget);

    Grid logoPanel = new Grid(1, 2);
    logoPanel.setCellSpacing(8);
    logoPanel.getRowFormatter().setVerticalAlign(0, HasVerticalAlignment.ALIGN_TOP);
    headerPanel.add(logoPanel);

    Image masheryLogoImg = new Image("resources/img/mashery.gif");
    Anchor masheryLink = new Anchor();
    masheryLink.setTitle("Mashery, Inc.");
    masheryLink.setHref("http://developer.mashery.com");
    masheryLink.getElement().appendChild(masheryLogoImg.getElement());
    logoPanel.setWidget(0, 0, masheryLink);

    InlineLabel logoLabel = new InlineLabel("Mashery Examples");
    logoLabel.getElement().getStyle().setFontWeight(FontWeight.BOLD);
    logoLabel.getElement().getStyle().setFontSize(28d, Unit.PT);
    logoLabel.getElement().getStyle().setColor("#c1080a");
    logoPanel.setWidget(0, 1, logoLabel);

    SplitLayoutPanel centerPanel = new SplitLayoutPanel();
    mainPanel.add(centerPanel);

    final StackLayoutPanel examplesPanel = new StackLayoutPanel(Unit.PX);
    centerPanel.addWest(examplesPanel, 200d);

    contentPanel = new DeckPanel();
    centerPanel.add(contentPanel);
    contentPanel.getElement().getStyle().setPaddingLeft(8d, Unit.PX);
    contentPanel.setAnimationEnabled(true);

    addExample(new Example("quova", "Quova") {
        @Override
        public Widget createContent() {
            return new QuovaExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("etsy", "Etsy") {
        @Override
        public Widget createContent() {
            return new EtsyExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("weatherbug", "WeatherBug") {
        @Override
        public Widget createContent() {
            return new WeatherBugExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("hotwire", "Hotwire") {
        @Override
        public Widget createContent() {
            return new HotwireExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("active", "Active") {
        @Override
        public Widget createContent() {
            return new ActiveExample(mapWidget);
        }
    }, examplesPanel);

    String historyToken = History.getToken();
    Integer index = exampleIndex.get(historyToken);
    if (index == null)
        index = 0;

    examplesPanel.showWidget(index);
    showExample(index);

    examplesPanel.addSelectionHandler(new SelectionHandler<Integer>() {
        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            int index = event.getSelectedItem();
            Example example = examples.get(index);
            if (example != null)
                History.newItem(example.getId());
        }
    });

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            String historyToken = event.getValue();
            Integer index = exampleIndex.get(historyToken);
            if (index != null) {
                examplesPanel.showWidget(index);
                showExample(index);
            }
        }
    });
}