package LinGUIne.wizards; 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 LinGUIne.utilities.FileUtils; /** * Page for the user to choose a name for their new File. * * @author Kyle Mullins */ public class NewFileWizardNamePage extends WizardPage { private Label lblFileName; private Text txtFileName; private NewFileData wizardData; public NewFileWizardNamePage(NewFileData data) { super("New File Wizard"); setTitle("New File Wizard"); setDescription("Choose a name for the new File."); wizardData = data; } @Override public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new GridLayout(2, false)); lblFileName = new Label(container, SWT.NONE); lblFileName.setText("Enter name for the new File:"); txtFileName = new Text(container, SWT.BORDER | SWT.SINGLE); txtFileName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); txtFileName.addModifyListener(new ModifyListener(){ @Override public void modifyText(ModifyEvent e) { wizardData.setNewFileName(txtFileName.getText()); checkIfPageComplete(); } }); setControl(container); setPageComplete(false); } /** * Sets the page complete if the entered File name is valid, otherwise sets * an error message. */ private void checkIfPageComplete(){ String errorMessage = null; boolean pageComplete = false; if(wizardData.isComplete()){ String fileName = wizardData.getNewFileName(); if(!fileName.isEmpty()){ //Add a default extension if the file name doesn't already have one if(fileName.lastIndexOf(".") == -1){ fileName += ".txt"; wizardData.setNewFileName(fileName); } if(!wizardData.getChosenProject().containsProjectData(fileName)){ if(FileUtils.isValidFileName(fileName)){ pageComplete = true; } else{ errorMessage = "The file name is invalid!"; } } else{ errorMessage = "A file with that name already exists!"; } } else{ errorMessage = "File name must not have length 0!"; } } setErrorMessage(errorMessage); setPageComplete(pageComplete); } }