KickJava   Java API By Example, From Geeks To Geeks.

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


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

32
33 package it.businesslogic.ireport.gui;
34
35 import it.businesslogic.ireport.IReportConnection;
36 import javax.swing.table.*;
37 import javax.swing.*;
38 import javax.swing.event.*;
39 import it.businesslogic.ireport.*;
40 import it.businesslogic.ireport.util.Misc;
41
42 import java.util.*;
43
44 import org.apache.xerces.parsers.DOMParser;
45 import org.w3c.dom.*;
46 import org.xml.sax.SAXException JavaDoc;
47 import it.businesslogic.ireport.util.I18n;
48
49 /**
50  *
51  * @author Administrator
52  */

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

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

70         DefaultListSelectionModel dlsm = (DefaultListSelectionModel)this.jTableParameters.getSelectionModel();
71         dlsm.addListSelectionListener(new javax.swing.event.ListSelectionListener JavaDoc() {
72             public void valueChanged(ListSelectionEvent e) {
73                 jTableParametersListSelectionValueChanged(e);
74             }
75         });
76
77         // Open in center...
78
it.businesslogic.ireport.util.Misc.centerFrame(this);
79
80         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
81
82         Enumeration e = MainFrame.getMainInstance().getConnections().elements();
83         Object JavaDoc defaultConnection = MainFrame.getMainInstance().getProperties().get("DefaultConnection");
84
85
86         IReportConnection default_irc = null;
87         if (defaultConnection != null && defaultConnection instanceof IReportConnection)
88         {
89             default_irc = (IReportConnection)defaultConnection;
90         }
91         else
92         {
93             // Default connection not set!!!
94
if (((MainFrame)parent).getConnections().size() > 0)
95             {
96                 default_irc = (IReportConnection)MainFrame.getMainInstance().getConnections().elementAt(0);
97                 MainFrame.getMainInstance().setActiveConnection(default_irc);
98             }
99         }
100
101         while (e.hasMoreElements())
102         {
103             IReportConnection con = (IReportConnection)e.nextElement();
104             dtm.addRow( new Object JavaDoc[]{con, con.getDescription(), new Boolean JavaDoc(default_irc == con) });
105         }
106         
107         
108         javax.swing.KeyStroke JavaDoc escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false);
109         javax.swing.Action JavaDoc escapeAction = new javax.swing.AbstractAction JavaDoc() {
110             public void actionPerformed(java.awt.event.ActionEvent JavaDoc e) {
111                 setVisible(false);
112             }
113         };
114        
115         getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE");
116         getRootPane().getActionMap().put("ESCAPE", escapeAction);
117
118
119         //to make the default button ...
120
//this.getRootPane().setDefaultButton(this.jButtonOK);
121
}
122
123
124     public void jTableParametersListSelectionValueChanged(javax.swing.event.ListSelectionEvent JavaDoc e)
125     {
126          if (this.jTableParameters.getSelectedRowCount() > 0) {
127             this.jButtonModifyParameter.setEnabled(true);
128             this.jButtonDeleteParameter.setEnabled(true);
129             this.jButtonDefault.setEnabled(true);
130         }
131         else {
132             this.jButtonModifyParameter.setEnabled(false);
133             this.jButtonDeleteParameter.setEnabled(false);
134             this.jButtonDefault.setEnabled(false);
135         }
136     }
137
138
139     /** This method is called from within the constructor to
140      * initialize the form.
141      * WARNING: Do NOT modify this code. The content of this method is
142      * always regenerated by the Form Editor.
143      */

