Project

General

Profile

Download (2 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.taxeditor.navigation.navigator;
12

    
13
import org.apache.log4j.Logger;
14
import org.eclipse.jface.viewers.ITreeContentProvider;
15
import org.eclipse.jface.viewers.Viewer;
16

    
17
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
18
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
19
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
20

    
21
/**
22
 * <p>TaxonNodeContentProvider class.</p>
23
 *
24
 * @author p.ciardelli
25
 * @created 02.06.2009
26
 * @version 1.0
27
 */
28
public class TaxonNodeContentProvider implements ITreeContentProvider {
29
	private static final Logger logger = Logger
30
			.getLogger(TaxonNodeContentProvider.class);
31

    
32
	private static final Object[] NO_CHILDREN = new Object[0];
33

    
34
	/** {@inheritDoc} */
35
	@Override
36
    public Object[] getChildren(Object parentElement) {
37
		Object[] children = null;
38

    
39
		if(parentElement instanceof ITaxonTreeNode){
40
		    ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
41
			children = treeNode.getChildNodes().toArray();
42
		}
43

    
44
		return children != null ? children : NO_CHILDREN;
45
	}
46

    
47
	/** {@inheritDoc} */
48
	@Override
49
    public Object getParent(Object element) {
50
		if(element instanceof TaxonNode){
51
			return ((TaxonNode) element).getParent();
52
		}
53
		return null;
54
	}
55

    
56
	/** {@inheritDoc} */
57
	@Override
58
    public boolean hasChildren(Object element) {
59
		if(element instanceof TaxonNode){
60
			return ((TaxonNode) element).getCountChildren() > 0;
61
		}
62
		return getChildren(element).length > 0;
63
	}
64

    
65
	/** {@inheritDoc} */
66
	@Override
67
    public Object[] getElements(Object inputElement) {
68
		return this.getChildren(inputElement);
69
	}
70

    
71
	/**
72
	 * <p>dispose</p>
73
	 */
74
	@Override
75
    public void dispose() {
76
	}
77

    
78
	/** {@inheritDoc} */
79
	@Override
80
    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
81
	}
82
}
(11-11/14)