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
.ICdmFormElement
;
21 import eu
.etaxonomy
.taxeditor
.ui
.forms
.TextWithLabelElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ToggleableTextElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
26 * <p>PersonDetailElement class.</p>
29 * @created Mar 8, 2010
32 public class PersonDetailElement
extends AbstractCdmDetailElement
<Person
> {
34 private ToggleableTextElement toggleable_cache
;
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
;
44 * <p>Constructor for PersonDetailElement.</p>
46 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
47 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
50 public PersonDetailElement(CdmFormFactory cdmFormFactory
, ICdmFormElement formElement
,
52 super(cdmFormFactory
, formElement
);
57 protected void createControls(ICdmFormElement formElement
, Person entity
, int style
) {
58 toggleable_cache
= formFactory
.createToggleableTextField(formElement
, "Title Cache", entity
.getTitleCache(), entity
.isProtectedTitleCache(), SWT
.NULL
);
60 text_nomenclaturalTitle
= formFactory
.createTextWithLabelElement(formElement
, "Nom. Title", entity
.getNomenclaturalTitle(), SWT
.NULL
);
63 text_firstname
= formFactory
.createTextWithLabelElement(formElement
, "Firstname", entity
.getFirstname(), SWT
.NULL
);
64 text_lastname
= formFactory
.createTextWithLabelElement(formElement
, "Lastname", entity
.getLastname(), SWT
.NULL
);
66 text_prefix
= formFactory
.createTextWithLabelElement(formElement
, "Prefix", entity
.getPrefix(), SWT
.NULL
);
67 text_suffix
= formFactory
.createTextWithLabelElement(formElement
, "Suffix", entity
.getSuffix(), SWT
.NULL
);
72 protected void updateContent() {
73 super.updateContent();
75 excludeFromIrrelevantToggleableObjects
= Arrays
.asList(new Object
[]{toggleable_cache
, text_nomenclaturalTitle
});
77 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
78 setIrrelevant(toggleable_cache
.getState(), excludeFromIrrelevantToggleableObjects
);
84 public void handleEvent(Object eventSource
) {
85 if(eventSource
== toggleable_cache
){
86 getEntity().setTitleCache(toggleable_cache
.getText(), toggleable_cache
.getState());
87 setIrrelevant(toggleable_cache
.getState(), excludeFromIrrelevantToggleableObjects
);
89 else if(eventSource
== text_nomenclaturalTitle
){
90 getEntity().setNomenclaturalTitle(text_nomenclaturalTitle
.getText());
92 else if(eventSource
== text_firstname
){
93 getEntity().setFirstname(text_firstname
.getText());
95 else if(eventSource
== text_lastname
){
96 getEntity().setLastname(text_lastname
.getText());
98 else if(eventSource
== text_prefix
){
99 getEntity().setPrefix(text_prefix
.getText());
101 else if(eventSource
== text_suffix
){
102 getEntity().setSuffix(text_suffix
.getText());
105 if(eventSource
!= toggleable_cache
){
106 toggleable_cache
.setText(getEntity().getTitleCache());