1 32 33 package it.businesslogic.ireport.gui.wizard; 34 35 import it.businesslogic.ireport.Report; 36 import it.businesslogic.ireport.gui.*; 37 import it.businesslogic.ireport.util.I18nOptionPane; 38 import it.businesslogic.ireport.util.Misc; 39 import it.businesslogic.ireport.util.ReportGenerator; 40 import java.awt.event.MouseAdapter ; 41 import java.awt.event.MouseEvent ; 42 import java.io.File ; 43 import javax.swing.DefaultListModel ; 44 import java.util.*; 45 import javax.swing.JCheckBox ; 46 import it.businesslogic.ireport.util.I18n; 47 import javax.swing.JFileChooser ; 48 import javax.swing.JOptionPane ; 49 53 public class UserTemplatesDialog extends javax.swing.JDialog { 54 55 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 56 private boolean modifiedList = false; 57 58 public UserTemplatesDialog(java.awt.Frame parent, boolean modal) { 59 super(parent, modal); 60 initComponents(); 61 applyI18n(); 62 jList1.setModel(new DefaultListModel ()); 63 it.businesslogic.ireport.util.Misc.centerFrame( this ); 64 65 66 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 67 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 68 public void actionPerformed(java.awt.event.ActionEvent e) { 69 jButtonCancelActionPerformed(e); 70 } 71 }; 72 73 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 74 getRootPane().getActionMap().put("ESCAPE", escapeAction); 75 76 77 DefaultListModel dlm = new DefaultListModel (); 78 jList1.setModel(dlm); 79 80 81 java.util.List list = MainFrame.getMainInstance().getUserChoicesWizardTemplates(); 82 83 for (int i=0; i<list.size(); ++i) 84 { 85 dlm.addElement( list.get(i) ); 86 } 87 88 if (list.size() > 0) 89 { 90 jList1.setSelectedIndex(0); 91 } 92 93 jList1.updateUI(); 94 95 this.getRootPane().setDefaultButton(this.jButtonSave); 97 } 98 99 104 private void initComponents() { 106 java.awt.GridBagConstraints gridBagConstraints; 107 108 jScrollPane2 = new javax.swing.JScrollPane (); 109 jList1 = new javax.swing.JList (); 110 jPanel1 = new javax.swing.JPanel (); 111 jButtonCreateReports = new javax.swing.JButton (); 112 jButtonDeleteTemplate = new javax.swing.JButton (); 113 jButtonSave = new javax.swing.JButton (); 114 jButtonCancel = new javax.swing.JButton (); 115 116 getContentPane().setLayout(new java.awt.GridBagLayout ()); 117 118 setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); 119 setTitle("Classpath"); 120 addWindowListener(new java.awt.event.WindowAdapter () { 121 public void windowClosed(java.awt.event.WindowEvent evt) { 122 formWindowClosed(evt); 123 } 124 public void windowClosing(java.awt.event.WindowEvent evt) { 125 formWindowClosing(evt); 126 } 127 }); 128 129 jScrollPane2.setPreferredSize(new java.awt.Dimension (258, 300)); 130 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 131 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 132 jList1ValueChanged(evt); 133 } 134 }); 135 136 jScrollPane2.setViewportView(jList1); 137 138 gridBagConstraints = new java.awt.GridBagConstraints (); 139 gridBagConstraints.gridx = 0; 140 gridBagConstraints.gridy = 1; 141 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 142 gridBagConstraints.weightx = 1.0; 143 gridBagConstraints.weighty = 1.0; 144 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 145 getContentPane().add(jScrollPane2, gridBagConstraints); 146 147 jPanel1.setLayout(new java.awt.GridBagLayout ()); 148 149 jPanel1.setMinimumSize(new java.awt.Dimension (120, 10)); 150 jPanel1.setPreferredSize(new java.awt.Dimension (120, 10)); 151 jButtonCreateReports.setText("Create report(s)"); 152 jButtonCreateReports.setToolTipText("Create report from selected template"); 153 jButtonCreateReports.setEnabled(false); 154 jButtonCreateReports.addActionListener(new java.awt.event.ActionListener () { 155 public void actionPerformed(java.awt.event.ActionEvent evt) { 156 jButtonDeselectAllActionPerformed1(evt); 157 } 158 }); 159 160 gridBagConstraints = new java.awt.GridBagConstraints (); 161 gridBagConstraints.gridx = 0; 162 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 163 gridBagConstraints.weightx = 1.0; 164 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 165 jPanel1.add(jButtonCreateReports, gridBagConstraints); 166 167 jButtonDeleteTemplate.setText("Delete temlplate"); 168 jButtonDeleteTemplate.setToolTipText(""); 169 jButtonDeleteTemplate.setEnabled(false); 170 jButtonDeleteTemplate.addActionListener(new java.awt.event.ActionListener () { 171 public void actionPerformed(java.awt.event.ActionEvent evt) { 172 jButtonCreateReportsjButtonDeselectAllActionPerformed1(evt); 173 } 174 }); 175 176 gridBagConstraints = new java.awt.GridBagConstraints (); 177 gridBagConstraints.gridx = 0; 178 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 179 gridBagConstraints.weightx = 1.0; 180 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 181 jPanel1.add(jButtonDeleteTemplate, gridBagConstraints); 182 183 jButtonSave.setText("Save"); 184 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 185 public void actionPerformed(java.awt.event.ActionEvent evt) { 186 jButtonSaveActionPerformed(evt); 187 } 188 }); 189 190 gridBagConstraints = new java.awt.GridBagConstraints (); 191 gridBagConstraints.gridx = 0; 192 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 193 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; 194 gridBagConstraints.weightx = 1.0; 195 gridBagConstraints.weighty = 1.0; 196 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 197 jPanel1.add(jButtonSave, gridBagConstraints); 198 199 jButtonCancel.setText("Cancel"); 200 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 201 public void actionPerformed(java.awt.event.ActionEvent evt) { 202 jButtonCancelActionPerformed(evt); 203 } 204 }); 205 206 gridBagConstraints = new java.awt.GridBagConstraints (); 207 gridBagConstraints.gridx = 0; 208 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 209 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; 210 gridBagConstraints.weightx = 1.0; 211 jPanel1.add(jButtonCancel, gridBagConstraints); 212 213 gridBagConstraints = new java.awt.GridBagConstraints (); 214 gridBagConstraints.gridx = 1; 215 gridBagConstraints.gridy = 1; 216 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 217 gridBagConstraints.weighty = 1.0; 218 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 219 getContentPane().add(jPanel1, gridBagConstraints); 220 221 pack(); 222 } 224 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 226 if (jList1.getSelectedIndex() >=0) 227 { 228 jButtonCreateReports.setEnabled(true); 229 jButtonDeleteTemplate.setEnabled(true); 230 } 231 else 232 { 233 jButtonCreateReports.setEnabled(false); 234 jButtonDeleteTemplate.setEnabled(false); 235 } 236 237 } 239 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 241 242 List list = MainFrame.getMainInstance().getUserChoicesWizardTemplates(); 243 list.clear(); 244 DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 245 for (int i=0; i<dlm.getSize(); ++i) 246 { 247 list.add(dlm.getElementAt(i)); 248 } 249 250 UserChoicesWizardTemplate.storeWizardTemplates(list); 251 252 setDialogResult(javax.swing.JOptionPane.OK_OPTION); 253 setVisible(false); 254 } 256 private void jButtonCreateReportsjButtonDeselectAllActionPerformed1(java.awt.event.ActionEvent evt) { 258 DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 259 int[] indexes = jList1.getSelectedIndices(); 260 for (int i = indexes.length-1; i>=0; --i) 261 { 262 dlm.remove(indexes[i]); 263 modifiedList = true; 264 } 265 266 } 268 private void jButtonDeselectAllActionPerformed1(java.awt.event.ActionEvent evt) { 270 271 Object [] templates = jList1.getSelectedValues(); 272 if (templates.length == 0) return; 273 274 275 int filesCreated = 0; 276 277 279 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser ( MainFrame.getMainInstance().getCurrentDirectory()); 280 281 jfc.setDialogTitle("Select output directory"); 282 jfc.setDialogTitle(it.businesslogic.ireport.util.I18n.getString("selectOutputDirectory", "Select output directory")); 284 jfc.setAcceptAllFileFilterUsed(true); 285 jfc.setFileSelectionMode( jfc.DIRECTORIES_ONLY ); 286 298 299 jfc.setMultiSelectionEnabled(false); 300 301 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 302 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 303 java.io.File directory = jfc.getSelectedFile(); 304 305 MainFrame.getMainInstance().setCurrentDirectory(directory, true); 306 307 for (int i = templates.length-1; i>=0; --i) 308 { 309 UserChoicesWizardTemplate template = (UserChoicesWizardTemplate)templates[i]; 310 File file = new File (directory, Misc.string_replace("_"," ", template.getName() ) + ".jrxml"); 311 312 if (file.exists()) 313 { 314 int ret = JOptionPane.showConfirmDialog(this, 317 I18n.getFormattedString("userTemplatesDialog.message.overwrite","The file {0} already exists.\nDo you want overwrite it?",new Object []{""+file}), 318 "", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); 319 320 321 if (ret == JOptionPane.CANCEL_OPTION) break; 322 if (ret == JOptionPane.NO_OPTION) 323 { 324 jfc = new javax.swing.JFileChooser (MainFrame.getMainInstance().getCurrentDirectory()); 326 jfc.setDialogTitle("Save report as XML jasperreports file..."); 327 328 331 jfc.setSelectedFile( file ) ; 332 333 jfc.setFileFilter( new javax.swing.filechooser.FileFilter () 334 { 335 public boolean accept(java.io.File file) 336 { 337 String filename = file.getName(); 338 return (filename.toLowerCase().endsWith(".xml") || file.isDirectory() || filename.toLowerCase().endsWith(".jrxml")) ; 339 } 340 public String getDescription() 341 { 342 return "JasperReports XML *.xml, *.jrxml"; 343 } 344 }); 345 jfc.setMultiSelectionEnabled(false); 346 jfc.setDialogType( javax.swing.JFileChooser.SAVE_DIALOG); 347 348 if (jfc.showSaveDialog(this) != javax.swing.JOptionPane.OK_OPTION) 350 { 351 return; 352 } 353 354 file = jfc.getSelectedFile(); 355 } 356 } 357 358 try { 359 Report report = ReportGenerator.createReport(template); 360 report.saveXMLFile( ""+file ); 361 filesCreated++; 362 } catch (Exception ex) 363 { 364 JOptionPane.showMessageDialog(this,ex.getMessage(), I18n.getString("message.title.exception","Exception"), JOptionPane.ERROR_MESSAGE); 365 break; 366 } 367 } 368 369 JOptionPane.showMessageDialog(this,I18n.getFormattedString("userTemplatesDialog.message.createdReports","{0} report(s) created successful.", new Object []{new Integer (filesCreated)}), "",JOptionPane.INFORMATION_MESSAGE); 370 } 371 372 373 374 375 } 377 private void formWindowClosed(java.awt.event.WindowEvent evt) { 379 } 381 private void formWindowClosing(java.awt.event.WindowEvent evt) { 383 if (modifiedList) 385 { 386 int ret = javax.swing.JOptionPane.showConfirmDialog(this, it.businesslogic.ireport.util.I18n.getString("userTemplatesDialog.saveTemplatesList", "Do you want save the changes ?")); 387 388 if (ret == javax.swing.JOptionPane.CANCEL_OPTION) 389 { 390 return; 391 } 392 393 jButtonSaveActionPerformed(null); 394 } 395 else 396 { 397 setVisible(false); 398 } 399 } 401 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 403 } 405 408 public static void main(String args[]) { 409 java.awt.EventQueue.invokeLater(new Runnable () { 410 public void run() { 411 new ClassPathDialog(new javax.swing.JFrame (), true).setVisible(true); 412 } 413 }); 414 } 415 416 417 418 419 420 public int getDialogResult() { 421 return dialogResult; 422 } 423 424 public void setDialogResult(int dialogResult) { 425 this.dialogResult = dialogResult; 426 } 427 428 private javax.swing.JButton jButtonCancel; 430 private javax.swing.JButton jButtonCreateReports; 431 private javax.swing.JButton jButtonDeleteTemplate; 432 private javax.swing.JButton jButtonSave; 433 private javax.swing.JList jList1; 434 private javax.swing.JPanel jPanel1; 435 private javax.swing.JScrollPane jScrollPane2; 436 438 public void applyI18n(){ 439 jButtonCancel.setText(I18n.getString("jRFieldDialog.buttonCancel","Cancel")); 441 jButtonCreateReports.setText(I18n.getString("userTemplatesDialog.buttonGenerateReport","Generate report(s)")); 442 jButtonDeleteTemplate.setText(I18n.getString("userTemplatesDialog.buttonRemoveTemplate","Remove template")); 443 jButtonSave.setText(I18n.getString("userTemplatesDialog.buttonSave","Save changes")); 444 445 this.setTitle(I18n.getString("userTemplatesDialog.title","User choices templates")); 446 } 448 } 449 | Popular Tags |