package com.aptana.rdt.internal.profiling;
import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
public class CallGraphContentProvider implements ITreeContentProvider {
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof ProfileThread) {
ProfileThread thread= (ProfileThread) parentElement;
return thread.getRoot().getChildren();
}
MethodCall call = (MethodCall) parentElement;
return call.getChildren();
}
public Object getParent(Object element) {
if (element instanceof ProfileThread) {
return null;
}
MethodCall call = (MethodCall) element;
if (call.isRoot()) return call.getThread();
return call.getParentMethodCall();
}
public boolean hasChildren(Object element) {
if (element == null) return false;
if (element instanceof ProfileThread) {
return true;
}
MethodCall call = (MethodCall) element;
return call.hasChildren();
}
public Object[] getElements(Object inputElement) {
List<ProfileThread> threads = (List<ProfileThread>)inputElement;
return threads.toArray(new ProfileThread[threads.size()]);
}
public void dispose() {
// TODO Auto-generated method stub
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
}