KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > CustomExpressionsDialog


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * CustomExpressionsDialog.java
28  *
29  * Created on 22 aprile 2005, 18.05
30  *
31  */

32
33 package it.businesslogic.ireport.gui;
34
35 import it.businesslogic.ireport.ExpressionContext;
36 import javax.swing.DefaultListModel JavaDoc;
37 import java.util.*;
38 import javax.swing.JOptionPane JavaDoc;
39 import it.businesslogic.ireport.util.I18n;
40 /**
41  *
42  * @author Administrator
43  */

44 public class CustomExpressionsDialog extends javax.swing.JDialog JavaDoc {
45
46     private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION;
47     private boolean modifiedPath = false;
48     /** Creates new form ClassPathDialog */
49     public CustomExpressionsDialog(java.awt.Frame JavaDoc parent, boolean modal) {
50         super(parent, modal);
51         initComponents();
52
53         jList1.setModel(new DefaultListModel JavaDoc());
54         it.businesslogic.ireport.util.Misc.centerFrame( this );
55         /*
56         for (int i=0; i<ExpressionEditor.defaultExpressions.length; ++i)
57         {
58            ( (DefaultListModel)jList1.getModel()).addElement( ExpressionEditor.defaultExpressions[i] );
59         }
60         */

61         jList1ValueChanged(null);
62         applyI18n();
63     }
64
65     /** This method is called from within the constructor to
66      * initialize the form.
67      * WARNING: Do NOT modify this code. The content of this method is
68      * always regenerated by the Form Editor.
69      */

70     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
71
private void initComponents() {
72         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
73
74         jLabelClasspath = new javax.swing.JLabel JavaDoc();
75         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
76         jList1 = new javax.swing.JList JavaDoc();
77         jPanel1 = new javax.swing.JPanel JavaDoc();
78         jButtonAdd = new javax.swing.JButton JavaDoc();
79         jButtonAdd1 = new javax.swing.JButton JavaDoc();
80         jButtonRemove = new javax.swing.JButton JavaDoc();
81         jButtonMoveUp = new javax.swing.JButton JavaDoc();
82         jButtonMoveDown = new javax.swing.JButton JavaDoc();
83         jPanel2 = new javax.swing.JPanel JavaDoc();
84         jButtonSave = new javax.swing.JButton JavaDoc();
85         jButtonCancel = new javax.swing.JButton JavaDoc();
86
87         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
88
89         setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
90         setTitle(it.businesslogic.ireport.util.I18n.getString("customExpressions", "Custom expressions"));
91         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
92             public void windowClosed(java.awt.event.WindowEvent JavaDoc evt) {
93                 formWindowClosed(evt);
94             }
95             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
96                 formWindowClosing(evt);
97             }
98         });
99
100         jLabelClasspath.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
101         jLabelClasspath.setText(it.businesslogic.ireport.util.I18n.getString("formulasAndExpressions", "Formulas and expressions"));
102         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
103         gridBagConstraints.gridx = 0;
104         gridBagConstraints.gridy = 0;
105         gridBagConstraints.gridwidth = 2;
106         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
107         gridBagConstraints.ipadx = 1;
108         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
109         getContentPane().add(jLabelClasspath, gridBagConstraints);
110
111         jScrollPane1.setPreferredSize(new java.awt.Dimension JavaDoc(359, 260));
112         jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener JavaDoc() {
113             public void valueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {
114                 jList1ValueChanged(evt);
115             }
116         });
117         jList1.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
118             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
119                 jList1MouseClicked(evt);
120             }
121         });
122
123         jScrollPane1.setViewportView(jList1);
124
125         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
126         gridBagConstraints.gridx = 0;
127         gridBagConstraints.gridy = 1;
128         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
129         gridBagConstraints.weightx = 1.0;
130         gridBagConstraints.weighty = 1.0;
131         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
132         getContentPane().add(jScrollPane1, gridBagConstraints);
133
134         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
135
136         jPanel1.setMinimumSize(new java.awt.Dimension JavaDoc(120, 10));
137         jPanel1.setPreferredSize(new java.awt.Dimension JavaDoc(120, 10));
138         jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("new", "New"));
139         jButtonAdd.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
140         jButtonAdd.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
141         jButtonAdd.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
142         jButtonAdd.addActionListener(new java.awt.event.ActionListener JavaDoc() {
143             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
144                 jButtonAddActionPerformed(evt);
145             }
146         });
147
148         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
149         gridBagConstraints.gridx = 0;
150         gridBagConstraints.gridy = 0;
151         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
152         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
153         jPanel1.add(jButtonAdd, gridBagConstraints);
154
155         jButtonAdd1.setText(it.businesslogic.ireport.util.I18n.getString("modify", "Modify"));
156         jButtonAdd1.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
157         jButtonAdd1.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
158         jButtonAdd1.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
159         jButtonAdd1.addActionListener(new java.awt.event.ActionListener JavaDoc() {
160             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
161                 jButtonAddActionPerformed1(evt);
162             }
163         });
164
165         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
166         gridBagConstraints.gridx = 0;
167         gridBagConstraints.gridy = 1;
168         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
169         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
170         jPanel1.add(jButtonAdd1, gridBagConstraints);
171
172         jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("remove", "Remove"));
173         jButtonRemove.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
174         jButtonRemove.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
175         jButtonRemove.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
176         jButtonRemove.addActionListener(new java.awt.event.ActionListener JavaDoc() {
177             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
178                 jButtonRemoveActionPerformed(evt);
179             }
180         });
181
182         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
183         gridBagConstraints.gridx = 0;
184         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
185         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
186         jPanel1.add(jButtonRemove, gridBagConstraints);
187
188         jButtonMoveUp.setText(it.businesslogic.ireport.util.I18n.getString("moveUp", "Move up"));
189         jButtonMoveUp.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
190         jButtonMoveUp.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
191         jButtonMoveUp.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
192         jButtonMoveUp.addActionListener(new java.awt.event.ActionListener JavaDoc() {
193             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
194                 jButtonMoveUpActionPerformed(evt);
195             }
196         });
197
198         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
199         gridBagConstraints.gridx = 0;
200         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
201         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
202         jPanel1.add(jButtonMoveUp, gridBagConstraints);
203         jButtonMoveDown.setText(it.businesslogic.ireport.util.I18n.getString("moveDown", "Move down"));
204         jButtonMoveDown.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
205         jButtonMoveDown.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
206         jButtonMoveDown.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
207         jButtonMoveDown.addActionListener(new java.awt.event.ActionListener JavaDoc() {
208             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
209                 jButtonMoveDownActionPerformed(evt);
210             }
211         });
212
213         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
214         gridBagConstraints.gridx = 0;
215         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
216         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
217         jPanel1.add(jButtonMoveDown, gridBagConstraints);
218
219         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
220         gridBagConstraints.gridx = 0;
221         gridBagConstraints.weighty = 1.0;
222         jPanel1.add(jPanel2, gridBagConstraints);
223
224         jButtonSave.setText(it.businesslogic.ireport.util.I18n.getString("save", "Save"));
225         jButtonSave.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
226         jButtonSave.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
227         jButtonSave.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
228         jButtonSave.addActionListener(new java.awt.event.ActionListener JavaDoc() {
229             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
230                 jButtonSaveActionPerformed(evt);
231             }
232         });
233
234         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
235         gridBagConstraints.gridx = 0;
236         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
237         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
238         jPanel1.add(jButtonSave, gridBagConstraints);
239
240         jButtonCancel.setText(it.businesslogic.ireport.util.I18n.getString("cancel", "Cancel"));
241         jButtonCancel.setMaximumSize(new java.awt.Dimension JavaDoc(200, 26));
242         jButtonCancel.setMinimumSize(new java.awt.Dimension JavaDoc(90, 26));
243         jButtonCancel.setPreferredSize(new java.awt.Dimension JavaDoc(120, 26));
244         jButtonCancel.addActionListener(new java.awt.event.ActionListener JavaDoc() {
245             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
246                 jButtonCancelActionPerformed(evt);
247             }
248         });
249
250         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
251         gridBagConstraints.gridx = 0;
252         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
253         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 0);
254         jPanel1.add(jButtonCancel, gridBagConstraints);
255
256         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
257         gridBagConstraints.gridx = 1;
258         gridBagConstraints.gridy = 1;
259         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
260         gridBagConstraints.weighty = 1.0;
261         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 4);
262         getContentPane().add(jPanel1, gridBagConstraints);
263
264         pack();
265     }// </editor-fold>//GEN-END:initComponents
266

