KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > irplugin > gui > jrxmlvalidator > JrxmlValidationDialog


1 /*
2  * JrxmlValidationDialog.java
3  *
4  * Created on June 14, 2006, 4:30 PM
5  */

6
7 package com.jaspersoft.jasperserver.irplugin.gui.jrxmlvalidator;
8
9 import com.jaspersoft.jasperserver.irplugin.JServer;
10 import com.jaspersoft.jasperserver.irplugin.RepositoryReportUnit;
11 import it.businesslogic.ireport.JRProperty;
12 import it.businesslogic.ireport.Report;
13 import it.businesslogic.ireport.gui.MainFrame;
14 import it.businesslogic.ireport.util.Misc;
15 import java.awt.Component JavaDoc;
16 import java.text.NumberFormat JavaDoc;
17 import java.text.DecimalFormat JavaDoc;
18 import java.util.List JavaDoc;
19 import java.util.ArrayList JavaDoc;
20 import javax.swing.JLabel JavaDoc;
21 import javax.swing.JOptionPane JavaDoc;
22 import javax.swing.JTable JavaDoc;
23 import javax.swing.event.TableModelEvent JavaDoc;
24 import javax.swing.event.TableModelListener JavaDoc;
25 import javax.swing.table.DefaultTableModel JavaDoc;
26 import javax.swing.table.TableCellRenderer JavaDoc;
27 import javax.swing.table.TableColumn JavaDoc;
28
29 /**
30  *
31  * @author gtoffoli
32  */

