836888e16167f6b38b86a6e3bb85def22db6f21c
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / propertysheet / type / TypeCollectionPropertySource.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 package eu.etaxonomy.taxeditor.propertysheet.type;
10
11 import java.util.Collection;
12
13 import org.apache.log4j.Logger;
14 import org.eclipse.ui.views.properties.PropertyDescriptor;
15 import org.eclipse.ui.views.properties.TextPropertyDescriptor;
16
17 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
18 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
19 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
20 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
21 import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
22 import eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource;
23
24 public class TypeCollectionPropertySource extends CollectionPropertySource {
25 private static final Logger logger = Logger
26 .getLogger(TypeCollectionPropertySource.class);
27
28 private TaxonNameBase name;
29
30 public TypeCollectionPropertySource(TaxonNameBase name, Collection collection) {
31 super(collection);
32 this.name = name;
33 }
34
35 protected void addDescriptor(Object item) {
36 String itemDisplayName = getItemDisplayName(item);
37
38 if (item instanceof NameTypeDesignation) {
39 descriptors.addElement(
40 new PropertyDescriptor(item, itemDisplayName));
41 }
42
43 if (item instanceof SpecimenTypeDesignation) {
44 descriptors.addElement(
45 new TextPropertyDescriptor(item, itemDisplayName));
46 }
47 }
48
49 @Override
50 protected String getItemDisplayName(Object item) {
51 String str = "UNDEFINED";
52
53 if (item instanceof SpecimenTypeDesignation) {
54
55 TypeDesignationStatusBase status = ((TypeDesignationBase) item).getTypeStatus();
56
57 if (status != null) {
58 str = status.getLabel();
59 }
60 }
61
62 if (item instanceof NameTypeDesignation) {
63
64 NameTypeDesignation typeDesignation = (NameTypeDesignation) item;
65
66 if (typeDesignation.isLectoType()) {
67 str = "Lectotype";
68 } else {
69 str = "Type";
70 }
71 }
72
73 return str;
74 }
75
76 @Override
77 public Object getPropertyValue(Object id) {
78
79 if (id instanceof TypeDesignationBase) {
80 return new TypeDesignationPropertySource((TypeDesignationBase) id);
81 }
82 return null;
83 }
84
85 @Override
86 public void setPropertyValue(Object id, Object value) {
87
88 if (id instanceof SpecimenTypeDesignation && value instanceof String) {
89 SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation) id;
90
91 if (typeDesignation.getTypeSpecimen() != null) {
92 typeDesignation.getTypeSpecimen().setTitleCache((String) value);
93 } else {
94 logger.warn("'typeDesignation.getTypeSpecimen()' returned null.");
95 }
96 }
97 }
98
99 /* (non-Javadoc)
100 * @see eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource#toString()
101 */
102 @Override
103 public String toString() {
104 return "";
105 }
106 }