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
.forms
.CdmFormFactory
;
20 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmPropertyChangeEvent
;
21 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ICdmFormElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.forms
.TextWithLabelElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ToggleableTextElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractIdentifiableEntityDetailElement
;
28 * PersonDetailElement class.
32 * @created Mar 8, 2010
35 public class PersonDetailElement
extends AbstractIdentifiableEntityDetailElement
<Person
> {
37 private TextWithLabelElement text_nomenclaturalTitle
;
38 private TextWithLabelElement text_firstname
;
39 private TextWithLabelElement text_lastname
;
40 private TextWithLabelElement text_prefix
;
41 private TextWithLabelElement text_suffix
;
43 private Collection
<Object
> excludeFromIrrelevantToggleableObjects
;
47 * Constructor for PersonDetailElement.
50 * @param cdmFormFactory
51 * a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory}
54 * a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement}
59 public PersonDetailElement(CdmFormFactory cdmFormFactory
,
60 ICdmFormElement formElement
, int style
) {
61 super(cdmFormFactory
, formElement
);
66 protected void createControls(ICdmFormElement formElement
, Person entity
,
68 toggleable_cache
= formFactory
.createToggleableTextField(formElement
,
69 "Title Cache", entity
.getTitleCache(),
70 entity
.isProtectedTitleCache(), SWT
.NULL
);
72 text_nomenclaturalTitle
= formFactory
.createTextWithLabelElement(
73 formElement
, "Abbrev. Title", entity
.getNomenclaturalTitle(),
76 text_firstname
= formFactory
.createTextWithLabelElement(formElement
,
77 "Firstname", entity
.getFirstname(), SWT
.NULL
);
78 text_lastname
= formFactory
.createTextWithLabelElement(formElement
,
79 "Lastname", entity
.getLastname(), SWT
.NULL
);
81 text_prefix
= formFactory
.createTextWithLabelElement(formElement
,
82 "Prefix", entity
.getPrefix(), SWT
.NULL
);
83 text_suffix
= formFactory
.createTextWithLabelElement(formElement
,
84 "Suffix", entity
.getSuffix(), SWT
.NULL
);
89 protected void updateContent() {
90 super.updateContent();
92 excludeFromIrrelevantToggleableObjects
= Arrays
.asList(new Object
[] {
93 toggleable_cache
, text_nomenclaturalTitle
});
95 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
96 setIrrelevant(toggleable_cache
.getState(),
97 excludeFromIrrelevantToggleableObjects
);
102 public void handleEvent(Object eventSource
) {
103 if (eventSource
== toggleable_cache
) {
104 handleToggleableCacheField();
105 } else if (eventSource
== text_nomenclaturalTitle
) {
107 .setNomenclaturalTitle(text_nomenclaturalTitle
.getText());
108 } else if (eventSource
== text_firstname
) {
109 getEntity().setFirstname(text_firstname
.getText());
110 } else if (eventSource
== text_lastname
) {
111 getEntity().setLastname(text_lastname
.getText());
112 } else if (eventSource
== text_prefix
) {
113 getEntity().setPrefix(text_prefix
.getText());
114 } else if (eventSource
== text_suffix
) {
115 getEntity().setSuffix(text_suffix
.getText());
118 if (eventSource
!= toggleable_cache
) {
119 toggleable_cache
.setText(getEntity().getTitleCache());
122 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));