144     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
145
private void initComponents() {
146         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
147
148         jPanelParameters = new javax.swing.JPanel JavaDoc();
149         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
150         jTableParameters = new javax.swing.JTable JavaDoc();
151         jPanelButtons = new javax.swing.JPanel JavaDoc();
152         jButtonNewParameter = new javax.swing.JButton JavaDoc();
153         jButtonModifyParameter = new javax.swing.JButton JavaDoc();
154         jButtonDeleteParameter = new javax.swing.JButton JavaDoc();
155         jButtonDefault = new javax.swing.JButton JavaDoc();
156         jButtonImport = new javax.swing.JButton JavaDoc();
157         jButtonExport = new javax.swing.JButton JavaDoc();
158
159         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
160         setTitle("Connections / Datasources");
161         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
162             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
163                 closeDialog(evt);
164             }
165         });
166
167         jPanelParameters.setLayout(new java.awt.BorderLayout JavaDoc(2, 2));
168
169         jScrollPane1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
170         jTableParameters.setModel(new javax.swing.table.DefaultTableModel JavaDoc(
171             new Object JavaDoc [][] {
172
173             },
174             new String JavaDoc [] {
175                 "Name", "Datasource type", "Default"
176             }
177         ) {
178             Class JavaDoc[] types = new Class JavaDoc [] {
179                 java.lang.Object JavaDoc.class, java.lang.Object JavaDoc.class, java.lang.Boolean JavaDoc.class
180             };
181             boolean[] canEdit = new boolean [] {
182                 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         jTableParameters.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
194             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
195                 jTableParametersMouseClicked(evt);
196             }
197         });
198
199         jScrollPane1.setViewportView(jTableParameters);
200
201         jPanelParameters.add(jScrollPane1, java.awt.BorderLayout.CENTER);
202
203         jPanelButtons.setLayout(new java.awt.GridBagLayout JavaDoc());
204
205         jPanelButtons.setMinimumSize(new java.awt.Dimension JavaDoc(100, 10));
206         jPanelButtons.setPreferredSize(new java.awt.Dimension JavaDoc(100, 10));
207         jButtonNewParameter.setText("New");
208         jButtonNewParameter.addActionListener(new java.awt.event.ActionListener JavaDoc() {
209             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
210                 jButtonNewParameterActionPerformed(evt);
211             }
212         });
213
214         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
215         gridBagConstraints.gridx = 0;
216         gridBagConstraints.gridy = 0;
217         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
218         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
219         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
220         jPanelButtons.add(jButtonNewParameter, gridBagConstraints);
221
222         jButtonModifyParameter.setText("Modify");
223         jButtonModifyParameter.setEnabled(false);
224         jButtonModifyParameter.addActionListener(new java.awt.event.ActionListener JavaDoc() {
225             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
226                 jButtonModifyParameterActionPerformed(evt);
227             }
228         });
229
230         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
231         gridBagConstraints.gridx = 0;
232         gridBagConstraints.gridy = 1;
233         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
234         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
235         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 3, 5, 3);
236         jPanelButtons.add(jButtonModifyParameter, gridBagConstraints);
237
238         jButtonDeleteParameter.setText("Delete");
239         jButtonDeleteParameter.setEnabled(false);
240         jButtonDeleteParameter.addActionListener(new java.awt.event.ActionListener JavaDoc() {
241             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
242                 jButtonDeleteParameterActionPerformed(evt);
243             }
244         });
245
246         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
247         gridBagConstraints.gridx = 0;
248         gridBagConstraints.gridy = 2;
249         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
250         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
251         gridBagConstraints.weightx = 1.0;
252         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 3, 5, 3);
253         jPanelButtons.add(jButtonDeleteParameter, gridBagConstraints);
254
255         jButtonDefault.setText("Set as default");
256         jButtonDefault.setActionCommand("Set as active");
257         jButtonDefault.setEnabled(false);
258         jButtonDefault.setMargin(new java.awt.Insets JavaDoc(2, 4, 2, 4));
259         jButtonDefault.addActionListener(new java.awt.event.ActionListener JavaDoc() {
260             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
261                 jButtonDeleteParameterActionPerformed1(evt);
262             }
263         });
264
265         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
266         gridBagConstraints.gridx = 0;
267         gridBagConstraints.gridy = 3;
268         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
269         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
270         gridBagConstraints.weightx = 1.0;
271         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 3, 5, 3);
272         jPanelButtons.add(jButtonDefault, gridBagConstraints);
273
274         jButtonImport.setText("Import...");
275         jButtonImport.setActionCommand("Set as active");
276         jButtonImport.setMargin(new java.awt.Insets JavaDoc(2, 4, 2, 4));
277         jButtonImport.addActionListener(new java.awt.event.ActionListener JavaDoc() {
278             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
279                 jButtonImportActionPerformed(evt);
280             }
281         });
282
283         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
284         gridBagConstraints.gridx = 0;
285         gridBagConstraints.gridy = 4;
286         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
287         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
288         gridBagConstraints.weightx = 1.0;
289         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 3, 5, 3);
290         jPanelButtons.add(jButtonImport, gridBagConstraints);
291
292         jButtonExport.setText("Export...");
293         jButtonExport.setActionCommand("Set as active");
294         jButtonExport.setMargin(new java.awt.Insets JavaDoc(2, 4, 2, 4));
295         jButtonExport.addActionListener(new java.awt.event.ActionListener JavaDoc() {
296             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
297                 jButtonExportActionPerformed(evt);
298             }
299         });
300
301         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
302         gridBagConstraints.gridx = 0;
303         gridBagConstraints.gridy = 5;
304         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
305         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
306         gridBagConstraints.weightx = 1.0;
307         gridBagConstraints.weighty = 1.0;
308         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 3, 5, 3);
309         jPanelButtons.add(jButtonExport, gridBagConstraints);
310
311         jPanelParameters.add(jPanelButtons, java.awt.BorderLayout.EAST);
312
313         getContentPane().add(jPanelParameters, java.awt.BorderLayout.CENTER);
314
315         pack();
316     }// </editor-fold>//GEN-END:initComponents
317

