fix missing publish flag for synonyms
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / taxon / TaxonBaseDetailElement.java
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} object.
60 * @param formElement
61 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
62 * @param style
63 * a int.
64 */
65 public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory,
66 ICdmFormElement formElement, int style) {
67 super(cdmFormFactory, formElement);
68 }
69
70 /** {@inheritDoc} */
71 @Override
72 protected void createControls(ICdmFormElement formElement,
73 TaxonBase entity, int style) {
74 toggleable_cache = formFactory.createToggleableTextField(formElement,
75 "Title Cache", entity.getTitleCache(),
76 entity.isProtectedTitleCache(), style);
77
78 selection_secundum = formFactory
79 .createSelectionElement(Reference.class,
80 getConversationHolder(), formElement, "Secundum",
81 entity.getSec(), EntitySelectionElement.ALL,
82 style);
83
84 text_appendedPhrase = formFactory.createTextWithLabelElement(
85 formElement, "Appended Phrase", entity.getAppendedPhrase(),
86 SWT.NULL);
87 checkbox_useNameCache = formFactory.createCheckbox(formElement,
88 "Exclude Authorship", entity.isUseNameCache(), style);
89
90 if (entity instanceof Taxon) {
91 checkbox_excluded = formFactory.createCheckbox(formElement,
92 "Taxon is excluded", ((Taxon) entity).isExcluded(), style);
93 checkbox_unplaced = formFactory.createCheckbox(formElement,
94 "Taxon is unplaced", ((Taxon) entity).isUnplaced(), style);
95 }
96
97 checkbox_doubtful = formFactory.createCheckbox(formElement,
98 entity.getClass().getSimpleName() + " is doubtful", entity.isDoubtful(), style);
99
100 if (entity instanceof Taxon) {
101 checkbox_published = formFactory.createCheckbox(formElement,
102 "Taxon is published", ((Taxon) entity).isPublish(), style);
103 }
104 }
105
106 /** {@inheritDoc} */
107 @Override
108 protected void updateContent() {
109 super.updateContent();
110 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
111 setIrrelevant(toggleable_cache.getState(),
112 Arrays.asList(new Object[] { toggleable_cache }));
113 }
114
115 @Override
116 protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
117 String title = getEntity().generateTitle();
118 getEntity().setTitleCache(title);
119 super.handleTitleCacheRelevantChange(event);
120 }
121
122 /** {@inheritDoc} */
123 @Override
124 public void handleEvent(Object eventSource) {
125 if (eventSource== toggleable_cache) {
126 handleToggleableCacheField();
127 } else if (eventSource == checkbox_doubtful) {
128 getEntity().setDoubtful(checkbox_doubtful.getSelection());
129 } else if (eventSource == checkbox_useNameCache) {
130 getEntity().setUseNameCache(checkbox_useNameCache.getSelection());
131 } else if (eventSource == selection_secundum) {
132 getEntity().setSec(selection_secundum.getSelection());
133 } else if (eventSource == text_appendedPhrase) {
134 getEntity().setAppendedPhrase(text_appendedPhrase.getText());
135 } else if (eventSource == checkbox_excluded) {
136 ((Taxon) getEntity()).setExcluded(checkbox_excluded.getSelection());
137 } else if (eventSource == checkbox_unplaced) {
138 ((Taxon) getEntity()).setUnplaced(checkbox_unplaced.getSelection());
139 } else if (eventSource == checkbox_published) {
140 ((Taxon)getEntity()).setPublish(checkbox_published.getSelection());
141 }
142 }
143 }