KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > style > StylesDialog


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

32
33 package it.businesslogic.ireport.gui.style;
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.MainFrame;
40 import it.businesslogic.ireport.gui.event.StyleChangedEvent;
41 import it.businesslogic.ireport.util.Misc;
42
43 import java.util.*;
44 import it.businesslogic.ireport.util.I18n;
45 /**
46  *
47  * @author Administrator
48  */

49 public class StylesDialog extends javax.swing.JDialog JavaDoc implements it.businesslogic.ireport.gui.event.StyleChangedListener
50 {
51     
52     /** Creates new form ValuesDialog */
53     public StylesDialog(java.awt.Frame JavaDoc parent, boolean modal) {
54         super(parent, modal);
55         initComponents();
56         applyI18n();
57         this.setSize(490, 250);
58         //DefaultTableColumnModel dtcm = (DefaultTableColumnModel)jTableParameters.getColumnModel();
59
//DefaultTableCellRenderer tcr = (DefaultTableCellRenderer)dtcm.getColumn(0).getHeaderRenderer();
60

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

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

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

256     private void jButtonDefaultActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDefaultActionPerformed
257

258         if (jTableParameters.getSelectedRow() < 0) return;
259         Style irc = null;
260         try {
261             irc = (Style)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
262         } catch (Exception JavaDoc ex) { return; }
263
264         if (irc == null) return;
265         
266         irc.getAttributes().put(irc.ATTRIBUTE_isDefault, "true");
267         jTableParameters.setValueAt("Yes",jTableParameters.getSelectedRow(),1);
268         
269         for (int i=0; i<jTableParameters.getRowCount(); ++i)
270         {
271             if (i != jTableParameters.getSelectedRow())
272             {
273                 Style s = (Style)jTableParameters.getModel().getValueAt(i, 0);
274                 if (s != null) s.getAttributes().remove(s.ATTRIBUTE_isDefault);
275                 jTableParameters.setValueAt("",i,1);
276             }
277         }
278         
279         MainFrame.getMainInstance().getActiveReportFrame().getReport().fireStyleChangedListenerStyleChanged(
280                         new StyleChangedEvent(
281                         MainFrame.getMainInstance().getActiveReportFrame().getReport(),
282                         StyleChangedEvent.CHANGED,
283                         irc,
284                         irc));
285     }//GEN-LAST:event_jButtonDefaultActionPerformed
286

287     private void jTableParametersMouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jTableParametersMouseClicked
288
if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
289         {
290             jButtonModifyActionPerformed(null);
291         }
292     }//GEN-LAST:event_jTableParametersMouseClicked
293

294     private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeleteActionPerformed
295
// Get the selected connection...
296
if (jTableParameters.getSelectedRowCount() > 0)
297         {
298             Style irc = null;
299             try {
300                 irc = (Style)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
301             } catch (Exception JavaDoc ex) { return; }
302                        
303             
304             if (javax.swing.JOptionPane.showConfirmDialog(this,
305                     I18n.getString("messages.stylesDialog.removingStyle","Do you want really remove this style?"),
306                     "",
307                     javax.swing.JOptionPane.YES_NO_CANCEL_OPTION,
308                     javax.swing.JOptionPane.QUESTION_MESSAGE) == javax.swing.JOptionPane.YES_OPTION)
309             {
310                 MainFrame.getMainInstance().getActiveReportFrame().getReport().removeStyle( irc );
311                 
312                 ((DefaultTableModel)jTableParameters.getModel()).removeRow(jTableParameters.getSelectedRow());
313                 jTableParameters.updateUI();
314             }
315         }
316         
317     }//GEN-LAST:event_jButtonDeleteActionPerformed
318

319     private void jButtonModifyActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonModifyActionPerformed
320
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
321         StyleDialog cd = new StyleDialog(this,true);
322         
323         // Take the selected connection from the table...
324
if (jTableParameters.getSelectedRow() < 0) return;
325         Style irc = null;
326         try {
327             irc = (Style)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
328         } catch (Exception JavaDoc ex) { return; }
329
330         if (irc == null) return;
331         
332         cd.setStyle( irc );
333         cd.setVisible(true);
334         
335         if (cd.getDialogResult() == JOptionPane.OK_OPTION)
336         {
337             Style sub = cd.getStyle();
338             // Now we have an old and a new object.
339
// 1. Adjust table...
340
try {
341                 jTableParameters.getModel().setValueAt(sub ,jTableParameters.getSelectedRow(), 0);
342             } catch (Exception JavaDoc ex) { return; }
343        }
344     }//GEN-LAST:event_jButtonModifyActionPerformed
345