318     private void jButtonExportActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonExportActionPerformed
319

320             if (jTableParameters.getRowCount() == 0)
321             {
322                 JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
323                         I18n.getString("messages.connectionsDialog.noConnectionToExport" ,"No connections to export"),
324                         "",JOptionPane.INFORMATION_MESSAGE);
325                 return;
326             }
327         
328             JFileChooser jfc = new JFileChooser();
329             jfc.setFileFilter( new javax.swing.filechooser.FileFilter JavaDoc() {
330             public boolean accept(java.io.File JavaDoc file) {
331                 String JavaDoc filename = file.getName().toLowerCase();
332                 return (filename.endsWith(".xml") || file.isDirectory()) ;
333             }
334             public String JavaDoc getDescription() {
335                 return "iReport connection/datasource definition (*.xml)";
336             }
337         });
338
339         if (jfc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
340
341                 try {
342                     java.io.File JavaDoc f = jfc.getSelectedFile();
343                     String JavaDoc fileName = f.getName();
344                     if (fileName.indexOf(".") < 0)
345                     {
346                         fileName += ".xml";
347                     }
348                     f = new java.io.File JavaDoc(f.getParent(), fileName);
349                     
350                     if (f.exists())
351                     {
352                         if (JOptionPane.showConfirmDialog(this,
353                                 I18n.getFormattedString("messages.connectionsDialog.overwrite" ,"{0} already exists.\nDo you want overwrite it?", new Object JavaDoc[]{""+f}),
354                                 "",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION)
355                         {
356                             return;
357                         }
358                     }
359                     
360                     java.io.PrintWriter JavaDoc pw = new java.io.PrintWriter JavaDoc( new java.io.OutputStreamWriter JavaDoc( new java.io.FileOutputStream JavaDoc( f ), "UTF8" )); //UTF8
361
pw.print("<?xml version=\"1.0\"?>");
362                     pw.println("<!-- iReport connections -->");
363                     pw.println("<iReportConnectionSet>");
364
365                     Enumeration con_enum = MainFrame.getMainInstance().getConnections().elements();
366                     int i = 0;
367                     
368                     while (con_enum.hasMoreElements())
369                     {
370                         i++;
371                         IReportConnection con = (IReportConnection)con_enum.nextElement();
372                         con.save(pw);
373                     }
374                     
375                     pw.println("</iReportConnectionSet>");
376
377                     pw.close();
378                     
379                     JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
380                             I18n.getFormattedString("messages.connectionsDialog.connectionsExported" ,"{0,number,integer} connection(s) succesfully exported.", new Object JavaDoc[]{new Integer JavaDoc(i)}),
381                             "",JOptionPane.INFORMATION_MESSAGE);
382                     
383                 } catch (Exception JavaDoc ex)
384                 {
385                     JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
386                             I18n.getFormattedString("messages.connectionsDialog.errorSavingConnections" ,"Error saving connections:\n{0}", new Object JavaDoc[]{ex.getMessage()})
387                             );
388                     ex.printStackTrace();
389                 }
390                     
391         }
392         
393         
394     }//GEN-LAST:event_jButtonExportActionPerformed
395

396     private void jButtonImportActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonImportActionPerformed
397

