/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.dlect.controller; import org.dlect.controller.data.DatabaseHandler; import org.dlect.controller.data.DatabaseSavingHandler; import org.dlect.controller.download.DownloadController; import org.dlect.controller.helper.ControllerStateHelper; import org.dlect.controller.helper.Initilisable; import org.dlect.controller.helper.Initilisables; import org.dlect.controller.helper.lecture.LectureDownloadStateUpdater; import org.dlect.controller.helper.lecture.LectureStateUpdater; import org.dlect.controller.helper.subject.SubjectDataHelper; import org.dlect.controller.helper.subject.SubjectDisplaySettingHandler; import org.dlect.controller.helper.subject.SubjectDisplayUpdater; import org.dlect.controller.provider.ProviderHelper; import org.dlect.events.listenable.Listenable; import org.dlect.file.FileController; import org.dlect.model.helper.CommonSettingNames; import static java.util.UUID.randomUUID; /** * * @author lee */ public abstract class MainController extends Listenable<MainController> implements Initilisable { private LoginController loginController; private SubjectController subjectController; private LectureController lectureController; private DownloadController downloadController; private DatabaseHandler databaseHandler; private ProviderHelper providerHelper; private ControllerStateHelper controllerStateHelper; private SubjectDataHelper subjectDataHelper; private SubjectDisplaySettingHandler subjectDisplayHelper; public MainController() { } public abstract FileController getFileController(); @Override public void init() { this.databaseHandler = new DatabaseHandler(); this.providerHelper = new ProviderHelper(this); this.loginController = new LoginController(this); this.subjectController = new SubjectController(this); this.lectureController = new LectureController(this); this.downloadController = new DownloadController(this); this.controllerStateHelper = new ControllerStateHelper(this); this.subjectDisplayHelper = new SubjectDisplaySettingHandler(this); this.subjectDataHelper = new SubjectDataHelper(this); addChild(databaseHandler); databaseHandler.init(); databaseHandler.addTemporarySetting(CommonSettingNames.UUID, randomUUID().toString()); if (databaseHandler.getSetting(CommonSettingNames.BBID) == null) { databaseHandler.addSetting(CommonSettingNames.BBID, randomUUID().toString()); } this.addChild(loginController, subjectController, lectureController, downloadController, controllerStateHelper, subjectDataHelper); Initilisables.doInit(providerHelper, loginController, subjectController, lectureController, downloadController, controllerStateHelper, subjectDisplayHelper, subjectDataHelper); DatabaseSavingHandler.registerOn(this); LectureStateUpdater.registerOn(this); LectureDownloadStateUpdater.registerOn(this); SubjectDisplayUpdater.registerOn(this); } public DownloadController getDownloadController() { return downloadController; } public DatabaseHandler getDatabaseHandler() { return databaseHandler; } public ProviderHelper getProviderHelper() { return providerHelper; } public LoginController getLoginController() { return loginController; } public SubjectController getSubjectController() { return subjectController; } public LectureController getLectureController() { return lectureController; } public ControllerStateHelper getControllerStateHelper() { return controllerStateHelper; } public SubjectDataHelper getSubjectDataHelper() { return subjectDataHelper; } public SubjectDisplaySettingHandler getSubjectDisplayHelper() { return subjectDisplayHelper; } }