346     private void jButtonNewActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonNewActionPerformed
347
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
348         StyleDialog cd = new StyleDialog(this,true);
349         cd.setVisible(true);
350     }//GEN-LAST:event_jButtonNewActionPerformed
351

352     
353     public void addStyle(Style s)
354     {
355         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
356         dtm.addRow( new Object JavaDoc[]{s, (s.getAttributeBoolean(Style.ATTRIBUTE_isDefault, false) ? "Yes" : "")});
357     }
358
359     public void styleChanged(it.businesslogic.ireport.gui.event.StyleChangedEvent evt) {
360         
361         if (evt.getAction() == evt.ADDED)
362         {
363             this.addStyle( evt.getNewValue() );
364         }
365         else
366         {
367             for (int i = 0; i<jTableParameters.getRowCount(); ++i)
368             {
369                 if (jTableParameters.getModel().getValueAt(i,0) == evt.getOldValue())
370                 {
371                     if (evt.getAction() == evt.CHANGED)
372                     {
373                         jTableParameters.getModel().setValueAt(evt.getNewValue(),i,0);
374                         jTableParameters.getModel().setValueAt((evt.getNewValue().getAttributeBoolean(Style.ATTRIBUTE_isDefault, false) ? "Yes" : "") ,i,1);
375                     }
376                     else
377                     {
378                          ((javax.swing.table.DefaultTableModel JavaDoc)jTableParameters.getModel()).removeRow(i);
379                     }
380                     jTableParameters.updateUI();
381                     break;
382                 }
383             }
384         }
385         
386         for (int i=0; i<jTableParameters.getRowCount(); ++i)
387         {
388                 Style s = (Style)jTableParameters.getModel().getValueAt(i, 0);
389                 jTableParameters.setValueAt( (s.getAttributeBoolean(Style.ATTRIBUTE_isDefault, false) ? "Yes" : ""),i,1);
390         }
391     
392     }
393     
394     /** Closes the dialog */
395     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
396
it.businesslogic.ireport.gui.MainFrame.getMainInstance().getActiveReportFrame().getReport().removeStyleChangedListener(this);
397         setVisible(false);
398     }//GEN-LAST:event_closeDialog
399

400     // Variables declaration - do not modify//GEN-BEGIN:variables
401
private javax.swing.JButton JavaDoc jButtonDefault;
402     private javax.swing.JButton JavaDoc jButtonDelete;
403     private javax.swing.JButton JavaDoc jButtonModify;
404     private javax.swing.JButton JavaDoc jButtonNew;
405     private javax.swing.JPanel JavaDoc jPanelButtons;
406     private javax.swing.JPanel JavaDoc jPanelParameters;
407     private javax.swing.JScrollPane JavaDoc jScrollPane1;
408     private javax.swing.JTable JavaDoc jTableParameters;
409     // End of variables declaration//GEN-END:variables
410

411     public void applyI18n(){
412                 // Start autogenerated code ----------------------
413
jButtonDefault.setText(I18n.getString("stylesDialog.buttonDefault","Set as default"));
414                 jButtonDelete.setText(I18n.getString("stylesDialog.buttonDelete","Delete"));
415                 jButtonModify.setText(I18n.getString("stylesDialog.buttonModify","Modify"));
416                 jButtonNew.setText(I18n.getString("stylesDialog.buttonNew","New"));
417                 // End autogenerated code ----------------------
418

419                 jTableParameters.getColumnModel().getColumn(0).setHeaderValue( I18n.getString("stylesDialog.tablecolumn.styleName","Style name") );
420                 jTableParameters.getColumnModel().getColumn(1).setHeaderValue( I18n.getString("stylesDialog.tablecolumn.default","Default") );
421                 
422     }
423 }
424
Popular Tags