33 public class JrxmlValidationDialog extends javax.swing.JDialog JavaDoc {
34     
35     private JServer server = null;
36     private RepositoryReportUnit reportUnit = null;
37     private java.util.List JavaDoc imageElementVelidationItems = null;
38     private Report report = null;
39     
40     private int dialogResult = JOptionPane.CANCEL_OPTION;
41     
42     /** Creates new form JrxmlValidationDialog */
43     public JrxmlValidationDialog(java.awt.Frame JavaDoc parent, boolean modal) {
44         super(parent, modal);
45         initComponents();
46         
47         // 450...
48
TableColumn JavaDoc dtcm = jTable1.getColumnModel().getColumn(0);
49         dtcm.setMinWidth(22);
50         dtcm.setMaxWidth(22);
51         dtcm.setPreferredWidth(20);
52         dtcm.setResizable(false);
53         jTable1.getModel().addTableModelListener(new TableModelListener JavaDoc() {
54             public void tableChanged(TableModelEvent JavaDoc e) {
55                 updateContinue();
56             }
57         } );
58         
59         dtcm = jTable1.getColumnModel().getColumn(1);
60         dtcm.setMinWidth(100);
61         dtcm.setPreferredWidth(100);
62         dtcm.setCellRenderer(new AlignedTableCellRenderer(JLabel.LEFT, new javax.swing.ImageIcon JavaDoc(this.getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/picture.png")) ));
63         
64         dtcm = jTable1.getColumnModel().getColumn(2);
65         dtcm.setMinWidth(100);
66         dtcm.setPreferredWidth(300);
67         
68         dtcm = jTable1.getColumnModel().getColumn(3);
69         dtcm.setMinWidth(100);
70         dtcm.setPreferredWidth(300);
71         
72         
73         dtcm = jTable1.getColumnModel().getColumn(4);
74         dtcm.setMinWidth(50);
75         dtcm.setMaxWidth(100);
76         dtcm.setPreferredWidth(80);
77         dtcm.setCellRenderer(new AlignedTableCellRenderer(JLabel.RIGHT));
78         
79         
80         this.pack();
81         Misc.centerFrame(this);
82     }
83     
84     public void updateContinue()
85     {
86         DefaultTableModel JavaDoc dtm = (DefaultTableModel JavaDoc)jTable1.getModel();
87         for (int i=0; i< dtm.getRowCount(); ++i)
88         {
89             if ( ((Boolean JavaDoc)jTable1.getValueAt(i,0)).booleanValue())
90             {
91                 jButtonOk.setEnabled(true);
92                 return;
93             }
94         }
95         jButtonOk.setEnabled(false);
96     }
97     
98     public void setImageElementVelidationItems(java.util.List JavaDoc items)
99     {
100         DefaultTableModel JavaDoc dtm = (DefaultTableModel JavaDoc)jTable1.getModel();
101         dtm.setRowCount(0);
102         
103         NumberFormat JavaDoc formatter = new DecimalFormat JavaDoc("#,##0");
104         for (int i=0; i<items.size(); ++i)
105         {
106             ImageElementValidationItem iev = (ImageElementValidationItem)items.get(i);
107             String JavaDoc filesize = "";
108             if (iev.getOriginalFileName().length() < 1024)
109             {
110                 filesize = formatter.format(iev.getOriginalFileName().length())+" bytes";
111             }
112             else
113             {
114                 filesize = formatter.format(iev.getOriginalFileName().length() / 1024)+" KB";
115             }
116             
117             dtm.addRow(new Object JavaDoc[]{ Boolean.TRUE, iev, iev.getOriginalFileName()+"", iev.getProposedExpression(), filesize});
118         }
119         this.imageElementVelidationItems = items;
120     }
121
122     public java.util.List JavaDoc getImageElementVelidationItems() {
123         return imageElementVelidationItems;
124     }
125     
126     
127     /** This method is called from within the constructor to
128      * initialize the form.
129      * WARNING: Do NOT modify this code. The content of this method is
130      * always regenerated by the Form Editor.
131      */

132     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
133
private void initComponents() {
134         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
135
136         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
137         jTextPane1 = new javax.swing.JTextPane JavaDoc();
138         jScrollPane2 = new javax.swing.JScrollPane JavaDoc();
139         jTable1 = new javax.swing.JTable JavaDoc();
140         jPanel1 = new javax.swing.JPanel JavaDoc();
141         jButtonSelectAll = new javax.swing.JButton JavaDoc();
142         jButtonDeselectAll = new javax.swing.JButton JavaDoc();
143         jSeparator1 = new javax.swing.JSeparator JavaDoc();
144         jPanel2 = new javax.swing.JPanel JavaDoc();
145         jCheckBoxDoNotShowAgain = new javax.swing.JCheckBox JavaDoc();
146         jButtonOk = new javax.swing.JButton JavaDoc();
147         jButtonSkip = new javax.swing.JButton JavaDoc();
148         jButtonCancel = new javax.swing.JButton JavaDoc();
149
150         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
151
152         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
153         setTitle("JRXML validation");
154         setModal(true);
155         jScrollPane1.setBorder(null);
156         jScrollPane1.setMinimumSize(new java.awt.Dimension JavaDoc(500, 78));
157         jScrollPane1.setPreferredSize(new java.awt.Dimension JavaDoc(500, 90));
158         jTextPane1.setEditable(false);
159         jTextPane1.setText("JasperServer Plugin has detected some locally referenced images in your report.\nYou can choose to attach these images to the Report Unit importing them into the repository and replace the relative image expressions with an url like \"repo:myImage.jpg\"\n\nPlease check the images you want attach to this Report Unit.");
160         jTextPane1.setOpaque(false);
161         jScrollPane1.setViewportView(jTextPane1);
162
163         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
164         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
165         gridBagConstraints.weightx = 1.0;
166         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 0, 4);
167         getContentPane().add(jScrollPane1, gridBagConstraints);
168
169         jScrollPane2.setPreferredSize(new java.awt.Dimension JavaDoc(452, 200));
170         jTable1.setModel(new javax.swing.table.DefaultTableModel JavaDoc(
171             new Object JavaDoc [][] {
172
173             },
174             new String JavaDoc [] {
175                 " ", "Image", "Local file", "Proposed exp", "File size"
176             }
177         ) {
178             Class JavaDoc[] types = new Class JavaDoc [] {
179                 java.lang.Boolean JavaDoc.class, java.lang.String JavaDoc.class, java.lang.String JavaDoc.class, java.lang.String JavaDoc.class, java.lang.String JavaDoc.class
180             };
181             boolean[] canEdit = new boolean [] {
182                 true, false, false, false, false
183             };
184
185             public Class JavaDoc getColumnClass(int columnIndex) {
186                 return types [columnIndex];
187             }
188
189             public boolean isCellEditable(int rowIndex, int columnIndex) {
190                 return canEdit [columnIndex];
191             }
192         });
193         jScrollPane2.setViewportView(jTable1);
194
195         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
196         gridBagConstraints.gridx = 0;
197         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
198         gridBagConstraints.weightx = 1.0;
199         gridBagConstraints.weighty = 1.0;
200         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
201         getContentPane().add(jScrollPane2, gridBagConstraints);
202
203         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
204
205         jButtonSelectAll.setMnemonic('a');
206         jButtonSelectAll.setText("Select all");
207         jButtonSelectAll.addActionListener(new java.awt.event.ActionListener JavaDoc() {
208             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
209                 jButtonSelectAllActionPerformed(evt);
210             }
211         });
212
213         jPanel1.add(jButtonSelectAll, new java.awt.GridBagConstraints JavaDoc());
214
215         jButtonDeselectAll.setMnemonic('d');
216         jButtonDeselectAll.setText("Deselect all");
217         jButtonDeselectAll.addActionListener(new java.awt.event.ActionListener JavaDoc() {
218             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
219                 jButtonDeselectAllActionPerformed(evt);
220             }
221         });
222
223         jPanel1.add(jButtonDeselectAll, new java.awt.GridBagConstraints JavaDoc());
224
225         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
226         gridBagConstraints.gridx = 0;
227         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
228         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
229         getContentPane().add(jPanel1, gridBagConstraints);
230
231         jSeparator1.setPreferredSize(new java.awt.Dimension JavaDoc(2, 2));
232         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
233         gridBagConstraints.gridx = 0;
234         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
235         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 4, 0);
236         getContentPane().add(jSeparator1, gridBagConstraints);
237
238         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
239
240         jCheckBoxDoNotShowAgain.setMnemonic('n');
241         jCheckBoxDoNotShowAgain.setText("Do not show this window again for this report");
242         jCheckBoxDoNotShowAgain.setActionCommand("Do not show this window again");
243         jCheckBoxDoNotShowAgain.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
244         jCheckBoxDoNotShowAgain.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
245         jCheckBoxDoNotShowAgain.addActionListener(new java.awt.event.ActionListener JavaDoc() {
246             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
247                 jCheckBoxDoNotShowAgainActionPerformed(evt);
248             }
249         });
250
251         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
252         gridBagConstraints.gridx = 0;
253         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
254         gridBagConstraints.weightx = 1.0;
255         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
256         jPanel2.add(jCheckBoxDoNotShowAgain, gridBagConstraints);
257
258         jButtonOk.setMnemonic('O');
259         jButtonOk.setText("Continue");
260         jButtonOk.setEnabled(false);
261         jButtonOk.addActionListener(new java.awt.event.ActionListener JavaDoc() {
262             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
263                 jButtonOkActionPerformed(evt);
264             }
265         });
266
267         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
268         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 4);
269         jPanel2.add(jButtonOk, gridBagConstraints);
270
271         jButtonSkip.setMnemonic('O');
272         jButtonSkip.setText("Skip this step");
273         jButtonSkip.addActionListener(new java.awt.event.ActionListener JavaDoc() {
274             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
275                 jButtonOkActionPerformed1(evt);
276             }
277         });
278
279         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
280         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 4);
281         jPanel2.add(jButtonSkip, gridBagConstraints);
282
283         jButtonCancel.setMnemonic('C');
284         jButtonCancel.setText("Cancel");
285         jButtonCancel.addActionListener(new java.awt.event.ActionListener JavaDoc() {
286             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
287                 jButtonCancelActionPerformed(evt);
288             }
289         });
290
291         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
292         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 4, 4);
293         jPanel2.add(jButtonCancel, gridBagConstraints);
294
295         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
296         gridBagConstraints.gridx = 0;
297         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
298         gridBagConstraints.weightx = 1.0;
299         getContentPane().add(jPanel2, gridBagConstraints);
300
301         pack();
302     }// </editor-fold>//GEN-END:initComponents
303

