package ee.tkasekamp.vickywaranalyzer.controller;
import ee.tkasekamp.vickywaranalyzer.controller.tab.*;
import ee.tkasekamp.vickywaranalyzer.core.Battle;
import ee.tkasekamp.vickywaranalyzer.core.War;
import ee.tkasekamp.vickywaranalyzer.service.ModelService;
import ee.tkasekamp.vickywaranalyzer.service.ModelServiceImpl;
import ee.tkasekamp.vickywaranalyzer.service.UtilService;
import ee.tkasekamp.vickywaranalyzer.service.UtilServiceImpl;
import javafx.fxml.FXML;
import javafx.scene.control.Tab;
import java.io.IOException;
public class MainController {
@FXML
private BattleController battleController;
@FXML
private SettingsController settingsController;
@FXML
private WarDetailsController warDetailsController;
@FXML
private WargoalController wargoalController;
@FXML
private WarListController warListController;
@FXML
private Tab warListTab;
@FXML
private Tab warDetailsTab;
@FXML
private Tab battleTab;
@FXML
private Tab wargoalTab;
private ModelService modelServ;
private UtilService utilServ;
@FXML
public void initialize() {
utilServ = new UtilServiceImpl();
modelServ = new ModelServiceImpl(utilServ);
try {
utilServ.guessFolders();
} catch (IOException e) {
setErrorText(e.getMessage());
}
battleController.init(this, modelServ, battleTab);
settingsController.init(this, utilServ);
warDetailsController.init(this, modelServ, warDetailsTab);
wargoalController.init(wargoalTab, modelServ);
warListController.init(this, modelServ, warListTab);
}
public void setErrorText(String text) {
settingsController.setErrorText(text);
}
public void readSaveGame(String saveGamePath, boolean useLocalisation) {
reset();
settingsController.setFolderPaths();
String text = modelServ.createModel(saveGamePath, useLocalisation);
setErrorText(text);
warListController.populate();
}
public void populateWarTab(War war) {
warDetailsController.populate(war);
populateWargoalTab(war);
battleController.reset();
}
public void populateBattleTab(Battle battle) {
battleController.populate(battle);
}
public void populateWargoalTab(War war) {
wargoalController.populate(war);
}
private void reset() {
battleController.reset();
settingsController.reset();
warDetailsController.reset();
wargoalController.reset();
warListController.reset();
modelServ.reset();
utilServ.reset();
}
}