1 32 33 package it.businesslogic.ireport.gui.sheet; 34 35 import it.businesslogic.ireport.ExpressionContext; 36 import it.businesslogic.ireport.gui.MainFrame; 37 import it.businesslogic.ireport.util.I18n; 38 39 43 public class ExpressionSheetPropertyComponent extends javax.swing.JPanel { 44 45 String expression = ""; 46 47 private ExpressionContext expressionContext = new ExpressionContext(); 48 49 private boolean init = false; 50 51 private boolean plainTextEditor = false; 52 53 56 public void setText(String fakeExpression) 57 { 58 setInit(true); 59 jTextArea1.setText(fakeExpression); 60 jTextArea1.setCaretPosition(0); 61 setInit(false); 62 } 63 64 public void setExpression(String expression) 65 { 66 this.expression = expression; 67 setInit(true); 68 jTextArea1.setText(expression); 69 jTextArea1.setCaretPosition(0); 70 setInit(false); 71 } 72 73 public String getExpression() 74 { 75 return expression; 76 } 77 78 79 public ExpressionSheetPropertyComponent() { 80 initComponents(); 81 82 jTextArea1.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 83 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 84 try { 85 actionPerformed( evt.getDocument().getText(0, evt.getDocument().getLength() )); 86 } catch (Exception ex){} 87 } 88 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 89 try { 90 actionPerformed( evt.getDocument().getText(0, evt.getDocument().getLength() )); 91 } catch (Exception ex){} 92 } 93 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 94 try { 95 actionPerformed( evt.getDocument().getText(0, evt.getDocument().getLength() )); 96 } catch (Exception ex){} 97 } 98 }); 99 100 applyI18n(); 101 102 } 103 104 public void actionPerformed(String newText) 105 { 106 if (isInit()) return; 107 expression = newText; 108 java.awt.event.ActionEvent event = new java.awt.event.ActionEvent (this,0,expression); 109 fireActionListenerActionPerformed(event); 110 } 111 112 117 private void initComponents() { 119 java.awt.GridBagConstraints gridBagConstraints; 120 121 jScrollPane1 = new javax.swing.JScrollPane (); 122 jTextArea1 = new javax.swing.JTextField (); 123 jButton1 = new javax.swing.JButton (); 124 125 setLayout(new java.awt.GridBagLayout ()); 126 127 setBackground(new java.awt.Color (255, 255, 255)); 128 jScrollPane1.setBackground(new java.awt.Color (255, 255, 255)); 129 jScrollPane1.setBorder(null); 130 jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 131 jScrollPane1.setOpaque(false); 132 jTextArea1.setDisabledTextColor(new java.awt.Color (0, 0, 0)); 133 jScrollPane1.setViewportView(jTextArea1); 134 135 gridBagConstraints = new java.awt.GridBagConstraints (); 136 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 137 gridBagConstraints.weightx = 1.0; 138 gridBagConstraints.weighty = 1.0; 139 add(jScrollPane1, gridBagConstraints); 140 141 jButton1.setText("..."); 142 jButton1.setMaximumSize(new java.awt.Dimension (19, 10)); 143 jButton1.setMinimumSize(new java.awt.Dimension (19, 10)); 144 jButton1.setPreferredSize(new java.awt.Dimension (19, 10)); 145 jButton1.addActionListener(new java.awt.event.ActionListener () { 146 public void actionPerformed(java.awt.event.ActionEvent evt) { 147 jButton1ActionPerformed(evt); 148 } 149 }); 150 151 gridBagConstraints = new java.awt.GridBagConstraints (); 152 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 153 gridBagConstraints.weighty = 1.0; 154 add(jButton1, gridBagConstraints); 155 156 } 158 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 160 if (isPlainTextEditor()) 161 { 162 PlainTextDialog ptd = new PlainTextDialog(MainFrame.getMainInstance(), true); 163 ptd.setText( expression ); 164 ptd.setVisible(true); 165 if (ptd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 166 { 167 setInit(true); 168 setExpression( ptd.getText() ); 169 setInit(false); 172 actionPerformed( ptd.getText()); 173 } 174 } 175 else 176 { 177 it.businesslogic.ireport.gui.ExpressionEditor ed = new it.businesslogic.ireport.gui.ExpressionEditor(); 179 ed.setSubDataset( it.businesslogic.ireport.gui.MainFrame.getMainInstance().getActiveReportFrame().getReport() ); 180 ed.setExpression( expression ); 181 182 ed.setExpressionContext( getExpressionContext() ); 183 184 ed.setVisible(true); 185 if (ed.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 186 { 187 setInit(true); 188 setExpression( ed.getExpression() ); 189 setInit(false); 192 actionPerformed( ed.getExpression()); 193 } 194 } 195 } 197 198 private javax.swing.JButton jButton1; 200 private javax.swing.JScrollPane jScrollPane1; 201 private javax.swing.JTextField jTextArea1; 202 204 207 private javax.swing.event.EventListenerList listenerList = null; 208 209 213 public synchronized void addActionListener(java.awt.event.ActionListener listener) { 214 215 if (listenerList == null ) { 216 listenerList = new javax.swing.event.EventListenerList (); 217 } 218 listenerList.add (java.awt.event.ActionListener .class, listener); 219 } 220 221 225 public synchronized void removeActionListener(java.awt.event.ActionListener listener) { 226 227 listenerList.remove (java.awt.event.ActionListener .class, listener); 228 } 229 230 235 private void fireActionListenerActionPerformed(java.awt.event.ActionEvent event) { 236 237 if (listenerList == null) return; 238 Object [] listeners = listenerList.getListenerList (); 239 for (int i = listeners.length - 2; i >= 0; i -= 2) { 240 if (listeners[i]==java.awt.event.ActionListener .class) { 241 ((java.awt.event.ActionListener )listeners[i+1]).actionPerformed (event); 242 } 243 } 244 } 245 246 public boolean isInit() { 247 return init; 248 } 249 250 public void setInit(boolean init) { 251 this.init = init; 252 } 253 254 public ExpressionContext getExpressionContext() { 255 return expressionContext; 256 } 257 258 public void setExpressionContext(ExpressionContext expressionContext) { 259 this.expressionContext = expressionContext; 260 } 261 262 public boolean isPlainTextEditor() { 263 return plainTextEditor; 264 } 265 266 public void setPlainTextEditor(boolean plainTextEditor) { 267 this.plainTextEditor = plainTextEditor; 268 } 269 270 271 272 public void applyI18n(){ 273 jButton1.setText(I18n.getString("expressionSheetPropertyComponent.button1","...")); 275 } 277 } 278 | Popular Tags |