editor now updatable via updateSite
[taxeditor.git] / taxeditor-navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / taxonomictree / TaxonomicTreeContentProvider.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.navigation.taxonomictree;
10
11 import java.util.List;
12
13 import org.eclipse.core.runtime.Assert;
14 import org.eclipse.jface.viewers.ITreeContentProvider;
15 import org.eclipse.jface.viewers.Viewer;
16
17 import eu.etaxonomy.cdm.model.taxon.Taxon;
18
19 /**
20 * TODO maybe we want to implement ILazyTreeContentProvider
21 *
22 * @author p.ciardelli
23 * @created 27.06.2008
24 * @version 1.0
25 * @author n.hoffmann
26 */
27 public class TaxonomicTreeContentProvider implements ITreeContentProvider {
28
29 /*
30 * (non-Javadoc)
31 *
32 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
33 */
34 public Object[] getChildren(Object parentElement) {
35
36 String errorMessage = "getChildren(parentElement) called with non-Taxon element.";
37
38 // Make sure we are dealing with taxon objects
39 Assert.isTrue(parentElement instanceof Taxon, errorMessage);
40
41 if (parentElement instanceof Taxon) {
42 return ((Taxon) parentElement).getTaxonomicChildren().toArray();
43 }
44
45 return null;
46 }
47
48 /*
49 * (non-Javadoc)
50 *
51 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
52 */
53 public Object getParent(Object element) {
54
55 Assert.isTrue(element instanceof Taxon,
56 "getParent(element) called with non-Taxon element.");
57
58 return ((Taxon) element).getTaxonomicParent();
59 }
60
61 /*
62 * (non-Javadoc)
63 *
64 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
65 */
66 public boolean hasChildren(Object element) {
67 Assert.isTrue(element instanceof Taxon,
68 "hasChildren(element) called with non-Taxon element.");
69
70 return ((Taxon) element).getTaxonomicChildrenCount() > 0;
71 }
72
73
74 /*
75 * (non-Javadoc)
76 *
77 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
78 */
79 @SuppressWarnings("unchecked")
80 public Object[] getElements(Object inputElement) {
81 List<Taxon> rootTaxa = (List<Taxon>) inputElement;
82 return rootTaxa.toArray();
83 }
84
85 /*
86 * (non-Javadoc)
87 *
88 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
89 */
90 public void dispose() {}
91
92 /*
93 * (non-Javadoc)
94 *
95 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
96 * java.lang.Object, java.lang.Object)
97 */
98 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
99 }
100 }