Project

General

Profile

Download (3.64 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(7-7/12)