]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/MainUserInfoWizardPage.java
1 package org
.argeo
.security
.ui
.admin
.wizards
;
4 import javax
.jcr
.Property
;
5 import javax
.jcr
.RepositoryException
;
7 import org
.argeo
.ArgeoException
;
8 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
9 import org
.argeo
.jcr
.ArgeoNames
;
10 import org
.argeo
.security
.UserAdminService
;
11 import org
.eclipse
.jface
.wizard
.WizardPage
;
12 import org
.eclipse
.swt
.SWT
;
13 import org
.eclipse
.swt
.events
.ModifyEvent
;
14 import org
.eclipse
.swt
.events
.ModifyListener
;
15 import org
.eclipse
.swt
.layout
.GridLayout
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Text
;
19 public class MainUserInfoWizardPage
extends WizardPage
implements
20 ModifyListener
, ArgeoNames
{
21 private Text username
, firstName
, lastName
, primaryEmail
, password1
,
24 public MainUserInfoWizardPage() {
26 setTitle("Required Information");
30 public void createControl(Composite parent
) {
31 Composite composite
= new Composite(parent
, SWT
.NONE
);
32 composite
.setLayout(new GridLayout(2, false));
33 username
= EclipseUiUtils
.createGridLT(composite
, "Username", this);
34 primaryEmail
= EclipseUiUtils
.createGridLT(composite
, "Email", this);
35 firstName
= EclipseUiUtils
.createGridLT(composite
, "First name", this);
36 lastName
= EclipseUiUtils
.createGridLT(composite
, "Last name", this);
37 password1
= EclipseUiUtils
.createGridLP(composite
, "Password", this);
38 password2
= EclipseUiUtils
.createGridLP(composite
, "Repeat password",
40 setControl(composite
);
44 public void modifyText(ModifyEvent event
) {
45 String message
= checkComplete();
47 setMessage(message
, WizardPage
.ERROR
);
49 setMessage("Complete", WizardPage
.INFORMATION
);
50 setPageComplete(true);
54 /** @return error message or null if complete */
55 protected String
checkComplete() {
56 if (!username
.getText().matches(UserAdminService
.USERNAME_PATTERN
))
57 return "Wrong user name format, should be lower case, between 3 and 15 characters with only '_' as acceptable special character.";
58 if (!primaryEmail
.getText().matches(UserAdminService
.EMAIL_PATTERN
))
59 return "Not a valid email address";
60 if (firstName
.getText().trim().equals(""))
61 return "Specify a first name";
62 if (lastName
.getText().trim().equals(""))
63 return "Specify a last name";
64 if (password1
.getText().trim().equals(""))
65 return "Specify a password";
66 if (password2
.getText().trim().equals(""))
67 return "Repeat the password";
68 if (!password2
.getText().equals(password1
.getText()))
69 return "Passwords are different";
73 public String
getUsername() {
74 return username
.getText();
77 public String
getPassword() {
78 return password1
.getText();
81 public void mapToProfileNode(Node up
) {
83 up
.setProperty(ARGEO_PRIMARY_EMAIL
, primaryEmail
.getText());
84 up
.setProperty(ARGEO_FIRST_NAME
, firstName
.getText());
85 up
.setProperty(ARGEO_LAST_NAME
, lastName
.getText());
88 // TODO add wizard pages to do it
89 up
.setProperty(Property
.JCR_TITLE
, firstName
.getText() + " "
90 + lastName
.getText());
91 up
.setProperty(Property
.JCR_DESCRIPTION
, "");
92 } catch (RepositoryException e
) {
93 throw new ArgeoException("Cannot map to " + up
, e
);