in taverna-credential-manager-ui/src/main/java/org/apache/taverna/workbench/ui/credentialmanager/NewTrustCertsDialog.java [88:188]
private void initComponents() {
// Instructions
JLabel instructionsLabel = new JLabel(
"Select one or more certificates for import:");
instructionsLabel.setFont(new Font(null, PLAIN, 11));
instructionsLabel.setBorder(new EmptyBorder(5, 5, 5, 5));
JPanel instructionsPanel = new JPanel(new BorderLayout());
instructionsPanel.add(instructionsLabel, WEST);
// Import button
final JButton importButton = new JButton("Import");
importButton.setEnabled(false);
importButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
importPressed();
}
});
// Certificate details button
final JButton certificateDetailsButton = new JButton(
"Certificate Details");
certificateDetailsButton.setEnabled(false);
certificateDetailsButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
certificateDetailsPressed();
}
});
// List with trusted certs' aliases
trustedCertsJList = new JList<>();
trustedCertsJList.setSelectionMode(MULTIPLE_INTERVAL_SELECTION);
trustedCertsJList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent evt) {
boolean enabled = trustedCertsJList.getSelectedIndex() >= 0;
importButton.setEnabled(enabled);
certificateDetailsButton.setEnabled(enabled);
}
});
// Populate the list - get the certificate subjects' CNs
ArrayList<String> cns = new ArrayList<>();
for (int i = 0; i < availableTrustedCerts.size(); i++) {
String subjectDN = ((X509Certificate) availableTrustedCerts.get(i))
.getSubjectX500Principal().getName(RFC2253);
ParsedDistinguishedName parsedDN = dnParser.parseDN(subjectDN);
String subjectCN = parsedDN.getCN();
cns.add(i, subjectCN);
}
trustedCertsJList.setListData(cns.toArray(new String[0]));
trustedCertsJList.setSelectedIndex(0);
// Put the list into a scroll pane
JScrollPane trustedCertsScrollPanel = new JScrollPane(
trustedCertsJList, VERTICAL_SCROLLBAR_AS_NEEDED,
HORIZONTAL_SCROLLBAR_AS_NEEDED);
trustedCertsScrollPanel.getViewport().setBackground(
trustedCertsJList.getBackground());
JPanel trustedCertsPanel = new JPanel();
trustedCertsPanel.setLayout(new BoxLayout(trustedCertsPanel, Y_AXIS));
trustedCertsPanel.setBorder(new CompoundBorder(new CompoundBorder(
new EmptyBorder(5, 5, 5, 5), new EtchedBorder()),
new EmptyBorder(5, 5, 5, 5)));
instructionsPanel.setAlignmentY(LEFT_ALIGNMENT);
trustedCertsPanel.add(instructionsPanel);
trustedCertsScrollPanel.setAlignmentY(LEFT_ALIGNMENT);
trustedCertsPanel.add(trustedCertsScrollPanel);
certificateDetailsButton.setAlignmentY(RIGHT_ALIGNMENT);
trustedCertsPanel.add(certificateDetailsButton);
// Cancel button
final JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
cancelPressed();
}
});
JPanel jpButtons = new JPanel(new FlowLayout(FlowLayout.CENTER));
jpButtons.add(importButton);
jpButtons.add(cancelButton);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(trustedCertsPanel, CENTER);
getContentPane().add(jpButtons, SOUTH);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent evt) {
closeDialog();
}
});
setResizable(false);
getRootPane().setDefaultButton(importButton);
pack();
}