2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.agent
;
12 import java
.util
.Arrays
;
13 import java
.util
.Collection
;
15 import org
.eclipse
.swt
.SWT
;
17 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
18 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
19 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmPropertyChangeEvent
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractIdentifiableEntityDetailElement
;
26 * PersonDetailElement class.
30 * @created Mar 8, 2010
33 public class PersonDetailElement
extends AbstractIdentifiableEntityDetailElement
<Person
> {
35 private TextWithLabelElement text_nomenclaturalTitle
;
36 private TextWithLabelElement text_firstname
;
37 private TextWithLabelElement text_lastname
;
38 private TextWithLabelElement text_prefix
;
39 private TextWithLabelElement text_suffix
;
41 private Collection
<Object
> excludeFromIrrelevantToggleableObjects
;
45 * Constructor for PersonDetailElement.
48 * @param cdmFormFactory
49 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
52 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
57 public PersonDetailElement(CdmFormFactory cdmFormFactory
,
58 ICdmFormElement formElement
, int style
) {
59 super(cdmFormFactory
, formElement
);
64 protected void createControls(ICdmFormElement formElement
, Person entity
,
66 toggleable_cache
= formFactory
.createToggleableTextField(formElement
,
67 "Title Cache", entity
.getTitleCache(),
68 entity
.isProtectedTitleCache(), SWT
.NULL
);
70 text_nomenclaturalTitle
= formFactory
.createTextWithLabelElement(
71 formElement
, "Abbrev. Title", entity
.getNomenclaturalTitle(),
74 text_firstname
= formFactory
.createTextWithLabelElement(formElement
,
75 "Firstname", entity
.getFirstname(), SWT
.NULL
);
76 text_lastname
= formFactory
.createTextWithLabelElement(formElement
,
77 "Lastname", entity
.getLastname(), SWT
.NULL
);
79 text_prefix
= formFactory
.createTextWithLabelElement(formElement
,
80 "Prefix", entity
.getPrefix(), SWT
.NULL
);
81 text_suffix
= formFactory
.createTextWithLabelElement(formElement
,
82 "Suffix", entity
.getSuffix(), SWT
.NULL
);
87 protected void updateContent() {
88 super.updateContent();
90 excludeFromIrrelevantToggleableObjects
= Arrays
.asList(new Object
[] {
91 toggleable_cache
, text_nomenclaturalTitle
});
93 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
94 setIrrelevant(toggleable_cache
.getState(),
95 excludeFromIrrelevantToggleableObjects
);
100 public void handleEvent(Object eventSource
) {
101 if (eventSource
== toggleable_cache
) {
102 handleToggleableCacheField();
103 } else if (eventSource
== text_nomenclaturalTitle
) {
105 .setNomenclaturalTitle(text_nomenclaturalTitle
.getText());
106 } else if (eventSource
== text_firstname
) {
107 getEntity().setFirstname(text_firstname
.getText());
108 } else if (eventSource
== text_lastname
) {
109 getEntity().setLastname(text_lastname
.getText());
110 } else if (eventSource
== text_prefix
) {
111 getEntity().setPrefix(text_prefix
.getText());
112 } else if (eventSource
== text_suffix
) {
113 getEntity().setSuffix(text_suffix
.getText());
116 if (eventSource
!= toggleable_cache
) {
117 toggleable_cache
.setText(getEntity().getTitleCache());
120 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
124 protected void handleToggleableCacheField() {
125 boolean pushedState
= toggleable_cache
.getState();
127 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
128 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
, text_nomenclaturalTitle
}));
129 updateToggleableCacheField();