package org.argeo.security.ui.admin.wizards; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.security.UserAdminService; 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.FillLayout; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; public class MainUserInfoWizardPage extends WizardPage implements ModifyListener { private Text username, firstName, lastName, primaryEmail; public MainUserInfoWizardPage() { super("Main"); setTitle("Required Information"); } @Override public void createControl(Composite parent) { parent.setLayout(new FillLayout()); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(2, false)); username = EclipseUiUtils.createGridLT(composite, "Username", this); primaryEmail = EclipseUiUtils.createGridLT(composite, "Email", this); firstName = EclipseUiUtils.createGridLT(composite, "First name", this); lastName = EclipseUiUtils.createGridLT(composite, "Last name", this); setControl(composite); } @Override public void modifyText(ModifyEvent event) { String message = checkComplete(); if (message != null) setMessage(message, WizardPage.ERROR); else { setMessage("Complete", WizardPage.INFORMATION); setPageComplete(true); } } /** @return error message or null if complete */ protected String checkComplete() { if (!username.getText().matches(UserAdminService.USERNAME_PATTERN)) return "Wrong user name format, should be lower case, between 3 and 15 characters with only '_' as acceptable special character."; if (!primaryEmail.getText().matches(UserAdminService.EMAIL_PATTERN)) return "Not a valid email address"; if (firstName.getText().trim().equals("")) return "Specify a first name"; if (lastName.getText().trim().equals("")) return "Specify a last name"; return null; } @Override public boolean canFlipToNextPage() { // TODO Auto-generated method stub return super.canFlipToNextPage(); } @Override public boolean isPageComplete() { // TODO Auto-generated method stub return super.isPageComplete(); } }