Project

General

Profile

Download (4.75 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.reference.Reference;
19
import eu.etaxonomy.cdm.model.taxon.Taxon;
20
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
23
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
25
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
26
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27

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

    
39
	private CheckboxElement checkbox_doubtful;
40

    
41
	private CheckboxElement checkbox_useNameCache;
42

    
43
	private EntitySelectionElement<Reference> selection_secundum;
44

    
45
	private TextWithLabelElement text_appendedPhrase;
46

    
47
	private CheckboxElement checkbox_excluded;
48

    
49
	private CheckboxElement checkbox_unplaced;
50

    
51
	private CheckboxElement checkbox_published;
52

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

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

    
80
		selection_secundum = formFactory
81
		.createSelectionElement(Reference.class,
82
				getConversationHolder(), formElement, "Secundum",
83
				entity.getSec(), EntitySelectionElement.ALL,
84
				style);
85

    
86
		text_appendedPhrase = formFactory.createTextWithLabelElement(
87
				formElement, "Appended Phrase", entity.getAppendedPhrase(),
88
				SWT.NULL);
89
		checkbox_useNameCache = formFactory.createCheckbox(formElement,
90
				"Exclude Authorship", entity.isUseNameCache(), style);
91

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

    
101
		checkbox_doubtful = formFactory.createCheckbox(formElement,
102
				entity.getClass().getSimpleName() + " is doubtful", entity.isDoubtful(), style);
103
	}
104

    
105
	/** {@inheritDoc} */
106
	@Override
107
	protected void updateContent() {
108
		super.updateContent();
109
		toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
110
		setIrrelevant(toggleable_cache.getState(),
111
				Arrays.asList(new Object[] { toggleable_cache }));
112
	}
113

    
114
	@Override
115
	protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
116
		String title = getEntity().generateTitle();
117
		getEntity().setTitleCache(title);
118
		super.handleTitleCacheRelevantChange(event);
119
	}
120

    
121
	/** {@inheritDoc} */
122
	@Override
123
	public void handleEvent(Object eventSource) {
124
		if (eventSource.equals(toggleable_cache)) {
125
			handleToggleableCacheField();
126
		} else if (eventSource.equals(checkbox_doubtful)) {
127
			getEntity().setDoubtful(checkbox_doubtful.getSelection());
128
		} else if (eventSource.equals(checkbox_useNameCache)) {
129
			getEntity().setUseNameCache(checkbox_useNameCache.getSelection());
130
		} else if (eventSource.equals(selection_secundum)) {
131
			getEntity().setSec(selection_secundum.getSelection());
132
		} else if (eventSource.equals(text_appendedPhrase)) {
133
			getEntity().setAppendedPhrase(text_appendedPhrase.getText());
134
		} else if (eventSource == checkbox_excluded) {
135
			((Taxon) getEntity()).setExcluded(checkbox_excluded.getSelection());
136
		} else if (eventSource == checkbox_unplaced) {
137
		    ((Taxon) getEntity()).setUnplaced(checkbox_unplaced.getSelection());
138
		} else if (eventSource == checkbox_published) {
139
		    ((Taxon) getEntity()).setPublish(checkbox_published.getSelection());
140
		}
141
	}
142
}
(3-3/7)