Project

General

Profile

Download (1.95 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.editor.key.polytomous;
12

    
13
import java.util.ArrayList;
14
import java.util.List;
15

    
16
import org.eclipse.jface.viewers.IStructuredContentProvider;
17
import org.eclipse.jface.viewers.Viewer;
18

    
19
import eu.etaxonomy.cdm.model.description.PolytomousKey;
20
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
21

    
22
/**
23
 * @author n.hoffmann
24
 * @created Apr 4, 2011
25
 * @version 1.0
26
 */
27
public class PolytomousKeyListContentProvider implements
28
		IStructuredContentProvider {
29

    
30
	/*
31
	 * (non-Javadoc)
32
	 * 
33
	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
34
	 */
35
	@Override
36
	public void dispose() {
37
	}
38

    
39
	/*
40
	 * (non-Javadoc)
41
	 * 
42
	 * @see
43
	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
44
	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
45
	 */
46
	@Override
47
	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
48
	}
49

    
50
	/*
51
	 * (non-Javadoc)
52
	 * 
53
	 * @see
54
	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
55
	 * .lang.Object)
56
	 */
57
	@Override
58
	public Object[] getElements(Object inputElement) {
59
		if (inputElement instanceof PolytomousKey) {
60
			List result = new ArrayList();
61

    
62
			PolytomousKeyNode root = ((PolytomousKey) inputElement).getRoot();
63

    
64
			// result.add(root);
65
			// result.addAll(root.getChildren());
66
			getChildren(result, root);
67
			return result.toArray();
68
		}
69
		// else if (inputElement instanceof PolytomousKeyNode) {
70
		// return ((PolytomousKeyNode) inputElement).getChildren().toArray();
71
		// }
72

    
73
		return null;
74
	}
75

    
76
	private void getChildren(List result, PolytomousKeyNode node) {
77
		result.add(node);
78

    
79
		for (PolytomousKeyNode internalNode : node.getChildren()) {
80
			getChildren(result, internalNode);
81
		}
82
	}
83
}
(5-5/8)