Project

General

Profile

Download (4.52 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.taxon;
12

    
13
import java.util.Arrays;
14

    
15
import org.eclipse.jface.util.PropertyChangeEvent;
16
import org.eclipse.swt.SWT;
17

    
18
import eu.etaxonomy.cdm.model.taxon.Taxon;
19
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
20
import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
21
import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.SelectionType;
22
import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
23
import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement;
24
import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
25
import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
26
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
27
import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement;
28

    
29
/**
30
 * <p>
31
 * TaxonBaseDetailElement class.
32
 * </p>
33
 * 
34
 * @author n.hoffmann
35
 * @created Feb 26, 2010
36
 * @version 1.0
37
 */
38
public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElement<TaxonBase> {
39

    
40
	private CheckboxElement checkbox_doubtful;
41

    
42
	private CheckboxElement checkbox_useNameCache;
43

    
44
	private ReferenceSelectionElement selection_secundum;
45

    
46
	private TextWithLabelElement text_appendedPhrase;
47

    
48
	private CheckboxElement checkbox_excluded;
49

    
50
	private CheckboxElement checkbox_unplaced;
51

    
52
	/**
53
	 * <p>
54
	 * Constructor for TaxonBaseDetailElement.
55
	 * </p>
56
	 * 
57
	 * @param cdmFormFactory
58
	 *            a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory}
59
	 *            object.
60
	 * @param formElement
61
	 *            a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement}
62
	 *            object.
63
	 * @param style
64
	 *            a int.
65
	 */
66
	public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory,
67
			ICdmFormElement formElement, int style) {
68
		super(cdmFormFactory, formElement);
69
	}
70

    
71
	/** {@inheritDoc} */
72
	@Override
73
	protected void createControls(ICdmFormElement formElement,
74
			TaxonBase entity, int style) {
75
		toggleable_cache = formFactory.createToggleableTextField(formElement,
76
				"Title Cache", entity.getTitleCache(),
77
				entity.isProtectedTitleCache(), style);
78

    
79
		checkbox_doubtful = formFactory.createCheckbox(formElement,
80
				"Is doubtful", entity.isDoubtful(), style);
81
		checkbox_useNameCache = formFactory.createCheckbox(formElement,
82
				"Exclude Authorship", entity.isUseNameCache(), style);
83
		selection_secundum = (ReferenceSelectionElement) formFactory
84
				.createSelectionElement(SelectionType.REFERENCE,
85
						getConversationHolder(), formElement, "Secundum",
86
						entity.getSec(), ReferenceSelectionElement.DEFAULT,
87
						style);
88
		text_appendedPhrase = formFactory.createTextWithLabelElement(
89
				formElement, "Appended Phrase", entity.getAppendedPhrase(),
90
				SWT.NULL);
91

    
92
		if (entity instanceof Taxon) {
93
			checkbox_excluded = formFactory.createCheckbox(formElement,
94
					"Is excluded", ((Taxon) entity).isExcluded(), style);
95
			checkbox_unplaced = formFactory.createCheckbox(formElement,
96
					"Is unplaced", ((Taxon) entity).isUnplaced(), style);
97
		}
98
	}
99

    
100
	/** {@inheritDoc} */
101
	@Override
102
	protected void updateContent() {
103
		super.updateContent();
104
		toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
105
		setIrrelevant(toggleable_cache.getState(),
106
				Arrays.asList(new Object[] { toggleable_cache }));
107
	}
108
	
109
	@Override
110
	protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
111
		String title = getEntity().generateTitle();
112
		getEntity().setTitleCache(title);
113
		super.handleTitleCacheRelevantChange(event);
114
	}
115

    
116
	/** {@inheritDoc} */
117
	@Override
118
	public void handleEvent(Object eventSource) {
119
		if (eventSource.equals(toggleable_cache)) {
120
			handleToggleableCacheField();
121
		} else if (eventSource.equals(checkbox_doubtful)) {
122
			getEntity().setDoubtful(checkbox_doubtful.getSelection());
123
		} else if (eventSource.equals(checkbox_useNameCache)) {
124
			getEntity().setUseNameCache(checkbox_useNameCache.getSelection());
125
		} else if (eventSource.equals(selection_secundum)) {
126
			getEntity().setSec(selection_secundum.getSelection());
127
		} else if (eventSource.equals(text_appendedPhrase)) {
128
			getEntity().setAppendedPhrase(text_appendedPhrase.getText());
129
		} else if (eventSource == checkbox_excluded) {
130
			((Taxon) getEntity()).setExcluded(checkbox_excluded.getSelection());
131
		} else if (eventSource == checkbox_unplaced) {
132
			((Taxon) getEntity()).setUnplaced(checkbox_unplaced.getSelection());
133
		}
134
	}
135
}
(3-3/5)