package org.ourgrid.peer.ui.async.gui; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.JOptionPane; 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.container.ContainerUtils; public class VomsAuthPanel extends AbstractInputFieldsPanel implements InputFieldsUI { /** * */ private static final long serialVersionUID = 7615549557649751185L; /** Creates new form VomsAuthPanel */ public VomsAuthPanel(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"> protected void initComponents() { jPanel1 = new javax.swing.JPanel(); useVomsCheckBox = new javax.swing.JCheckBox(); vomsURLLabel = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); urlList = new javax.swing.JList(); addURLButton = new javax.swing.JButton(); removeURLButton = new javax.swing.JButton(); urlListModel = new DefaultListModel(); urlList.setModel(urlListModel); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("VOMS Authorization")); useVomsCheckBox.setText("Use VOMS Authorization"); useVomsCheckBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { useVomsComboBoxActionPerformed(evt); } }); removeURLButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { removeURLActionPerformed(); } }); addURLButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addURLActionPerformed(); } }); vomsURLLabel.setText("Peer VOs addresses:"); jScrollPane1.setViewportView(urlList); addURLButton.setText("Add VO"); removeURLButton.setText("Remove VO"); 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(useVomsCheckBox) .add(vomsURLLabel) .add(jPanel1Layout.createSequentialGroup() .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 290, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(removeURLButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(addURLButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addContainerGap(39, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .addContainerGap() .add(useVomsCheckBox) .add(12, 12, 12) .add(vomsURLLabel) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .add(addURLButton) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(removeURLButton)) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 175, Short.MAX_VALUE)) .addContainerGap()) ); 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(jPanel1, 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(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); }// </editor-fold> protected void addURLActionPerformed() { String urlToAdd = JOptionPane.showInputDialog(this, "VO URL to be added:", "VOMS Authentication", JOptionPane.PLAIN_MESSAGE); if (urlToAdd != null && urlToAdd.length() > 0) { urlListModel.addElement(urlToAdd); } } protected void removeURLActionPerformed() { for (Object selectedURL : urlList.getSelectedValues()) { urlListModel.removeElement(selectedURL); } } private void useVomsComboBoxActionPerformed(java.awt.event.ActionEvent evt) { } // Variables declaration - do not modify private javax.swing.JButton addURLButton; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JButton removeURLButton; private javax.swing.JList urlList; private javax.swing.JCheckBox useVomsCheckBox; private javax.swing.JLabel vomsURLLabel; private DefaultListModel urlListModel; // End of variables declaration public void disableInput() { addURLButton.setEnabled(false); removeURLButton.setEnabled(false); urlList.setEnabled(false); useVomsCheckBox.setEnabled(false); } public void enableInput() { addURLButton.setEnabled(true); removeURLButton.setEnabled(true); urlList.setEnabled(true); useVomsCheckBox.setEnabled(true); } public void initFields() throws IOException { String useVomsStr = model.getProperty(PeerConfiguration.PROP_USE_VOMS); boolean useVoms = ContainerUtils.isEnabled(useVomsStr); useVomsCheckBox.setSelected(useVoms); urlListModel.clear(); String vomsUrlStr = model.getProperty(PeerConfiguration.PROP_VOMS_URL); List<String> vomsUrls = ContainerUtils.parseStringList(vomsUrlStr); for (String vomsUrl : vomsUrls) { urlListModel.addElement(vomsUrl); } } public void saveFieldInputs() throws IOException { model.setProperty(PeerConfiguration.PROP_USE_VOMS, ContainerUtils.getBooleanProperty(useVomsCheckBox.isSelected())); List<String> urlList = new ArrayList<String>(); for (int i = 0; i < urlListModel.getSize(); i++) { urlList.add((String) urlListModel.getElementAt(i)); } model.setProperty(PeerConfiguration.PROP_VOMS_URL, ContainerUtils.getStringListProperty(urlList)); } }