package org.incha.ui.stats; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import org.incha.core.JavaProject; import org.incha.core.JavaProjectsModel; import org.incha.core.ModuleConfiguration; import org.incha.core.StatisticsManager; import org.incha.core.jswingripples.JRipplesModuleInterface; import org.incha.core.jswingripples.eig.JSwingRipplesEIG; import org.incha.ui.JSwingRipplesApplication; import org.incha.ui.jripples.JRipplesDefaultModulesConstants; public class StartAnalysisAction implements ActionListener { /** * Default constructor. */ public StartAnalysisAction() { super(); } /* (non-Javadoc) * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(final ActionEvent e) { final JSwingRipplesApplication app = JSwingRipplesApplication.getInstance(); final StartAnalysisDialog dialog = new StartAnalysisDialog(app); dialog.pack(); dialog.setLocationRelativeTo(app); dialog.setVisible(true); if (dialog.isOk()) { final String projectName = (String) dialog.projects.getSelectedItem(); if (projectName == null) { return; } final JavaProject project = JavaProjectsModel.getInstance().getProject(projectName); final JSwingRipplesEIG eig = new JSwingRipplesEIG(project); eig.setMainClass(dialog.getMainClass()); final ModuleConfiguration config = new ModuleConfiguration(); //module dependency builder String module = (String) dialog.dependencyGraph.getSelectedItem(); if (JRipplesDefaultModulesConstants.MODULE_DEPENDENCY_BUILDER.equals(module)) { config.setDependencyGraphModule(ModuleConfiguration.MODULE_DEPENDENCY_BUILDER); } else { config.setDependencyGraphModule(ModuleConfiguration.MODULE_DEPENDENCY_BUILDER_WITH_POLYMORPHIC); } //Incremental change module = (String) dialog.incrementalChange.getSelectedItem(); if (JRipplesDefaultModulesConstants.MODULE_IMPACT_ANALYSIS_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_IMPACT_ANALYSIS); } else if (JRipplesDefaultModulesConstants.MODULE_IMPACT_ANALYSIS_RELAXED_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_IMPACT_ANALYSIS_RELAXED); } else if (JRipplesDefaultModulesConstants.MODULE_CHANGE_PROPAGATION_RELAXED_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_CHANGE_PROPAGATION_RELAXED); } else if (JRipplesDefaultModulesConstants.MODULE_CHANGE_PROPAGATION_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_CHANGE_PROPAGATION); } else if (JRipplesDefaultModulesConstants.MODULE_CONCEPT_LOCATION_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_CONCEPT_LOCATION); } else if (JRipplesDefaultModulesConstants.MODULE_CONCEPT_LOCATION_RELAXED_TITLE.equals(module)) { config.setIncrementalChange(ModuleConfiguration.MODULE_CONCEPT_LOCATION_RELAXED); } // //presentation // module = (String) dialog.presentation.getSelectedItem(); // if (JRipplesDefaultModulesConstants.MODULE_VIEW_TREE_TITLE.equals(module)) { // config.setPresentation(ModuleConfiguration.MODULE_VIEW_TREE); // } else if (JRipplesDefaultModulesConstants.MODULE_VIEW_HIERARCHY_TITLE.equals(module)) { // config.setPresentation(ModuleConfiguration.MODULE_VIEW_HIERARCHY); // } module = (String) dialog.analysis.getSelectedItem(); if (JRipplesDefaultModulesConstants.MODULE_IMPACT_ANALYSIS_TITLE.equals(module)) { config.setAnalysis(ModuleConfiguration.MODULE_IMPACT_ANALYSIS); } project.setModuleConfiguration(config); final List<JRipplesModuleInterface> m = config.buildModules(eig, project); for (final JRipplesModuleInterface i : m) { i.runInAnalize(); } StatisticsManager.getInstance().addStatistics(config, eig); } } }