Project

General

Profile

Download (4.19 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
import java.util.Collection;
15

    
16
import org.eclipse.swt.SWT;
17

    
18
import eu.etaxonomy.cdm.model.agent.Person;
19
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
21
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
23
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
24

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

    
36
	private TextWithLabelElement text_nomenclaturalTitle;
37
	private TextWithLabelElement text_firstname;
38
	private TextWithLabelElement text_lastname;
39
	private TextWithLabelElement text_prefix;
40
	private TextWithLabelElement text_suffix;
41

    
42
	private Collection<Object> excludeFromIrrelevantToggleableObjects;
43

    
44
	/**
45
	 * <p>
46
	 * Constructor for PersonDetailElement.
47
	 * </p>
48
	 * 
49
	 * @param cdmFormFactory
50
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
51
	 *            object.
52
	 * @param formElement
53
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
54
	 *            object.
55
	 * @param style
56
	 *            a int.
57
	 */
58
	public PersonDetailElement(CdmFormFactory cdmFormFactory,
59
			ICdmFormElement formElement, int style) {
60
		super(cdmFormFactory, formElement);
61
	}
62

    
63
	/** {@inheritDoc} */
64
	@Override
65
	protected void createControls(ICdmFormElement formElement, Person entity,
66
			int style) {
67
		toggleable_cache = formFactory.createToggleableTextField(formElement,
68
				"Title Cache", entity.getTitleCache(),
69
				entity.isProtectedTitleCache(), SWT.NULL);
70

    
71
		text_nomenclaturalTitle = formFactory.createTextWithLabelElement(
72
				formElement, "Abbrev. Title", entity.getNomenclaturalTitle(),
73
				SWT.NULL);
74

    
75
		text_firstname = formFactory.createTextWithLabelElement(formElement,
76
				"Firstname", entity.getFirstname(), SWT.NULL);
77
		text_lastname = formFactory.createTextWithLabelElement(formElement,
78
				"Lastname", entity.getLastname(), SWT.NULL);
79

    
80
		text_prefix = formFactory.createTextWithLabelElement(formElement,
81
				"Prefix", entity.getPrefix(), SWT.NULL);
82
		text_suffix = formFactory.createTextWithLabelElement(formElement,
83
				"Suffix", entity.getSuffix(), SWT.NULL);
84
	}
85

    
86
	/** {@inheritDoc} */
87
	@Override
88
	protected void updateContent() {
89
		super.updateContent();
90

    
91
		excludeFromIrrelevantToggleableObjects = Arrays.asList(new Object[] {
92
				toggleable_cache, text_nomenclaturalTitle });
93

    
94
		toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
95
		setIrrelevant(toggleable_cache.getState(),
96
				excludeFromIrrelevantToggleableObjects);
97
	}
98

    
99
	/** {@inheritDoc} */
100
	@Override
101
	public void handleEvent(Object eventSource) {
102
		if (eventSource == toggleable_cache) {	
103
			handleToggleableCacheField();			
104
		} else if (eventSource == text_nomenclaturalTitle) {
105
			getEntity()
106
					.setNomenclaturalTitle(text_nomenclaturalTitle.getText());
107
		} else if (eventSource == text_firstname) {
108
			getEntity().setFirstname(text_firstname.getText());
109
		} else if (eventSource == text_lastname) {
110
			getEntity().setLastname(text_lastname.getText());
111
		} else if (eventSource == text_prefix) {
112
			getEntity().setPrefix(text_prefix.getText());
113
		} else if (eventSource == text_suffix) {
114
			getEntity().setSuffix(text_suffix.getText());
115
		}
116

    
117
		if (eventSource != toggleable_cache) {
118
			toggleable_cache.setText(getEntity().getTitleCache());
119
		}
120

    
121
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
122
	}
123
	
124
	@Override
125
	protected void handleToggleableCacheField() {
126
        boolean pushedState = toggleable_cache.getState();
127

    
128
        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
129
        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_nomenclaturalTitle }));
130
        updateToggleableCacheField();
131
    }
132
}
(4-4/12)