如何在运行时切换UI实现?

时间:2015-03-10 12:26:48

标签: gwt

我正在使用GWT 2.6开发应用程序。

现在我有一项任务是在运行时实现在简单/专家模式(视图)之间切换的功能。这意味着显示可能包含其他小部件的简化版本的视图。 但问题是大多数情况下的所有观点都是静态的"并定义为单身人士(使用GIN)。

是否可以仅使用GWT实现这一点,我应该用它来制作它?。

1 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点。我想到了几个想法:

选项1。

不是使用GIN注入视图,而是注入视图提供程序(com.google.inject.Provider)。这可以由构建视图(活动?)的代码使用以获取视图。然后,视图提供者的实现可以返回相关模式的视图实现,简单或专家。例如,

@Inject
public ComposeMessageActivity(Provider<ComposeMessageView> viewProvider, ...) { ... }

@Override
public final void start(final AcceptsOneWidget panel, final EventBus eventBus) {
    view = viewProvider.get();

选项2。

使用deferred binding。这不是那么动态,但具有以下优点:简单的实现将比专家实现更小的下载。 github上有一个项目gwt-seminar,它在实践中显示了具有移动和桌面版本的项目。