1
/*******************************************************************************
2
* Copyright (c) 2009 STMicroelectronics.
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* http://www.eclipse.org/legal/epl-v10.html
9
* Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
10
*******************************************************************************/
11
package org.eclipse.linuxtools.internal.gprof.view;
13
import java.util.LinkedList;
15
import org.eclipse.jface.viewers.ITreeContentProvider;
16
import org.eclipse.jface.viewers.Viewer;
17
import org.eclipse.linuxtools.internal.gprof.parser.GmonDecoder;
18
import org.eclipse.linuxtools.internal.gprof.view.histogram.AbstractTreeElement;
19
import org.eclipse.linuxtools.internal.gprof.view.histogram.HistRoot;
20
import org.eclipse.linuxtools.internal.gprof.view.histogram.TreeElement;
24
* Tree content provider on charge of displaying call graph
26
* @author Xavier Raynaud <xavier.raynaud@st.com>
28
public class FileHistogramContentProvider implements ITreeContentProvider {
30
public static final FileHistogramContentProvider sharedInstance = new FileHistogramContentProvider();
35
FileHistogramContentProvider() {
40
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
43
public Object[] getChildren(Object parentElement) {
44
AbstractTreeElement elem = (AbstractTreeElement) parentElement;
45
LinkedList<? extends TreeElement> list = elem.getChildren();
46
return list.toArray();
51
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
54
public Object getParent(Object element) {
55
AbstractTreeElement elem = (AbstractTreeElement) element;
56
return elem.getParent();
61
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
64
public boolean hasChildren(Object element) {
65
AbstractTreeElement elem = (AbstractTreeElement) element;
66
return elem.hasChildren() && !elem.getChildren().isEmpty();
71
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
74
public Object[] getElements(Object inputElement) {
75
if (inputElement == null) return new Object[0];
76
GmonDecoder obj = (GmonDecoder) inputElement;
77
HistRoot root = obj.getRootNode();
85
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
88
public void dispose() {
93
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
96
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {