Project

General

Profile

Download (4.05 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.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
			getEntity().setNomenclaturalTitle(
98
					toggleable_nomenclaturalTitleCache.getText(),
99
					toggleable_nomenclaturalTitleCache.getState());
100
			setIrrelevant(
101
					toggleable_nomenclaturalTitleCache.getState(),
102
					Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
103
		} else if (eventSource == section_teamMembers) {
104
			toggleable_cache.setText(getEntity().getTitleCache());
105
			toggleable_nomenclaturalTitleCache.setText(getEntity()
106
					.getNomenclaturalTitle());
107
		} else if (eventSource == hasAdditionalMembers){
108
			getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
109
			updateToggleableCacheField();
110
			toggleable_nomenclaturalTitleCache.setText(getEntity()
111
					.getNomenclaturalTitle());
112
		}
113

    
114
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
115
	}
116
}
(7-7/12)