/**
* Title: JSqlIde<p>
* Description: A Java SQL Integrated Development Environment
* <p>
* Copyright: Copyright (c) David Martinez<p>
* Company: <p>
* @author David Martinez
* @version 1.0
*/
package com.hackerdude.apps.sqlide.wizards;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import com.hackerdude.apps.sqlide.dialogs.ConnPropertiesTableModel;
import com.hackerdude.lib.ui.WizardPage;
public class ServerDetailsWizardPage extends WizardPage {
public final Action ACTION_ADD = new AddAction();
public final Action ACTION_REMOVE = new RemoveAction();
private String serverType;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JLabel jLabel1 = new JLabel();
BorderLayout borderLayout2 = new BorderLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable();
ConnPropertiesTableModel propertiesModel = new ConnPropertiesTableModel(new HashMap(), "Properties");
JPanel jPanel2 = new JPanel();
JButton btnAdd = new JButton(ACTION_ADD);
JButton btnRemove = new JButton(ACTION_REMOVE);
GridBagLayout gridBagLayout1 = new GridBagLayout();
public ServerDetailsWizardPage() {
try {
jbInit();
} catch(Exception e) {
e.printStackTrace();
}
}
public void setServerType(String type) {
serverType = type;
jLabel1.setText(type+" - Connection Parameters");
}
public String getServerType() {
return serverType;
}
private void jbInit() throws Exception {
this.setLayout(borderLayout1);
jLabel1.setText("Connection Parameters");
jPanel1.setLayout(borderLayout2);
btnAdd.setText("Add");
jPanel2.setLayout(gridBagLayout1);
btnRemove.setText("Remove");
jScrollPane1.setOpaque(false);
this.setToolTipText("");
this.add(jPanel1, BorderLayout.NORTH);
jPanel1.add(jLabel1, BorderLayout.CENTER);
this.add(jScrollPane1, BorderLayout.CENTER);
this.add(jPanel2, BorderLayout.EAST);
jPanel2.add(btnAdd, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(20, 5, 0, 5), 24, 0));
jPanel2.add(btnRemove, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 5, 219, 5), 0, 0));
jScrollPane1.getViewport().add(jTable1, null);
jTable1.setModel(propertiesModel);
jScrollPane1.setOpaque(true);
jTable1.getSelectionModel().addListSelectionListener(
new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent ev) {
updateControlState();
}
});
}
class AddAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
propertiesModel.addRow();
}
}
class RemoveAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
int selectedRow = jTable1.getSelectedRow();
propertiesModel.removeRow(selectedRow);
propertiesModel.fireTableDataChanged();
if ( selectedRow < jTable1.getRowCount() ) { jTable1.getSelectionModel().setSelectionInterval(selectedRow, selectedRow); }
updateControlState();
}
}
public void updateControlState() {
btnRemove.setEnabled(jTable1.getSelectedRow()>-1);
}
public void setServerProperties(HashMap hm) {
propertiesModel = new ConnPropertiesTableModel(hm, serverType);
jTable1.setModel(propertiesModel);
}
}