📄 jdfresourcerenderer.java
字号:
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.tree.TreeCellRenderer;
import org.cip4.jdflib.core.JDFElement;
import org.cip4.jdflib.util.StringUtil;
/**
* @author AnderssA ThunellE SvenoniusI
* The renderer used for the JTrees in the In & Output View
*/
public class JDFResourceRenderer implements TreeCellRenderer
{
private JLabel renderer;
private Color colorFoc = new Color(110, 200, 240);
private Color colorSel = new Color(200, 200, 200);
private JDFTreeNode treeNode;
private JDFElement elem = null;
private Wrapper w = null;
private boolean highlightFN;
private INIReader iniFile;
public JDFResourceRenderer(INIReader ini)
{
renderer = new JLabel();
renderer.setOpaque(true);
highlightFN = Editor.getEditor().getFrame().getHighlightFN();
this.iniFile = ini;
}
public Component getTreeCellRendererComponent(JTree jdfTree, Object value, boolean sel, boolean expanded,
boolean leaf, int row, boolean hasFocus)
{
treeNode = Editor.getEditor().getFrame().getTreeNode(row, jdfTree);
Color background;
if (Editor.getEditor().getFrame().isSearching())
background = sel ? colorSel : Color.white;
else
background = hasFocus ? colorFoc : Color.white;
renderer.setBackground(background);
renderer.setForeground(Color.black);
renderer.setFont(new Font("Verdana", Font.PLAIN, 10));
renderer.setText(value.toString());
renderer.setToolTipText(value.toString());
if(treeNode.getUserObject()!=null && treeNode.isElement())
w = (Wrapper) treeNode.getUserObject();
if (w != null)
elem = (JDFElement) w.getElement();
if (treeNode.getParent() != null && ((JDFTreeNode) treeNode.getParent()).hasForeignNS())
treeNode.setForeignNS();
if (treeNode.hasForeignNS() && treeNode.isValid() && highlightFN)
renderer.setForeground(Color.blue);
if (treeNode.isValid())
{
if (treeNode.isElement())
{
final String n = StringUtil.token(treeNode.toString(), 0, ":");
if (n.equals("JDF"))
{
if (hasFocus)
renderer.setIcon(iniFile.jdfElemIconS);
else
renderer.setIcon(iniFile.jdfElemIcon);
}
else if (elem != null && elem.hasAttribute("rRef", "", false))
{
if (elem.getAttribute("Usage", "", "").equals("Input"))
{
if (hasFocus)
renderer.setIcon(iniFile.rRefInElemIconS);
else
renderer.setIcon(iniFile.rRefInElemIcon);
}
else if (elem.getAttribute("Usage", "", "").equals("Output"))
{
if (hasFocus)
renderer.setIcon(iniFile.rRefOutElemIconS);
else
renderer.setIcon(iniFile.rRefOutElemIcon);
}
else
{
if (hasFocus)
renderer.setIcon(iniFile.rRefElemIconS);
else
renderer.setIcon(iniFile.rRefElemIcon);
}
}
else
{
if (hasFocus)
renderer.setIcon(iniFile.elemIconS);
else
renderer.setIcon(iniFile.elemIcon);
}
}
else
{
final String att = treeNode.toString();
final String n = StringUtil.token(att, 0, "=");
final String attValue = att.substring(att.indexOf('"') + 1, att.length() - 1).toLowerCase();
if (attValue.equals("new value"))
renderer.setForeground(Color.magenta);
if (treeNode.isInherited())
{
if (n.equals("PartIDKeys"))
{
if (hasFocus)
renderer.setIcon(iniFile.iPAttIconS);
else
renderer.setIcon(iniFile.iPAttIcon);
}
else
{
if (hasFocus)
renderer.setIcon(iniFile.iAttIconS);
else
renderer.setIcon(iniFile.iAttIcon);
}
}
else
{
if (n.equals("PartIDKeys"))
{
if (hasFocus)
renderer.setIcon(iniFile.pAttIconS);
else
renderer.setIcon(iniFile.pAttIcon);
}
else if (n.equals("rRef"))
{
if (hasFocus)
renderer.setIcon(iniFile.refAttIconS);
else
renderer.setIcon(iniFile.refAttIcon);
}
else
{
if (hasFocus)
renderer.setIcon(iniFile.attIconS);
else
renderer.setIcon(iniFile.attIcon);
}
}
}
}
else
{
if (treeNode.isElement())
{
renderer.setForeground(Color.red);
if (hasFocus)
renderer.setIcon(iniFile.errElemIconS);
else
renderer.setIcon(iniFile.errElemIcon);
renderer.setToolTipText("Invalid Element");
}
else
{
renderer.setForeground(Color.red);
if (hasFocus)
renderer.setIcon(iniFile.errAttIconS);
else
renderer.setIcon(iniFile.errAttIcon);
renderer.setToolTipText("Invalid Attribute");
}
}
return renderer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -