Project

General

Profile

Download (4.67 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
package eu.etaxonomy.taxeditor.ui.section.agent;
10

    
11
import eu.etaxonomy.cdm.model.agent.Team;
12
import eu.etaxonomy.taxeditor.store.StoreUtil;
13
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
14
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
15
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
16
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
17
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
18
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
19
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
20
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
21

    
22
/**
23
 * TeamDetailElement class.
24
 *
25
 * @author n.hoffmann
26
 * @created Apr 26, 2010
27
 */
28
public class TeamDetailElement
29
        extends AbstractIdentifiableEntityDetailElement<Team> {
30

    
31
	private ToggleableTextElement toggleable_nomenclaturalTitleCache;
32
	private CheckboxElement hasAdditionalMembers;
33

    
34
	private TeamMemberSection section_teamMembers;
35
	private boolean isNomenclaturalTeam;
36

    
37
	/**
38
	 * Constructor for TeamDetailElement.
39
	 */
40
	public TeamDetailElement(CdmFormFactory cdmFormFactory,
41
			ICdmFormElement formElement, int style, boolean isNomenclatural) {
42
		super(cdmFormFactory, formElement);
43
		this.isNomenclaturalTeam = isNomenclatural;
44
	}
45

    
46
    @Override
47
    protected void createControls(ICdmFormElement formElement, Team entity, int style) {
48

    
49
    	setWarnForReferencingObjects(formElement);
50
        toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache",
51
                entity.getTitleCache(), entity.isProtectedTitleCache(), style);
52
        toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement,
53
                "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(),
54
                CacheRelevance.CACHE2, style);
55
        hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style);
56
        section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam);
57
        section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
58

    
59
        //cache relevance
60
        //TODO
61
//        registerCacheRelevance(toggleable_nomenclaturalTitleCache);
62
        registerCacheRelevance(hasAdditionalMembers, toggleable_cache, toggleable_nomenclaturalTitleCache);
63
        registerCacheRelevance(section_teamMembers, toggleable_cache, toggleable_nomenclaturalTitleCache);
64
    }
65

    
66
	@Override
67
	protected void updateContent() {
68
		super.updateContent();
69
		if (toggleable_cache != null){
70
		    toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
71
		}
72
		if (toggleable_nomenclaturalTitleCache != null){
73
		    toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
74
				.isProtectedNomenclaturalTitleCache());
75
		}
76
		section_teamMembers.setEntity(getEntity());
77

    
78
		updateCacheRelevance();
79
	}
80

    
81
	@Override
82
	public void handleEvent(Object eventSource) {
83
		if (eventSource == toggleable_cache) {
84
			handleToggleableCacheField();
85

    
86
		} else if (eventSource == toggleable_nomenclaturalTitleCache) {
87
			updateToggleable_nomanclaturalTitleCacheField();
88
			updateCacheRelevance();
89
		} else if (eventSource == section_teamMembers) {
90
			toggleable_cache.setText(getEntity().getTitleCache());
91
			toggleable_nomenclaturalTitleCache.setText(getEntity()
92
					.getNomenclaturalTitle());
93
		} else if (eventSource == hasAdditionalMembers){
94
			getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
95
			updateToggleableCacheField();
96
			toggleable_nomenclaturalTitleCache.setText(getEntity()
97
					.getNomenclaturalTitle());
98
		}
99

    
100
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
101
	}
102

    
103
	public void updateToggleable_nomanclaturalTitleCacheField() {
104
		 boolean pushedState = toggleable_nomenclaturalTitleCache.getState();
105

    
106
	        getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
107
	        updateCacheRelevance();
108

    
109
        if (!getEntity().isProtectedNomenclaturalTitleCache()) {
110
            toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
111
        }
112
    }
113

    
114
    public boolean isNomenclaturalTeam() {
115
        return isNomenclaturalTeam;
116
    }
117
    public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
118
        this.isNomenclaturalTeam = isNomenclaturalTeam;
119
    }
120
}
(7-7/12)