Files
MASI4-signal-processing/src/main/java/app/AppModule.java
2026-09-21 19:06:57 +02:00

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);
}
}