/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.wizard.createsubmissionpackage; import java.util.Collection; import java.util.List; import org.eclipse.jface.wizard.Wizard; import org.eclipse.ui.PlatformUI; import au.org.intersect.exsite9.domain.Project; import au.org.intersect.exsite9.domain.ResearchFile; import au.org.intersect.exsite9.domain.SubmissionPackage; import au.org.intersect.exsite9.service.IProjectManager; import au.org.intersect.exsite9.service.ISubmissionPackageService; /** * A wizard that can be used to create a submission package. */ public final class CreateSubmissionPackageWizard extends Wizard { private final CreateSubmissionPackageWizardPage1 page1; private final CreateSubmissionPackageWizardPage2 page2; private SubmissionPackage submissionPackage; /** * Constructor * @param submissionPackage The submission package to fill in the dialogs with. May be {@code null} in which case they will be blank. */ public CreateSubmissionPackageWizard(final SubmissionPackage submissionPackage, final Collection<SubmissionPackage> existingSubmissionPackages, final String wizardTitle) { super(); setNeedsProgressMonitor(true); setWindowTitle(wizardTitle); this.submissionPackage = submissionPackage; this.page1 = new CreateSubmissionPackageWizardPage1(submissionPackage, existingSubmissionPackages, wizardTitle); this.page2 = new CreateSubmissionPackageWizardPage2(submissionPackage, wizardTitle); } /** * @{inheritDoc} */ @Override public void addPages() { addPage(this.page1); addPage(this.page2); } /** * @{inheritDoc} */ @Override public boolean performFinish() { final String name = page1.getSubmissionPackageName(); final String description = page1.getSubmissionPackageDescription(); final List<ResearchFile> researchFiles = page2.getCheckedResearchFiles(); final IProjectManager projectManager = (IProjectManager) PlatformUI.getWorkbench().getService(IProjectManager.class); final Project currentProject = projectManager.getCurrentProject(); final ISubmissionPackageService submissionPackageService = (ISubmissionPackageService) PlatformUI.getWorkbench().getService(ISubmissionPackageService.class); if (this.submissionPackage == null) { this.submissionPackage = submissionPackageService.createSubmissionPackage(currentProject, name, description, researchFiles); } else { this.submissionPackage = submissionPackageService.updateSubmissionPackage(this.submissionPackage, name, description, researchFiles); } return this.submissionPackage != null; } public SubmissionPackage getSubmissionPackage() { return this.submissionPackage; } }