package LinGUIne.handlers;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.model.application.MApplication;
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.NewFileWizard;
/**
* Launches the NewFileWizard to create a new text file in some Project in the
* workspace.
*
* @author Kyle Mullins
*/
public class NewFileHandler {
private static final String DEST_PROJECT_PARAM = "linguine.command.newFile"
+ ".parameter.destProject";
private static final String PARENT_GROUP_PARAM = "linguine.command.newFile"
+ ".parameter.parentGroup";
@Inject
private MApplication application;
@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) {
NewFileWizard newFileWizard = new NewFileWizard();
Project project = destProject == null ? null :
projectMan.getProject(destProject);
if(project != null){
ProjectGroup group = project.getGroup(parentGroup);
newFileWizard.addStartingData(project, group);
}
WizardDialog wizardDialog = new WizardDialog(shell, newFileWizard);
ContextInjectionFactory.inject(newFileWizard, application.getContext());
wizardDialog.open();
}
}