3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.ui
.section
.agent
;
13 import java
.util
.Arrays
;
14 import java
.util
.Collection
;
16 import org
.eclipse
.swt
.SWT
;
18 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
19 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmPropertyChangeEvent
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractIdentifiableEntityDetailElement
;
27 * PersonDetailElement class.
31 * @created Mar 8, 2010
34 public class PersonDetailElement
extends AbstractIdentifiableEntityDetailElement
<Person
> {
36 private TextWithLabelElement text_nomenclaturalTitle
;
37 private TextWithLabelElement text_firstname
;
38 private TextWithLabelElement text_lastname
;
39 private TextWithLabelElement text_prefix
;
40 private TextWithLabelElement text_suffix
;
42 private Collection
<Object
> excludeFromIrrelevantToggleableObjects
;
46 * Constructor for PersonDetailElement.
49 * @param cdmFormFactory
50 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
53 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
58 public PersonDetailElement(CdmFormFactory cdmFormFactory
,
59 ICdmFormElement formElement
, int style
) {
60 super(cdmFormFactory
, formElement
);
65 protected void createControls(ICdmFormElement formElement
, Person entity
,
67 toggleable_cache
= formFactory
.createToggleableTextField(formElement
,
68 "Title Cache", entity
.getTitleCache(),
69 entity
.isProtectedTitleCache(), SWT
.NULL
);
71 text_nomenclaturalTitle
= formFactory
.createTextWithLabelElement(
72 formElement
, "Abbrev. Title", entity
.getNomenclaturalTitle(),
75 text_firstname
= formFactory
.createTextWithLabelElement(formElement
,
76 "Firstname", entity
.getFirstname(), SWT
.NULL
);
77 text_lastname
= formFactory
.createTextWithLabelElement(formElement
,
78 "Lastname", entity
.getLastname(), SWT
.NULL
);
80 text_prefix
= formFactory
.createTextWithLabelElement(formElement
,
81 "Prefix", entity
.getPrefix(), SWT
.NULL
);
82 text_suffix
= formFactory
.createTextWithLabelElement(formElement
,
83 "Suffix", entity
.getSuffix(), SWT
.NULL
);
88 protected void updateContent() {
89 super.updateContent();
91 excludeFromIrrelevantToggleableObjects
= Arrays
.asList(new Object
[] {
92 toggleable_cache
, text_nomenclaturalTitle
});
94 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
95 setIrrelevant(toggleable_cache
.getState(),
96 excludeFromIrrelevantToggleableObjects
);
101 public void handleEvent(Object eventSource
) {
102 if (eventSource
== toggleable_cache
) {
103 handleToggleableCacheField();
104 } else if (eventSource
== text_nomenclaturalTitle
) {
106 .setNomenclaturalTitle(text_nomenclaturalTitle
.getText());
107 } else if (eventSource
== text_firstname
) {
108 getEntity().setFirstname(text_firstname
.getText());
109 } else if (eventSource
== text_lastname
) {
110 getEntity().setLastname(text_lastname
.getText());
111 } else if (eventSource
== text_prefix
) {
112 getEntity().setPrefix(text_prefix
.getText());
113 } else if (eventSource
== text_suffix
) {
114 getEntity().setSuffix(text_suffix
.getText());
117 if (eventSource
!= toggleable_cache
) {
118 toggleable_cache
.setText(getEntity().getTitleCache());
121 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
125 protected void handleToggleableCacheField() {
126 boolean pushedState
= toggleable_cache
.getState();
128 getEntity().setTitleCache(toggleable_cache
.getText(), pushedState
);
129 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
, text_nomenclaturalTitle
}));
130 updateToggleableCacheField();