【问题标题】:Adding to GWT RootPanel or just setting the default view?添加到 GWT RootPanel 还是仅设置默认视图?
【发布时间】:2012-11-17 00:50:38
【问题描述】:

我有以下 GWT 类:

public class MyDefaultView extends Composite {
    // Uses UiBinder and just contains all the widgets for this view.
}

public class MyDefaultActivity extends AbstractActivity {
    @Inject
    private MyDefaultView myDefView;

    @Override
    public void start(AcceptsOneWidget panel, EventBus eventBus) {
        panel.setWidget(myDefView);
    }
}

public class MyActivityMapper implements ActivityMapper {
    @Override
    public Activity getActivity(Place place) {
        if(place instanceof MyDefaultPlace)
            return new MyDefaultActivity();
        else
            return null;
    }
}

public class MyAppModule implements EntryPoint {
    @Override
    public void onModuleLoad() {
        // Lots of initialization and wiring...

        // Why do I need this?!?
        MyDefaultView myDefaultView = GWT.create(MyDefaultView.class);
        RootPanel.add(myDefaultView);

        Place myDefaultPlace = GWT.create(MyDefaultPlace.class);

        PlaceHistoryHandler historyHandler = getHistoryHandler();
        historyHandler.register(myPlaceController, myEventBus, myDefaultPlace);
        historyHandler.handleCurrentHistory();
    }
}
  1. 如果我只是要调用PlaceHistoryHandler#handleCurrentHistory() 并在模块加载时显示MyDefaultView,为什么我需要将MyDefaultView 添加到RootPanel
  2. 如果我不应该将MyDefaultView 直接添加到RootPanel,那么我应该添加什么?

提前致谢!

【问题讨论】:

    标签: java gwt widget gwt-places gwt-activities


    【解决方案1】:

    1) 您不需要添加MyDefaultView,但您需要一个实现AcceptsOneWidget 的面板并将该面板设置在活动管理器上。这将负责让您的视图可见。

    2) 在大多数应用程序中,应用程序的一部分始终可见。例如,顶部的条形显示用户名等。这种面板需要添加到根面板。在您的视图应该可见的位置的那个面板中,应该使用实现AcceptsOneWidget 的小部件/面板。此小部件应通过setDisplay 设置为在您的activityManager 中显示。该小部件将传递给您活动中的start 方法。下面是与 ActivityManager 和 RootPanel 一起使用的代码的样子:

    final ActivityManager activityManager = new ActivityManager(myActivityMapper, eventBus);
    
    activityManager.setDisplay(rootView.getViewPanel());
    Rootpanel.add(rootView);
    

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 2011-09-26
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多