Project

General

Profile

Download (5.29 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * Copyright (C) 2007 EDIT
3
 * European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9

    
10
package eu.etaxonomy.taxeditor.ui.section.agent;
11

    
12
import java.util.Arrays;
13

    
14
import org.eclipse.ui.forms.widgets.ExpandableComposite;
15

    
16
import eu.etaxonomy.cdm.model.agent.Team;
17
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
19
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
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.section.AbstractIdentifiableEntityDetailElement;
24

    
25
/**
26
 * <p>
27
 * TeamDetailElement class.
28
 * </p>
29
 *
30
 * @author n.hoffmann
31
 * @created Apr 26, 2010
32
 * @version 1.0
33
 */
34
public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
35

    
36
	private ToggleableTextElement toggleable_nomenclaturalTitleCache;
37
	private CheckboxElement hasAdditionalMembers;
38

    
39
	private TeamMemberSection section_teamMembers;
40
	private boolean isNomenclaturalTeam;
41

    
42
	/**
43
	 * <p>
44
	 * Constructor for TeamDetailElement.
45
	 * </p>
46
	 *
47
	 * @param cdmFormFactory
48
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
49
	 *            object.
50
	 * @param formElement
51
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
52
	 *            object.
53
	 * @param style
54
	 *            a int.
55
	 */
56
	public TeamDetailElement(CdmFormFactory cdmFormFactory,
57
			ICdmFormElement formElement, int style, boolean isNomenclatural) {
58
		super(cdmFormFactory, formElement);
59
		this.isNomenclaturalTeam = isNomenclatural;
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", entity.isHasMoreMembers(), style);
69
        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, ExpandableComposite.EXPANDED, isNomenclaturalTeam);
70
        section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
71
    }
72

    
73
	/** {@inheritDoc} */
74
	@Override
75
	protected void updateContent() {
76
		super.updateContent();
77
		if (toggleable_cache != null){
78
		    toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
79
		}
80
		if (toggleable_nomenclaturalTitleCache != null){
81
		    toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
82
				.isProtectedNomenclaturalTitleCache());
83
		}
84
		if (toggleable_nomenclaturalTitleCache != null && toggleable_cache != null){
85
    		setIrrelevant(
86
    				toggleable_cache.getState(),
87
    				Arrays.asList(new Object[] { toggleable_cache,
88
    						toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
89
		} else if (toggleable_cache != null){
90
		    setIrrelevant(
91
                    toggleable_cache.getState(),
92
                    Arrays.asList(new Object[] { toggleable_cache, hasAdditionalMembers}));
93
		}
94

    
95
		section_teamMembers.setEntity(getEntity());
96

    
97
	}
98

    
99
	/** {@inheritDoc} */
100
	@Override
101
	public void handleEvent(Object eventSource) {
102
		if (eventSource == toggleable_cache) {
103
			handleToggleableCacheField();
104

    
105
		} else if (eventSource == toggleable_nomenclaturalTitleCache) {
106
			updateToggleable_nomanclaturalTitleCacheField();
107
			setIrrelevant(
108
					toggleable_nomenclaturalTitleCache.getState(),
109
					Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
110
		} else if (eventSource == section_teamMembers) {
111
			toggleable_cache.setText(getEntity().getTitleCache());
112
			toggleable_nomenclaturalTitleCache.setText(getEntity()
113
					.getNomenclaturalTitle());
114
		} else if (eventSource == hasAdditionalMembers){
115
			getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
116
			updateToggleableCacheField();
117
			toggleable_nomenclaturalTitleCache.setText(getEntity()
118
					.getNomenclaturalTitle());
119
		}
120

    
121
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
122
	}
123

    
124
	public void updateToggleable_nomanclaturalTitleCacheField() {
125
		 boolean pushedState = toggleable_nomenclaturalTitleCache.getState();
126

    
127
	        getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
128
	        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
129

    
130
        if (!getEntity().isProtectedNomenclaturalTitleCache()) {
131
            toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
132
        }
133
    }
134

    
135
    /**
136
     * @return the isNomenclaturalTeam
137
     */
138
    public boolean isNomenclaturalTeam() {
139
        return isNomenclaturalTeam;
140
    }
141

    
142
    /**
143
     * @param isNomenclaturalTeam the isNomenclaturalTeam to set
144
     */
145
    public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
146
        this.isNomenclaturalTeam = isNomenclaturalTeam;
147
    }
148
}
(7-7/12)