mt.com.southedge.jclockwork.plugin.treeview.cellrenderer.ClockWorkCellRenderer.java Source code

Java tutorial

Introduction

Here is the source code for mt.com.southedge.jclockwork.plugin.treeview.cellrenderer.ClockWorkCellRenderer.java

Source

package mt.com.southedge.jclockwork.plugin.treeview.cellrenderer;

/*******************************************************************************
 * Copyright (c) 2011 SouthEdge Software and Consultancy.  
 * 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:
 *     Carl Frendo - initial design and implementation
 *******************************************************************************/

import java.awt.Component;

import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeCellRenderer;

import mt.com.southedge.jclockwork.plugin.Activator;
import mt.com.southedge.jclockwork.plugin.tree.jclockwork.JClockWorkNode;
import mt.com.southedge.jclockwork.plugin.treeview.util.ImageConverter;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;

public class ClockWorkCellRenderer implements TreeCellRenderer {

    static {
        init();
    }

    private static void init() {

        ImageDescriptor leafDes = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                "icons/method_public_object.png");

        ImageDescriptor branchDes = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                "icons/class_obj.gif");

        ImageIcon leafIcon = new ImageIcon(ImageConverter.convertToAWT(leafDes.getImageData()));
        ImageIcon branchIcon = new ImageIcon(ImageConverter.convertToAWT(branchDes.getImageData()));

        UIManager.put("Tree.leafIcon", leafIcon);
        UIManager.put("Tree.openIcon", branchIcon);
        UIManager.put("Tree.closedIcon", branchIcon);
    }

    /**
     * @param tree the tree
     * @param value the node
     * @param selected is selected?
     * @param expanded is expanded?
     * @param leaf is leaf?
     * @param row row
     * @param hasFocus has Focus?
     */
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
            boolean leaf, int row, boolean hasFocus) {

        JClockWorkNode node = (JClockWorkNode) value;
        if (node.getRenderListSize() == 0) {
            node.getClockWorkCellRenderer().add(new DefaultTreeCellRenderer());

            return node.getClockWorkCellRenderer().get(0).getTreeCellRendererComponent(tree, value, selected,
                    expanded, leaf, row, hasFocus);
        }
        return node.getClockWorkCellRenderer().get(node.getRenderListSize() - 1).getTreeCellRendererComponent(tree,
                value, selected, expanded, leaf, row, hasFocus);
    }

}