diff options
Diffstat (limited to 'gprof/org.eclipse.linuxtools.gprof/src/org/eclipse/linuxtools/internal/gprof/view/FileHistogramContentProvider.java')
-rw-r--r-- | gprof/org.eclipse.linuxtools.gprof/src/org/eclipse/linuxtools/internal/gprof/view/FileHistogramContentProvider.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/gprof/org.eclipse.linuxtools.gprof/src/org/eclipse/linuxtools/internal/gprof/view/FileHistogramContentProvider.java b/gprof/org.eclipse.linuxtools.gprof/src/org/eclipse/linuxtools/internal/gprof/view/FileHistogramContentProvider.java new file mode 100644 index 0000000000..502378ed2a --- /dev/null +++ b/gprof/org.eclipse.linuxtools.gprof/src/org/eclipse/linuxtools/internal/gprof/view/FileHistogramContentProvider.java @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright (c) 2009 STMicroelectronics. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation + *******************************************************************************/ +package org.eclipse.linuxtools.internal.gprof.view; + +import java.util.LinkedList; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.linuxtools.internal.gprof.parser.GmonDecoder; +import org.eclipse.linuxtools.internal.gprof.view.histogram.AbstractTreeElement; +import org.eclipse.linuxtools.internal.gprof.view.histogram.HistRoot; +import org.eclipse.linuxtools.internal.gprof.view.histogram.TreeElement; + + +/** + * Tree content provider on charge of displaying call graph + * + * @author Xavier Raynaud <xavier.raynaud@st.com> + */ +public class FileHistogramContentProvider implements ITreeContentProvider { + + public static final FileHistogramContentProvider sharedInstance = new FileHistogramContentProvider(); + + /** + * Constructor + */ + FileHistogramContentProvider() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) + */ + public Object[] getChildren(Object parentElement) { + AbstractTreeElement elem = (AbstractTreeElement) parentElement; + LinkedList<? extends TreeElement> list = elem.getChildren(); + return list.toArray(); + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) + */ + public Object getParent(Object element) { + AbstractTreeElement elem = (AbstractTreeElement) element; + return elem.getParent(); + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) + */ + public boolean hasChildren(Object element) { + AbstractTreeElement elem = (AbstractTreeElement) element; + return elem.hasChildren(); + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) + */ + public Object[] getElements(Object inputElement) { + if (inputElement == null) return new Object[0]; + GmonDecoder obj = (GmonDecoder) inputElement; + HistRoot root = obj.getRootNode(); + return new Object[] { + root + }; + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#dispose() + */ + public void dispose() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + } + +} |