1 32 33 package it.businesslogic.ireport.gui; 34 35 import javax.swing.DefaultListModel ; 36 import java.util.*; 37 import it.businesslogic.ireport.util.I18n; 38 42 public class ClassPathDialog extends javax.swing.JDialog { 43 44 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 45 private boolean modifiedPath = false; 46 47 public ClassPathDialog(java.awt.Frame parent, boolean modal) { 48 super(parent, modal); 49 initComponents(); 50 51 jList1.setModel(new DefaultListModel ()); 52 it.businesslogic.ireport.util.Misc.centerFrame( this ); 53 54 55 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 56 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 57 public void actionPerformed(java.awt.event.ActionEvent e) { 58 jButtonCancelActionPerformed(e); 59 } 60 }; 61 62 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 63 getRootPane().getActionMap().put("ESCAPE", escapeAction); 64 65 66 applyI18n(); 67 68 this.getRootPane().setDefaultButton(this.jButtonSave); 70 } 71 72 77 private void initComponents() { 79 java.awt.GridBagConstraints gridBagConstraints; 80 81 jLabelClasspath = new javax.swing.JLabel (); 82 jScrollPane1 = new javax.swing.JScrollPane (); 83 jList1 = new javax.swing.JList (); 84 jPanel1 = new javax.swing.JPanel (); 85 jButtonAdd = new javax.swing.JButton (); 86 jButtonAdd1 = new javax.swing.JButton (); 87 jButtonRemove = new javax.swing.JButton (); 88 jButtonMoveUp = new javax.swing.JButton (); 89 jButtonMoveDown = new javax.swing.JButton (); 90 jPanel2 = new javax.swing.JPanel (); 91 jButtonSave = new javax.swing.JButton (); 92 jButtonCancel = new javax.swing.JButton (); 93 94 getContentPane().setLayout(new java.awt.GridBagLayout ()); 95 96 setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); 97 setTitle("Classpath"); 98 setTitle(it.businesslogic.ireport.util.I18n.getString("classPath", "Classpath")); addWindowListener(new java.awt.event.WindowAdapter () { 100 public void windowClosed(java.awt.event.WindowEvent evt) { 101 formWindowClosed(evt); 102 } 103 public void windowClosing(java.awt.event.WindowEvent evt) { 104 formWindowClosing(evt); 105 } 106 }); 107 108 jLabelClasspath.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 109 jLabelClasspath.setText("Classpath"); 110 jLabelClasspath.setText(it.businesslogic.ireport.util.I18n.getString("classPath", "Classpath")); gridBagConstraints = new java.awt.GridBagConstraints (); 112 gridBagConstraints.gridx = 0; 113 gridBagConstraints.gridy = 0; 114 gridBagConstraints.gridwidth = 2; 115 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 116 gridBagConstraints.ipadx = 1; 117 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 118 getContentPane().add(jLabelClasspath, gridBagConstraints); 119 120 jScrollPane1.setPreferredSize(new java.awt.Dimension (359, 260)); 121 jScrollPane1.setViewportView(jList1); 122 123 gridBagConstraints = new java.awt.GridBagConstraints (); 124 gridBagConstraints.gridx = 0; 125 gridBagConstraints.gridy = 1; 126 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 127 gridBagConstraints.weightx = 1.0; 128 gridBagConstraints.weighty = 1.0; 129 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 130 getContentPane().add(jScrollPane1, gridBagConstraints); 131 132 jPanel1.setLayout(new java.awt.GridBagLayout ()); 133 134 jPanel1.setMinimumSize(new java.awt.Dimension (120, 10)); 135 jPanel1.setPreferredSize(new java.awt.Dimension (120, 10)); 136 jButtonAdd.setText("Add JAR"); 137 jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("addJAR", "Add JAR")); jButtonAdd.setMaximumSize(new java.awt.Dimension (200, 26)); 139 jButtonAdd.setMinimumSize(new java.awt.Dimension (90, 26)); 140 jButtonAdd.setPreferredSize(new java.awt.Dimension (120, 26)); 141 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 142 public void actionPerformed(java.awt.event.ActionEvent evt) { 143 jButtonAddActionPerformed(evt); 144 } 145 }); 146 147 gridBagConstraints = new java.awt.GridBagConstraints (); 148 gridBagConstraints.gridx = 0; 149 gridBagConstraints.gridy = 0; 150 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 151 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 152 jPanel1.add(jButtonAdd, gridBagConstraints); 153 154 jButtonAdd1.setText("Add Folder"); 155 jButtonAdd1.setText(it.businesslogic.ireport.util.I18n.getString("addFolder", "Add Folder")); jButtonAdd1.setMaximumSize(new java.awt.Dimension (200, 26)); 157 jButtonAdd1.setMinimumSize(new java.awt.Dimension (90, 26)); 158 jButtonAdd1.setPreferredSize(new java.awt.Dimension (120, 26)); 159 jButtonAdd1.setToolTipText(it.businesslogic.ireport.util.I18n.getString("addFolder", "Add Folder")); jButtonAdd1.addActionListener(new java.awt.event.ActionListener () { 161 public void actionPerformed(java.awt.event.ActionEvent evt) { 162 jButtonAddActionPerformed1(evt); 163 } 164 }); 165 166 gridBagConstraints = new java.awt.GridBagConstraints (); 167 gridBagConstraints.gridx = 0; 168 gridBagConstraints.gridy = 1; 169 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 170 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 171 jPanel1.add(jButtonAdd1, gridBagConstraints); 172 173 jButtonRemove.setText("Remove"); 174 jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("remove", "Remove")); jButtonRemove.setMaximumSize(new java.awt.Dimension (200, 26)); 176 jButtonRemove.setMinimumSize(new java.awt.Dimension (90, 26)); 177 jButtonRemove.setPreferredSize(new java.awt.Dimension (120, 26)); 178 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 179 public void actionPerformed(java.awt.event.ActionEvent evt) { 180 jButtonRemoveActionPerformed(evt); 181 } 182 }); 183 184 gridBagConstraints = new java.awt.GridBagConstraints (); 185 gridBagConstraints.gridx = 0; 186 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 187 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 188 jPanel1.add(jButtonRemove, gridBagConstraints); 189 190 jButtonMoveUp.setText("Move up"); 191 jButtonMoveUp.setText(it.businesslogic.ireport.util.I18n.getString("moveUp", "Move up")); jButtonMoveUp.setMaximumSize(new java.awt.Dimension (200, 26)); 193 jButtonMoveUp.setMinimumSize(new java.awt.Dimension (90, 26)); 194 jButtonMoveUp.setPreferredSize(new java.awt.Dimension (120, 26)); 195 jButtonMoveUp.addActionListener(new java.awt.event.ActionListener () { 196 public void actionPerformed(java.awt.event.ActionEvent evt) { 197 jButtonMoveUpActionPerformed(evt); 198 } 199 }); 200 201 gridBagConstraints = new java.awt.GridBagConstraints (); 202 gridBagConstraints.gridx = 0; 203 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 204 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 205 jPanel1.add(jButtonMoveUp, gridBagConstraints); 206 207 jButtonMoveDown.setText("Move down"); 208 jButtonMoveDown.setText(it.businesslogic.ireport.util.I18n.getString("moveDown", "Move down")); jButtonMoveDown.setMaximumSize(new java.awt.Dimension (200, 26)); 210 jButtonMoveDown.setMinimumSize(new java.awt.Dimension (90, 26)); 211 jButtonMoveDown.setPreferredSize(new java.awt.Dimension (120, 26)); 212 jButtonMoveDown.addActionListener(new java.awt.event.ActionListener () { 213 public void actionPerformed(java.awt.event.ActionEvent evt) { 214 jButtonMoveDownActionPerformed(evt); 215 } 216 }); 217 218 gridBagConstraints = new java.awt.GridBagConstraints (); 219 gridBagConstraints.gridx = 0; 220 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 221 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 222 jPanel1.add(jButtonMoveDown, gridBagConstraints); 223 224 gridBagConstraints = new java.awt.GridBagConstraints (); 225 gridBagConstraints.gridx = 0; 226 gridBagConstraints.weighty = 1.0; 227 jPanel1.add(jPanel2, gridBagConstraints); 228 229 jButtonSave.setText("Save classpath"); 230 jButtonSave.setText(it.businesslogic.ireport.util.I18n.getString("saveClasspath", "Save classpath")); jButtonSave.setMaximumSize(new java.awt.Dimension (200, 26)); 232 jButtonSave.setMinimumSize(new java.awt.Dimension (90, 26)); 233 jButtonSave.setPreferredSize(new java.awt.Dimension (120, 26)); 234 jButtonSave.setToolTipText(it.businesslogic.ireport.util.I18n.getString("saveClasspath", "Save classpath")); jButtonSave.addActionListener(new java.awt.event.ActionListener () { 236 public void actionPerformed(java.awt.event.ActionEvent evt) { 237 jButtonSaveActionPerformed(evt); 238 } 239 }); 240 241 gridBagConstraints = new java.awt.GridBagConstraints (); 242 gridBagConstraints.gridx = 0; 243 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 244 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 245 jPanel1.add(jButtonSave, gridBagConstraints); 246 247 jButtonCancel.setText("Cancel"); 248 jButtonCancel.setText(it.businesslogic.ireport.util.I18n.getString("cancel", "Cancel")); jButtonCancel.setMaximumSize(new java.awt.Dimension (200, 26)); 250 jButtonCancel.setMinimumSize(new java.awt.Dimension (90, 26)); 251 jButtonCancel.setPreferredSize(new java.awt.Dimension (120, 26)); 252 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 253 public void actionPerformed(java.awt.event.ActionEvent evt) { 254 jButtonCancelActionPerformed(evt); 255 } 256 }); 257 258 gridBagConstraints = new java.awt.GridBagConstraints (); 259 gridBagConstraints.gridx = 0; 260 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 261 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 0); 262 jPanel1.add(jButtonCancel, gridBagConstraints); 263 264 gridBagConstraints = new java.awt.GridBagConstraints (); 265 gridBagConstraints.gridx = 1; 266 gridBagConstraints.gridy = 1; 267 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 268 gridBagConstraints.weighty = 1.0; 269 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 4); 270 getContentPane().add(jPanel1, gridBagConstraints); 271 272 pack(); 273 } 275 private void jButtonAddActionPerformed1(java.awt.event.ActionEvent evt) {String fileName = ""; 277 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser ( MainFrame.getMainInstance().getCurrentDirectory()); 278 279 jfc.setDialogTitle("Add JAR(s) / path to the classpath"); 280 jfc.setDialogTitle(it.businesslogic.ireport.util.I18n.getString("addToClassPath", "Add JAR(s) / path to the classpath")); 282 jfc.setAcceptAllFileFilterUsed(true); 283 jfc.setFileSelectionMode( jfc.DIRECTORIES_ONLY ); 284 296 297 jfc.setMultiSelectionEnabled(true); 298 299 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 300 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 301 java.io.File [] files = jfc.getSelectedFiles(); 302 303 for (int i=0; i<files.length; ++i) { 304 ((DefaultListModel )jList1.getModel()).addElement( files[i] ); 305 } 306 MainFrame.getMainInstance().setCurrentDirectory( jfc.getSelectedFile(), true); 307 modifiedPath = true; 308 } 309 } 311 private void formWindowClosed(java.awt.event.WindowEvent evt) { 313 } 315 private void formWindowClosing(java.awt.event.WindowEvent evt) { 317 if (modifiedPath) 318 { 319 int ret = javax.swing.JOptionPane.showConfirmDialog(this, 320 I18n.getString("message.classpath.save","Do you want save the classpath ?")); 321 322 if (ret == javax.swing.JOptionPane.CANCEL_OPTION) 323 { 324 return; 325 } 326 327 if (ret == javax.swing.JOptionPane.OK_OPTION) 328 { 329 setDialogResult(javax.swing.JOptionPane.OK_OPTION); 330 } 331 } 332 setVisible(false); 333 } 335 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 337 } 339 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { setDialogResult(javax.swing.JOptionPane.OK_OPTION); 341 setVisible(false); 342 } 344 private void jButtonMoveUpActionPerformed(java.awt.event.ActionEvent evt) { 346 if (jList1.getSelectedValues() != null) 347 { 348 int[] indices = jList1.getSelectedIndices(); 349 for (int i=0; i<indices.length; ++i) 350 { 351 if (indices[i] == 0) continue; 352 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 353 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]-1); 354 indices[i]--; 355 } 356 jList1.setSelectedIndices(indices); 357 modifiedPath = true; 358 } 359 360 } 362 private void jButtonMoveDownActionPerformed(java.awt.event.ActionEvent evt) { if (jList1.getSelectedValues() != null) 364 { 365 int[] indices = jList1.getSelectedIndices(); 366 for (int i=indices.length-1; i>=0; --i) 367 { 368 if (indices[i] >= ((DefaultListModel )jList1.getModel()).size() -1 ) continue; 369 370 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 371 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]+1); 372 indices[i]++; 373 } 374 jList1.setSelectedIndices(indices); 375 modifiedPath = true; 376 } 377 } 379 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { 381 if (jList1.getSelectedValues() != null) 382 { 383 Object [] values = jList1.getSelectedValues(); 384 for (int i=0; i<values.length; ++i) 385 { 386 ((DefaultListModel )jList1.getModel()).removeElement(values[i]); 387 } 388 modifiedPath = true; 389 } 390 391 392 } 394 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { 396 String fileName = ""; 397 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser ( MainFrame.getMainInstance().getCurrentDirectory()); 398 399 jfc.setDialogTitle("Add JAR(s) / path to the classpath"); 400 jfc.setDialogTitle(it.businesslogic.ireport.util.I18n.getString("addToClassPath", "Add JAR(s) / path to the classpath")); 402 jfc.setAcceptAllFileFilterUsed(true); 403 jfc.setFileSelectionMode( jfc.FILES_ONLY ); 404 jfc.addChoosableFileFilter( new javax.swing.filechooser.FileFilter () { 405 public boolean accept(java.io.File file) { 406 String filename = file.getName(); 407 return (filename.toLowerCase().endsWith(".jar") || file.isDirectory() || 408 filename.toLowerCase().endsWith(".zip") 409 ) ; 410 } 411 public String getDescription() { 412 return "*.jar, *.zip"; 413 } 414 }); 415 416 jfc.setMultiSelectionEnabled(true); 417 418 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 419 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 420 java.io.File [] files = jfc.getSelectedFiles(); 421 422 for (int i=0; i<files.length; ++i) { 423 ((DefaultListModel )jList1.getModel()).addElement( files[i] ); 424 } 425 MainFrame.getMainInstance().setCurrentDirectory( jfc.getSelectedFile(), true); 426 modifiedPath = true; 427 } 428 429 430 431 } 433 436 public static void main(String args[]) { 437 java.awt.EventQueue.invokeLater(new Runnable () { 438 public void run() { 439 new ClassPathDialog(new javax.swing.JFrame (), true).setVisible(true); 440 } 441 }); 442 } 443 444 public void setClasspath(Vector cp) 445 { 446 for (int i=0; i<cp.size(); ++i) { 447 ((DefaultListModel )jList1.getModel()).addElement( cp.elementAt(i) ); 448 } 449 450 } 451 452 public Vector getClasspath() 453 { 454 Vector cp = new Vector(); 455 for (int i=0; i<((DefaultListModel )jList1.getModel()).size(); ++i ) 456 { 457 cp.addElement( "" + ((DefaultListModel )jList1.getModel()).elementAt( i ) ); 458 } 459 460 return cp; 461 } 462 463 public int getDialogResult() { 464 return dialogResult; 465 } 466 467 public void setDialogResult(int dialogResult) { 468 this.dialogResult = dialogResult; 469 } 470 471 private javax.swing.JButton jButtonAdd; 473 private javax.swing.JButton jButtonAdd1; 474 private javax.swing.JButton jButtonCancel; 475 private javax.swing.JButton jButtonMoveDown; 476 private javax.swing.JButton jButtonMoveUp; 477 private javax.swing.JButton jButtonRemove; 478 private javax.swing.JButton jButtonSave; 479 private javax.swing.JLabel jLabelClasspath; 480 private javax.swing.JList jList1; 481 private javax.swing.JPanel jPanel1; 482 private javax.swing.JPanel jPanel2; 483 private javax.swing.JScrollPane jScrollPane1; 484 486 public void applyI18n(){ 487 } 490 } 491 | Popular Tags |