38ecc3281671aedf6d054515c54aeafd4634d10b
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / container / MisapplicationContainer.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.container;
11
12 import org.eclipse.swt.graphics.Font;
13
14 import eu.etaxonomy.cdm.model.taxon.Taxon;
15 import eu.etaxonomy.taxeditor.editor.EditorUtil;
16 import eu.etaxonomy.taxeditor.editor.Messages;
17 import eu.etaxonomy.taxeditor.preference.Resources;
18
19 /**
20 * <p>MisapplicationContainer class.</p>
21 *
22 * @author p.ciardelli
23 * @created 13.01.2009
24 * @version 1.0
25 */
26 public class MisapplicationContainer extends AbstractGroupedContainer<Taxon> {
27
28 /**
29 * <p>Constructor for MisapplicationContainer.</p>
30 *
31 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
32 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
33 * @param misappliedName a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
34 */
35 public MisapplicationContainer(AbstractGroup group, Taxon misappliedName) {
36 super(misappliedName);
37 }
38
39
40 /* (non-Javadoc)
41 * @see eu.etaxonomy.taxeditor.editor.name.NameComposite#initializeComposite()
42 */
43 /** {@inheritDoc} */
44 @Override
45 protected void initializeComposite() {
46 setIsDraggable(true);
47 setFont(getViewerFont());
48
49 showSec();
50
51 initTextViewer();
52 }
53
54 @Override
55 protected void updateIcon() {
56 setIcon(MISAPPLIEDNAME_ICON);
57 }
58
59 private void showSec() {
60 if (getMisappliedName() == null) {
61 return;
62 }
63
64 if (getMisappliedName().getSec() == null) {
65 if (getMisappliedName().getAppendedPhrase() != null ){
66 setNonEditableInfo(getMisappliedName().getAppendedPhrase(), false);
67 }else{
68 setNonEditableInfo("sec. ???", false); //$NON-NLS-1$
69 }
70 } else {
71 String title = getMisappliedName().getSec().getTitleCache();
72 title = title.replace("&", "&&"); //$NON-NLS-1$ //$NON-NLS-2$
73 String sec = "sec. "; //$NON-NLS-1$
74 if (getMisappliedName().getAppendedPhrase() != null ){
75 sec = getMisappliedName().getAppendedPhrase() + " "+sec; //$NON-NLS-1$
76 }
77 setNonEditableInfo(sec + title, false);
78 }
79 }
80
81 /**
82 * <p>getMisappliedName</p>
83 *
84 * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
85 */
86 public Taxon getMisappliedName() {
87 return getTaxonBase();
88 }
89
90 /** {@inheritDoc} */
91 @Override
92 protected Font getViewerFont() {
93 return EditorUtil.getFont(Resources.MISAPPLIEDNAME_FONT);
94 }
95
96 /* (non-Javadoc)
97 * @see eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer#showAnnotations()
98 */
99 @Override
100 public void showAnnotations() {
101 if(getData().getSec() == null){
102 getNameViewer().addAnnotation(
103 new EditorAnnotation(0, Messages.MisapplicationContainer_SEC_REF_REQUIRED));
104 }
105 super.showAnnotations();
106 }
107
108
109 /** {@inheritDoc} */
110 @Override
111 protected void updateNonEditableInfo() {
112 showSec();
113 }
114
115
116 /* (non-Javadoc)
117 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#updateIndent()
118 */
119 @Override
120 protected void updateIndent() {
121 setIndent(MISAPPLIEDNAME_INDENT);
122 }
123
124 }