KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > subdataset > SubDatasetsDialog


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  * SubDatasetsDialog.java
28  *
29  * Created on 7 maggio 2003, 23.43
30  *
31  */

32
33 package it.businesslogic.ireport.gui.subdataset;
34
35 import javax.swing.table.*;
36 import javax.swing.*;
37 import javax.swing.event.*;
38 import it.businesslogic.ireport.*;
39 import it.businesslogic.ireport.gui.ConnectionDialog;
40 import it.businesslogic.ireport.gui.MainFrame;
41 import it.businesslogic.ireport.gui.ValuesDialog;
42 import it.businesslogic.ireport.util.Misc;
43 import it.businesslogic.ireport.gui.event.ReportSubDatasetChangedEvent;
44
45 import java.util.*;
46 import it.businesslogic.ireport.util.I18n;
47
48 /**
49  *
50  * @author Administrator
51  */

52 public class SubDatasetsDialog extends javax.swing.JDialog JavaDoc {
53     
54     /** Creates new form ValuesDialog */
55     public SubDatasetsDialog(java.awt.Frame JavaDoc parent, boolean modal) {
56         super(parent, modal);
57         initComponents();
58         applyI18n();
59         this.setSize(490, 250);
60         //DefaultTableColumnModel dtcm = (DefaultTableColumnModel)jTableParameters.getColumnModel();
61
//DefaultTableCellRenderer tcr = (DefaultTableCellRenderer)dtcm.getColumn(0).getHeaderRenderer();
62

63         //new DefaultTableCellRenderer();
64
//tcr.setFont(jTableParameters.getFont());
65
//tcr.setBackground(this.getBackground());
66
//tcr.setBorder( new javax.swing.border.BevelBorder( javax.swing.border.BevelBorder.RAISED));
67
//dtcm.getColumn(0).setHeaderRenderer(tcr);
68

69         DefaultListSelectionModel dlsm = (DefaultListSelectionModel)this.jTableParameters.getSelectionModel();
70         dlsm.addListSelectionListener(new javax.swing.event.ListSelectionListener JavaDoc() {
71             public void valueChanged(ListSelectionEvent e) {
72                 jTableParametersListSelectionValueChanged(e);
73             }
74         });
75                       
76         // Open in center...
77
it.businesslogic.ireport.util.Misc.centerFrame(this);
78         
79         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
80             
81         Enumeration e = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getActiveReportFrame().getReport().getSubDatasets().elements();
82         while (e.hasMoreElements())
83         {
84             SubDataset dataset = (SubDataset)e.nextElement();
85             dtm.addRow( new Object JavaDoc[]{dataset});
86         }
87         
88         javax.swing.KeyStroke JavaDoc escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false);
89             javax.swing.Action JavaDoc escapeAction = new javax.swing.AbstractAction JavaDoc() {
90                 public void actionPerformed(java.awt.event.ActionEvent JavaDoc e) {
91                     setVisible(false);
92                 }
93             };
94
95             getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE");
96             getRootPane().getActionMap().put("ESCAPE", escapeAction);
97
98         
99     }
100     
101     
102     public void jTableParametersListSelectionValueChanged(javax.swing.event.ListSelectionEvent JavaDoc e)
103     {
104          if (this.jTableParameters.getSelectedRowCount() > 0) {
105             this.jButtonModify.setEnabled(true);
106             this.jButtonDelete.setEnabled(true);
107         }
108         else {
109             this.jButtonModify.setEnabled(false);
110             this.jButtonDelete.setEnabled(false);
111         }
112     }
113     
114         
115     /** This method is called from within the constructor to
116      * initialize the form.
117      * WARNING: Do NOT modify this code. The content of this method is
118      * always regenerated by the Form Editor.
119      */

120     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
121
private void initComponents() {
122         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
123
124         jPanelParameters = new javax.swing.JPanel JavaDoc();
125         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
126         jTableParameters = new javax.swing.JTable JavaDoc();
127         jPanelButtons = new javax.swing.JPanel JavaDoc();
128         jButtonNew = new javax.swing.JButton JavaDoc();
129         jButtonModify = new javax.swing.JButton JavaDoc();
130         jButtonDelete = new javax.swing.JButton JavaDoc();
131
132         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
133         setTitle("SubDatasets");
134         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
135             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
136                 closeDialog(evt);
137             }
138         });
139
140         jPanelParameters.setLayout(new java.awt.BorderLayout JavaDoc(2, 2));
141
142         jScrollPane1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
143         jTableParameters.setModel(new javax.swing.table.DefaultTableModel JavaDoc(
144             new Object JavaDoc [][] {
145
146             },
147             new String JavaDoc [] {
148                 "Name"
149             }
150         ) {
151             boolean[] canEdit = new boolean [] {
152                 false
153             };
154
155             public boolean isCellEditable(int rowIndex, int columnIndex) {
156                 return canEdit [columnIndex];
157             }
158         });
159         jTableParameters.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
160             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
161                 jTableParametersMouseClicked(evt);
162             }
163         });
164
165         jScrollPane1.setViewportView(jTableParameters);
166
167         jPanelParameters.add(jScrollPane1, java.awt.BorderLayout.CENTER);
168
169         jPanelButtons.setLayout(new java.awt.GridBagLayout JavaDoc());
170
171         jPanelButtons.setMinimumSize(new java.awt.Dimension JavaDoc(100, 10));
172         jPanelButtons.setPreferredSize(new java.awt.Dimension JavaDoc(100, 10));
173         jButtonNew.setText("New");
174         jButtonNew.addActionListener(new java.awt.event.ActionListener JavaDoc() {
175             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
176                 jButtonNewActionPerformed(evt);
177             }
178         });
179
180         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
181         gridBagConstraints.gridx = 0;
182         gridBagConstraints.gridy = 0;
183         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
184         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
185         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
186         jPanelButtons.add(jButtonNew, gridBagConstraints);
187
188         jButtonModify.setText("Modify");
189         jButtonModify.setEnabled(false);
190         jButtonModify.addActionListener(new java.awt.event.ActionListener JavaDoc() {
191             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
192                 jButtonModifyActionPerformed(evt);
193             }
194         });
195
196         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
197         gridBagConstraints.gridx = 0;
198         gridBagConstraints.gridy = 1;
199         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
200         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
201         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 3, 5, 3);
202         jPanelButtons.add(jButtonModify, gridBagConstraints);
203
204         jButtonDelete.setText("Delete");
205         jButtonDelete.setEnabled(false);
206         jButtonDelete.addActionListener(new java.awt.event.ActionListener JavaDoc() {
207             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
208                 jButtonDeleteActionPerformed(evt);
209             }
210         });
211
212         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
213         gridBagConstraints.gridx = 0;
214         gridBagConstraints.gridy = 2;
215         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
216         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
217         gridBagConstraints.weightx = 1.0;
218         gridBagConstraints.weighty = 1.0;
219         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 3, 5, 3);
220         jPanelButtons.add(jButtonDelete, gridBagConstraints);
221
222         jPanelParameters.add(jPanelButtons, java.awt.BorderLayout.EAST);
223
224         getContentPane().add(jPanelParameters, java.awt.BorderLayout.CENTER);
225
226         pack();
227     }// </editor-fold>//GEN-END:initComponents
228

