|
|
|
package com.fr.plugin.event.manager.ui.tree;
|
|
|
|
|
|
|
|
import com.fr.plugin.event.manager.data.MyNode;
|
|
|
|
import com.fr.plugin.event.manager.data.MyTree;
|
|
|
|
|
|
|
|
import javax.swing.BorderFactory;
|
|
|
|
import javax.swing.Icon;
|
|
|
|
import javax.swing.JTree;
|
|
|
|
import javax.swing.tree.DefaultTreeCellRenderer;
|
|
|
|
import java.awt.Color;
|
|
|
|
import java.awt.Component;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 组件树节点渲染方式
|
|
|
|
* @author Joe
|
|
|
|
* Created by Joe on 12/14/2020
|
|
|
|
*/
|
|
|
|
public class MyComponentCellRenderer extends DefaultTreeCellRenderer {
|
|
|
|
public MyComponentCellRenderer() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 负责设置节点名称、图标和提示文字
|
|
|
|
*
|
|
|
|
* @param tree
|
|
|
|
* @param value
|
|
|
|
* @param selected
|
|
|
|
* @param expanded
|
|
|
|
* @param leaf
|
|
|
|
* @param row
|
|
|
|
* @param hasFocus
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
|
|
|
|
boolean leaf, int row, boolean hasFocus) {
|
|
|
|
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
|
|
|
|
if (value instanceof MyTree) {
|
|
|
|
MyNode node = ((MyTree) value).getData();
|
|
|
|
String name = node.getNodeName();
|
|
|
|
setText(name);
|
|
|
|
Icon icon = node.getIcon();
|
|
|
|
if (icon != null) {
|
|
|
|
setIcon(icon);
|
|
|
|
}
|
|
|
|
setToolTipText(name);
|
|
|
|
}
|
|
|
|
this.setBorder(BorderFactory.createEmptyBorder(1, 0, 1, 0));
|
|
|
|
this.setBackgroundNonSelectionColor(new Color(255, 255, 255));
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Icon getClosedIcon() {
|
|
|
|
return getIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Icon getLeafIcon() {
|
|
|
|
return getIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Icon getOpenIcon() {
|
|
|
|
return getIcon();
|
|
|
|
}
|
|
|
|
}
|