2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.navigation
.taxonomictree
;
11 import java
.util
.List
;
13 import org
.eclipse
.core
.runtime
.Assert
;
14 import org
.eclipse
.jface
.viewers
.ITreeContentProvider
;
15 import org
.eclipse
.jface
.viewers
.Viewer
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
20 * TODO maybe we want to implement ILazyTreeContentProvider
27 public class TaxonomicTreeContentProvider
implements ITreeContentProvider
{
32 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
34 public Object
[] getChildren(Object parentElement
) {
36 String errorMessage
= "getChildren(parentElement) called with non-Taxon element.";
38 // Make sure we are dealing with taxon objects
39 Assert
.isTrue(parentElement
instanceof Taxon
, errorMessage
);
41 if (parentElement
instanceof Taxon
) {
42 return ((Taxon
) parentElement
).getTaxonomicChildren().toArray();
51 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
53 public Object
getParent(Object element
) {
55 Assert
.isTrue(element
instanceof Taxon
,
56 "getParent(element) called with non-Taxon element.");
58 return ((Taxon
) element
).getTaxonomicParent();
64 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
66 public boolean hasChildren(Object element
) {
67 Assert
.isTrue(element
instanceof Taxon
,
68 "hasChildren(element) called with non-Taxon element.");
70 return ((Taxon
) element
).getTaxonomicChildrenCount() > 0;
77 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
79 @SuppressWarnings("unchecked")
80 public Object
[] getElements(Object inputElement
) {
81 List
<Taxon
> rootTaxa
= (List
<Taxon
>) inputElement
;
82 return rootTaxa
.toArray();
88 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
90 public void dispose() {}
95 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
96 * java.lang.Object, java.lang.Object)
98 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {