2013-03-20 64 views
0

我期待例如使用代码分裂与杜松子酒和SmartGWT的...SmartGWT的+杜松子酒代码分割

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

我的窗口模块包括:

@Override 
protected void configure() { 
    bind(MainWindow.class).in(Singleton.class); 

} 

和我MainWindow

@Singleton 
public class MainWindow extends Window implements SessionStatusChangedEvent.Handler { 

    private final XmppSession session; 

    @Inject 
    private MainWindow(XmppSession session) { 

     Log.debug("Constructor ImMainWindow... !"); 

     this.session = session; 
     initComponent(); 
    } 
    .................... 

在我AutoLoadModule我已经绑定AutoLoadasEagerSingleton();

@Override 
    protected void configure() { 
    bind(StartButton.class).toProvider(StartChatButtonProvider.class); 
     bind(AutoLoader.class).asEagerSingleton(); 

    } 

AutoLoader类:

​​

它可以加载使用代码分割窗口例如,当窗口处于WindowModule?在我的示例应用程序中,我需要使用代码拆分按需加载窗口,并且该窗口必须位于杜松子酒模块中。

回答

1

不知道你想拆分你的代码的地方,但使用杜松子酒,你可以利用AsyncProviders,让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) { 
      ... 
      } 
     } 

     } 
    }); 
    } 
+0

我想我的代码分成时startButton点击 – 2013-03-20 14:15:38

+1

什么是你想要的按钮处理程序中执行代码'AutoLoader'类?你可以在这里加载代码的哪些部分? – 2013-03-20 14:37:46

+0

当按钮被点击时,我需要加载MainWindow组件代码 – 2013-03-20 14:42:44