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
;
14 import org
.eclipse
.ui
.forms
.widgets
.ExpandableComposite
;
16 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
17 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
18 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmPropertyChangeEvent
;
19 import eu
.etaxonomy
.taxeditor
.ui
.element
.CheckboxElement
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.ToggleableTextElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractIdentifiableEntityDetailElement
;
27 * TeamDetailElement class.
31 * @created Apr 26, 2010
34 public class TeamDetailElement
extends AbstractIdentifiableEntityDetailElement
<Team
> {
36 private ToggleableTextElement toggleable_nomenclaturalTitleCache
;
37 private CheckboxElement hasAdditionalMembers
;
39 private TeamMemberSection section_teamMembers
;
40 private boolean isNomenclaturalTeam
;
44 * Constructor for TeamDetailElement.
47 * @param cdmFormFactory
48 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
51 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
56 public TeamDetailElement(CdmFormFactory cdmFormFactory
,
57 ICdmFormElement formElement
, int style
, boolean isNomenclatural
) {
58 super(cdmFormFactory
, formElement
);
59 this.isNomenclaturalTeam
= isNomenclatural
;
64 protected void createControls(ICdmFormElement formElement
, Team entity
, int style
) {
66 toggleable_cache
= formFactory
.createToggleableTextField(formElement
, "Title Cache", entity
.getTitleCache(), entity
.isProtectedTitleCache(), style
);
67 toggleable_nomenclaturalTitleCache
= formFactory
.createToggleableTextField(formElement
, "Abbrev. Title", entity
.getNomenclaturalTitle(), entity
.isProtectedNomenclaturalTitleCache(), style
);
68 hasAdditionalMembers
= formFactory
.createCheckbox(formElement
, "Additional Members", entity
.isHasMoreMembers(), style
);
69 section_teamMembers
= formFactory
.createTeamMemberSection(getConversationHolder(), formElement
, ExpandableComposite
.EXPANDED
, isNomenclaturalTeam
);
70 section_teamMembers
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY(2, 1));
75 protected void updateContent() {
76 super.updateContent();
77 if (toggleable_cache
!= null){
78 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
80 if (toggleable_nomenclaturalTitleCache
!= null){
81 toggleable_nomenclaturalTitleCache
.setEnabled(getEntity()
82 .isProtectedNomenclaturalTitleCache());
84 if (toggleable_nomenclaturalTitleCache
!= null && toggleable_cache
!= null){
86 toggleable_cache
.getState(),
87 Arrays
.asList(new Object
[] { toggleable_cache
,
88 toggleable_nomenclaturalTitleCache
, hasAdditionalMembers
}));
89 } else if (toggleable_cache
!= null){
91 toggleable_cache
.getState(),
92 Arrays
.asList(new Object
[] { toggleable_cache
, hasAdditionalMembers
}));
95 section_teamMembers
.setEntity(getEntity());
101 public void handleEvent(Object eventSource
) {
102 if (eventSource
== toggleable_cache
) {
103 handleToggleableCacheField();
105 } else if (eventSource
== toggleable_nomenclaturalTitleCache
) {
106 updateToggleable_nomanclaturalTitleCacheField();
108 toggleable_nomenclaturalTitleCache
.getState(),
109 Arrays
.asList(new Object
[] { toggleable_nomenclaturalTitleCache
, hasAdditionalMembers
}));
110 } else if (eventSource
== section_teamMembers
) {
111 toggleable_cache
.setText(getEntity().getTitleCache());
112 toggleable_nomenclaturalTitleCache
.setText(getEntity()
113 .getNomenclaturalTitle());
114 } else if (eventSource
== hasAdditionalMembers
){
115 getEntity().setHasMoreMembers(hasAdditionalMembers
.getSelection());
116 updateToggleableCacheField();
117 toggleable_nomenclaturalTitleCache
.setText(getEntity()
118 .getNomenclaturalTitle());
121 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
124 public void updateToggleable_nomanclaturalTitleCacheField() {
125 boolean pushedState
= toggleable_nomenclaturalTitleCache
.getState();
127 getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache
.getText(), pushedState
);
128 setIrrelevant(pushedState
, Arrays
.asList(new Object
[] { toggleable_cache
}));
130 if (!getEntity().isProtectedNomenclaturalTitleCache()) {
131 toggleable_nomenclaturalTitleCache
.setText(getEntity().getNomenclaturalTitle());
136 * @return the isNomenclaturalTeam
138 public boolean isNomenclaturalTeam() {
139 return isNomenclaturalTeam
;
143 * @param isNomenclaturalTeam the isNomenclaturalTeam to set
145 public void setNomenclaturalTeam(boolean isNomenclaturalTeam
) {
146 this.isNomenclaturalTeam
= isNomenclaturalTeam
;