267     private void jList1ValueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {//GEN-FIRST:event_jList1ValueChanged
268

269         if (jList1.getSelectedIndex() >= 0)
270         {
271             jButtonAdd1.setEnabled(true);
272             jButtonRemove.setEnabled(true);
273             jButtonMoveUp.setEnabled(jList1.getSelectedIndex() > 0);
274             jButtonMoveDown.setEnabled(jList1.getSelectedIndex() < ((DefaultListModel JavaDoc)jList1.getModel()).size()-1);
275         }
276         else
277         {
278             jButtonAdd1.setEnabled(false);
279             jButtonRemove.setEnabled(false);
280             jButtonMoveUp.setEnabled(false);
281             jButtonMoveDown.setEnabled(false);
282         }
283
284     }//GEN-LAST:event_jList1ValueChanged
285

286     private void jList1MouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jList1MouseClicked
287

288         if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
289         {
290             jButtonAddActionPerformed1(null);
291         }
292
293     }//GEN-LAST:event_jList1MouseClicked
294

295     private void jButtonAddActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonAddActionPerformed1
296

297         if (jList1.getSelectedIndex() < 0) return;
298
299         ExpressionEditor ed = new ExpressionEditor();
300         ed.setExpression(""+jList1.getSelectedValue());
301         ed.setExpressionContext( new ExpressionContext());
302         ed.setVisible(true);
303
304         if (ed.getDialogResult() == JOptionPane.OK_OPTION)
305         {
306             int i = jList1.getSelectedIndex();
307             ((DefaultListModel JavaDoc)jList1.getModel()).setElementAt(ed.getExpression(), i);
308         }
309     }//GEN-LAST:event_jButtonAddActionPerformed1
310

