Basically fixes #2282. I will create new tickets for still open issues.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / ui / section / user / UserDetailElement.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.ui.section.user;
5
6 import org.eclipse.swt.SWT;
7 import org.eclipse.swt.events.SelectionAdapter;
8 import org.eclipse.swt.events.SelectionEvent;
9
10 import eu.etaxonomy.cdm.api.service.IUserService;
11 import eu.etaxonomy.cdm.model.common.User;
12 import eu.etaxonomy.taxeditor.store.CdmStore;
13 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
14 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.SelectionType;
15 import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement;
16 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
17 import eu.etaxonomy.taxeditor.ui.forms.TextActionElement;
18 import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
19 import eu.etaxonomy.taxeditor.ui.forms.password.EditPasswordElement;
20 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
21 import eu.etaxonomy.taxeditor.ui.selection.PersonSelectionElement;
22
23 /**
24 * @author n.hoffmann
25 *
26 */
27 public class UserDetailElement extends AbstractCdmDetailElement<User> {
28
29 private TextWithLabelElement text_username;
30 private EditPasswordElement element_editPassword;
31 private TextWithLabelElement text_emailAdress;
32 private PersonSelectionElement selection_person;
33 private CheckboxElement checkbox_credentialsNonExpired;
34 private CheckboxElement checkbox_enabled;
35 private CheckboxElement checkbox_accountNonLocked;
36 private CheckboxElement checkbox_accountNonExpired;
37
38 public UserDetailElement(CdmFormFactory formFactory,
39 ICdmFormElement formElement) {
40 super(formFactory, formElement);
41 }
42
43 /* (non-Javadoc)
44 * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
45 */
46 @Override
47 protected void createControls(ICdmFormElement formElement, User entity,
48 int style) {
49 text_username = formFactory.createTextWithLabelElement(formElement, "Username", entity.getUsername(), style);
50
51 if(userIsAuthenticated()){
52 element_editPassword = formFactory.createEditPasswordElement(formElement, "Change Password", getConversationHolder(), entity, style);
53 }
54
55 text_emailAdress = formFactory.createTextWithLabelElement(formElement, "Email Adress", entity.getEmailAddress(), style);
56
57 selection_person = (PersonSelectionElement) formFactory.createSelectionElement(SelectionType.PERSON, getConversationHolder(), formElement, "Person", entity.getPerson(), style);
58
59 checkbox_accountNonExpired = formFactory.createCheckbox(formElement, "Account Non Expired", entity.isAccountNonExpired(), style);
60 checkbox_accountNonLocked = formFactory.createCheckbox(formElement, "Account Non Locked", entity.isAccountNonLocked(), style);
61 checkbox_enabled = formFactory.createCheckbox(formElement, "Enabled", entity.isEnabled(), style);
62 checkbox_credentialsNonExpired = formFactory.createCheckbox(formElement, "Credentials Non Expired", entity.isCredentialsNonExpired(), style);
63 }
64
65 /**
66 *
67 * @return
68 */
69 private boolean userIsAuthenticated() {
70 return getEntity().equals(CdmStore.getLoginManager().getAuthenticatedUser());
71 }
72
73 /* (non-Javadoc)
74 * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
75 */
76 @Override
77 public void handleEvent(Object eventSource) {
78 if(eventSource == text_username){
79 getEntity().setUsername(text_username.getText());
80 }
81 else if(eventSource == text_emailAdress){
82 getEntity().setEmailAddress(text_emailAdress.getText());
83 }
84 else if(eventSource == selection_person){
85 getEntity().setPerson(selection_person.getSelection());
86 }
87 else if(eventSource == checkbox_accountNonExpired){
88 getEntity().setAccountNonExpired(checkbox_accountNonExpired.getSelection());
89 }
90 else if(eventSource == checkbox_accountNonLocked){
91 getEntity().setAccountNonLocked(checkbox_accountNonLocked.getSelection());
92 }
93 else if(eventSource == checkbox_enabled){
94 getEntity().setEnabled(checkbox_enabled.getSelection());
95 }
96 else if(eventSource == checkbox_credentialsNonExpired){
97 getEntity().setCredentialsNonExpired(checkbox_credentialsNonExpired.getSelection());
98 }
99 }
100
101 }