package gui;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import dao.Controller;
import dao.IViewport;
import dao.IViewportPlot;
import dao.RObject;
import dao.RObjectViewportPlot;
import dao.RObjectViewportTable;
public class JRObjectTreeCellRenderer extends DefaultTreeCellRenderer {
private ImageIcon iconTable;
private ImageIcon iconPlot;
private ImageIcon iconLatex;
private ImageIcon iconTableAndLatex;
public JRObjectTreeCellRenderer() {
this.iconTable = new ImageIcon("./images/i32x32/eval.png");
this.iconLatex = new ImageIcon("./images/i32x32/tex.png");
this.iconTableAndLatex = new ImageIcon(
"./images/i32x32/texeval.png");
}
public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row,
hasFocus);
// if (leaf /*&& isTutorialBook(value)*/) {
// setIcon(icon);
// setToolTipText("This book is in the Tutorial series.");
// } else {
// setToolTipText(null); //no tool tip
// }
ToolTipManager.sharedInstance().registerComponent(tree);
if (((DefaultMutableTreeNode) value).getLevel() == 1) {
setIcon(null);
}
if (((DefaultMutableTreeNode) value).getLevel() == 2) {
Icon icon = getAccordingIcon(value);
setIcon(icon);
}
return this;
}
protected Icon getAccordingIcon(Object value) {
IViewport ro = (IViewport) ((DefaultMutableTreeNode) value).getUserObject();
// TODO: do not set tooltip in icon function
setToolTipText(ro.getSummaryHtmlString());
if (ro.getAttachedRObject().isEvaled()
&& (ro.getSweaveTag() != null)) {
return iconTableAndLatex;
}
if (ro.getAttachedRObject().isEvaled()) {
return iconTable;
}
if (ro.isInReport()) {
return iconLatex;
}
return null;
/*
if (((DefaultMutableTreeNode) value).getParent()
== JRObjectTreePane.getDataFilesNode()) {
}
if (((DefaultMutableTreeNode) value).getParent()
== JRObjectTreePane.getTablesNode()) {
RObjectViewportTable ro = Controller.getRTableObjectfromVarname(
((DefaultMutableTreeNode) value).toString(),
Controller.getTables(), true);
setToolTipText(ro.getSummaryHtmlString());
if (ro.getAttachedRObject().isEvaled()
&& (ro.getAttachedRObject().getSweaveTag() != null)) {
return iconTableAndLatex;
} // TODO combiicon
if (ro.getAttachedRObject().isEvaled()) {
return iconTable;
}
if ((ro.getAttachedRObject().getSweaveTag() != null)) {
return iconLatex;
}
return null;
}
if (((DefaultMutableTreeNode) value).getParent()
== JRObjectTreePane.getPlotsNode()) {
IViewportPlot rpo = (IViewportPlot) ((DefaultMutableTreeNode) value).getUserObject();
setToolTipText(rpo.getSummaryHtmlString());
if (rpo.getAttachedRObject().isEvaled()
&& (rpo.getAttachedRObject().getSweaveTag() != null)) {
return iconTableAndLatex;
} // TODO combiicon
if (rpo.getAttachedRObject().isEvaled()) {
return iconTable;
}
if ((rpo.getAttachedRObject().getSweaveTag() != null)) {
return iconLatex;
}
return null;
}
return null;
*/
}
}