trace/traceviewer/com.nokia.traceviewer/src/com/nokia/traceviewer/dialog/treeitem/TreeItemLabelProvider.java
author Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
Tue, 24 Aug 2010 14:01:48 +0300
changeset 16 72f198be1c1d
parent 11 5b9d4d8641ce
permissions -rw-r--r--
Crash Analyser Carbide Extension 1.4.0

/*
 * Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:
 *
 * TreeItem Label Provider
 *
 */
package com.nokia.traceviewer.dialog.treeitem;

import java.net.URL;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;

import com.nokia.traceviewer.TraceViewerPlugin;

/**
 * TreeItem Label Provider
 * 
 */
public class TreeItemLabelProvider implements ILabelProvider {

	/**
	 * Group image
	 */
	private final Image groupImage;

	/**
	 * Tree item image
	 */
	private final Image treeItemImage;

	/**
	 * Tree Component item image
	 */
	private final Image treeComponentItemImage;

	/**
	 * Stop trigger tree item image
	 */
	private final Image stopTriggerItemImage;

	/**
	 * Activation trigger tree item image
	 */
	private final Image activationTriggerItemImage;

	/**
	 * Constructor
	 */
	public TreeItemLabelProvider() {
		// Create group icon
		URL url = TraceViewerPlugin.getDefault().getBundle().getEntry(
				"/icons/folder.gif"); //$NON-NLS-1$
		groupImage = ImageDescriptor.createFromURL(url).createImage();

		// Create tree item icon
		url = TraceViewerPlugin.getDefault().getBundle().getEntry(
				"/icons/listitem.gif"); //$NON-NLS-1$
		treeItemImage = ImageDescriptor.createFromURL(url).createImage();

		// Create tree Component item icon
		url = TraceViewerPlugin.getDefault().getBundle().getEntry(
				"/icons/listcomponentitem.gif"); //$NON-NLS-1$
		treeComponentItemImage = ImageDescriptor.createFromURL(url)
				.createImage();

		// Create stop trigger item icon
		url = TraceViewerPlugin.getDefault().getBundle().getEntry(
				"/icons/stoptrigger.gif"); //$NON-NLS-1$
		stopTriggerItemImage = ImageDescriptor.createFromURL(url).createImage();

		// Create activation trigger item icon
		url = TraceViewerPlugin.getDefault().getBundle().getEntry(
				"/icons/activationtrigger.gif"); //$NON-NLS-1$
		activationTriggerItemImage = ImageDescriptor.createFromURL(url)
				.createImage();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
	 */
	public Image getImage(Object element) {
		Image image;
		if (((TreeItem) element).isGroup()) {
			image = groupImage;
		} else {
			// Stop trigger image
			if (element instanceof TriggerTreeItem
					&& ((TriggerTreeItem) element).getType() == TriggerTreeItem.Type.STOPTRIGGER) {
				image = stopTriggerItemImage;

				// Activation trigger image
			} else if (element instanceof TriggerTreeItem
					&& ((TriggerTreeItem) element).getType() == TriggerTreeItem.Type.ACTIVATIONTRIGGER) {
				image = activationTriggerItemImage;

				// Component rule tree images
			} else if (componentRuleSelected(element)) {
				image = treeComponentItemImage;

				// Text rule tree images
			} else {
				image = treeItemImage;
			}
		}
		return image;
	}

	/**
	 * Checks if the element is component rule
	 * 
	 * @param element
	 *            the element to check
	 * @return true if the element is component rule
	 */
	private boolean componentRuleSelected(Object element) {
		boolean isComponent = false;
		if (element instanceof ColorTreeComponentItem
				|| element instanceof FilterTreeComponentItem
				|| element instanceof LineCountTreeComponentItem) {
			isComponent = true;
		}
		return isComponent;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
	 */
	public String getText(Object element) {
		String text = ((TreeItem) element).getName();
		return text;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.
	 * jface.viewers.ILabelProviderListener)
	 */
	public void addListener(ILabelProviderListener listener) {

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
	 */
	public void dispose() {
		// Dispose images
		if (groupImage != null) {
			groupImage.dispose();
		}
		if (treeItemImage != null) {
			treeItemImage.dispose();
		}
		if (stopTriggerItemImage != null) {
			stopTriggerItemImage.dispose();
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang
	 * .Object, java.lang.String)
	 */
	public boolean isLabelProperty(Object element, String property) {
		return false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse
	 * .jface.viewers.ILabelProviderListener)
	 */
	public void removeListener(ILabelProviderListener listener) {

	}

}