public void exploreBean(DefaultMutableTreeNode root, String classname, String parentPath) { try { root.removeAllChildren(); if (parentPath.length() > 0) parentPath += "."; MainFrame.reportClassLoader.rescanLibDirectory(); Class clazz = Class.forName(classname, true, MainFrame.reportClassLoader); java.beans.PropertyDescriptor[] pd = org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptors(clazz); for (int nd = 0; nd < pd.length; ++nd) { String fieldName = pd[nd].getName(); if (pd[nd].getPropertyType() != null && pd[nd].getReadMethod() != null) { String returnType = pd[nd].getPropertyType().getName(); it.businesslogic.ireport.JRField field = new it.businesslogic.ireport.JRField(Misc.getJRFieldType(fieldName), returnType); if (isPathOnDescription()) { field.setDescription(parentPath + fieldName); } else { field.setName(parentPath + fieldName); } TreeJRField jtf = new TreeJRField(); jtf.setField(field); jtf.setObj(pd[nd].getPropertyType()); boolean bChildrens = true; if (pd[nd].getPropertyType().isPrimitive() || pd[nd].getPropertyType().getName().startsWith("java.lang.")) { bChildrens = false; } root.add(new DefaultMutableTreeNode(jtf, bChildrens)); } } jTree1.expandPath(new TreePath(root.getPath())); jTree1.updateUI(); } catch (ClassNotFoundException cnf) { javax.swing.JOptionPane.showMessageDialog( this, I18n.getFormattedString( "messages.BeanInspectorPanel.classNotFoundError", "Class not found error!!\nCheck your classpath and retry!\n{0}", new Object[] {cnf.getMessage()}), I18n.getString("message.title.error", "Error"), javax.swing.JOptionPane.ERROR_MESSAGE); return; } catch (Exception ex) { javax.swing.JOptionPane.showMessageDialog( this, ex.getMessage(), I18n.getString("message.title.error", "Error"), javax.swing.JOptionPane.ERROR_MESSAGE); return; } }