Java tutorial
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); } }