package husacct.control.presentation.viewcontrol; import java.util.ArrayList; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JInternalFrame; import husacct.ServiceProvider; import husacct.common.Resource; import husacct.control.task.MainController; public class ViewController { private InternalFrameController defineContainer; private InternalFrameController definedArchitectureDiagramContainer; // private InternalFrameController moduleAndRuleDiagramContainer; //Disabled in vs 5.1; waiting for improvement private InternalFrameController analysedApplicationOverviewContainer; private InternalFrameController analysedArchitectureDiagramContainer; private InternalFrameController validateContainer; private InternalFrameController validateConfigurationContainer; private InternalFrameController codeViewerContainer; private InternalFrameController analyseSARController; private List<InternalFrameController> viewContainers = new ArrayList<>(); public ViewController(MainController mainController){ defineContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_DEFINE_ARCHITECTURE)), "DefineArchitecture"){ @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getDefineService().getDefinedGUI(); } }; definedArchitectureDiagramContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_DEFINE_ARCHITECTURE_DIAGRAM)), "DefinedArchitectureDiagram"){ @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getGraphicsService().getDefinedArchitectureGUI(); } }; /* moduleAndRuleDiagramContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_DEFINE_ARCHITECTURE_DIAGRAM)), "ModuleAndRuleDiagram"){ @Override public JInternalFrame getInternalFrame() { return ServiceProvider.getInstance().getGraphicsService().getModuleAndRuleGUI(); } }; */ analysedApplicationOverviewContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_APPLICATION_OVERVIEW)), "AnalysedArchitectureOverview") { @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getAnalyseService().getJInternalFrame(); } }; analyseSARController = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_APPLICATION_OVERVIEW)), "SoftwareArchitectureReconstruction") { @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getAnalyseService().getJInternalSARFrame(); } }; analysedArchitectureDiagramContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_ANALYSED_ARCHITECTURE_DIAGRAM)), "AnalysedArchitectureDiagram") { @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getGraphicsService().getAnalysedArchitectureGUI(); } }; validateContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_VALIDATE)), "Validate") { @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getValidateService().getBrowseViolationsGUI(); } }; validateConfigurationContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_VALIDATE)), "Configuration") { @Override public JInternalFrame getNewInternalFrame() { return ServiceProvider.getInstance().getValidateService().getConfigurationGUI(); } }; codeViewerContainer = new InternalFrameController(mainController, new ImageIcon(Resource.get(Resource.ICON_SOURCE)), "ConfigGeneralCodeviewer") { @Override public JInternalFrame getNewInternalFrame() { return mainController.getCodeViewerController().getCodeViewInternalFrame(); } }; viewContainers.add(defineContainer); viewContainers.add(definedArchitectureDiagramContainer); viewContainers.add(analysedApplicationOverviewContainer); // viewContainers.add(moduleAndRuleDiagramContainer); viewContainers.add(analyseSARController); viewContainers.add(analysedArchitectureDiagramContainer); viewContainers.add(validateContainer); viewContainers.add(validateConfigurationContainer); viewContainers.add(codeViewerContainer); } public void showDefineArchitecture() { defineContainer.showView(); } public void showDefinedArchitectureDiagram() { definedArchitectureDiagramContainer.showView(); ServiceProvider.getInstance().getGraphicsService().drawDefinedArchitecture(); } /* public void showModuleAndRuleDiagram() { moduleAndRuleDiagramContainer.showView(); ServiceProvider.getInstance().getGraphicsService().drawModuleAndRuleArchitecture(); } */ public void showApplicationOverviewGui() { analysedApplicationOverviewContainer.showView(); } public void showAnalyseSarGui() { // Iconify all shown InternalFrames for (InternalFrameController ifController : viewContainers) { JInternalFrame internalFrame = ifController.getInternalFrame(); if ((internalFrame != null) && internalFrame.isShowing()) { if (!internalFrame.isIcon()) { ifController.iconifyInternalFrame(); } } } // Show the Define frame in its restored size if (!defineContainer.getNewInternalFrame().isShowing()) { defineContainer.showView(); } defineContainer.restoreInternalFrame(); // Show the AnalyseSAR frame in its restored size (the size en position are set in the frame's overridden setBounds(). analyseSARController.showView(); analyseSARController.restoreInternalFrame(); } public void showAnalysedArchitectureDiagram() { analysedArchitectureDiagramContainer.showView(); ServiceProvider.getInstance().getGraphicsService().drawAnalysedArchitecture(); } public void showValidateGui() { validateContainer.showView(); } public void showConfigurationGui() { validateConfigurationContainer.showView(); } public void showCodeViewer() { codeViewerContainer.showView(); } public void closeAll(){ for(InternalFrameController container : viewContainers){ container.closeFrame(); } InternalFrameController.resetLastStartPosition(); } public void setLocaleListeners(){ for(InternalFrameController container : viewContainers){ container.setLocaleListener(); } } }