311     private void formWindowClosed(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_formWindowClosed
312

313     }//GEN-LAST:event_formWindowClosed
314

315     private void formWindowClosing(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_formWindowClosing
316

317         if (modifiedPath)
318         {
319             int ret = javax.swing.JOptionPane.showConfirmDialog(this, I18n.getString("messages.customExpressionsDialog.saveList","Do you want save the list ?"));
320
321             if (ret == javax.swing.JOptionPane.CANCEL_OPTION)
322             {
323                 return;
324             }
325
326             if (ret == javax.swing.JOptionPane.OK_OPTION)
327             {
328                 setDialogResult(javax.swing.JOptionPane.OK_OPTION);
329             }
330         }
331         setVisible(false);
332     }//GEN-LAST:event_formWindowClosing
333

334     private void jButtonCancelActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
335
setVisible(false);
336     }//GEN-LAST:event_jButtonCancelActionPerformed
337

338     private void jButtonSaveActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonSaveActionPerformed
339
setDialogResult(javax.swing.JOptionPane.OK_OPTION);
340         setVisible(false);
341     }//GEN-LAST:event_jButtonSaveActionPerformed
342

343     private void jButtonMoveUpActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonMoveUpActionPerformed
344

345         if (jList1.getSelectedValues() != null)
346         {
347             int[] indices = jList1.getSelectedIndices();
348             for (int i=0; i<indices.length; ++i)
349             {
350                 if (indices[i] == 0) continue;
351                 Object JavaDoc val = ((DefaultListModel JavaDoc)jList1.getModel()).remove( indices[i] );
352                 ((DefaultListModel JavaDoc)jList1.getModel()).insertElementAt(val, indices[i]-1);
353                 indices[i]--;
354             }
355             jList1.setSelectedIndices(indices);
356             modifiedPath = true;
357         }
358
359     }//GEN-LAST:event_jButtonMoveUpActionPerformed
360