398         
399             JFileChooser jfc = new JFileChooser();
400             jfc.setMultiSelectionEnabled(false);
401             jfc.setFileFilter( new javax.swing.filechooser.FileFilter JavaDoc() {
402             public boolean accept(java.io.File JavaDoc file) {
403                 String JavaDoc filename = file.getName().toLowerCase();
404                 return (filename.endsWith(".xml") || file.isDirectory()) ;
405             }
406             public String JavaDoc getDescription() {
407                 return "iReport connection/datasource definition (*.xml)";
408             }
409         });
410
411         if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
412
413                     Vector new_cons = loadConnections( jfc.getSelectedFile() );
414                     if (new_cons != null)
415                     {
416                         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
417                         int i = 0;
418                         for (i=0; i<new_cons.size(); ++i)
419                         {
420                             IReportConnection con = (IReportConnection)new_cons.elementAt(i);
421                             dtm.addRow( new Object JavaDoc[]{con, con.getDescription() });
422                             MainFrame.getMainInstance().getConnections().addElement(con);
423                         }
424                         MainFrame.getMainInstance().saveiReportConfiguration();
425                         
426                         JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
427                                 I18n.getFormattedString("messages.connectionsDialog.connectionsImported" ,"{0,number,integer} connection(s) succesfully imported.", new Object JavaDoc[]{new Integer JavaDoc(i)}),
428                                 "",JOptionPane.INFORMATION_MESSAGE);
429                     }
430         }
431     }//GEN-LAST:event_jButtonImportActionPerformed
432

433     private void jTableParametersMouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jTableParametersMouseClicked
434

435             if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
436             {
437                 jButtonModifyParameterActionPerformed(null);
438             }
439
440     }//GEN-LAST:event_jTableParametersMouseClicked
441

442     private void jButtonDeleteParameterActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeleteParameterActionPerformed1
443

444         if (jTableParameters.getSelectedRowCount() > 0)
445         {
446             IReportConnection irc = null;
447             try {
448                 irc = (IReportConnection)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
449                 MainFrame.getMainInstance().setActiveConnection(irc);
450                 jTableParameters.getModel().setValueAt(new Boolean JavaDoc(true) ,jTableParameters.getSelectedRow(), 2);
451                 for (int i=0; i<jTableParameters.getRowCount(); ++i)
452                 {
453                     if (i != jTableParameters.getSelectedRow())
454                     {
455                         jTableParameters.getModel().setValueAt(new Boolean JavaDoc(false) ,i, 2);
456                     }
457                 }
458             } catch (Exception JavaDoc ex) { return; }
459         }
460     }//GEN-LAST:event_jButtonDeleteParameterActionPerformed1
461

462     private void jButtonDeleteParameterActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonDeleteParameterActionPerformed
463
// Get the selected connection...
464
if (jTableParameters.getSelectedRowCount() > 0)
465         {
466             while (jTableParameters.getSelectedRowCount() > 0)
467             {
468                 IReportConnection irc = null;
469                 try {
470                     irc = (IReportConnection)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
471                 } catch (Exception JavaDoc ex) { return; }
472
473
474                 if ( MainFrame.getMainInstance().getProperties().get( "DefaultConnection") == irc)
475                 {
476                     MainFrame.getMainInstance().getProperties().remove("DefaultConnection");
477                 }
478
479                 MainFrame.getMainInstance().getConnections().removeElement(irc);
480                 ((DefaultTableModel)jTableParameters.getModel()).removeRow(jTableParameters.getSelectedRow());
481                 jTableParameters.updateUI();
482             }
483             
484             MainFrame.getMainInstance().saveiReportConfiguration();
485         }
486
487     }//GEN-LAST:event_jButtonDeleteParameterActionPerformed
488

489     private void jButtonModifyParameterActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonModifyParameterActionPerformed
490
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
491         ConnectionDialog cd = new ConnectionDialog(parent,false);
492
493         // Take the selected connection from the table...
494
if (jTableParameters.getSelectedRow() < 0) return;
495         IReportConnection irc = null;
496         try {
497             irc = (IReportConnection)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0);
498         } catch (Exception JavaDoc ex) { return; }
499
500         if (irc == null) return;
501
502         cd.setIReportConnection(irc);
503
504         cd.setVisible(true);
505
506         if (cd.getDialogResult() == JOptionPane.OK_OPTION)
507         {
508             IReportConnection con = cd.getIReportConnection();
509             // Now we have an old and a new object.
510
// 1. Adjust table...
511
try {
512                 jTableParameters.getModel().setValueAt(con ,jTableParameters.getSelectedRow(), 0);
513                 jTableParameters.getModel().setValueAt(con.getDescription() ,jTableParameters.getSelectedRow(), 1);
514             } catch (Exception JavaDoc ex) { return; }
515
516             if ( MainFrame.getMainInstance().getProperties().get( "DefaultConnection") == irc)
517             {
518                 MainFrame.getMainInstance().getProperties().put( "DefaultConnection", con);
519             }
520
521             MainFrame.getMainInstance().getConnections().setElementAt(con,
522                        MainFrame.getMainInstance().getConnections().indexOf(irc));
523             MainFrame.getMainInstance().saveiReportConfiguration();
524         }
525     }//GEN-LAST:event_jButtonModifyParameterActionPerformed
526

