]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/MainUserInfoWizardPage.java
Keep improving security
[lgpl/argeo-commons.git] / security / plugins / org.argeo.security.ui.admin / src / main / java / org / argeo / security / ui / admin / wizards / MainUserInfoWizardPage.java
diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/MainUserInfoWizardPage.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/MainUserInfoWizardPage.java
new file mode 100644 (file)
index 0000000..cf11f85
--- /dev/null
@@ -0,0 +1,71 @@
+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();
+       }
+
+}