view src/MPipeline2/src/mpipeline/ltpdapreferences/RepositoryDialog.java @ 33:5e7477b94d94 database-connection-manager

Add known repositories list to LTPDAPreferences
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Mon, 05 Dec 2011 16:20:06 +0100
parents
children dd93c9ba6624
line wrap: on
line source

package mpipeline.ltpdapreferences;

import java.util.HashSet;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.TableModel;

public class RepositoryDialog extends javax.swing.JDialog {

  public boolean cancelled = true;
  public String hostname;
  public String database;
  public String username;
  private TableModel model;

  public RepositoryDialog(java.awt.Window parent, TableModel model) {
    super(parent, java.awt.Dialog.ModalityType.APPLICATION_MODAL);
    this.model = model;
    initComponents();
    initHostnameCombo();
    initDatabaseCombo();
    initUsernameCombo();
    super.setLocationRelativeTo(parent);
  }

  public RepositoryDialog(java.awt.Frame parent) {
    super(parent, true);
    initComponents();
    super.setLocationRelativeTo(parent);
  }

  public RepositoryDialog() {
    super(new java.awt.Frame(), true);
    initComponents();
  }

  @SuppressWarnings("unchecked")
  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  private void initComponents() {

    jLabel9 = new javax.swing.JLabel();
    jLabel10 = new javax.swing.JLabel();
    jLabel11 = new javax.swing.JLabel();
    databaseCombo = new javax.swing.JComboBox();
    hostnameCombo = new javax.swing.JComboBox();
    usernameCombo = new javax.swing.JComboBox();
    okButton = new javax.swing.JButton();
    cancelButton = new javax.swing.JButton();

    setTitle("Database connection");
    setLocationByPlatform(true);
    setModal(true);
    setResizable(false);

    jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
    jLabel9.setText("Hostname:");

    jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
    jLabel10.setText("Database:");

    jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
    jLabel11.setText("Username:");

    databaseCombo.setEditable(true);

    hostnameCombo.setEditable(true);
    hostnameCombo.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        hostnameComboActionPerformed(evt);
      }
    });

    usernameCombo.setEditable(true);

    okButton.setText("Ok");
    okButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        okButtonActionPerformed(evt);
      }
    });

    cancelButton.setText("Cancel");
    cancelButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        cancelButtonActionPerformed(evt);
      }
    });

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().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(jLabel9)
            .add(18, 18, 18)
            .add(hostnameCombo, 0, 240, Short.MAX_VALUE))
          .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
            .add(jLabel10)
            .add(21, 21, 21)
            .add(databaseCombo, 0, 240, Short.MAX_VALUE))
          .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
            .add(cancelButton)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(okButton))
          .add(layout.createSequentialGroup()
            .add(jLabel11)
            .add(18, 18, 18)
            .add(usernameCombo, 0, 240, Short.MAX_VALUE)))
        .addContainerGap())
    );
    layout.setVerticalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
        .addContainerGap()
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
          .add(hostnameCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
          .add(jLabel9))
        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
          .add(databaseCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
          .add(jLabel10))
        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
          .add(jLabel11)
          .add(usernameCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(layout.createSequentialGroup()
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 12, Short.MAX_VALUE)
            .add(okButton)
            .addContainerGap())
          .add(layout.createSequentialGroup()
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
            .add(cancelButton)
            .addContainerGap())))
    );

    pack();
  }// </editor-fold>//GEN-END:initComponents

    private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
      cancelled = true;
      doClose();
    }//GEN-LAST:event_cancelButtonActionPerformed

    private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
      cancelled = false;
      hostname = (String) hostnameCombo.getSelectedItem();
      database = (String) databaseCombo.getSelectedItem();
      username = (String) usernameCombo.getSelectedItem();
      doClose();
    }//GEN-LAST:event_okButtonActionPerformed

    private void hostnameComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_hostnameComboActionPerformed
      initDatabaseCombo();
      initUsernameCombo();
    }//GEN-LAST:event_hostnameComboActionPerformed

  private void initHostnameCombo() {
    HashSet<String> hostnames = new HashSet<String>();
    int rows = model.getRowCount();
    for (int i = 0; i < rows; i++) {
      hostnames.add((String) model.getValueAt(i, 0));
    }
    hostnameCombo.setModel(new DefaultComboBoxModel(hostnames.toArray()));
  }

  private void initDatabaseCombo() {
    HashSet<String> databases = new HashSet<String>();
    hostname = (String) hostnameCombo.getSelectedItem();
    int rows = model.getRowCount();
    for (int i = 0; i < rows; i++) {
      if (hostname.equals((String) model.getValueAt(i, 0))) {
        databases.add((String) model.getValueAt(i, 1));
      }
    }
    databaseCombo.setModel(new DefaultComboBoxModel(databases.toArray()));
  }

  private void initUsernameCombo() {
    HashSet<String> usernames = new HashSet<String>();
    hostname = (String) hostnameCombo.getSelectedItem();
    int rows = model.getRowCount();
    for (int i = 0; i < rows; i++) {
      if (hostname.equals((String) model.getValueAt(i, 0))) {
        usernames.add((String) model.getValueAt(i, 2));
      }
    }
    usernameCombo.setModel(new DefaultComboBoxModel(usernames.toArray()));
  }
  
  private void doClose() {
    setVisible(false);
    dispose();

  }
  // Variables declaration - do not modify//GEN-BEGIN:variables
  private javax.swing.JButton cancelButton;
  private javax.swing.JComboBox databaseCombo;
  private javax.swing.JComboBox hostnameCombo;
  private javax.swing.JLabel jLabel10;
  private javax.swing.JLabel jLabel11;
  private javax.swing.JLabel jLabel9;
  private javax.swing.JButton okButton;
  private javax.swing.JComboBox usernameCombo;
  // End of variables declaration//GEN-END:variables
}