package de.upk.dbsearchui; import de.upk.busa.Options; import de.upk.dbindex.settings.JDBCDriverSettings; import java.io.File; import javax.swing.DefaultListModel; import javax.swing.JFileChooser; import javax.swing.ListModel; /** * JDBC-Treiber. * * @author Tim Lebedkov * @version $Id$ */ public class JDBCDriverPanel extends javax.swing.JPanel { /** * Creates new form JDBCDriverPanel. */ public JDBCDriverPanel() { initComponents(); } /** * Füllt das Panel mit den Daten. * * @param s Daten */ public void fillPanel(JDBCDriverSettings s) { jComboBoxDriver.setSelectedItem(s.getClazz()); jTextFieldTitle.setText(s.getTitle()); DefaultListModel m = new DefaultListModel(); for (int i = 0; i < s.getFiles().length; i++) { m.addElement(s.getFiles()[i]); } jList.setModel(m); } /** * 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. */ // //GEN-BEGIN:initComponents private void initComponents() { jLabel2 = new javax.swing.JLabel(); jTextFieldTitle = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); jList = new javax.swing.JList(); jComboBoxDriver = new javax.swing.JComboBox(); jButtonDelete = new javax.swing.JButton(); jButtonAdd = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); jLabel2.setDisplayedMnemonic('b'); jLabel2.setLabelFor(jTextFieldTitle); jLabel2.setText("Bezeichnung:"); jLabel1.setDisplayedMnemonic('j'); jLabel1.setLabelFor(jList); jLabel1.setText("Dateien (.zip oder .jar):"); jList.setModel(new DefaultListModel()); jList.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { jListValueChanged(evt); } }); jScrollPane1.setViewportView(jList); jComboBoxDriver.setEditable(true); jComboBoxDriver.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "oracle.jdbc.OracleDriver", "com.ibm.db2.jcc.DB2Driver", "com.microsoft.jdbc.sqlserver.SQLServerDriver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "net.sourceforge.jtds.jdbc.Driver", "com.sybase.jdbc3.jdbc.SybDriver", "net.sourceforge.jtds.jdbc.Driver", "com.informix.jdbc.IfxDriver", "com.mysql.jdbc.Driver", "org.postgresql.Driver", "com.sap.dbtech.jdbc.DriverSapDB", "com.frontbase.jdbc.FBJDriver", "com.sybase.jdbc3.jdbc.SybDriver", "org.hsqldb.jdbcDriver", "com.pointbase.jdbc.jdbcUniversalDriver", "com.pointbase.me.jdbc.jdbcDriver", "com.mimer.jdbc.Driver", "com.pervasive.jdbc.v2.Driver", "in.co.daffodil.db.jdbc.DaffodilDBDriver", "in.co.daffodil.db.rmi.RmiDaffodilDBDriver", "com.borland.datastore.jdbc.DataStoreDriver" })); jButtonDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/de/upk/dbsearchui/remove.png"))); jButtonDelete.setMnemonic('e'); jButtonDelete.setText("Entfernen"); jButtonDelete.setEnabled(false); jButtonDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonDeleteActionPerformed(evt); } }); jButtonAdd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/de/upk/dbsearchui/add.png"))); jButtonAdd.setMnemonic('z'); jButtonAdd.setText("Hinzuf\u00fcgen"); jButtonAdd.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAddActionPerformed(evt); } }); jLabel3.setDisplayedMnemonic('k'); jLabel3.setLabelFor(jComboBoxDriver); jLabel3.setText("Treiberklasse:"); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(jLabel2) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jTextFieldTitle, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 425, Short.MAX_VALUE)) .add(jLabel1) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 493, Short.MAX_VALUE)) .add(0, 0, 0) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(jButtonAdd) .add(jButtonDelete))) .add(layout.createSequentialGroup() .add(jLabel3) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jComboBoxDriver, 0, 422, Short.MAX_VALUE) .add(107, 107, 107)))) ); layout.linkSize(new java.awt.Component[] {jButtonAdd, jButtonDelete}, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel2) .add(jTextFieldTitle, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabel1) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(jButtonAdd) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButtonDelete)) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 148, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel3) .add(jComboBoxDriver, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addContainerGap(254, Short.MAX_VALUE)) ); }// //GEN-END:initComponents private void jListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListValueChanged jButtonDelete.setEnabled(jList.getSelectedIndex() != -1); }//GEN-LAST:event_jListValueChanged private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDeleteActionPerformed int[] sel = jList.getSelectedIndices(); int n = 0; for (int i = 0; i < sel.length; i++) { ((DefaultListModel) jList.getModel()).remove(sel[i] - n); n++; } }//GEN-LAST:event_jButtonDeleteActionPerformed private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddActionPerformed JFileChooser fc = new JFileChooser(); String file = Options.getDefault().getProperty( "JDBCDriverPanel.file"); if (file != null) fc.setSelectedFile(new File(file)); fc.setMultiSelectionEnabled(true); fc.addChoosableFileFilter(new ExtensionFileFilter( new String[] {".zip", ".jar"}, "Java-Bibliotheken (*.zip, *.jar)")); fc.showOpenDialog(MainFrame.getInstance()); File[] files = fc.getSelectedFiles(); if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { ((DefaultListModel) jList.getModel()).addElement( files[i].getAbsolutePath()); } Options.getDefault().put("JDBCDriverPanel.file", files[0].getAbsolutePath()); jList.setSelectedIndex(jList.getModel().getSize() - 1); } }//GEN-LAST:event_jButtonAddActionPerformed /** * Überträgt die Daten aus dem GUI in ein Objekt. * * @param data das Objekt */ public void fillData(JDBCDriverSettings data) { data.setTitle(jTextFieldTitle.getText()); ListModel m = jList.getModel(); String[] files = new String[m.getSize()]; for (int i = 0; i < files.length; i++) { files[i] = (String) m.getElementAt(i); } data.setFiles(files); data.setClazz(jComboBoxDriver.getSelectedItem().toString()); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButtonAdd; private javax.swing.JButton jButtonDelete; private javax.swing.JComboBox jComboBoxDriver; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JList jList; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTextFieldTitle; // End of variables declaration//GEN-END:variables }