527     private void jButtonNewParameterActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonNewParameterActionPerformed
528
java.awt.Frame JavaDoc parent = Misc.frameFromComponent(this);
529         ConnectionDialog cd = new ConnectionDialog(parent,false);
530         cd.setVisible(true);
531
532         if (cd.getDialogResult() == JOptionPane.OK_OPTION)
533         {
534             IReportConnection con = cd.getIReportConnection();
535             DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
536             dtm.addRow( new Object JavaDoc[]{con, con.getDescription() });
537             //
538
MainFrame.getMainInstance().getConnections().addElement(con);
539             MainFrame.getMainInstance().saveiReportConfiguration();
540         }
541     }//GEN-LAST:event_jButtonNewParameterActionPerformed
542

543     /** Closes the dialog */
544     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
545
setVisible(false);
546     }//GEN-LAST:event_closeDialog
547

548     /**
549      * @param args the command line arguments
550      */

551     public static void main(String JavaDoc args[]) {
552         new ValuesDialog(new javax.swing.JFrame JavaDoc(), true).setVisible(true);
553     }
554
555
556     public void updateConnections() {
557        /*
558         DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel();
559         dtm.setRowCount(0);
560
561         Enumeration enum = jReportFrame.getReport().getParameters().elements();
562         while (enum.hasMoreElements())
563         {
564             it.businesslogic.ireport.JRParameter parameter = (it.businesslogic.ireport.JRParameter)enum.nextElement();
565             Vector row = new Vector();
566             row.addElement( parameter);
567             row.addElement( parameter.getClassType());
568             row.addElement( parameter.isIsForPrompting()+"");
569
570             dtm.addRow(row);
571         }
572         */

573     }
574
575     // Variables declaration - do not modify//GEN-BEGIN:variables
576
private javax.swing.JButton JavaDoc jButtonDefault;
577     private javax.swing.JButton JavaDoc jButtonDeleteParameter;
578     private javax.swing.JButton JavaDoc jButtonExport;
579     private javax.swing.JButton JavaDoc jButtonImport;
580     private javax.swing.JButton JavaDoc jButtonModifyParameter;
581     private javax.swing.JButton JavaDoc jButtonNewParameter;
582     private javax.swing.JPanel JavaDoc jPanelButtons;
583     private javax.swing.JPanel JavaDoc jPanelParameters;
584     private javax.swing.JScrollPane JavaDoc jScrollPane1;
585     private javax.swing.JTable JavaDoc jTableParameters;
586     // End of variables declaration//GEN-END:variables
587

588        public void setVisible(boolean visible)
589     {
590
591        updateConnections();
592         super.setVisible(visible);
593     }
594        
595     /**
596      * Load a set of connections from a file. The connection are renamed if already present
597      * in the connection list. See getAvailableConnectionName() for details about the new name.
598      */

