1 14 15 package com.jaspersoft.jasperserver.irplugin.gui; 16 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor; 17 import com.jaspersoft.jasperserver.irplugin.JServer; 18 import com.jaspersoft.jasperserver.irplugin.RepositoryFile; 19 import com.jaspersoft.jasperserver.irplugin.RepositoryFolder; 20 import com.jaspersoft.jasperserver.irplugin.RepositoryReportUnit; 21 import javax.swing.tree.*; 22 import javax.swing.*; 23 import java.awt.*; 24 28 public class RepositoryTreeCellRenderer extends DefaultTreeCellRenderer { 29 30 static ImageIcon serverIcon; 31 static ImageIcon folderIcon; 32 static ImageIcon reportUnitIcon; 33 static ImageIcon datasourceJndiIcon; 34 static ImageIcon datasourceJdbcIcon; 35 static ImageIcon datasourceBeanIcon; 36 static ImageIcon imageIcon; 37 static ImageIcon jrxmlIcon; 38 static ImageIcon fontIcon; 39 static ImageIcon jarIcon; 40 static ImageIcon refIcon; 41 static ImageIcon bundleIcon; 42 static ImageIcon inputcontrolIcon; 43 static ImageIcon datatypeIcon; 44 static ImageIcon lovIcon; 45 static ImageIcon unknowIcon; 46 static ImageIcon queryIcon; 47 48 49 static 50 { 51 if (serverIcon == null) serverIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/server.png")); 52 if (folderIcon == null) folderIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/folder.png")); 53 if (reportUnitIcon == null) reportUnitIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/reportunit.png")); 54 55 if (datasourceJndiIcon == null) datasourceJndiIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_jndi.png")); 56 if (datasourceJdbcIcon == null) datasourceJdbcIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_jdbc.png")); 57 if (imageIcon == null) imageIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/picture.png")); 58 if (jrxmlIcon == null) jrxmlIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/jrxml_file.png")); 59 60 if (refIcon == null) refIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/link.png")); 61 if (bundleIcon == null) bundleIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/bundle.png")); 62 if (fontIcon == null) fontIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/font.png")); 63 if (jarIcon == null) jarIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/jar.png")); 64 if (inputcontrolIcon == null) inputcontrolIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/inputcontrol.png")); 65 if (datatypeIcon == null) datatypeIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/datatype.png")); 66 if (lovIcon == null) lovIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/lov.png")); 67 68 if (datasourceBeanIcon == null) datasourceBeanIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_bean.png")); 69 if (unknowIcon == null) unknowIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/unknow.png")); 70 if (queryIcon == null) queryIcon = new javax.swing.ImageIcon (RepositoryTreeCellRenderer.class.getResource("/com/jaspersoft/jasperserver/irplugin/res/query.png")); 71 72 } 73 74 public RepositoryTreeCellRenderer() { 75 super(); 76 } 77 78 public Component getTreeCellRendererComponent( 79 JTree tree, 80 Object value, 81 boolean sel, 82 boolean expanded, 83 boolean leaf, 84 int row, 85 boolean hasFocus) { 86 87 super.getTreeCellRendererComponent( 88 tree, value, sel, 89 expanded, leaf, row, 90 hasFocus); 91 this.setForeground( Color.BLACK); 92 ImageIcon icon = getElementIcon(value); 93 setIcon(icon); 94 95 setToolTipText(null); 96 97 return this; 98 } 99 100 protected ImageIcon getElementIcon(Object value) { 101 102 if (!(value instanceof DefaultMutableTreeNode)) return folderIcon; 103 104 DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; 105 this.setForeground( Color.BLACK); 106 107 if (node.getUserObject() instanceof JServer) return serverIcon; 108 if (node.getUserObject() instanceof RepositoryReportUnit) return reportUnitIcon; 109 if (node.getUserObject() instanceof RepositoryFile) 110 { 111 RepositoryFile file = (RepositoryFile)node.getUserObject(); 112 return getResourceIcon( file.getDescriptor() ); 113 } 114 if (node.getUserObject() instanceof RepositoryFolder) return folderIcon; 115 116 return folderIcon; 117 } 118 119 public static ImageIcon getResourceIcon(ResourceDescriptor resource) 120 { 121 if (resource == null) return serverIcon; 122 else if (resource.getWsType() == null) return serverIcon; 123 else if (resource.getIsReference()) return refIcon; 124 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) return folderIcon; 125 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_REPORTUNIT)) return reportUnitIcon; 126 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_DATASOURCE_JNDI)) return datasourceJndiIcon; 127 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_DATASOURCE_JDBC)) return datasourceJdbcIcon; 128 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_DATASOURCE_BEAN)) return datasourceBeanIcon; 129 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_IMAGE)) return imageIcon; 130 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_JRXML)) return jrxmlIcon; 131 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_FONT)) return fontIcon; 132 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_CLASS_JAR)) return jarIcon; 133 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_RESOURCE_BUNDLE)) return bundleIcon; 134 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_INPUT_CONTROL)) return inputcontrolIcon; 135 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_DATA_TYPE)) return datatypeIcon; 136 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_LOV)) return lovIcon; 137 else if (resource.getWsType().equals(ResourceDescriptor.TYPE_QUERY)) return queryIcon; 138 return unknowIcon; 139 140 } 141 } 142 143 | Popular Tags |