expressioneditor.java
来自「优秀的打印控件全源代码,类似水晶表的设计器!」· Java 代码 · 共 367 行
JAVA
367 行
/* * ExpressionEditor.java * * Created on 17 novembre 2003, 22.03 */package it.businesslogic.ireport.gui;import it.businesslogic.ireport.gui.syntax.*;import javax.swing.tree.*;import javax.swing.*;import java.util.*;/** * * @author Administrator */public class ExpressionEditor extends javax.swing.JDialog{ /** Creates new form ExpressionEditor */ public ExpressionEditor() { initComponents(); this.setSize(600, 450); this.setModal(true); //this.setModal(true); org.syntax.jedit.SyntaxDocument sd = new org.syntax.jedit.SyntaxDocument(); sd.setTokenMarker(new org.syntax.jedit.tokenmarker.JavaTokenMarker() ); this.jEditTextArea1.setDocument( sd ); this.jEditTextArea1.getPainter().setEOLMarkersPainted(false); this.jEditTextArea1.getPainter().setInvalidLinesPainted(false); this.jEditTextArea1.getPainter().setLineHighlightEnabled(false); DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode("root"); dmtn.add( new DefaultMutableTreeNode("Fields")); dmtn.add( new DefaultMutableTreeNode("Variables")); dmtn.add( new DefaultMutableTreeNode("Parameters")); dmtn.add( new DefaultMutableTreeNode("Formulas")); this.jTree1.setCellRenderer(new DocumentExpressionEditorTreeCellRenderer()); this.jTree1.setModel(new javax.swing.tree.DefaultTreeModel(dmtn)); it.businesslogic.ireport.util.Misc.centerFrame(this); jList1.setModel(new DefaultListModel()); for (int i=0; i<50; ++i) ( (DefaultListModel)jList1.getModel()).addElement( "$F{PIPPO}" ); this.pack(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jPanel1 = new javax.swing.JPanel(); jSplitPane1 = new javax.swing.JSplitPane(); jEditTextArea1 = new org.syntax.jedit.JEditTextArea(); jSplitPane2 = new javax.swing.JSplitPane(); jPanel4 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList(); jPanel3 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); jTree1 = new javax.swing.JTree(); jPanel2 = new javax.swing.JPanel(); jButton2 = new javax.swing.JButton(); jButton1 = new javax.swing.JButton(); setTitle("Expression editor..."); setModal(true); addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(java.awt.event.ComponentEvent evt) { formComponentResized(evt); } }); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jPanel1.setLayout(new java.awt.BorderLayout()); jSplitPane1.setDividerSize(4); jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); jSplitPane1.setResizeWeight(0.5); jEditTextArea1.setPreferredSize(new java.awt.Dimension(150, 150)); jEditTextArea1.setMinimumSize(new java.awt.Dimension(20, 20)); jEditTextArea1.addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(java.awt.event.ComponentEvent evt) { jEditTextArea1ComponentResized(evt); } }); jSplitPane1.setLeftComponent(jEditTextArea1); jSplitPane2.setResizeWeight(0.5); jSplitPane2.setDividerSize(4); jSplitPane2.setPreferredSize(new java.awt.Dimension(361, 160)); jSplitPane2.setAutoscrolls(true); jPanel4.setLayout(new java.awt.BorderLayout()); jPanel4.setPreferredSize(new java.awt.Dimension(100, 100)); jList1.setFont(new java.awt.Font("SansSerif", 0, 12)); jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { jList1ValueChanged(evt); } }); jList1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jList1MouseClicked(evt); } }); jScrollPane1.setViewportView(jList1); jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER); jSplitPane2.setRightComponent(jPanel4); jPanel4.getAccessibleContext().setAccessibleParent(jPanel1); jPanel3.setLayout(new java.awt.BorderLayout()); jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 100)); jTree1.setRootVisible(false); jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() { public void valueChanged(javax.swing.event.TreeSelectionEvent evt) { jTree1ValueChanged(evt); } }); jScrollPane2.setViewportView(jTree1); jPanel3.add(jScrollPane2, java.awt.BorderLayout.CENTER); jSplitPane2.setLeftComponent(jPanel3); jPanel3.getAccessibleContext().setAccessibleParent(jPanel1); jSplitPane1.setBottomComponent(jSplitPane2); jPanel1.add(jSplitPane1, java.awt.BorderLayout.CENTER); getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT)); jPanel2.setPreferredSize(new java.awt.Dimension(10, 30)); jPanel2.setMinimumSize(new java.awt.Dimension(10, 30)); jButton2.setFont(new java.awt.Font("Dialog", 0, 11)); jButton2.setText("Apply"); jButton2.setMnemonic('a'); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jPanel2.add(jButton2); jButton1.setFont(new java.awt.Font("Dialog", 0, 11)); jButton1.setText("Cancel"); jButton1.setMnemonic('c'); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jPanel2.add(jButton1); getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH); pack(); }//GEN-END:initComponents private void jList1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jList1MouseClicked if (evt.getButton() == evt.BUTTON1 && evt.getClickCount() == 2) { try { jEditTextArea1.getDocument().replace(jEditTextArea1.getSelectionStart(), jEditTextArea1.getSelectionEnd()-jEditTextArea1.getSelectionStart(), jList1.getSelectedValue()+"", null); } catch (Exception ex){} } }//GEN-LAST:event_jList1MouseClicked private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jList1ValueChanged }//GEN-LAST:event_jList1ValueChanged private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTree1ValueChanged ( (DefaultListModel)jList1.getModel()).removeAllElements(); if (jrf == null) return; DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)jTree1.getSelectionPath().getLastPathComponent(); if ((""+dmtn.getUserObject()).equalsIgnoreCase("Fields")) { Enumeration e = jrf.getReport().getFields().elements(); while (e.hasMoreElements()) { ( (DefaultListModel)jList1.getModel()).addElement( "$F{"+e.nextElement() +"}" ); } } else if ((""+dmtn.getUserObject()).equalsIgnoreCase("Parameters")) { Enumeration e = jrf.getReport().getParameters().elements(); while (e.hasMoreElements()) { ( (DefaultListModel)jList1.getModel()).addElement( "$P{"+ e.nextElement()+"}" ); } } else if ((""+dmtn.getUserObject()).equalsIgnoreCase("Variables")) { Enumeration e = jrf.getReport().getVariables().elements(); while (e.hasMoreElements()) { ( (DefaultListModel)jList1.getModel()).addElement( "$V{"+e.nextElement() +"}" ); } } }//GEN-LAST:event_jTree1ValueChanged private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed //this.setExpression( this.jEditTextArea1.getText() ); this.setDialogResult( javax.swing.JOptionPane.NO_OPTION ); this.dispose(); }//GEN-LAST:event_jButton1ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed this.setExpression( this.jEditTextArea1.getText() ); this.setDialogResult( javax.swing.JOptionPane.OK_OPTION ); this.dispose(); }//GEN-LAST:event_jButton2ActionPerformed private void jEditTextArea1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jEditTextArea1ComponentResized // Add your handling code here: }//GEN-LAST:event_jEditTextArea1ComponentResized private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized //this.jEditTextArea1.recalculateVisibleLines(); this.jEditTextArea1.updateScrollBars(); }//GEN-LAST:event_formComponentResized /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm }//GEN-LAST:event_exitForm /** * @param args the command line arguments */ public static void main(String args[]) { new ExpressionEditor().show(); } /** Getter for property jrf. * @return Value of property jrf. * */ public it.businesslogic.ireport.gui.JReportFrame getJrf() { return jrf; } /** Setter for property jrf. * @param jrf New value of property jrf. * */ public void setJrf(it.businesslogic.ireport.gui.JReportFrame jrf) { this.jrf = jrf; // Selezioniamo il campo fields.... jTree1.setSelectionRow(0); jEditTextArea1.getTokenMarker().setKeywordLookup( jrf.getReport().getKeywordLookup()); } /** Getter for property Expression. * @return Value of property Expression. * */ public java.lang.String getExpression() { return Expression; } /** Setter for property Expression. * @param Expression New value of property Expression. * */ public void setExpression(java.lang.String Expression) { this.jEditTextArea1.setText( Expression ); this.Expression = Expression; } /** Getter for property dialogResult. * @return Value of property dialogResult. * */ public int getDialogResult() { return dialogResult; } /** Setter for property dialogResult. * @param dialogResult New value of property dialogResult. * */ public void setDialogResult(int dialogResult) { this.dialogResult = dialogResult; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private org.syntax.jedit.JEditTextArea jEditTextArea1; private javax.swing.JList jList1; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JSplitPane jSplitPane2; private javax.swing.JTree jTree1; // End of variables declaration//GEN-END:variables private JReportFrame jrf; private String Expression; private int dialogResult; }/* if (evt.getClickCount() == 2 && evt.getButton() == java.awt.event.MouseEvent.BUTTON1) { if (this.jList1.getSelectedIndex() >= 0) { String s = ""+this.jList1.getSelectedValue(); try { jEditTextArea1.getDocument().insertString( jEditTextArea1.getCaretPosition(), s, null); } catch (Exception ex) {} } } */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?