package jrdesktop.viewer;
import java.util.regex.Pattern;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import jrdesktop.Commons;
import jrdesktop.Config;
import jrdesktop.main;
import jrdesktop.utilities.FileUtility;
/**
* ConnectionDialog.java
* @author benbac
*/
public class ConnectionDialog extends javax.swing.JFrame {
private static ConnectionDialog frame;
private static boolean visible = false;
private static int lastConfigIndex = 0;
private static Config viewerConfig;
/** Creates new form ServerConnection */
public ConnectionDialog() {
viewerConfig = new Config(Commons.viewerSide, "");
initComponents();
jComboBoxConfig.setSelectedIndex(lastConfigIndex);
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTextFieldUsername = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jPasswordField = new javax.swing.JPasswordField();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextFieldIPAdr = new javax.swing.JTextField();
jTextFieldPort = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jCheckBoxSSLEnabled = new javax.swing.JCheckBox();
jCheckBoxReverseConnection = new javax.swing.JCheckBox();
jButtonCancel = new javax.swing.JButton();
jButtonOK = new javax.swing.JButton();
jComboBoxConfig = new javax.swing.JComboBox(FileUtility.getSideConfigFiles(Commons.viewerSide));
jLabel5 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
setTitle("Connection details");
setIconImage(new ImageIcon(Commons.IDLE_ICON).getImage());
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Authentication"));
jTextFieldUsername.setText(viewerConfig.username);
jLabel3.setText("Username:");
jLabel4.setText("Password:");
jPasswordField.setText(viewerConfig.password);
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel3)
.add(jLabel4))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPasswordField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
.add(jTextFieldUsername, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel3)
.add(jTextFieldUsername, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(6, 6, 6)
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel4)
.add(jPasswordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Server location"));
jLabel1.setText(" Address:");
jLabel2.setText(" Port:");
jTextFieldIPAdr.setText(viewerConfig.server_address);
jTextFieldPort.setText(String.valueOf(viewerConfig.server_port));
org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel1)
.add(jLabel2))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jTextFieldPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE)
.add(jTextFieldIPAdr, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2Layout.createSequentialGroup()
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel1)
.add(jTextFieldIPAdr, 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(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel2)
.add(jTextFieldPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Connection mode"));
jCheckBoxSSLEnabled.setSelected(viewerConfig.ssl_enabled);
jCheckBoxSSLEnabled.setText("Secured connection ");
jCheckBoxReverseConnection.setSelected(viewerConfig.reverseConnection);
jCheckBoxReverseConnection.setText("Reverse connection");
org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel3Layout.createSequentialGroup()
.add(jCheckBoxSSLEnabled)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jCheckBoxReverseConnection))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jCheckBoxSSLEnabled)
.add(jCheckBoxReverseConnection))
);
jButtonCancel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jrdesktop/images/no.png"))); // NOI18N
jButtonCancel.setText("Cancel");
jButtonCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCancelActionPerformed(evt);
}
});
jButtonOK.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jrdesktop/images/ok.png"))); // NOI18N
jButtonOK.setText("OK");
jButtonOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonOKActionPerformed(evt);
}
});
jComboBoxConfig.setEditable(true);
jComboBoxConfig.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBoxConfigActionPerformed(evt);
}
});
jLabel5.setText("Configuration:");
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(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 335, Short.MAX_VALUE)
.add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(layout.createSequentialGroup()
.add(jLabel5)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jComboBoxConfig, 0, 234, Short.MAX_VALUE))
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(jButtonCancel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButtonOK)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel5)
.add(jComboBoxConfig, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel2, 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(jPanel1, 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(jPanel3, 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(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jButtonCancel)
.add(jButtonOK))
.addContainerGap(13, Short.MAX_VALUE))
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-369)/2, (screenSize.height-374)/2, 369, 374);
}// </editor-fold>//GEN-END:initComponents
private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
close();
}//GEN-LAST:event_jButtonCancelActionPerformed
private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed
String config_name = "";
Object item = jComboBoxConfig.getSelectedItem();
if (item != null) {
config_name = item.toString();
if (!config_name.equals(Commons.DEFAULT_CONFIG) &&
!Pattern.matches("[^\\/:*?\"<>|]*", config_name)) {
JOptionPane.showMessageDialog(ConnectionDialog.this,
"A configuration name cannot contain any of the following characters " +
"\\ / : * ? \" < > | ", "Error", JOptionPane.ERROR_MESSAGE);
jComboBoxConfig.setFocusable(true);
return;
}
}
lastConfigIndex = jComboBoxConfig.getSelectedIndex();
close();
main.viewerConfig = new Config (Commons.viewerSide, config_name,
jTextFieldIPAdr.getText(),
Integer.parseInt(jTextFieldPort.getText()),
jTextFieldUsername.getText(),
String.copyValueOf(jPasswordField.getPassword()),
jCheckBoxSSLEnabled.isSelected(),
jCheckBoxReverseConnection.isSelected());
main.startViewer();
}//GEN-LAST:event_jButtonOKActionPerformed
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
close();
}//GEN-LAST:event_formWindowClosing
private void jComboBoxConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxConfigActionPerformed
Object item = jComboBoxConfig.getSelectedItem();
if (item == null) return;
String name = item.toString();
viewerConfig.loadConfiguration(Commons.viewerSide, name);
jTextFieldIPAdr.setText(viewerConfig.server_address);
jTextFieldPort.setText(Integer.toString(viewerConfig.server_port));
jTextFieldUsername.setText(viewerConfig.username);
jPasswordField.setText(viewerConfig.password);
jCheckBoxSSLEnabled.setSelected(viewerConfig.ssl_enabled);
jCheckBoxReverseConnection.setSelected(viewerConfig.reverseConnection);
}//GEN-LAST:event_jComboBoxConfigActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
if (visible) return;
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
frame = new ConnectionDialog();
frame.setVisible(true);
visible = true;
}
});
}
public static void close() {
if (visible) {
visible = false;
frame.dispose();
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonCancel;
private javax.swing.JButton jButtonOK;
private javax.swing.JCheckBox jCheckBoxReverseConnection;
private javax.swing.JCheckBox jCheckBoxSSLEnabled;
private javax.swing.JComboBox jComboBoxConfig;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPasswordField jPasswordField;
private javax.swing.JTextField jTextFieldIPAdr;
private javax.swing.JTextField jTextFieldPort;
private javax.swing.JTextField jTextFieldUsername;
// End of variables declaration//GEN-END:variables
}