1 package org.argeo.people.ui.dialogs;
2
3 import javax.jcr.Node;
4 import javax.jcr.PropertyType;
5
6 import org.argeo.connect.resources.ResourcesService;
7 import org.argeo.connect.ui.ConnectUiUtils;
8 import org.argeo.connect.util.ConnectJcrUtils;
9 import org.argeo.people.PeopleNames;
10 import org.argeo.people.PeopleService;
11 import org.argeo.people.ui.PeopleMsg;
12 import org.argeo.people.util.PeopleJcrUtils;
13 import org.eclipse.jface.wizard.WizardPage;
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.events.ModifyEvent;
16 import org.eclipse.swt.events.ModifyListener;
17 import org.eclipse.swt.layout.GridData;
18 import org.eclipse.swt.layout.GridLayout;
19 import org.eclipse.swt.widgets.Composite;
20 import org.eclipse.swt.widgets.Text;
21
22 public class NewPersonPage extends WizardPage {
23 private static final long serialVersionUID = -944349994177526468L;
24 protected Text lastNameTxt;
25 protected Text firstNameTxt;
26 protected Text emailTxt;
27
28 protected NewPersonPage(String pageName) {
29 super(pageName);
30 setTitle(PeopleMsg.personWizardPageTitle.lead());
31 }
32
33 @Override
34 public void createControl(Composite parent) {
35 parent.setLayout(new GridLayout(2, false));
36
37
38 ConnectUiUtils.createBoldLabel(parent, PeopleMsg.firstName.lead());
39 firstNameTxt = new Text(parent, SWT.BORDER);
40 firstNameTxt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
41
42
43 ConnectUiUtils.createBoldLabel(parent, PeopleMsg.lastName.lead());
44 lastNameTxt = new Text(parent, SWT.BORDER);
45 lastNameTxt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
46
47 ConnectUiUtils.createBoldLabel(parent, PeopleMsg.email.lead());
48 emailTxt = new Text(parent, SWT.BORDER);
49 emailTxt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
50
51 ModifyListener ml = new ModifyListener() {
52 private static final long serialVersionUID = -1628130380128946886L;
53
54 @Override
55 public void modifyText(ModifyEvent event) {
56 getContainer().updateButtons();
57 }
58 };
59
60 firstNameTxt.addModifyListener(ml);
61 lastNameTxt.addModifyListener(ml);
62 emailTxt.addModifyListener(ml);
63
64
65 setControl(firstNameTxt);
66 firstNameTxt.setFocus();
67
68 }
69
70 public void updateNode(Node node, PeopleService peopleService, ResourcesService resourcesService) {
71 ConnectJcrUtils.setJcrProperty(node, PeopleNames.PEOPLE_LAST_NAME, PropertyType.STRING, lastNameTxt.getText());
72 ConnectJcrUtils.setJcrProperty(node, PeopleNames.PEOPLE_FIRST_NAME, PropertyType.STRING,
73 firstNameTxt.getText());
74 ConnectJcrUtils.setJcrProperty(node, PeopleNames.PEOPLE_DISPLAY_NAME, PropertyType.STRING,
75 firstNameTxt.getText() + " " + lastNameTxt.getText());
76 String email = emailTxt.getText();
77 ConnectJcrUtils.setJcrProperty(node, PeopleNames.PEOPLE_PRIMARY_EMAIL, PropertyType.STRING, email);
78 PeopleJcrUtils.createEmail(resourcesService, peopleService, node, email, true, null, null);
79 }
80 }