/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* SecuritySettingsPanel.java
*
* Created on Nov 5, 2008, 8:15:20 AM
*/
package owsproxyclient.settings;
import java.io.File;
import java.util.ResourceBundle;
import javax.swing.JFileChooser;
/**
*
* @author jeichar
*/
public class SecuritySettingsPanel extends javax.swing.JPanel implements SettingsPanel{
private static final ResourceBundle translations = ResourceBundle.getBundle("owsproxyclient/translations");
private SettingsDialog _owner;
/** Creates new form SecuritySettingsPanel */
public SecuritySettingsPanel(SettingsDialog owner) {
_owner=owner;
}
public void init() {
initComponents();
}
/** 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
keystoreText = new javax.swing.JTextField(System.getProperty("user.home")+"/.secureows/keystore");
browseButton = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
passwordText = new javax.swing.JPasswordField();
jLabel3 = new javax.swing.JLabel();
readOnlyCheck = new javax.swing.JCheckBox();
jLabel1.setText(translations.getString("Keystore")); // NOI18N
keystoreText.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
keystoreTextPropertyChange(evt);
}
});
browseButton.setText(translations.getString("BrowseButton")); // NOI18N
browseButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
browseButtonActionPerformed(evt);
}
});
jLabel2.setText(translations.getString("Password")); // NOI18N
passwordText.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
passwordTextPropertyChange(evt);
}
});
jLabel3.setFont(new java.awt.Font("DejaVu Sans", 1, 13)); // NOI18N
jLabel3.setText(translations.getString("SecurityPanelTitle")); // NOI18N
readOnlyCheck.setText(translations.getString("Readonly")); // NOI18N
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(jLabel1)
.add(jLabel2))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(passwordText)
.add(keystoreText, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(browseButton))
.add(jLabel3)
.add(readOnlyCheck))
.addContainerGap(56, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jLabel3)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel1)
.add(keystoreText, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(browseButton))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel2)
.add(passwordText, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(12, 12, 12)
.add(readOnlyCheck)
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
JFileChooser dialog = new JFileChooser(keystoreText.getText().trim());
dialog.setFileSelectionMode(JFileChooser.FILES_ONLY);
dialog.setMultiSelectionEnabled(false);
int returnVal = dialog.showOpenDialog(browseButton);
if( returnVal==JFileChooser.APPROVE_OPTION ){
File path = dialog.getSelectedFile();
keystoreText.setText( path.getAbsolutePath() );
_owner.updateButtons();
}
}//GEN-LAST:event_browseButtonActionPerformed
private void keystoreTextPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_keystoreTextPropertyChange
_owner.updateButtons();
}//GEN-LAST:event_keystoreTextPropertyChange
private void passwordTextPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_passwordTextPropertyChange
_owner.updateButtons();
}//GEN-LAST:event_passwordTextPropertyChange
public void setState(Object state) {
SecurityState sState = (SecurityState) state;
keystoreText.setText(sState.keystore);
passwordText.setText(new String(sState.password));
readOnlyCheck.setSelected(sState.readonly);
}
public Object getState() {
return new SecurityState(keystoreText.getText(), passwordText.getPassword(), readOnlyCheck.isSelected());
}
public String getErrorMessage() {
if(keystoreText.getText().trim().length()==0){
return translations.getString("keystoreValidation");
}
return null;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton browseButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField keystoreText;
private javax.swing.JPasswordField passwordText;
private javax.swing.JCheckBox readOnlyCheck;
// End of variables declaration//GEN-END:variables
}