UiBinder Dynamic DockPanel - PullRequest
       9

UiBinder Dynamic DockPanel

1 голос
/ 23 марта 2010

Простой вопрос .... Если у меня есть StackLayoutPanel слева, я хочу нажать на нее динамически загружается виджет в моей DockLayoutPanel справа ... похож на пример GWt http://gwt.google.com/samples/Mail/Mail.html.. где щелкнуть что-нибудь под почтовыми ящиками вызовет другой виджет справа ...

1 Ответ

1 голос
/ 06 мая 2010

Я не использовал конкретные виджеты, которые вы используете, но это общая идея.

public class Index implements EntryPoint {

    public void onModuleLoad() {
        // the panel that holds the content widgets
        final SimplePanel mainPanel = new SimplePanel();
        // the panel that holds the links
        FlowPanel leftPanel = new FlowPanel();
        // the first content widget
        final Label oneContent = new Label("one content");
        // the second content widget
        final Label twoContent = new Label("two content");
        // the anchor to load the first content widget when clicked
        Anchor one = new Anchor("one menu");
        // add the click handler to do the content swap
        one.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                // remove any previous content
                mainPanel.clear();
                // add the first content widget
                mainPanel.add(oneContent);
            }
        });

        // the anchor to load the first content widget when clicked
        Anchor two = new Anchor("two menu");
        // add the click handler to do the content swap
        two.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                // remove any previous content
                mainPanel.clear();
                // add the second content widget
                mainPanel.add(twoContent);
            }
        });

        leftPanel.add(one);
        leftPanel.add(two);
        // add everything to the RootPanel
        RootPanel.get().add(leftPanel);
        RootPanel.get().add(mainPanel);
    }
}
...