package LinGUIne.handlers;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Shell;
import LinGUIne.model.Project;
import LinGUIne.model.ProjectGroup;
import LinGUIne.model.ProjectManager;
import LinGUIne.wizards.NewGroupWizard;
/**
* Launches the NewGroupWizard to create a new Group (folder) within some
* Project in the ProjectExplorer.
*
* @author Kyle Mullins
*/
public class NewGroupHandler {
private static final String DEST_PROJECT_PARAM = "linguine.command.newGroup"
+ ".parameter.destProject";
private static final String PARENT_GROUP_PARAM = "linguine.command.newGroup"
+ ".parameter.parentGroup";
@Inject
private ProjectManager projectMan;
@Execute
public void execute(@Optional @Named(DEST_PROJECT_PARAM) String
destProject, @Optional @Named(PARENT_GROUP_PARAM) String
parentGroup, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell){
NewGroupWizard groupWizard = new NewGroupWizard(projectMan);
Project project = destProject == null ? null :
projectMan.getProject(destProject);
if(project != null){
ProjectGroup group = project.getGroup(parentGroup);
groupWizard.addStartingData(project, group);
}
WizardDialog wizardDialog = new WizardDialog(shell, groupWizard);
wizardDialog.open();
}
}