moved image functionality into the library
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / editor / descriptiontree / DescriptionContentProvider.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.editor.descriptiontree;
5
6 import org.apache.log4j.Logger;
7 import org.eclipse.jface.viewers.ITreeContentProvider;
8 import org.eclipse.jface.viewers.Viewer;
9
10 import eu.etaxonomy.cdm.api.utility.ImagesUtility;
11 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
12 import eu.etaxonomy.cdm.model.description.Feature;
13 import eu.etaxonomy.cdm.model.description.TaxonDescription;
14 import eu.etaxonomy.cdm.model.taxon.Taxon;
15 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
16
17 /**
18 * @author p.ciardelli
19 *
20 */
21 public class DescriptionContentProvider implements ITreeContentProvider {
22 private static final Logger logger = Logger
23 .getLogger(DescriptionContentProvider.class);
24
25 private static final Object[] NO_CHILDREN = new Object[0];
26
27 private IDescriptiveInformationProvider infoProvider;
28
29 public DescriptionContentProvider(IDescriptiveInformationProvider infoProvider) {
30 this.infoProvider = infoProvider;
31 }
32
33 /* (non-Javadoc)
34 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
35 */
36 public Object[] getChildren(Object parentElement) {
37 if (parentElement instanceof TaxonEditorInput) {
38 Taxon taxon = ((TaxonEditorInput) parentElement).getTaxon();
39 return taxon.getDescriptions().toArray();
40 }
41 if (parentElement instanceof TaxonDescription) {
42 if (((TaxonDescription) parentElement).isImageGallery()) {
43 return infoProvider.getDescriptionElements((TaxonDescription) parentElement, Feature.IMAGE()).toArray();
44 } else {
45 return infoProvider.getDescriptionFeatures((TaxonDescription) parentElement).toArray();
46 }
47 }
48 if (parentElement instanceof TaxonDescriptionFeature){
49 TaxonDescriptionFeature taxonDescriptionFeature = (TaxonDescriptionFeature) parentElement;
50 Feature feature = taxonDescriptionFeature.getFeature();
51 TaxonDescription description = taxonDescriptionFeature.getDescription();
52 return infoProvider.getDescriptionElements(description, feature).toArray();
53 }
54 if (parentElement instanceof DescriptionElementBase) {
55 DescriptionElementBase descriptionElement = (DescriptionElementBase) parentElement;
56 if (descriptionElement.getInDescription().isImageGallery()) {
57 return ImagesUtility.getOrderedImages(descriptionElement).toArray();
58 }
59 }
60 return NO_CHILDREN;
61 }
62
63 /* (non-Javadoc)
64 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
65 */
66 public Object getParent(Object element) {
67 return null;
68 }
69
70 /* (non-Javadoc)
71 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
72 */
73 public boolean hasChildren(Object element) {
74 return (getChildren(element).length > 0);
75 }
76
77 /* (non-Javadoc)
78 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
79 */
80 public Object[] getElements(Object inputElement) {
81 return getChildren(inputElement);
82 }
83
84 /* (non-Javadoc)
85 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
86 */
87 public void dispose() {}
88
89 /* (non-Javadoc)
90 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
91 */
92 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
93 }