/*
* CACertificatePanel.java
*
* Created on 7 de Agosto de 2008, 17:44
*/
package org.ourgrid.peer.ui.async.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.swing.JFileChooser;
import org.ourgrid.common.ui.AbstractInputFieldsPanel;
import org.ourgrid.common.ui.InputFieldsUI;
import org.ourgrid.peer.PeerConfiguration;
import org.ourgrid.peer.ui.async.model.PeerAsyncUIModel;
import br.edu.ufcg.lsd.commune.ModuleProperties;
import br.edu.ufcg.lsd.commune.context.ContainerContextUtils;
import br.edu.ufcg.lsd.commune.network.certification.CertificateCRLPair;
import br.edu.ufcg.lsd.commune.network.certification.CertificationUtils;
/**
*
*/
public class CACertificatePanel extends AbstractInputFieldsPanel implements InputFieldsUI{
/**
*
*/
private static final long serialVersionUID = 1L;
/** Creates new form CACertificatePanel */
public CACertificatePanel(PeerAsyncUIModel model) {
super(model);
}
/** 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
protected void initComponents() {
requestingCaCertificatesPanel = new javax.swing.JPanel();
requestingCertificatePathField = new javax.swing.JTextField();
requestingCertificatePathLabel = new javax.swing.JLabel();
requestingLoadedCertLabel = new javax.swing.JLabel();
requestingLoadButton = new javax.swing.JButton();
requestingCertificateList = new java.awt.List();
requestingCertificatePathField.setEditable(false);
requestingCaCertificatesPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
"Requesting Remote Peers Certification Authorities"));
requestingCertificatePathLabel.setText("CA certificates path");
requestingLoadedCertLabel.setText("Loaded certificates");
requestingLoadButton.setText("Load...");
requestingLoadButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loadRequestingCertificatesButtonActionPerformed(e);
}
});
org.jdesktop.layout.GroupLayout caRequestingCertificatesPanelLayout = new org.jdesktop.layout.GroupLayout(requestingCaCertificatesPanel);
requestingCaCertificatesPanel.setLayout(caRequestingCertificatesPanelLayout);
caRequestingCertificatesPanelLayout.setHorizontalGroup(
caRequestingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(caRequestingCertificatesPanelLayout.createSequentialGroup()
.addContainerGap()
.add(caRequestingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, requestingCertificateList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, caRequestingCertificatesPanelLayout.createSequentialGroup()
.add(requestingCertificatePathField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 247, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(requestingLoadButton))
.add(org.jdesktop.layout.GroupLayout.LEADING, requestingCertificatePathLabel)
.add(org.jdesktop.layout.GroupLayout.LEADING, requestingLoadedCertLabel))
.addContainerGap(20, Short.MAX_VALUE))
);
caRequestingCertificatesPanelLayout.setVerticalGroup(
caRequestingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(caRequestingCertificatesPanelLayout.createSequentialGroup()
.addContainerGap()
.add(requestingCertificatePathLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(caRequestingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(requestingCertificatePathField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(requestingLoadButton))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(requestingLoadedCertLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(requestingCertificateList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 85, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(20, Short.MAX_VALUE))
);
receivingCaCertificatesPanel = new javax.swing.JPanel();
receivingCertificatePathField = new javax.swing.JTextField();
receivingCertificatePathLabel = new javax.swing.JLabel();
receivingLoadedCertLabel = new javax.swing.JLabel();
receivingLoadButton = new javax.swing.JButton();
receivingCertificateList = new java.awt.List();
receivingCertificatePathField.setEditable(false);
receivingCaCertificatesPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
"Received Remote Peers Certification Authorities"));
receivingCertificatePathLabel.setText("CA certificates path");
receivingLoadedCertLabel.setText("Loaded certificates");
receivingLoadButton.setText("Load...");
receivingLoadButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loadReceivingCertificatesButtonActionPerformed(e);
}
});
org.jdesktop.layout.GroupLayout caReceivingCertificatesPanelLayout = new org.jdesktop.layout.GroupLayout(receivingCaCertificatesPanel);
receivingCaCertificatesPanel.setLayout(caReceivingCertificatesPanelLayout);
caReceivingCertificatesPanelLayout.setHorizontalGroup(
caReceivingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(caReceivingCertificatesPanelLayout.createSequentialGroup()
.addContainerGap()
.add(caReceivingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, receivingCertificateList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, caReceivingCertificatesPanelLayout.createSequentialGroup()
.add(receivingCertificatePathField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 247, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(receivingLoadButton))
.add(org.jdesktop.layout.GroupLayout.LEADING, receivingCertificatePathLabel)
.add(org.jdesktop.layout.GroupLayout.LEADING, receivingLoadedCertLabel))
.addContainerGap(20, Short.MAX_VALUE))
);
caReceivingCertificatesPanelLayout.setVerticalGroup(
caReceivingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(caReceivingCertificatesPanelLayout.createSequentialGroup()
.addContainerGap()
.add(receivingCertificatePathLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(caReceivingCertificatesPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(receivingCertificatePathField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(receivingLoadButton))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(receivingLoadedCertLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(receivingCertificateList, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 85, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(20, Short.MAX_VALUE))
);
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.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, requestingCaCertificatesPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, receivingCaCertificatesPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(requestingCaCertificatesPanel, 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(receivingCaCertificatesPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
}// </editor-fold>//GEN-END:initComponents
protected void loadReceivingCertificatesButtonActionPerformed(ActionEvent e) {
OurGridFileChooser fileChooser = new OurGridFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
File propertiesFile = fileChooser.getFile();
if (propertiesFile != null) {
receivingCertificatePathField.setText(propertiesFile.getPath());
loadReceivingCertificateList();
}
}
protected void loadRequestingCertificatesButtonActionPerformed(ActionEvent e) {
OurGridFileChooser fileChooser = new OurGridFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
File propertiesFile = fileChooser.getFile();
if (propertiesFile != null) {
requestingCertificatePathField.setText(propertiesFile.getPath());
loadRequestingCertificateList();
}
}
private void loadReceivingCertificateList() {
String certificatePath = receivingCertificatePathField.getText();
if (certificatePath == null || certificatePath.length() == 0) {
return;
}
List<CertificateCRLPair> cAsData = CertificationUtils.loadCAsData(
ContainerContextUtils.normalizeFilePath(model.getProperty(ModuleProperties.PROP_CONFDIR), certificatePath));
receivingCertificateList.removeAll();
for (CertificateCRLPair certificateCRLPair : cAsData) {
receivingCertificateList.add(certificateCRLPair.getCertificate().getSubjectDN().getName());
}
}
private void loadRequestingCertificateList() {
String certificatePath = requestingCertificatePathField.getText();
if (certificatePath == null || certificatePath.length() == 0) {
return;
}
List<CertificateCRLPair> cAsData = CertificationUtils.loadCAsData(
ContainerContextUtils.normalizeFilePath(model.getProperty(ModuleProperties.PROP_CONFDIR), certificatePath));
requestingCertificateList.removeAll();
for (CertificateCRLPair certificateCRLPair : cAsData) {
requestingCertificateList.add(certificateCRLPair.getCertificate().getSubjectDN().getName());
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel requestingCaCertificatesPanel;
private java.awt.List requestingCertificateList;
private javax.swing.JTextField requestingCertificatePathField;
private javax.swing.JLabel requestingCertificatePathLabel;
private javax.swing.JButton requestingLoadButton;
private javax.swing.JLabel requestingLoadedCertLabel;
private javax.swing.JPanel receivingCaCertificatesPanel;
private java.awt.List receivingCertificateList;
private javax.swing.JTextField receivingCertificatePathField;
private javax.swing.JLabel receivingCertificatePathLabel;
private javax.swing.JButton receivingLoadButton;
private javax.swing.JLabel receivingLoadedCertLabel;
// End of variables declaration//GEN-END:variables
public void disableInput() {
requestingCertificatePathField.setEnabled(false);
requestingLoadButton.setEnabled(false);
receivingCertificatePathField.setEnabled(false);
receivingLoadButton.setEnabled(false);
}
public void enableInput() {
requestingCertificatePathField.setEnabled(true);
requestingLoadButton.setEnabled(true);
receivingCertificatePathField.setEnabled(true);
receivingLoadButton.setEnabled(true);
}
public void initFields() throws IOException {
requestingCertificatePathField.setText(model.getProperty(
PeerConfiguration.PROP_REQUESTING_CACERTIFICATE_PATH));
receivingCertificatePathField.setText(model.getProperty(
PeerConfiguration.PROP_RECEIVING_CACERTIFICATE_PATH));
loadRequestingCertificateList();
loadReceivingCertificateList();
}
public void saveFieldInputs() throws IOException {
/*controller.setProperty(FileCertificationProperties.PROP_MYCERTIFICATE_FILEPATH,
certificatePathField.getText());*/
model.setProperty(PeerConfiguration.PROP_REQUESTING_CACERTIFICATE_PATH,
requestingCertificatePathField.getText());
model.setProperty(PeerConfiguration.PROP_RECEIVING_CACERTIFICATE_PATH,
receivingCertificatePathField.getText());
}
}