Refactoring of selection elements. Additional minor refactoring. Fixed a bug with...
[taxeditor.git] / eu.etaxonomy.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 eu.etaxonomy.cdm.model.agent.Person;
7 import eu.etaxonomy.cdm.model.common.User;
8 import eu.etaxonomy.taxeditor.store.CdmStore;
9 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
10 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
11 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
12 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
13 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
14 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
15
16 /**
17 * @author n.hoffmann
18 *
19 */
20 public class UserDetailElement extends AbstractCdmDetailElement<User> {
21
22 private TextWithLabelElement text_username;
23 private TextWithLabelElement text_emailAdress;
24 private EntitySelectionElement<Person> selection_person;
25 private CheckboxElement checkbox_credentialsNonExpired;
26 private CheckboxElement checkbox_enabled;
27 private CheckboxElement checkbox_accountNonLocked;
28 private CheckboxElement checkbox_accountNonExpired;
29
30 public UserDetailElement(CdmFormFactory formFactory,
31 ICdmFormElement formElement) {
32 super(formFactory, formElement);
33 }
34
35 /*
36 * (non-Javadoc)
37 *
38 * @see
39 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
40 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
41 */
42 @Override
43 protected void createControls(ICdmFormElement formElement, User entity,
44 int style) {
45 text_username = formFactory.createTextWithLabelElement(formElement,
46 "Username", entity.getUsername(), style);
47
48 if (userIsAuthenticated() || CdmStore.getLoginManager().isAdmin()) {
49 formFactory.createEditPasswordElement(
50 formElement, "Change Password", getConversationHolder(),
51 entity, style);
52 }
53
54 text_emailAdress = formFactory.createTextWithLabelElement(formElement,
55 "Email Adress", entity.getEmailAddress(), style);
56
57 selection_person = formFactory
58 .createSelectionElement(Person.class,
59 getConversationHolder(),
60 formElement,
61 "Person",
62 entity.getPerson(),
63 EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
64 style);
65
66 checkbox_accountNonExpired = formFactory.createCheckbox(formElement,
67 "Account Non Expired", entity.isAccountNonExpired(), style);
68 checkbox_accountNonLocked = formFactory.createCheckbox(formElement,
69 "Account Non Locked", entity.isAccountNonLocked(), style);
70 checkbox_enabled = formFactory.createCheckbox(formElement, "Enabled",
71 entity.isEnabled(), style);
72 checkbox_credentialsNonExpired = formFactory.createCheckbox(
73 formElement, "Credentials Non Expired",
74 entity.isCredentialsNonExpired(), style);
75 }
76
77 /**
78 *
79 * @return
80 */
81 private boolean userIsAuthenticated() {
82 return getEntity().equals(
83 CdmStore.getLoginManager().getAuthenticatedUser());
84 }
85
86 /*
87 * (non-Javadoc)
88 *
89 * @see
90 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
91 * .lang.Object)
92 */
93 @Override
94 public void handleEvent(Object eventSource) {
95 if (eventSource == text_username) {
96 getEntity().setUsername(text_username.getText());
97 } else if (eventSource == text_emailAdress) {
98 getEntity().setEmailAddress(text_emailAdress.getText());
99 } else if (eventSource == selection_person) {
100 getEntity().setPerson(selection_person.getSelection());
101 } else if (eventSource == checkbox_accountNonExpired) {
102 getEntity().setAccountNonExpired(
103 checkbox_accountNonExpired.getSelection());
104 } else if (eventSource == checkbox_accountNonLocked) {
105 getEntity().setAccountNonLocked(
106 checkbox_accountNonLocked.getSelection());
107 } else if (eventSource == checkbox_enabled) {
108 getEntity().setEnabled(checkbox_enabled.getSelection());
109 } else if (eventSource == checkbox_credentialsNonExpired) {
110 getEntity().setCredentialsNonExpired(
111 checkbox_credentialsNonExpired.getSelection());
112 }
113 }
114
115 }