package com.onpositive.gae.profiler.ui;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.internal.ui.JavaPluginImages;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import com.onpositive.commons.ui.viewers.ConfigurableViewer;
import com.onpositive.gae.profiler.Activator;
import com.onpositive.gae.profiler.ITrace;
import com.onpositive.gae.profiler.core.AccumulatedMethod;
import com.onpositive.gae.profiler.core.MethodGroup;
public class PerformanceConfugurableViewer extends ConfigurableViewer {
SnapshotDataViewer own;
JavaElementLabelProvider provider = new JavaElementLabelProvider();
private Image jspImage=Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "/icons/tag-jsp.gif").createImage();
static Image pImage = JavaPluginImages.DESC_OBJS_PACKAGE.createImage();
static Image mImage = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "/icons/private_co.gif").createImage();
protected int getMaxSize() {
return 24;
}
public PerformanceConfugurableViewer(Composite owner, SnapshotDataViewer own) {
super(owner);
owner.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
provider.dispose();
}
});
this.own = own;
}
protected Image getDefaultImage() {
return null;
}
protected Image getImage(Object trace) {
if (trace instanceof MethodGroup) {
MethodGroup c = (MethodGroup) trace;
return pImage;
}
if (trace instanceof AccumulatedMethod){
AccumulatedMethod ma=(AccumulatedMethod) trace;
if (ma.getMethodName().length()==0){
return jspImage;
}
}
IMethod method = own.getMethod(trace);
if (method != null) {
return provider.getImage(method);
}
return mImage;
}
protected String getImplicitFilterString(Object trace) {
String string = (trace instanceof InverseTrace) ? "(parent is not filtered)"
: "(has not not filtered children)";
return string;
}
protected String getName(Object o1) {
ITrace t = (ITrace) o1;
return t.getName();
}
public IPreferenceStore getPreferenceStore() {
return Activator.getDefault().getPreferenceStore();
}
protected RenderInfo getRenderInfo(Object trace) {
AccumulatedMethod t = (AccumulatedMethod) trace;
String name = t.getName();
int blackLength = t.getName().indexOf(')') + 1;
if (blackLength == 0) {
blackLength = name.length() + 1;
}
return new RenderInfo(blackLength, name);
}
protected void onOpen(Object firstElement) {
own.handleOpen(firstElement);
}
}