smartgwt+;gin码分裂

smartgwt+;gin码分裂,gwt,smartgwt,gwt2,gwt-gin,Gwt,Smartgwt,Gwt2,Gwt Gin,我正在寻找使用gin和smartgwt进行代码拆分的示例 在我的简单应用程序中,我有两个模块AutoLoadModule和WindowModule。在我的简单应用程序中,我只需要在单击某个按钮时加载一个窗口 我的窗口模块包含: @覆盖 受保护的void configure(){ 绑定(MainWindow.class).in(Singleton.class); } 和我的主窗口: @Singleton 公共类MainWindow扩展窗口实现SessionStatusChangedEvent.H

我正在寻找使用gin和smartgwt进行代码拆分的示例

在我的简单应用程序中,我有两个模块
AutoLoadModule
WindowModule
。在我的简单应用程序中,我只需要在单击某个按钮时加载一个窗口

我的窗口模块包含:

@覆盖
受保护的void configure(){
绑定(MainWindow.class).in(Singleton.class);
}
和我的
主窗口

@Singleton
公共类MainWindow扩展窗口实现SessionStatusChangedEvent.Handler{
非公开最终XmppSession会议;
@注入
专用主窗口(XmppSession会话){
调试(“构造函数窗口…!”;
this.session=会话;
initComponent();
}
....................
在我的
AutoLoadModule
中,我有bind
AutoLoad
asagersingleton();

@覆盖
受保护的void configure(){
bind(StartButton.class).toProvider(StartChatButtonProvider.class);
bind(AutoLoader.class).asEagerSingleton();
}
My
自动加载器
类别:

@Singleton
公共类自动加载程序实现Scheduler.ScheduledCommand{
专用最终XmppConnection连接;
@可空
私人最终ImStartButton startButton;
@注入
受保护的自动加载器(最终XmppConnection连接、最终XmppSession会话、,
最终启动按钮(启动按钮){
this.startButton=startButton;
Scheduler.get().schedulederferred(此);
}
@凌驾
公开最终作废执行(){
addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
调试(“开始按钮单击处理程序…”);
//在这一点上加载窗口,但如何加载。。。。
}
});
}
}

当窗口位于WindowModule中时,可以使用代码拆分加载窗口实例。在我的示例应用程序中,我需要使用代码拆分按需加载窗口,并且该窗口必须位于gin模块中。

不确定要将代码拆分到哪里,但使用gin可以利用异步提供程序和让git拆分您的代码

@Inject
protected AutoLoader(
         final XmppConnection connection, 
         final XmppSession session,
         final StartButton startButton, 
         final AsyncProvider<MainWindow> mainProvider) {

  ...

  @Override
  public final void execute() {
    startButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {

        // Here Gin would split the code
        mainProvider.get(new AsyncCallback<MainWindow>() {
          public void onSuccess(MainWindow main) {
           ...
          }
        }

      }
    });
  }
@Inject
保护自动装弹机(
最终XMPP连接,
最后一次XmppSession会议,
最终启动按钮启动按钮,
最终异步提供程序(主提供程序){
...
@凌驾
公开最终作废执行(){
addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
//在这里,Gin将拆分代码
获取(新的AsyncCallback(){
成功时公共无效(主窗口主窗口){
...
}
}
}
});
}

单击开始按钮时,我想将我的代码拆分为
自动加载程序
类您想在按钮处理程序中执行的代码是什么?您可以在此处加载代码的哪些部分?添加AyncProvider作为参数,并在您的按钮单击中调用它,更新答案。很好,现在我在defferedjs缓存下获得了代码.js文件。当我单击按钮MainWindow constructor create window时。但在firebug中,我看不到任何从服务器加载代码的XHR请求,这是正确的吗?代码不是通过XHR加载的,而是在需要时创建的新脚本标记