1 32 33 package it.businesslogic.ireport.gui; 34 import it.businesslogic.ireport.*; 35 import javax.swing.tree.*; 36 import javax.swing.*; 37 import java.awt.*; 38 42 public class ProjectExplorerTreeCellRenderer extends DefaultTreeCellRenderer { 43 static ImageIcon folderClosedIcon; 44 static ImageIcon folderOpenedIcon; 45 46 static ImageIcon dirtyDocumentIcon; 47 static ImageIcon documentIcon; 48 49 public ProjectExplorerTreeCellRenderer() { 50 super(); 51 if (folderClosedIcon == null) 52 folderClosedIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/folderClosed.gif")); 53 if (folderOpenedIcon == null) 54 folderOpenedIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/folderOpened.gif")); 55 if (dirtyDocumentIcon == null) 56 dirtyDocumentIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/docDirty.gif")); 57 if (documentIcon == null) 58 documentIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/doc.gif")); 59 60 65 } 66 67 public Component getTreeCellRendererComponent( 68 JTree tree, 69 Object value, 70 boolean sel, 71 boolean expanded, 72 boolean leaf, 73 int row, 74 boolean hasFocus) { 75 76 super.getTreeCellRendererComponent( 77 tree, value, sel, 78 expanded, leaf, row, 79 hasFocus); 80 81 if (!((DefaultMutableTreeNode)value).isRoot() && leaf && isDirty(value)) { 82 setIcon(dirtyDocumentIcon); 83 setToolTipText(null); 84 } else if (!((DefaultMutableTreeNode)value).isRoot() && leaf && !isDirty(value)) { 85 setIcon(documentIcon); 86 setToolTipText(null); 87 } 88 else if (( ((DefaultMutableTreeNode)value).isRoot() || !leaf) && expanded) 89 { 90 setIcon(folderOpenedIcon); 91 setToolTipText(null); } 93 else if (( ((DefaultMutableTreeNode)value).isRoot() || !leaf) && !expanded) 94 { 95 setIcon(folderClosedIcon); 96 setToolTipText(null); } 98 99 return this; 100 } 101 102 protected boolean isDirty(Object value) { 103 DefaultMutableTreeNode node = 104 (DefaultMutableTreeNode)value; 105 106 if (node.getUserObject() instanceof DocumentTreeEntry) 107 { 108 DocumentTreeEntry nodeInfo = 109 (DocumentTreeEntry)(node.getUserObject()); 110 if (nodeInfo.getJrf() != null) 111 return nodeInfo.getJrf().getReport().isModified(); 112 } 113 return false; 114 } 115 } 116 117 | Popular Tags |