55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
package app;
|
|
|
|
import app.state.AppState;
|
|
import app.state.DoubleMatrixState;
|
|
import com.google.common.eventbus.EventBus;
|
|
import com.google.inject.AbstractModule;
|
|
import com.google.inject.Scopes;
|
|
import presenters.DoubleMatrixPresenter;
|
|
import presenters.FilteringPresenter;
|
|
import presenters.MainPresenter;
|
|
import presenters.NavPresenter;
|
|
import services.ImageService;
|
|
import ui.implementation.components.nav.NavBar;
|
|
import ui.implementation.views.DoubleMatrix;
|
|
import ui.implementation.views.FilteringView;
|
|
import ui.implementation.views.MainView;
|
|
import ui.interfaces.IDoubleMatrix;
|
|
import ui.interfaces.IFilteringView;
|
|
import ui.interfaces.IMainView;
|
|
import ui.interfaces.INavBar;
|
|
|
|
/**
|
|
* Gathers some configurations in order to set the dependency injection container up
|
|
* @author Laurent Crema
|
|
*/
|
|
public class AppModule extends AbstractModule {
|
|
|
|
@Override
|
|
protected void configure() {
|
|
|
|
//--- States ---
|
|
bind(AppState.class).in(Scopes.SINGLETON);
|
|
bind(DoubleMatrixState.class);
|
|
|
|
//--- Application layer ---
|
|
bind(EventBus.class).in(Scopes.SINGLETON);
|
|
bind(INavigator.class).to(SwingNavigator.class).in(Scopes.SINGLETON);
|
|
|
|
//--- UI layer ---
|
|
bind(INavBar.class).to(NavBar.class);
|
|
bind(IMainView.class).to(MainView.class);
|
|
bind(IDoubleMatrix.class).to(DoubleMatrix.class);
|
|
bind(IFilteringView.class).to(FilteringView.class);
|
|
|
|
//--- Presentation layer ---
|
|
bind(MainPresenter.class);
|
|
bind(NavPresenter.class);
|
|
bind(DoubleMatrixPresenter.class);
|
|
bind(FilteringPresenter.class);
|
|
|
|
//--- Service layer layer ---
|
|
bind(ImageService.class);
|
|
|
|
}
|
|
} |