fixing #5341 and colouring for cache relevant fields #4915 and #4944
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / agent / TeamDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
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.
9 */
10
11 package eu.etaxonomy.taxeditor.ui.section.agent;
12
13 import java.awt.Checkbox;
14 import java.util.Arrays;
15
16 import org.eclipse.ui.forms.widgets.ExpandableComposite;
17
18 import eu.etaxonomy.cdm.model.agent.Team;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
21 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
22 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
23 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
24 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
25 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
26
27 /**
28 * <p>
29 * TeamDetailElement class.
30 * </p>
31 *
32 * @author n.hoffmann
33 * @created Apr 26, 2010
34 * @version 1.0
35 */
36 public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
37
38 private ToggleableTextElement toggleable_nomenclaturalTitleCache;
39 private CheckboxElement hasAdditionalMembers;
40
41 private TeamMemberSection section_teamMembers;
42
43 /**
44 * <p>
45 * Constructor for TeamDetailElement.
46 * </p>
47 *
48 * @param cdmFormFactory
49 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
50 * object.
51 * @param formElement
52 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
53 * object.
54 * @param style
55 * a int.
56 */
57 public TeamDetailElement(CdmFormFactory cdmFormFactory,
58 ICdmFormElement formElement, int style) {
59 super(cdmFormFactory, formElement);
60 }
61
62 /** {@inheritDoc} */
63 @Override
64 protected void createControls(ICdmFormElement formElement, Team entity, int style) {
65
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", false, style);
69 section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED);
70 section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
71 }
72
73 /** {@inheritDoc} */
74 @Override
75 protected void updateContent() {
76 super.updateContent();
77
78 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
79 toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
80 .isProtectedNomenclaturalTitleCache());
81 setIrrelevant(
82 toggleable_cache.getState(),
83 Arrays.asList(new Object[] { toggleable_cache,
84 toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
85
86 section_teamMembers.setEntity(getEntity());
87
88 }
89
90 /** {@inheritDoc} */
91 @Override
92 public void handleEvent(Object eventSource) {
93 if (eventSource == toggleable_cache) {
94 handleToggleableCacheField();
95
96 } else if (eventSource == toggleable_nomenclaturalTitleCache) {
97 updateToggleable_nomanclaturalTitleCacheField();
98 setIrrelevant(
99 toggleable_nomenclaturalTitleCache.getState(),
100 Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
101 } else if (eventSource == section_teamMembers) {
102 toggleable_cache.setText(getEntity().getTitleCache());
103 toggleable_nomenclaturalTitleCache.setText(getEntity()
104 .getNomenclaturalTitle());
105 } else if (eventSource == hasAdditionalMembers){
106 getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
107 updateToggleableCacheField();
108 toggleable_nomenclaturalTitleCache.setText(getEntity()
109 .getNomenclaturalTitle());
110 }
111
112 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
113 }
114
115 public void updateToggleable_nomanclaturalTitleCacheField() {
116 if (!getEntity().isProtectedNomenclaturalTitleCache()) {
117 toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
118 }
119 }
120 }