|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.db.explorer.dlg; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; import java.util.jar.JarFile; import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JFileChooser; import javax.swing.ListSelectionModel; import org.openide.util.NbBundle; import org.openide.util.RequestProcessor; import org.openide.windows.WindowManager; import org.netbeans.modules.db.explorer.DbURLClassLoader; import org.netbeans.modules.db.explorer.driver.JDBCDriver; import org.netbeans.modules.db.util.DriverListUtil; public class AddDriverDialog extends javax.swing.JPanel { private DefaultListModel dlm; private List drvs; private boolean customizer; private final String BUNDLE = "org.netbeans.modules.db.resources.Bundle"; //NOI18N /** Creates new form AddDriverDialog1 */ public AddDriverDialog() { customizer = false; initComponents(); findProgressBar.setBorderPainted(false); initAccessibility(); dlm = (DefaultListModel) drvList.getModel(); drvs = new LinkedList(); } public AddDriverDialog(JDBCDriver drv) { this(); customizer = true; String fileName; for (int i = 0; i < drv.getURLs().length; i++) { fileName = (new File(drv.getURLs()[i].getPath())).toString(); dlm.addElement(fileName); drvs.add(drv.getURLs()[i]); } drvClassComboBox.addItem(drv.getClassName()); drvClassComboBox.setSelectedItem(drv.getClassName()); nameTextField.setText(drv.getName()); } private void initAccessibility() { this.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDialogA11yDesc")); //NOI18N drvListLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverFileA11yDesc")); //NOI18N drvList.getAccessibleContext().setAccessibleName(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverFileListA11yName")); //NOI18N drvClassLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverDriverClassA11yDesc")); //NOI18N drvClassComboBox.getAccessibleContext().setAccessibleName(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverDriverClassComboBoxA11yName")); //NOI18N nameLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverNameA11yDesc")); //NOI18N nameTextField.getAccessibleContext().setAccessibleName(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverDriverNameTextFieldA11yName")); //NOI18N browseButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverAddButtonA11yDesc")); //NOI18N findButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverRemoveButtonA11yDesc")); //NOI18N removeButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverFindButtonA11yDesc")); //NOI18N findProgressBar.getAccessibleContext().setAccessibleName(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverProgressBarA11yName")); //NOI18N findProgressBar.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverProgressBarA11yDesc")); //NOI18N } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; drvListLabel = new javax.swing.JLabel(); drvListScrollPane = new javax.swing.JScrollPane(); drvList = new javax.swing.JList(); browseButton = new javax.swing.JButton(); removeButton = new javax.swing.JButton(); drvClassLabel = new javax.swing.JLabel(); drvClassComboBox = new javax.swing.JComboBox(); findButton = new javax.swing.JButton(); nameLabel = new javax.swing.JLabel(); nameTextField = new javax.swing.JTextField(); findProgressBar = new javax.swing.JProgressBar(); setLayout(new java.awt.GridBagLayout()); drvListLabel.setDisplayedMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverFile_Mnemonic").charAt(0)); drvListLabel.setLabelFor(drvList); drvListLabel.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverFile")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 12); add(drvListLabel, gridBagConstraints); drvList.setModel(new DefaultListModel()); drvListScrollPane.setViewportView(drvList); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 12); add(drvListScrollPane, gridBagConstraints); browseButton.setMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverAdd_Mnemonic").charAt(0)); browseButton.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverAdd")); browseButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { browseButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 11); add(browseButton, gridBagConstraints); removeButton.setMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverRemove_Mnemonic").charAt(0)); removeButton.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverRemove")); removeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { removeButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 11); add(removeButton, gridBagConstraints); drvClassLabel.setDisplayedMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverClass_Mnemonic").charAt(0)); drvClassLabel.setLabelFor(drvClassComboBox); drvClassLabel.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverClass")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(11, 12, 0, 12); add(drvClassLabel, gridBagConstraints); drvClassComboBox.setEditable(true); drvClassComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { drvClassComboBoxActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 12); add(drvClassComboBox, gridBagConstraints); findButton.setMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverFind_Mnemonic").charAt(0)); findButton.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverFind")); findButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { findButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 11); add(findButton, gridBagConstraints); nameLabel.setDisplayedMnemonic(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverName_Mnemonic").charAt(0)); nameLabel.setLabelFor(nameTextField); nameLabel.setText(NbBundle.getBundle(BUNDLE).getString("AddDriverDriverName")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(11, 12, 0, 12); add(nameLabel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(11, 0, 0, 12); add(nameTextField, gridBagConstraints); findProgressBar.setToolTipText(NbBundle.getBundle(BUNDLE).getString("ACS_AddDriverProgressBarA11yDesc")); findProgressBar.setString(""); findProgressBar.setStringPainted(true); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; gridBagConstraints.insets = new java.awt.Insets(11, 12, 12, 11); add(findProgressBar, gridBagConstraints); }//GEN-END:initComponents private void drvClassComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_drvClassComboBoxActionPerformed if (!customizer) nameTextField.setText(DriverListUtil.findFreeName(DriverListUtil.getName((String) drvClassComboBox.getSelectedItem()))); }//GEN-LAST:event_drvClassComboBoxActionPerformed private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed hideProgress(); ListSelectionModel lsm = drvList.getSelectionModel(); int count = dlm.getSize(); int i = 0; if (count < 1) return; do { if (lsm.isSelectedIndex(i)) { dlm.remove(i); drvs.remove(i); count--; continue; } i++; } while (count != i); findDriverClass(); }//GEN-LAST:event_removeButtonActionPerformed private void findButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_findButtonActionPerformed RequestProcessor.getDefault().post(new Runnable() { public void run() { startProgress(); JarFile jf; Enumeration e; String className; Class c; Class[] cls; DbURLClassLoader loader = new DbURLClassLoader((URL[]) drvs.toArray(new URL[drvs.size()])); for (int i = 0; i < drvs.size(); i++) { try { jf = new JarFile(new File(((URL) drvs.get(i)).getFile())); e = jf.entries(); while (e.hasMoreElements()) { className = e.nextElement().toString(); if (className.endsWith(".class")) { className = className.replace('/', '.'); className = className.substring(0, className.length() - 6); try { c = Class.forName(className, true, loader); cls = c.getInterfaces(); for (int j = 0; j < cls.length; j++) if (cls[j].equals(java.sql.Driver.class)) addDriverClass(className); } catch (Exception exc) { //PENDING } catch (Error err) { //PENDING } } } jf.close(); } catch (IOException exc) { //PENDING } } stopProgress(); } }, 0); }//GEN-LAST:event_findButtonActionPerformed private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed hideProgress(); JFileChooser fc = new JFileChooser(); fc.setDialogTitle(NbBundle.getBundle(BUNDLE).getString("AddDriver_Chooser_Title")); //NOI18N fc.setMultiSelectionEnabled(true); fc.setAcceptAllFileFilterUsed(false); //.jar and .zip file filter fc.setFileFilter(new javax.swing.filechooser.FileFilter() { public boolean accept(File f) { return (f.isDirectory() || f.getName().endsWith(".jar") || f.getName().endsWith(".zip")); //NOI18N } public String getDescription() { return NbBundle.getBundle(BUNDLE).getString("AddDriver_Chooser_Filter"); //NOI18N } }); if (fc.showOpenDialog(WindowManager.getDefault().getMainWindow()) == JFileChooser.APPROVE_OPTION) { //NOI18N File[] files = fc.getSelectedFiles(); for (int i = 0; i < files.length; i++) if (files[i] != null && files[i].isFile()) { dlm.addElement(files[i].toString()); try { drvs.add(files[i].toURL()); } catch (MalformedURLException exc) { //PENDING } } findDriverClass(); } }//GEN-LAST:event_browseButtonActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton browseButton; private javax.swing.JComboBox drvClassComboBox; private javax.swing.JLabel drvClassLabel; private javax.swing.JList drvList; private javax.swing.JLabel drvListLabel; private javax.swing.JScrollPane drvListScrollPane; private javax.swing.JButton findButton; private javax.swing.JProgressBar findProgressBar; private javax.swing.JLabel nameLabel; private javax.swing.JTextField nameTextField; private javax.swing.JButton removeButton; // End of variables declaration//GEN-END:variables public String getName() { return nameTextField.getText(); } public List getDriverLocation() { return drvs; } public String getDriverClass() { return (String) drvClassComboBox.getSelectedItem(); } private void findDriverClass() { JarFile jf; String[] drivers = (String[]) DriverListUtil.getDrivers().toArray(new String[DriverListUtil.getDrivers().size()]); drvClassComboBox.removeAllItems(); for (int i = 0; i < drvs.size(); i++) { try { jf = new JarFile(new File(((URL) drvs.get(i)).getFile())); for (int j = 0; j < drivers.length; j++) if (jf.getEntry(drivers[j].replace('.', '/') + ".class") != null) //NOI18N addDriverClass(drivers[j]); jf.close(); } catch (IOException exc) { //PENDING } } } private void addDriverClass(String drv) { if (((DefaultComboBoxModel) drvClassComboBox.getModel()).getIndexOf(drv) < 0) drvClassComboBox.addItem(drv); } private void startProgress() { findProgressBar.setBorderPainted(true); findProgressBar.setIndeterminate(true); findProgressBar.setString(NbBundle.getBundle(BUNDLE).getString("AddDriverProgressStart")); //NOI18N } private void stopProgress() { findProgressBar.setValue(findProgressBar.getMaximum()); findProgressBar.setString(NbBundle.getBundle(BUNDLE).getString("AddDriverProgressStop")); //NOI18N findProgressBar.setIndeterminate(false); } private void hideProgress() { findProgressBar.setBorderPainted(false); findProgressBar.setIndeterminate(false); findProgressBar.setString(""); //NOI18N findProgressBar.setValue(findProgressBar.getMinimum()); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.