1 32 33 package it.businesslogic.ireport.gui.library; 34 import it.businesslogic.ireport.*; 35 import it.businesslogic.ireport.crosstab.CrosstabGroup; 36 import it.businesslogic.ireport.crosstab.CrosstabParameter; 37 import it.businesslogic.ireport.crosstab.GroupTotal; 38 import it.businesslogic.ireport.crosstab.Measure; 39 import javax.swing.tree.*; 40 import javax.swing.*; 41 import java.awt.*; 42 46 public class LibraryTreeCellRenderer extends DefaultTreeCellRenderer { 47 48 static ImageIcon objectIcon; 49 static ImageIcon typeIcon; 50 51 static ImageIcon folderClosedIcon; 52 static ImageIcon folderOpenedIcon; 53 54 static ImageIcon folderFieldsIcon; 55 static ImageIcon folderVariablesIcon; 56 static ImageIcon folderParametersIcon; 57 58 static ImageIcon fieldsIcon; 59 static ImageIcon variablesIcon; 60 static ImageIcon parametersIcon; 61 static ImageIcon expressionIcon; 62 static ImageIcon grouptotalIcon; 63 64 static ImageIcon datasetIcon; 65 66 public LibraryTreeCellRenderer() { 67 super(); 68 if (objectIcon == null) objectIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/javabean/object.png")); 69 if (typeIcon == null) typeIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/javabean/type.png")); 70 if (folderClosedIcon == null) 71 folderClosedIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/folderClosed.gif")); 72 if (folderOpenedIcon == null) 73 folderOpenedIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/folderOpened.gif")); 74 75 if (expressionIcon == null) 76 expressionIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/elements/exp.png")); 77 78 79 if (folderFieldsIcon == null) folderFieldsIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/fieldsfolder.gif")); 80 if (folderVariablesIcon == null) folderVariablesIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/variablesfolder.gif")); 81 if (folderParametersIcon == null) folderParametersIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/parametersfolder.gif")); 82 83 if (fieldsIcon == null) fieldsIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/field.png")); 84 if (variablesIcon == null) variablesIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/variable.png")); 85 if (parametersIcon == null) parametersIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/parameter.png")); 86 if (datasetIcon == null) datasetIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/library/datasource.png")); 87 if (grouptotalIcon == null) grouptotalIcon = new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/tree/editor/grouptotal.png")); 88 93 } 94 95 public Component getTreeCellRendererComponent( 96 JTree tree, 97 Object value, 98 boolean sel, 99 boolean expanded, 100 boolean leaf, 101 int row, 102 boolean hasFocus) { 103 104 super.getTreeCellRendererComponent( 105 tree, value, sel, 106 expanded, leaf, row, 107 hasFocus); 108 this.setForeground( Color.BLACK); 109 ImageIcon icon = getElementIcon(value); 110 if (icon != null) setIcon(icon); 111 else 112 { 113 if ( expanded) 114 { 115 setIcon(folderOpenedIcon); 116 setToolTipText(null); } 118 else 119 { 120 setIcon(folderClosedIcon); 121 setToolTipText(null); } 123 } 124 125 setToolTipText(null); 126 127 return this; 128 } 129 130 protected ImageIcon getElementIcon(Object value) { 131 DefaultMutableTreeNode node = 132 (DefaultMutableTreeNode)value; 133 this.setForeground( Color.BLACK); 134 135 if (node.getUserObject() != null && node.getUserObject() instanceof AbstractLibraryObject ) 136 { 137 return ((AbstractLibraryObject)node.getUserObject()).getIcon(); 138 } 139 140 if (node.getUserObject() != null && (node.getUserObject() instanceof GroupTotal)) return grouptotalIcon; 141 if (node.getUserObject() != null && (node.getUserObject() instanceof JRField || node.getUserObject() instanceof CrosstabGroup)) return fieldsIcon; 142 if (node.getUserObject() != null && (node.getUserObject() instanceof JRVariable || node.getUserObject() instanceof Measure)) return variablesIcon; 143 if (node.getUserObject() != null && (node.getUserObject() instanceof JRParameter || node.getUserObject() instanceof CrosstabParameter)) return parametersIcon; 144 if (node.getUserObject() != null && node.getUserObject() instanceof CustomExpression) return expressionIcon; 145 146 if (node.getUserObject().toString().equals(it.businesslogic.ireport.util.I18n.getString("gui.library.fields","Fields"))) return folderFieldsIcon; 147 if (node.getUserObject().toString().equals(it.businesslogic.ireport.util.I18n.getString("gui.library.variables","Variables"))) return folderVariablesIcon; 148 if (node.getUserObject().toString().equals(it.businesslogic.ireport.util.I18n.getString("gui.library.parameters","Parameters"))) return folderParametersIcon; 149 150 if (node.getUserObject() != null && node.getUserObject() instanceof SubDataset) return datasetIcon; 151 152 return null; 153 154 155 } 157 158 159 } 160 161 | Popular Tags |