View Javadoc
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  		// FirstName
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  		// LastName
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  		// Don't forget this.
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  }