2462dd3c9b49f8787f330ac244735fe26aed7a7e
[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.util.Arrays;
14
15 import org.eclipse.ui.forms.widgets.Section;
16
17 import eu.etaxonomy.cdm.model.agent.Team;
18 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
19 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
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.element.CdmFormFactory.EntityDetailType;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
25
26 /**
27 * <p>
28 * TeamDetailElement class.
29 * </p>
30 *
31 * @author n.hoffmann
32 * @created Apr 26, 2010
33 * @version 1.0
34 */
35 public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
36
37 private ToggleableTextElement toggleable_nomenclaturalTitleCache;
38
39 private TeamMemberSection section_teamMembers;
40
41 /**
42 * <p>
43 * Constructor for TeamDetailElement.
44 * </p>
45 *
46 * @param cdmFormFactory
47 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
48 * object.
49 * @param formElement
50 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
51 * object.
52 * @param style
53 * a int.
54 */
55 public TeamDetailElement(CdmFormFactory cdmFormFactory,
56 ICdmFormElement formElement, int style) {
57 super(cdmFormFactory, formElement);
58 }
59
60 /** {@inheritDoc} */
61 @Override
62 protected void createControls(ICdmFormElement formElement, Team entity,
63 int style) {
64
65 toggleable_cache = formFactory.createToggleableTextField(formElement,
66 "Title Cache", entity.getTitleCache(),
67 entity.isProtectedTitleCache(), style);
68 toggleable_nomenclaturalTitleCache = formFactory
69 .createToggleableTextField(formElement, "Abbrev. Title",
70 entity.getNomenclaturalTitle(),
71 entity.isProtectedNomenclaturalTitleCache(), style);
72 section_teamMembers = (TeamMemberSection) formFactory
73 .createEntityDetailSection(EntityDetailType.TEAMMEMBER,
74 getConversationHolder(), formElement, Section.EXPANDED);
75 section_teamMembers.setLayoutData(LayoutConstants
76 .FILL_HORIZONTALLY(2, 1));
77 }
78
79 /** {@inheritDoc} */
80 @Override
81 protected void updateContent() {
82 super.updateContent();
83
84 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
85 toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
86 .isProtectedNomenclaturalTitleCache());
87 setIrrelevant(
88 toggleable_cache.getState(),
89 Arrays.asList(new Object[] { toggleable_cache,
90 toggleable_nomenclaturalTitleCache }));
91
92 section_teamMembers.setEntity(getEntity());
93
94 }
95
96 /** {@inheritDoc} */
97 @Override
98 public void handleEvent(Object eventSource) {
99 if (eventSource == toggleable_cache) {
100 handleToggleableCacheField();
101 } else if (eventSource == toggleable_nomenclaturalTitleCache) {
102 getEntity().setNomenclaturalTitle(
103 toggleable_nomenclaturalTitleCache.getText(),
104 toggleable_nomenclaturalTitleCache.getState());
105 setIrrelevant(
106 toggleable_nomenclaturalTitleCache.getState(),
107 Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache }));
108 } else if (eventSource == section_teamMembers) {
109 toggleable_cache.setText(getEntity().getTitleCache());
110 toggleable_nomenclaturalTitleCache.setText(getEntity()
111 .getNomenclaturalTitle());
112 }
113
114 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
115 }
116 }