2013-03-20 5 views
0

Я ищу, например, чтобы использовать код расщепления с джином и SmartGWT ...SmartGWT + джин Код Расщепление

В моем простом приложении у меня есть 2 модуля AutoLoadModule и WindowModule. В моем простом приложении мне просто нужно загрузить окно, когда нажата какая-либо кнопка.

Мой модуль окно содержит:

@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 класс:

@Singleton 
public class AutoLoader implements Scheduler.ScheduledCommand { 

private final XmppConnection connection; 
@Nullable 
private final ImStartButton startButton; 

    @Inject 
    protected AutoLoader(final XmppConnection connection, final XmppSession session, 
      final StartButton startButton) { 
    this.startButton = startButton; 

    Scheduler.get().scheduleDeferred(this); 
    } 

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

     @Override 
     public void onClick(ClickEvent event) { 
      Log.debug("StartButton click handler..."); 
        //load window in this point but how ? .... 
     } 
    }); 
    } 
} 

Его можно загрузить экземпляр окна, используя код Нарезка, когда окно находится в WindowModule? В моем примере приложения мне нужно загрузить окно только по требованию, используя разбиение кода, и это окно должно быть в модуле gin.

ответ

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

Я хочу разделить свой код в 'AutoLoader' класс, когда startButton щёлкнули –

+1

, что код, который вы хотите выполнить внутри обработчика кнопки? какие части кода вы можете загрузить здесь? –

+0

Мне нужно загрузить код компонента MainWindow, когда кнопка нажата –

 Смежные вопросы

  • Нет связанных вопросов^_^