package presenters; import app.INavigator; import app.state.AppState; import com.google.inject.Inject; import domain.common.Mode; import domain.image.GrayScaleMatrix; import domain.image.Image; import services.ImageService; import services.ModeService; import ui.abstractions.INavBar; import java.io.File; import java.io.IOException; public class NavPresenter { private INavBar navBar; private final INavigator navigator; private final AppState appState; private final ImageService imageService; private final ModeService modeService; @Inject public NavPresenter(INavigator navigator, AppState appState, ImageService imageService, ModeService modeService) { this.navigator = navigator; this.appState = appState; this.imageService = imageService; this.modeService = modeService; } public void setView(INavBar navBar) { this.navBar = navBar; } public void createImage(int red, int green, int blue, int height, int width) { Image image = imageService.createImage(red, green, blue, height, width); appState.setImage(image); } public void loadImage(File file) throws IOException { Image image = imageService.loadImage(file); appState.setImage(image); } public void goToFourier() { navigator.showFourier(); } public void goToFiltering() { navigator.showIdealFiltering(); } public void goToConvolution() { navigator.showConvolutionFiltering(); } public void gotToButterworth() { navigator.showButterworth(); } public void goToBasicMorphology(){ navigator.showBasicMorphology(); } public void goToComplexMorphology(){ navigator.showComplexMorphology(); } public void goToLinearOutline(){ navigator.showLinearOutline(); } public void goToNonLinearOutline() { navigator.showNonLinearOutline(); } public GrayScaleMatrix getImageGrayMatrix() { return appState.getImage().toGrayScale(); } public void setMode(Mode mode) { modeService.setMode(mode); } }