package org.ntlab.traceanalyzer;

import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;

public class CallTreeLabelProvider extends LabelProvider {
	public Image getImage(Object element) {
		if (element instanceof MarkedMethodExecution){
			int uniqueness = ((MarkedMethodExecution)element).isUniqueMethodInvokedFrom();
			ImageRegistry registry = Activator.getDefault().getImageRegistry();			
			Image image;
			switch (uniqueness) {
			case 1:
				image = registry.get("TraceAnalyzer.STACK_FRAME_IMAGE2");
				break;
			case 2:
				image = registry.get("TraceAnalyzer.STACK_FRAME_IMAGE3");
				break;
			case 0:
			default:
				image = registry.get("TraceAnalyzer.STACK_FRAME_IMAGE");
			}
			return image;
		} else if(element instanceof MarkedThread){
			int uniqueness = ((MarkedThread)element).isUniqueMethodInvokedFrom();
			ImageRegistry registry = Activator.getDefault().getImageRegistry();
			Image image;
			switch (uniqueness) {
			case 1:
				image = registry.get("TraceAnalyzer.THREAD_IMAGE2");
				break;
			case 0:
			default:
				image = registry.get("TraceAnalyzer.THREAD_IMAGE");
			}
			return image;
		} else {
			return null;
		}
    }

    public String getText(Object element) {
    	String name = null;
		if (element instanceof MarkedMethodExecution){
			MarkedMethodExecution method = (MarkedMethodExecution)element;
	    	name = method.getSignature();
		} else if (element instanceof MarkedThread){
			name = ((MarkedThread)element).getId();
		}
    	return name;
	}
}
