package husacct.define.task; import husacct.define.domain.module.ModuleStrategy; import husacct.define.domain.services.stateservice.StateService; import husacct.define.domain.softwareunit.SoftwareUnitDefinition; import husacct.define.presentation.moduletree.AnalyzedModuleTree; import husacct.define.presentation.moduletree.CombinedModuleTreeModel; import husacct.define.presentation.moduletree.ModuleTree; import husacct.define.presentation.moduletree.SearchModuleCellRenderer; import husacct.define.task.components.AbstractCombinedComponent; import husacct.define.task.components.AnalyzedModuleComponent; import java.util.ArrayList; import java.util.List; public class JtreeController{ private AnalyzedModuleTree tree; private static JtreeController instance; private AnalyzedModuleTree resultTree; private ModuleTree moduleTree; private boolean isLoaded=false; public JtreeController() { } public static JtreeController instance() { if(instance==null) { return instance= new JtreeController(); } else { return instance; } } public void registerTreeRemoval(ModuleStrategy module) { removeSoftWareUnits(module); for (ModuleStrategy m : module.getSubModules()) { registerTreeRemoval(m); } } private void removeSoftWareUnits(ModuleStrategy module) { for (SoftwareUnitDefinition unit : module.getUnits()) { AnalyzedModuleComponent softwareUnit= StateService.instance().getAnalyzedSoftWareUnit(unit); restoreTreeItem(softwareUnit); } } public void setCurrentTree(AnalyzedModuleTree instanceoftree) { tree=instanceoftree; } public boolean isLoaded() { return isLoaded; } public void setLoadState(boolean value) { isLoaded=value; } public AnalyzedModuleTree getTree() { return tree; } public AnalyzedModuleComponent getRootOfModel () { return (AnalyzedModuleComponent)instance.getTree().getModel().getRoot(); } public void additemgetResultTree(AnalyzedModuleComponent analyzedModule) { analyzedModule.detach(); AnalyzedModuleComponent rootOfResultTree = (AnalyzedModuleComponent)resultTree.getModel().getRoot(); rootOfResultTree.detach(); rootOfResultTree.addChild(analyzedModule); resultTree.setModel(new CombinedModuleTreeModel(rootOfResultTree)); resultTree.setCellRenderer(new SearchModuleCellRenderer()); } public ModuleTree getModuleTree() { return moduleTree; } public void setModuleTree(ModuleTree moduleTree) { this.moduleTree = moduleTree; } public AbstractCombinedComponent getMappedunits() { return (AbstractCombinedComponent) instance.getTree().getModel().getRoot(); } public void restoreTreeItem(AnalyzedModuleComponent analyzeModuleTobeRestored) { tree.restoreTreeItem(analyzeModuleTobeRestored); tree.repaint(); } public void removeTreeItem(AnalyzedModuleComponent unitToBeinserted) { tree.removeTreeItem(unitToBeinserted); tree.repaint(); } public void setTreeModel(AnalyzedModuleComponent root) { if(tree==null) { tree= new AnalyzedModuleTree(root); } else { tree.setModel(new CombinedModuleTreeModel(root)); tree.repaint(); } } public void restoreTreeItems(ModuleStrategy module) { for (SoftwareUnitDefinition unit : module.getUnits()) { AnalyzedModuleComponent anal = StateService.instance().getAnalyzedSoftWareUnit(unit); restoreTreeItem(anal); } } public void restoreTreeItemm(List<String> softwareUnitNames, List<String> types) { for (String uniqname : softwareUnitNames) { AnalyzedModuleComponent tobeRestored= StateService.instance().getAnalyzedSoftWareUnit(uniqname); if (tobeRestored != null){ tree.restoreTreeItem(tobeRestored); tree.repaint(); } } } public List<AbstractCombinedComponent> getRootprojectsModules() { List<AbstractCombinedComponent> returnList = new ArrayList<AbstractCombinedComponent>(); for (AbstractCombinedComponent result : getRootOfModel().getChildren()) { if (result.getType().toLowerCase().equals("root")) { returnList.addAll(result.getChildren()); } } return returnList; } }