93 lines
3.2 KiB
Java
93 lines
3.2 KiB
Java
package dev.mateuszkowalczyk.ffm.view.workspace;
|
|
|
|
import dev.mateuszkowalczyk.ffm.app.WorkspaceService;
|
|
import dev.mateuszkowalczyk.ffm.data.database.person.Person;
|
|
import dev.mateuszkowalczyk.ffm.utils.ResourceLoader;
|
|
import dev.mateuszkowalczyk.ffm.view.SceneEnum;
|
|
import dev.mateuszkowalczyk.ffm.view.StageController;
|
|
import dev.mateuszkowalczyk.ffm.view.workspace.elements.ElementsEnum;
|
|
import dev.mateuszkowalczyk.ffm.view.workspace.elements.FaceContainerController;
|
|
import dev.mateuszkowalczyk.ffm.view.workspace.elements.ImageContainerController;
|
|
import dev.mateuszkowalczyk.ffm.view.workspace.elements.PeopleContainerController;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.event.Event;
|
|
import javafx.fxml.FXML;
|
|
import javafx.fxml.FXMLLoader;
|
|
import javafx.fxml.Initializable;
|
|
import javafx.scene.control.ScrollPane;
|
|
|
|
import java.io.IOException;
|
|
import java.net.URL;
|
|
import java.util.ResourceBundle;
|
|
|
|
public class MainPageController implements Initializable {
|
|
private WorkspaceService workspaceService;
|
|
|
|
@FXML
|
|
private ScrollPane mainContainer;
|
|
private Person selectedPerson;
|
|
private Person person;
|
|
|
|
public MainPageController() {
|
|
this.workspaceService = WorkspaceService.getInstance();
|
|
this.workspaceService.setMainPageController(this);
|
|
}
|
|
|
|
@Override
|
|
public void initialize(URL url, ResourceBundle resourceBundle) {
|
|
this.setElement(ElementsEnum.ImagesContainer);
|
|
}
|
|
|
|
public void setElement(ElementsEnum element) {
|
|
try {
|
|
Object controller = null;
|
|
FXMLLoader fxmlLoader = new FXMLLoader();
|
|
switch (element) {
|
|
case ImagesContainerForPerson:
|
|
controller = new ImageContainerController(this, this.person);
|
|
break;
|
|
case ImagesContainer:
|
|
controller = new ImageContainerController(this);
|
|
break;
|
|
case PeopleContainer:
|
|
controller = new PeopleContainerController(this);
|
|
break;
|
|
case PersonFaceContainer:
|
|
controller = new FaceContainerController(this, this.selectedPerson);
|
|
}
|
|
fxmlLoader.setLocation(ResourceLoader.getInstance().getResource(element.getPath()));
|
|
fxmlLoader.setController(controller);
|
|
|
|
this.mainContainer.setContent(fxmlLoader.load());
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void openImageContainer(ActionEvent actionEvent) {
|
|
this.setElement(ElementsEnum.ImagesContainer);
|
|
}
|
|
|
|
public void openPeopleModule(ActionEvent actionEvent) {
|
|
this.setElement(ElementsEnum.PeopleContainer);
|
|
}
|
|
|
|
public void openFacesSelectedPerson(Person person) {
|
|
this.selectedPerson = person;
|
|
this.setElement(ElementsEnum.PersonFaceContainer);
|
|
}
|
|
|
|
public void showPhotosForPerson(Person person) {
|
|
this.person = person;
|
|
this.setElement(ElementsEnum.ImagesContainerForPerson);
|
|
}
|
|
|
|
public void cleanAppStart(Event event) {
|
|
try {
|
|
StageController.getInstance().setScene(SceneEnum.WelcomePage);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|