361     private void jButtonMoveDownActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonMoveDownActionPerformed
362
if (jList1.getSelectedValues() != null)
363         {
364             int[] indices = jList1.getSelectedIndices();
365             for (int i=indices.length-1; i>=0; --i)
366             {
367                 if (indices[i] >= ((DefaultListModel JavaDoc)jList1.getModel()).size() -1 ) continue;
368
369                 Object JavaDoc val = ((DefaultListModel JavaDoc)jList1.getModel()).remove( indices[i] );
370                 ((DefaultListModel JavaDoc)jList1.getModel()).insertElementAt(val, indices[i]+1);
371                 indices[i]++;
372             }
373             jList1.setSelectedIndices(indices);
374             modifiedPath = true;
375         }
376     }//GEN-LAST:event_jButtonMoveDownActionPerformed
377

378     private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonRemoveActionPerformed
379

380         if (jList1.getSelectedValues() != null)
381         {
382             Object JavaDoc[] values = jList1.getSelectedValues();
383             for (int i=0; i<values.length; ++i)
384             {
385                 ((DefaultListModel JavaDoc)jList1.getModel()).removeElement(values[i]);
386             }
387             modifiedPath = true;
388         }
389     }//GEN-LAST:event_jButtonRemoveActionPerformed
390

391     private void jButtonAddActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonAddActionPerformed
392

393         ExpressionEditor ed = new ExpressionEditor();
394         ed.setExpression("");
395         ed.setExpressionContext( new ExpressionContext());
396         ed.setVisible(true);
397
398         if (ed.getDialogResult() == JOptionPane.OK_OPTION)
399         {
400             ((DefaultListModel JavaDoc)jList1.getModel()).addElement( ed.getExpression());
401         }
402
403     }//GEN-LAST:event_jButtonAddActionPerformed
404

405     /**
406      * @param args the command line arguments
407      */

408     public static void main(String JavaDoc args[]) {
409         java.awt.EventQueue.invokeLater(new Runnable JavaDoc() {
410             public void run() {
411                 new ClassPathDialog(new javax.swing.JFrame JavaDoc(), true).setVisible(true);
412             }
413         });
414     }
415
416     public void setExpressions(Vector cp)
417     {
418          for (int i=0; i<cp.size(); ++i) {
419                       ((DefaultListModel JavaDoc)jList1.getModel()).addElement( cp.elementAt(i) );
420             }
421          if (((DefaultListModel JavaDoc)jList1.getModel()).size() > 0)
422          {
423              jList1.setSelectedIndex(0);
424          }
425     }
426
427     public Vector getExpressions()
428     {
429          Vector cp = new Vector();
430          for (int i=0; i<((DefaultListModel JavaDoc)jList1.getModel()).size(); ++i )
431          {
432              cp.addElement( "" + ((DefaultListModel JavaDoc)jList1.getModel()).elementAt( i ) );
433          }
434
435          return cp;
436     }
437
438     public int getDialogResult() {
439         return dialogResult;
440     }
441
442     public void setDialogResult(int dialogResult) {
443         this.dialogResult = dialogResult;
444     }
445
446     // Variables declaration - do not modify//GEN-BEGIN:variables
447
private javax.swing.JButton JavaDoc jButtonAdd;
448     private javax.swing.JButton JavaDoc jButtonAdd1;
449     private javax.swing.JButton JavaDoc jButtonCancel;
450     private javax.swing.JButton JavaDoc jButtonMoveDown;
451     private javax.swing.JButton JavaDoc jButtonMoveUp;
452     private javax.swing.JButton JavaDoc jButtonRemove;
453     private javax.swing.JButton JavaDoc jButtonSave;
454     private javax.swing.JLabel JavaDoc jLabelClasspath;
455     private javax.swing.JList JavaDoc jList1;
456     private javax.swing.JPanel JavaDoc jPanel1;
457     private javax.swing.JPanel JavaDoc jPanel2;
458     private javax.swing.JScrollPane JavaDoc jScrollPane1;
459     // End of variables declaration//GEN-END:variables
460

461     public void applyI18n(){
462                 // Start autogenerated code ----------------------
463
// End autogenerated code ----------------------
464
}
465 }
466
Popular Tags