GWTP - 我是否将它正确地用于安全和不安全的区域?
GWTP - Am I using it correctly for secured and unsecured areas?
我正在尝试使用我现有的应用程序过渡到 GWTP。但是,我在弄清楚如何为其设置安全区域和不安全区域时遇到了一些麻烦。
案例很简单:我有一个登录页面和一个管理页面,它们都有完全不同的框架(菜单、侧边导航、主要内容等)。
为了简单起见,这些是我当前的模块实现:
我在 ApplicationView
UiBinder 中实际拥有的是:
这是 public 静态 UI 字段 ApplicationView
:
public static @UiField SimplePanel mainContentWrapper;
我现在做的是设置两个演示者 AdminToolPresenter
和 LangingPresenter
的 onReveal()
方法内部的实际内容,如下所示:
@Inject
AdminToolPresenter(EventBus eventBus, MyView view, MyProxy proxy) {
super(eventBus, view, proxy, ApplicationPresenter.SLOT_AdminMainContent);
}
@Override
protected void onReveal() {
super.onReveal();
ApplicationView.mainContentWrapper.setWidget(this.getView());
}
和
@Inject
LandingPresenter(EventBus eventBus, MyView view, MyProxy proxy) {
super(eventBus, view, proxy, ApplicationPresenter.SLOT_LandingMainContent);
}
@Override
protected void onReveal() {
super.onReveal();
ApplicationView.mainContentWrapper.setWidget(this.getView());
}
请注意我如何分别绑定 ApplicationPresenter.SLOT_AdminMainContent
和 ApplicationPresenter.SLOT_LandingMainContent
。
由于 GWTP 实际上是一个非常智能的工具,我想确保我正确地使用了它。
因此我想知道我是否按照预期的方式执行此操作,或者 GWTP 是否真的为这个问题提供了更智能的解决方案?
这个问题特别明显,因为我还不确定实际将如何处理导航。
无需在您的 onReveal
方法中调用 ApplicationView.mainContentWrapper.setWidget(this.getView())
。
GWTP
应该通过在 ApplicationView
构造函数中使用 bindSlot(ApplicationPresenter.SLOT_LandingMainContent, mainContentWrapper)
或覆盖 ApplicationView
中的 setInSlot
或 addToSlot
方法来解决这个问题。 (参见 SLOTS documentation)
您还需要使用 Gatekeeper 来保护您的 AdminToolPresenter
。
我正在尝试使用我现有的应用程序过渡到 GWTP。但是,我在弄清楚如何为其设置安全区域和不安全区域时遇到了一些麻烦。
案例很简单:我有一个登录页面和一个管理页面,它们都有完全不同的框架(菜单、侧边导航、主要内容等)。
为了简单起见,这些是我当前的模块实现:
我在 ApplicationView
UiBinder 中实际拥有的是:
这是 public 静态 UI 字段 ApplicationView
:
public static @UiField SimplePanel mainContentWrapper;
我现在做的是设置两个演示者 AdminToolPresenter
和 LangingPresenter
的 onReveal()
方法内部的实际内容,如下所示:
@Inject
AdminToolPresenter(EventBus eventBus, MyView view, MyProxy proxy) {
super(eventBus, view, proxy, ApplicationPresenter.SLOT_AdminMainContent);
}
@Override
protected void onReveal() {
super.onReveal();
ApplicationView.mainContentWrapper.setWidget(this.getView());
}
和
@Inject
LandingPresenter(EventBus eventBus, MyView view, MyProxy proxy) {
super(eventBus, view, proxy, ApplicationPresenter.SLOT_LandingMainContent);
}
@Override
protected void onReveal() {
super.onReveal();
ApplicationView.mainContentWrapper.setWidget(this.getView());
}
请注意我如何分别绑定 ApplicationPresenter.SLOT_AdminMainContent
和 ApplicationPresenter.SLOT_LandingMainContent
。
由于 GWTP 实际上是一个非常智能的工具,我想确保我正确地使用了它。
因此我想知道我是否按照预期的方式执行此操作,或者 GWTP 是否真的为这个问题提供了更智能的解决方案?
这个问题特别明显,因为我还不确定实际将如何处理导航。
无需在您的 onReveal
方法中调用 ApplicationView.mainContentWrapper.setWidget(this.getView())
。
GWTP
应该通过在 ApplicationView
构造函数中使用 bindSlot(ApplicationPresenter.SLOT_LandingMainContent, mainContentWrapper)
或覆盖 ApplicationView
中的 setInSlot
或 addToSlot
方法来解决这个问题。 (参见 SLOTS documentation)
您还需要使用 Gatekeeper 来保护您的 AdminToolPresenter
。