f817c1caf0d08f179782740b84651c6aaff5ae68
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / ConceptContainer.java
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
10 package eu.etaxonomy.taxeditor.editor.name;
11
12 import org.eclipse.swt.graphics.Font;
13
14 import eu.etaxonomy.cdm.model.taxon.Taxon;
15 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
16 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
17 import eu.etaxonomy.taxeditor.editor.EditorUtil;
18 import eu.etaxonomy.taxeditor.preference.Resources;
19
20 /**
21 * <p>ConceptContainer class.</p>
22 *
23 * @author p.ciardelli
24 * @created 26.01.2009
25 * @version 1.0
26 */
27 public class ConceptContainer extends AbstractGroupedContainer<Taxon> {
28
29 private TaxonRelationshipType relationshipType;
30
31
32 private ConceptContainer(TaxonNameEditor editor, AbstractGroup group,
33 Taxon relatedTaxon, TaxonRelationshipType relationshipType,
34 boolean acceptedTaxonIsFromTaxon) {
35 super(editor, group, relatedTaxon);
36
37 // FIXME the acceptedTaxonIsFromTaxon is never used and
38 // I can't remember what is was used for in the first place
39
40 this.relationshipType = relationshipType;
41 showRelationshipType();
42 }
43
44 /* (non-Javadoc)
45 * @see eu.etaxonomy.taxeditor.editor.name.NameComposite#initializeComposite()
46 */
47 /** {@inheritDoc} */
48 @Override
49 protected void initializeComposite() {
50
51 setIsDraggable(true);
52 setFont(getViewerFont());
53 setIndent(CONCEPT_INDENT);
54
55 showSec();
56
57 initTextViewer();
58 }
59
60 @Override
61 protected void updateIcon() {
62 setIcon(CONCEPT_ICON);
63 }
64
65 private void showRelationshipType() {
66 setNonEditableInfo(relationshipType.getLabel(), true);
67 }
68
69 private void showSec() {
70 if (getTaxonBase() == null) {
71 return;
72 }
73
74 if (getTaxonBase().getSec() == null) {
75 setNonEditableInfo("sec. ???", false);
76 } else {
77 setNonEditableInfo("sec. " + getTaxonBase().getSec().getTitleCache(), false);
78 }
79 }
80
81 /**
82 * <p>getNewInstance</p>
83 *
84 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
85 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.AbstractGroup} object.
86 * @param relationship a {@link eu.etaxonomy.cdm.model.taxon.TaxonRelationship} object.
87 * @return a {@link eu.etaxonomy.taxeditor.editor.name.ConceptContainer} object.
88 */
89 public static ConceptContainer getNewInstance(TaxonNameEditor editor, AbstractGroup group, TaxonRelationship relationship){
90
91 TaxonRelationshipType relationshipType = relationship.getType();
92
93 if (relationship.getToTaxon().equals(editor.getTaxon())) {
94 return new ConceptContainer (editor, group,
95 relationship.getFromTaxon(), relationshipType, false);
96 } else {
97 return new ConceptContainer (editor, group,
98 relationship.getToTaxon(), relationshipType, true);
99 }
100 }
101
102 /* (non-Javadoc)
103 * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#getViewerFont()
104 */
105 /** {@inheritDoc} */
106 @Override
107 protected Font getViewerFont() {
108 return EditorUtil.getFont(Resources.CONCEPT_FONT);
109 }
110
111 /**
112 * <p>getRelatedTaxon</p>
113 *
114 * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
115 */
116 public Taxon getRelatedTaxon() {
117 return getTaxonBase();
118 }
119
120 /**
121 * <p>calculateErrors</p>
122 */
123 protected void calculateErrors() {
124 super.calculateErrors();
125
126 nameViewer.setShowSecError(getTaxonBase());
127 }
128
129 /** {@inheritDoc} */
130 @Override
131 protected void updateNonEditableInfo() {
132 showSec();
133 showRelationshipType();
134 }
135 }
136
137
138
139
140
141