package de.mprengemann.intellij.plugin.androidicons.controllers; import com.intellij.openapi.project.Project; import de.mprengemann.intellij.plugin.androidicons.controllers.defaults.DefaultsController; import de.mprengemann.intellij.plugin.androidicons.controllers.defaults.IDefaultsController; import de.mprengemann.intellij.plugin.androidicons.controllers.iconimporter.IIconsImporterController; import de.mprengemann.intellij.plugin.androidicons.controllers.icons.androidicons.AndroidIconsController; import de.mprengemann.intellij.plugin.androidicons.controllers.icons.androidicons.IAndroidIconsController; import de.mprengemann.intellij.plugin.androidicons.controllers.icons.materialicons.IMaterialIconsController; import de.mprengemann.intellij.plugin.androidicons.controllers.icons.materialicons.MaterialIconsController; import de.mprengemann.intellij.plugin.androidicons.controllers.settings.ISettingsController; import de.mprengemann.intellij.plugin.androidicons.controllers.settings.SettingsController; import de.mprengemann.intellij.plugin.androidicons.model.IconPack; public class DefaultControllerFactory implements IControllerFactory { private IAndroidIconsController androidIconsController; private IMaterialIconsController materialIconsController; private IDefaultsController defaultsController; private ISettingsController settingsController; private IIconsImporterController iconImporterController; public DefaultControllerFactory(IconPack androidIcons, IconPack materialIcons) { androidIconsController = new AndroidIconsController(androidIcons); materialIconsController = new MaterialIconsController(materialIcons); } @Override public void setProject(Project project) { if (project == null) { return; } getSettingsController().setProject(project); getDefaultsController().restore(); } @Override public IAndroidIconsController getAndroidIconsController() { return androidIconsController; } @Override public IMaterialIconsController getMaterialIconsController() { return materialIconsController; } @Override public IDefaultsController getDefaultsController() { if (defaultsController == null) { defaultsController = new DefaultsController(getSettingsController()); } return defaultsController; } @Override public ISettingsController getSettingsController() { if (settingsController == null) { settingsController = new SettingsController(); } return settingsController; } @Override public void tearDown() { if (materialIconsController != null) { materialIconsController.tearDown(); materialIconsController = null; } if (androidIconsController != null) { androidIconsController.tearDown(); androidIconsController = null; } if (defaultsController != null) { defaultsController.tearDown(); defaultsController = null; } if (settingsController != null) { settingsController.tearDown(); settingsController = null; } if (iconImporterController != null) { iconImporterController.tearDown(); iconImporterController = null; } } }