599     public Vector loadConnections(java.io.File JavaDoc xmlfile)
600      {
601          Vector v = new Vector();
602          try {
603              DOMParser parser = new DOMParser();
604              java.io.FileInputStream JavaDoc fis = new java.io.FileInputStream JavaDoc(xmlfile);
605              org.xml.sax.InputSource JavaDoc input_sss = new org.xml.sax.InputSource JavaDoc(fis);
606              //input_sss.setSystemId(filename);
607
parser.parse( input_sss );
608
609              Document document = parser.getDocument();
610              Node node = document.getDocumentElement();
611
612
613              NodeList list_child = node.getChildNodes(); // The root is iReportConnections
614
for (int ck=0; ck< list_child.getLength(); ck++) {
615                  Node connectionNode = (Node)list_child.item(ck);
616                  if (connectionNode.getNodeName() != null && connectionNode.getNodeName().equals("iReportConnection"))
617                  {
618                     // Take the CDATA...
619
String JavaDoc connectionName = "";
620                         String JavaDoc connectionClass = "";
621                         HashMap hm = new HashMap();
622                         NamedNodeMap nnm = connectionNode.getAttributes();
623                         if ( nnm.getNamedItem("name") != null) connectionName = nnm.getNamedItem("name").getNodeValue();
624                         if ( nnm.getNamedItem("connectionClass") != null) connectionClass = nnm.getNamedItem("connectionClass").getNodeValue();
625
626                         // Get all connections parameters...
627
NodeList list_child2 = connectionNode.getChildNodes();
628                         for (int ck2=0; ck2< list_child2.getLength(); ck2++) {
629                             String JavaDoc parameterName = "";
630                             Node child_child = (Node)list_child2.item(ck2);
631                             if (child_child.getNodeType() == Node.ELEMENT_NODE && child_child.getNodeName().equals("connectionParameter")) {
632
633                                 NamedNodeMap nnm2 = child_child.getAttributes();
634                                 if ( nnm2.getNamedItem("name") != null)
635                                     parameterName = nnm2.getNamedItem("name").getNodeValue();
636                                 hm.put( parameterName,Report.readPCDATA(child_child));
637                             }
638                         }
639                         
640                         // If the name exists, rename it as "name (2)"
641
connectionName = getAvailableConnectionName(connectionName);
642                         
643                         try {
644                             IReportConnection con = (IReportConnection) Class.forName(connectionClass).newInstance();
645                             con.loadProperties(hm);
646                             con.setName(connectionName);
647                             v.addElement( con );
648                         } catch (Exception JavaDoc ex) {
649                                 
650                             JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
651                                 I18n.getFormattedString("messages.connectionsDialog.errorLoadingConnection" ,"Error loading {0}", new Object JavaDoc[]{connectionName}),
652                                 I18n.getString("message.title.error","Error"), JOptionPane.ERROR_MESSAGE);
653                         }
654                 }
655              }
656          } catch (Exception JavaDoc ex)
657          {
658              JOptionPane.showMessageDialog(MainFrame.getMainInstance(),
659                                 I18n.getFormattedString("messages.connectionsDialog.errorLoadingConnections" ,"Error loading connections.\n{0}", new Object JavaDoc[]{ex.getMessage()}),
660                                 I18n.getString("message.title.error","Error"), JOptionPane.ERROR_MESSAGE);
661               ex.printStackTrace();
662          }
663
664          return v;
665      }
666     
667      // If the name exists, rename it as "name (2)"
668
/**
669       * This method take a proposed connection name. Check for duplicates names. If the
670       * proposed name is already present, the name "proposed (2)" is checked and so
671       * on up to when a valid name is found....
672       */

673      public static String JavaDoc getAvailableConnectionName(String JavaDoc proposedConnectionName)
674      {
675         return getAvailableConnectionName(proposedConnectionName, 0);
676      }
677      
678      private static String JavaDoc getAvailableConnectionName(String JavaDoc proposedConnectionName, int testNumber)
679      {
680         String JavaDoc name = proposedConnectionName;
681         if (testNumber != 0) name += " (" + testNumber + ")";
682         
683         Enumeration con_enum = MainFrame.getMainInstance().getConnections().elements();
684         while (con_enum.hasMoreElements())
685         {
686             // toString for an iReportConnection is the getName method...
687
String JavaDoc conName = "" + con_enum.nextElement();
688             if (name.equals(conName))
689             {
690                 return getAvailableConnectionName(proposedConnectionName, testNumber+1);
691             }
692         }
693         return name;
694      }
695     public void applyI18n(){
696                 // Start autogenerated code ----------------------
697
jButtonDefault.setText(I18n.getString("connectionsDialog.buttonDefault","Set as default"));
698                 jButtonDeleteParameter.setText(I18n.getString("connectionsDialog.buttonDeleteParameter","Delete"));
699                 jButtonExport.setText(I18n.getString("connectionsDialog.buttonExport","Export..."));
700                 jButtonImport.setText(I18n.getString("connectionsDialog.buttonImport","Import..."));
701                 jButtonModifyParameter.setText(I18n.getString("connectionsDialog.buttonModifyParameter","Modify"));
702                 jButtonNewParameter.setText(I18n.getString("connectionsDialog.buttonNewParameter","New"));
703                 // End autogenerated code ----------------------
704

705                 jTableParameters.getColumnModel().getColumn(0).setHeaderValue( I18n.getString("connectionsDialog.tablecolumn.name","Name") );
706                 jTableParameters.getColumnModel().getColumn(1).setHeaderValue( I18n.getString("connectionsDialog.tablecolumn.datasourceType","Datasource type") );
707                 jTableParameters.getColumnModel().getColumn(2).setHeaderValue( I18n.getString("connectionsDialog.tablecolumn.default","Default") );
708         
709     }
710 }
711
Popular Tags