304     private void jButtonOkActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonOkActionPerformed1
305

306         this.setDialogResult( JOptionPane.OK_OPTION );
307         this.setVisible(false);
308         this.dispose();
309         
310     }//GEN-LAST:event_jButtonOkActionPerformed1
311

312     private void jButtonCancelActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
313

314         this.setDialogResult( JOptionPane.CANCEL_OPTION );
315         this.setVisible(false);
316         this.dispose();
317         
318     }//GEN-LAST:event_jButtonCancelActionPerformed
319

320     private void jButtonOkActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonOkActionPerformed
321

322         DefaultTableModel JavaDoc dtm = (DefaultTableModel JavaDoc)jTable1.getModel();
323         
324         List JavaDoc selectedItems = new ArrayList JavaDoc();
325         for (int i=0; i< dtm.getRowCount(); ++i)
326         {
327             if ( ((Boolean JavaDoc)jTable1.getValueAt(i,0)).booleanValue())
328             {
329                 selectedItems.add(jTable1.getValueAt(i,1));
330             }
331         }
332         
333         if (selectedItems.size() > 0)
334         {
335             
336              UploadResourcesDialog urd = new UploadResourcesDialog(MainFrame.getMainInstance(), true);
337              urd.setResourceItems( selectedItems );
338              urd.setValidationDialog( this );
339              urd.setVisible(true);
340              
341              return;
342         }
343         
344         elaborationFinished(true);
345           
346         
347         
348     }//GEN-LAST:event_jButtonOkActionPerformed
349

