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 // getLayoutComposite().setLayoutData(CdmFormFactory.LAYOUT(2, false));
60 toggleable_cache
= formFactory
.createToggleableTextField(formElement
, "Title Cache", entity
.getTitleCache(), entity
.isProtectedTitleCache(), SWT
.NULL
);
62 text_nomenclaturalTitle
= formFactory
.createTextWithLabelElement(formElement
, "Nom. Title", entity
.getNomenclaturalTitle(), SWT
.NULL
);
65 text_firstname
= formFactory
.createTextWithLabelElement(formElement
, "Firstname", entity
.getFirstname(), SWT
.NULL
);
66 text_lastname
= formFactory
.createTextWithLabelElement(formElement
, "Lastname", entity
.getLastname(), SWT
.NULL
);
68 text_prefix
= formFactory
.createTextWithLabelElement(formElement
, "Prefix", entity
.getPrefix(), SWT
.NULL
);
69 text_suffix
= formFactory
.createTextWithLabelElement(formElement
, "Suffix", entity
.getSuffix(), SWT
.NULL
);
74 protected void updateContent() {
75 super.updateContent();
77 excludeFromIrrelevantToggleableObjects
= Arrays
.asList(new Object
[]{toggleable_cache
, text_nomenclaturalTitle
});
79 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
80 setIrrelevant(toggleable_cache
.getState(), excludeFromIrrelevantToggleableObjects
);
86 public void handleEvent(Object eventSource
) {
87 if(eventSource
== toggleable_cache
){
88 getEntity().setTitleCache(toggleable_cache
.getText(), toggleable_cache
.getState());
89 setIrrelevant(toggleable_cache
.getState(), excludeFromIrrelevantToggleableObjects
);
91 else if(eventSource
== text_nomenclaturalTitle
){
92 getEntity().setNomenclaturalTitle(text_nomenclaturalTitle
.getText());
94 else if(eventSource
== text_firstname
){
95 getEntity().setFirstname(text_firstname
.getText());
97 else if(eventSource
== text_lastname
){
98 getEntity().setLastname(text_lastname
.getText());
100 else if(eventSource
== text_prefix
){
101 getEntity().setPrefix(text_prefix
.getText());
103 else if(eventSource
== text_suffix
){
104 getEntity().setSuffix(text_suffix
.getText());
107 if(eventSource
!= toggleable_cache
){
108 toggleable_cache
.setText(getEntity().getTitleCache());