package LinGUIne.wizards; import java.io.IOException; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.wizard.Wizard; import LinGUIne.model.Project; import LinGUIne.model.ProjectGroup; import LinGUIne.model.ProjectManager; /** * Wizard to walk the user through creating a new ProjectGroup. * * @author Kyle Mullins */ public class NewGroupWizard extends Wizard { private ProjectManager projectMan; private NewGroupData wizardData; private NewGroupWizardSelectProjectPage selectProjectPage; private NewGroupWizardNamePage namePage; public NewGroupWizard(ProjectManager projects){ super(); projectMan = projects; wizardData = new NewGroupData(); } /** * Adds data already chosen by the user through the context of the * ProjectExplorer. */ public void addStartingData(Project project, ProjectGroup group){ wizardData.setDestProject(project); wizardData.setParentGroup(group); } @Override public void addPages(){ selectProjectPage = new NewGroupWizardSelectProjectPage(projectMan, wizardData); namePage = new NewGroupWizardNamePage(wizardData); //Only add the first page if the Project and Group haven't been chosen if(wizardData.getDestProject() == null || wizardData.getParentGroup() == null){ addPage(selectProjectPage); } addPage(namePage); } @Override public boolean performFinish() { ProjectGroup newGroup = new ProjectGroup(wizardData.getGroupName(), wizardData.getParentGroup()); wizardData.getDestProject().addGroup(newGroup); try{ newGroup.createGroupDirectory(wizardData.getDestProject(). getProjectDirectory()); } catch(IOException ioe){ MessageDialog.openError(getShell(), "Error", "Could not create new Folder."); } return true; } }