Project

General

Profile

Download (4.57 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.ExpandableComposite;
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.CheckboxElement;
21
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
23
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
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
	private CheckboxElement hasAdditionalMembers;
39

    
40
	private TeamMemberSection section_teamMembers;
41
	private final boolean isNomenclaturalTeam;
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, boolean isNomenclatural) {
59
		super(cdmFormFactory, formElement);
60
		this.isNomenclaturalTeam = isNomenclatural;
61
	}
62

    
63
	/** {@inheritDoc} */
64
    @Override
65
    protected void createControls(ICdmFormElement formElement, Team entity, int style) {
66

    
67
        toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
68
        toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style);
69
        hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
70
        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED, isNomenclaturalTeam);
71
        section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
72
    }
73

    
74
	/** {@inheritDoc} */
75
	@Override
76
	protected void updateContent() {
77
		super.updateContent();
78

    
79
		toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
80
		toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
81
				.isProtectedNomenclaturalTitleCache());
82
		setIrrelevant(
83
				toggleable_cache.getState(),
84
				Arrays.asList(new Object[] { toggleable_cache,
85
						toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
86

    
87
		section_teamMembers.setEntity(getEntity());
88

    
89
	}
90

    
91
	/** {@inheritDoc} */
92
	@Override
93
	public void handleEvent(Object eventSource) {
94
		if (eventSource == toggleable_cache) {
95
			handleToggleableCacheField();
96

    
97
		} else if (eventSource == toggleable_nomenclaturalTitleCache) {
98
			updateToggleable_nomanclaturalTitleCacheField();
99
			setIrrelevant(
100
					toggleable_nomenclaturalTitleCache.getState(),
101
					Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
102
		} else if (eventSource == section_teamMembers) {
103
			toggleable_cache.setText(getEntity().getTitleCache());
104
			toggleable_nomenclaturalTitleCache.setText(getEntity()
105
					.getNomenclaturalTitle());
106
		} else if (eventSource == hasAdditionalMembers){
107
			getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
108
			updateToggleableCacheField();
109
			toggleable_nomenclaturalTitleCache.setText(getEntity()
110
					.getNomenclaturalTitle());
111
		}
112

    
113
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
114
	}
115

    
116
	public void updateToggleable_nomanclaturalTitleCacheField() {
117
		 boolean pushedState = toggleable_nomenclaturalTitleCache.getState();
118

    
119
	        getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
120
	        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
121

    
122
        if (!getEntity().isProtectedNomenclaturalTitleCache()) {
123
            toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
124
        }
125
    }
126
}
(7-7/12)