/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.editor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import de.rcenvironment.core.gui.utils.incubator.AlphanumericalTextContraintListener;
import de.rcenvironment.core.utils.common.CrossPlatformFilenameUtils;
/**
* This page receives the name for the new workflow.
*
* @author Oliver Seebach
*/
final class NewWorkflowPage extends WizardPage {
private Text workflownameTextfield = null;
NewWorkflowPage(final NewWorkflowProjectWizard parentWizard, final IStructuredSelection selection) {
super("Workflow");
setTitle("Workflow");
setDescription("Please enter the name of the new workflow");
setPageComplete(false);
}
@Override
public void createControl(Composite parent) {
GridLayout grid = new GridLayout(2, false);
GridData gridDataComp = new GridData();
gridDataComp.horizontalAlignment = GridData.BEGINNING;
gridDataComp.verticalAlignment = GridData.BEGINNING;
GridData gridDataLabel = new GridData();
gridDataLabel.horizontalAlignment = GridData.BEGINNING;
gridDataLabel.verticalAlignment = GridData.BEGINNING;
GridData gridDataText = new GridData();
gridDataText.horizontalAlignment = GridData.FILL;
gridDataText.verticalAlignment = GridData.BEGINNING;
gridDataText.grabExcessHorizontalSpace = true;
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(grid);
comp.setLayoutData(gridDataComp);
Label workflownameLabel = new Label(comp, SWT.LEFT);
workflownameLabel.setLayoutData(gridDataLabel);
workflownameLabel.setText("Workflow name: ");
workflownameTextfield = new Text(comp, SWT.SINGLE | SWT.BORDER);
workflownameTextfield.setLayoutData(gridDataText);
workflownameTextfield.setData("name", "WorkflowNameTextfield");
workflownameTextfield.setFocus();
workflownameTextfield.addListener(SWT.Verify, new AlphanumericalTextContraintListener(false, true));
workflownameTextfield.addListener(SWT.Verify, new AlphanumericalTextContraintListener(
CrossPlatformFilenameUtils.FORBIDDEN_CHARACTERS));
workflownameTextfield.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
if (workflownameTextfield.getText().length() > 0) {
setPageComplete(true);
} else {
setPageComplete(false);
}
NewWorkflowProjectWizard.sharedWorkflowName = getWorkflownameTextfield().getText();
}
});
setControl(comp);
}
public Text getWorkflownameTextfield() {
return workflownameTextfield;
}
}