Files
MASI4-signal-processing/src/main/java/presenters/NavPresenter.java
2026-09-29 10:46:51 +02:00

65 lines
2.0 KiB
Java

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