229     private void jTableParametersMouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jTableParametersMouseClicked
230
if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
231         {
232             jButtonModifyActionPerformed(null);
233         }
234     }//GEN-LAST:event_jTableParametersMouseClicked
235

236     private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeleteActionPerformed
237
// Get the selected connection...
238
if (jTableParameters.getSelectedRowCount() > 0)
239         {
240             SubDataset irc = null;
241             try {
242                 irc = (SubDataset)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
243             } catch (Exception JavaDoc ex) { return; }
244                        
245             
246             if (javax.swing.JOptionPane.showConfirmDialog(this,
247                     I18n.getString("messages.subDatasetsDialog.removingSubDataset","Do you want really remove this subdataset?"),
248                     "",
249                     javax.swing.JOptionPane.YES_NO_CANCEL_OPTION,
250                     javax.swing.JOptionPane.QUESTION_MESSAGE) == javax.swing.JOptionPane.YES_OPTION)
251             {
252                 MainFrame.getMainInstance().getActiveReportFrame().getReport().removeSubDataset( irc );
253                 
254                 ((DefaultTableModel)jTableParameters.getModel()).removeRow(jTableParameters.getSelectedRow());
255                 jTableParameters.updateUI();
256             
257             }
258         }
259         
260     }//GEN-LAST:event_jButtonDeleteActionPerformed
261

262     private void jButtonModifyActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonModifyActionPerformed
263
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
264         SubDatasetDialog cd = new SubDatasetDialog(this,true);
265         
266         // Take the selected connection from the table...
267
if (jTableParameters.getSelectedRow() < 0) return;
268         SubDataset irc = null;
269         try {
270             irc = (SubDataset)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
271         } catch (Exception JavaDoc ex) { return; }
272
273         if (irc == null) return;
274         
275         cd.setSubDataset( irc );
276         
277         cd.setVisible(true);
278         
279         if (cd.getDialogResult() == JOptionPane.OK_OPTION)
280         {
281             SubDataset sub = cd.getSubDataset();
282             // Now we have an old and a new object.
283
// 1. Adjust table...
284
try {
285                 jTableParameters.getModel().setValueAt(sub ,jTableParameters.getSelectedRow(), 0);
286             } catch (Exception JavaDoc ex) { return; }
287        }
288     }//GEN-LAST:event_jButtonModifyActionPerformed
289

290     private void jButtonNewActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonNewActionPerformed
291
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
292         SubDatasetDialog cd = new SubDatasetDialog(this,true);
293         cd.setVisible(true);
294     }//GEN-LAST:event_jButtonNewActionPerformed
295

296     
297     public void addSubDataset(SubDataset sub)
298     {
299         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
300             dtm.addRow( new Object JavaDoc[]{sub});
301             //
302

303     }
304     
305     /** Closes the dialog */
306     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
307
setVisible(false);
308     }//GEN-LAST:event_closeDialog
309

310     // Variables declaration - do not modify//GEN-BEGIN:variables
311
private javax.swing.JButton JavaDoc jButtonDelete;
312     private javax.swing.JButton JavaDoc jButtonModify;
313     private javax.swing.JButton JavaDoc jButtonNew;
314     private javax.swing.JPanel JavaDoc jPanelButtons;
315     private javax.swing.JPanel JavaDoc jPanelParameters;
316     private javax.swing.JScrollPane JavaDoc jScrollPane1;
317     private javax.swing.JTable JavaDoc jTableParameters;
318     // End of variables declaration//GEN-END:variables
319

320     public void applyI18n(){
321                 // Start autogenerated code ----------------------
322
jButtonDelete.setText(I18n.getString("subDatasetsDialog.buttonDelete","Delete"));
323                 jButtonModify.setText(I18n.getString("subDatasetsDialog.buttonModify","Modify"));
324                 jButtonNew.setText(I18n.getString("subDatasetsDialog.buttonNew","New"));
325                 // End autogenerated code ----------------------
326

327                 jTableParameters.getColumnModel().getColumn(0).setHeaderValue( I18n.getString("subDatasetsDialog.tablecolumn.name","Name") );
328
329     }
330 }
331
Popular Tags