350     
351     public void elaborationFinished(boolean result)
352     {
353         this.dialogResult = (result) ? JOptionPane.OK_OPTION : JOptionPane.CANCEL_OPTION;
354         this.setVisible(false);
355         this.dispose();
356     }
357     
358     
359     private void jCheckBoxDoNotShowAgainActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jCheckBoxDoNotShowAgainActionPerformed
360

361         if (getReport() != null)
362         {
363             boolean found = false;
364             for (int i=0; i< getReport().getJRproperties().size(); ++i)
365             {
366                 JRProperty prop = (JRProperty)getReport().getJRproperties().get(i);
367                 if (prop.getName() != null && prop.getName().equals("com.jaspersoft.irplugin.validation"))
368                 {
369                     prop.setValue("0");
370                     found = true;
371                 }
372             }
373             
374             if (!found)
375             {
376                 JRProperty prop = new JRProperty();
377                 prop.setName("com.jaspersoft.irplugin.validation");
378                 prop.setValue("0");
379                 getReport().getJRproperties().add(prop);
380             }
381             
382             getReport().saveXMLFile();
383         }
384     }//GEN-LAST:event_jCheckBoxDoNotShowAgainActionPerformed
385

386     private void jButtonDeselectAllActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeselectAllActionPerformed
387

388         DefaultTableModel JavaDoc dtm = (DefaultTableModel JavaDoc)jTable1.getModel();
389         for (int i=0; i< dtm.getRowCount(); ++i)
390         {
391             jTable1.setValueAt(Boolean.FALSE,i,0);
392         }
393         
394         jTable1.updateUI();
395         
396     }//GEN-LAST:event_jButtonDeselectAllActionPerformed
397

398     private void jButtonSelectAllActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonSelectAllActionPerformed
399

400         DefaultTableModel JavaDoc dtm = (DefaultTableModel JavaDoc)jTable1.getModel();
401         for (int i=0; i< dtm.getRowCount(); ++i)
402         {
403             jTable1.setValueAt(Boolean.TRUE,i,0);
404         }
405         
406         jTable1.updateUI();
407         
408     }//GEN-LAST:event_jButtonSelectAllActionPerformed
409

410     /**
411      * @param args the command line arguments
412      */

413     public static void main(String JavaDoc args[]) {
414         java.awt.EventQueue.invokeLater(new Runnable JavaDoc() {
415             public void run() {
416                 new JrxmlValidationDialog(new javax.swing.JFrame JavaDoc(), true).setVisible(true);
417             }
418         });
419     }
420
421     public JServer getServer() {
422         return server;
423     }
424
425     public void setServer(JServer server) {
426         this.server = server;
427     }
428
429     public RepositoryReportUnit getReportUnit() {
430         return reportUnit;
431     }
432
433     public void setReportUnit(RepositoryReportUnit reportUnit) {
434         this.reportUnit = reportUnit;
435     }
436
437     public Report getReport() {
438         return report;
439     }
440
441     public void setReport(Report report) {
442         this.report = report;
443     }
444
445     public int getDialogResult() {
446         return dialogResult;
447     }
448
449     public void setDialogResult(int dialogResult) {
450         this.dialogResult = dialogResult;
451     }
452     
453     // Variables declaration - do not modify//GEN-BEGIN:variables
454
private javax.swing.JButton JavaDoc jButtonCancel;
455     private javax.swing.JButton JavaDoc jButtonDeselectAll;
456     private javax.swing.JButton JavaDoc jButtonOk;
457     private javax.swing.JButton JavaDoc jButtonSelectAll;
458     private javax.swing.JButton JavaDoc jButtonSkip;
459     private javax.swing.JCheckBox JavaDoc jCheckBoxDoNotShowAgain;
460     private javax.swing.JPanel JavaDoc jPanel1;
461     private javax.swing.JPanel JavaDoc jPanel2;
462     private javax.swing.JScrollPane JavaDoc jScrollPane1;
463     private javax.swing.JScrollPane JavaDoc jScrollPane2;
464     private javax.swing.JSeparator JavaDoc jSeparator1;
465     private javax.swing.JTable JavaDoc jTable1;
466     private javax.swing.JTextPane JavaDoc jTextPane1;
467     // End of variables declaration//GEN-END:variables
468

469 }
470
Popular Tags