package LinGUIne.wizards; import javax.inject.Inject; import org.eclipse.core.runtime.SafeRunner; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.Wizard; import LinGUIne.model.ProjectManager; import LinGUIne.model.SoftwareModuleManager; import LinGUIne.utilities.SafeAnalysis; /** * Analysis Wizard object; pieces the Wizard Pages together into * a comprehensive Wizard Dialog * * @author Matthew Talbot */ public class AnalysisWizard extends Wizard { private AnalysisWizardSelectFilePage selectFilePage; private AnalysisWizardSelectAnalysisPage selectAnalysisPage; // private AnalysisWizardSelectSettingsPage settingsPage; @Inject private ProjectManager projectMan; @Inject private SoftwareModuleManager softwareModuleMan; private AnalysisData wizardData; public AnalysisWizard() { super(); setNeedsProgressMonitor(true); wizardData = new AnalysisData(); } /** * Automagically sets the Wizard pages in order * */ @Override public void addPages() { selectFilePage = new AnalysisWizardSelectFilePage(wizardData, projectMan); selectAnalysisPage = new AnalysisWizardSelectAnalysisPage(wizardData, softwareModuleMan); // settingsPage = new AnalysisWizardSelectSettingsPage(); addPage(selectFilePage); addPage(selectAnalysisPage); // addPage(settingsPage); } @Override public IWizardPage getNextPage(IWizardPage page){ if(page == selectAnalysisPage){ //TODO: Show page provided by Analysis plug-in if any } return super.getNextPage(page); } /** * If there are any actions to be performed when the Wizard closes, they would go in this method. * Pending actual content before we can fill this part out. * */ @Override public boolean performFinish() { SafeAnalysis safeAnalysis = new SafeAnalysis(getShell(), wizardData.getChosenAnalysis(), wizardData.getChosenProjectData(), wizardData.getChosenProject()); SafeRunner.run(safeAnalysis); return true; } }