📄 reportquerydialog.java
字号:
break;
}
}
}
if (!found)
{
dtm.addRow(row);
}
}
}//GEN-LAST:event_jButton1ActionPerformed
private void jTree1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTree1MouseClicked
if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
{
DefaultMutableTreeNode tn = (DefaultMutableTreeNode)jTree1.getSelectionPath().getLastPathComponent();
if (tn.getChildCount()>0) return;
/*if (!jTree1.isCollapsed( jTree1.getSelectionPath() ))
{
jTree1.collapsePath( jTree1.getSelectionPath() );
return;
}
*
*/
if (tn.getUserObject() instanceof TreeJRField)
{
TreeJRField jrf = (TreeJRField)tn.getUserObject();
if (!jrf.getObj().getName().startsWith("java.lang."))
{
exploreBean(tn, jrf.getObj().getName(), Misc.nvl( jrf.getField().getDescription(), ""));
}
}
}
}//GEN-LAST:event_jTree1MouseClicked
private void jTree1MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTree1MouseEntered
}//GEN-LAST:event_jTree1MouseEntered
private void jButtonReadBeanAttributes3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonReadBeanAttributes3ActionPerformed
if (MainFrame.getMainInstance().getActiveReportFrame() == null){
return;
}
DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel();
dtm.setRowCount(0);
jTableFields.updateUI();
DefaultTreeModel dttm = (DefaultTreeModel)jTree1.getModel();
DefaultMutableTreeNode root = new DefaultMutableTreeNode();
jTree1.setModel(new DefaultTreeModel( root ));
String classname = jTextFieldBeanClass1.getText().trim();
if (classname.equals("")){
javax.swing.JOptionPane.showMessageDialog(this, "No class specified!","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
return;
}
exploreBean(root, classname, "");
}//GEN-LAST:event_jButtonReadBeanAttributes3ActionPerformed
protected void getFieldsFromClass(Class clazz, String path) throws Exception
{
DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel();
java.lang.reflect.Method[] methods = clazz.getMethods();
java.lang.reflect.Field[] fields = clazz.getFields();
// for any method, looking for get<FieldName> ....
for (int i=0; i<methods.length; ++i)
{
if ( java.lang.reflect.Modifier.isPublic( methods[i].getModifiers() ) &&
methods[i].getDeclaringClass().getName().equals(clazz.getName() ) &&
!java.lang.reflect.Modifier.isNative( methods[i].getModifiers() )
&& methods[i].getName().startsWith("get")
&& !methods[i].getReturnType().isPrimitive()
&& !methods[i].getReturnType().isArray())
{
String fieldName = methods[i].getName().substring(3);
// Looking for the field...
for (int f=0; f<fields.length; ++f)
{
if (fields[f].getName().equalsIgnoreCase( fieldName ))
{
fieldName = fields[f].getName();
break;
}
}
String returnType = methods[i].getReturnType().getName();
boolean found = false;
for (int cc=0; cc<standard_types.length; ++cc)
{
if ( returnType.equalsIgnoreCase(standard_types[cc]))
{
it.businesslogic.ireport.JRField field = new it.businesslogic.ireport.JRField(fieldName, returnType);
field.setDescription(path + "" + fieldName);
Vector row = new Vector();
row.addElement(field);
row.addElement(field.getClassType());
row.addElement(field.getDescription());
dtm.addRow(row);
found = true;
break;
}
}
if (!found)
{
it.businesslogic.ireport.JRField field = new it.businesslogic.ireport.JRField(fieldName, "java.lang.Object");
field.setDescription(path + "" + fieldName);
Vector row = new Vector();
row.addElement(field);
row.addElement(field.getClassType());
row.addElement(field.getDescription());
dtm.addRow(row);
Class subClazz = Class.forName(returnType);
getFieldsFromClass( subClazz , path + fieldName + ".");
}
}
}
}
private void automaticlyReadFieldsCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_automaticlyReadFieldsCheckBoxActionPerformed
if( automaticlyReadFieldsCheckBox.isSelected() ) {
// Automagically get quiery fields.
// User has just enabled this so get field list.
readFieldsButton.setEnabled(false);
processQueryChanged( jRSQLExpressionArea1.getText().trim() );
} else {
// Turn off automagic field reading. User will have to press the
// Read Fields button
//okButton.setEnabled(false);
readFieldsButton.setEnabled(true);
setColumnsError( "Enter your query above. Then use the Read " +
"Fields button to retrieve the list of fields." );
}
}//GEN-LAST:event_automaticlyReadFieldsCheckBoxActionPerformed
private void readFieldsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_readFieldsButtonActionPerformed
processQueryChanged( jRSQLExpressionArea1.getText().trim() );
}//GEN-LAST:event_readFieldsButtonActionPerformed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
// No changes.
this.setVisible(false);
}//GEN-LAST:event_cancelButtonActionPerformed
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
if ( this.getJReportFrame() != null)
{
// save the query to the report.
this.getJReportFrame().getReport().setQuery( jRSQLExpressionArea1.getText());
if ( jTableFields.getRowCount() > 0)
{
// Clear all the existing fields.
this.getJReportFrame().getReport().getFields().clear();
// Add the new fields.
int[] selectedRows = jTableFields.getSelectedRows();
for (int i=0; i<selectedRows.length ; ++i) {
if (selectedRows[i] > jTableFields.getRowCount()) continue;
it.businesslogic.ireport.JRField field = (it.businesslogic.ireport.JRField)this.jTableFields.getValueAt(selectedRows[i], 0);
Enumeration e = this.getJReportFrame().getReport().getFields().elements();
boolean found = false;
while (e.hasMoreElements()) {
it.businesslogic.ireport.JRField f = (it.businesslogic.ireport.JRField)e.nextElement();
if (f.getName().equalsIgnoreCase(field.getName())) {
found = true;
break;
}
}
if (!found) {
this.getJReportFrame().getReport().addField(field);
}
}
this.getJReportFrame().getMainFrame().getValuesDialog().updateFields();
}
}
this.setVisible(false);
}//GEN-LAST:event_okButtonActionPerformed
private void jTableFieldsKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTableFieldsKeyReleased
//javax.swing.JOptionPane.showMessageDialog(null,"Key: "+evt.getKeyCode() + " (" + java.awt.event.KeyEvent.VK_DELETE + ")");
if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_DELETE)
{
javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)jTableFields.getModel();
int[] selectedRows = jTableFields.getSelectedRows();
for (int i= selectedRows.length-1; i>=0; --i)
{
it.businesslogic.ireport.JRField field = (it.businesslogic.ireport.JRField)this.jTableFields.getValueAt( i, 0);
this.getJReportFrame().getReport().removeField(field);
this.jTableFields.removeRowSelectionInterval(i,i);
}
}
}//GEN-LAST:event_jTableFieldsKeyReleased
private void jButtonReadBeanAttributesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonReadBeanAttributesActionPerformed
String classname = jTextFieldBeanClass.getText().trim();
if (classname.equals("")){
javax.swing.JOptionPane.showMessageDialog(this, "No class specified!","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
return;
}
try {
DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel();
dtm.setRowCount(0);
java.beans.PropertyDescriptor[] pd = org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptors(Class.forName(classname));
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(fieldName, getJRFieldType(returnType));
field.setDescription(""); //Field returned by " +methods[i].getName() + " (real type: "+ returnType +")");
Vector row = new Vector();
row.addElement(field);
row.addElement(field.getClassType());
row.addElement(field.getDescription());
dtm.addRow(row);
}
}
/*
java.lang.reflect.Method[] methods = Class.forName(classname).getMethods();
java.lang.reflect.Field[] fields = Class.forName(classname).getFields();
// for any method, looking for get<FieldName> ....
DefaultTableModel dtm = (DefaultTableModel)jTableFields.getModel();
dtm.setRowCount(0);
for (int i=0; i<methods.length; ++i)
{
// methods[i].getDeclaringClass().getName().equals(classname) &&
if ( java.lang.reflect.Modifier.isPublic( methods[i].getModifiers() ) &&
!java.lang.reflect.Modifier.isNative( methods[i].getModifiers() )
&& methods[i].getName().startsWith("get"))
//&& !methods[i].getReturnType().isPrimitive()
//&& !methods[i].getReturnType().isArray()
{
String fieldName = methods[i].getName().substring(3);
if (fieldName.length() > 0)
{
fieldName = fieldName.substring(0,1).toLowerCase() + fieldName.substring(1);
}
else continue;
// Looking for the field...
for (int f=0; f<fields.length; ++f)
{
if (fields[f].getName().equalsIgnoreCase( fieldName ))
{
fieldName = fields[f].getName();
break;
}
}
String returnType = methods[i].getReturnType().getName();
it.businesslogic.ireport.JRField field = new it.businesslogic.ireport.JRField(fieldName, getJRFieldType(returnType));
field.setDescription("Field returned by " +methods[i].getName() + " (real type: "+ returnType +")");
Vector row = new Vector();
row.addElement(field);
row.addElement(field.getClassType());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -