diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/security/CertInstallCertPane.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/security/CertInstallCertPane.java | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/security/CertInstallCertPane.java b/base/console/src/com/netscape/admin/certsrv/security/CertInstallCertPane.java new file mode 100644 index 000000000..210cfc9bf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/security/CertInstallCertPane.java @@ -0,0 +1,236 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2007 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.admin.certsrv.security; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import com.netscape.management.client.util.*; +import com.netscape.management.nmclf.*; + +class CertInstallCertPane extends JPanel implements SuiConstants, +IKeyCertPage { + + JRadioButton certInFile; + JTextField certFilename = new JTextField(20); + JRadioButton certInText; + JTextArea certText = new JTextArea(7, 10); + JButton paste; + + IWizardControl control = null; + boolean modified = false; + + public JPanel getPanel() { + return this; + } + + public boolean pageShow(WizardObservable observable) { + + if (control == null) { + control = (IWizardControl)(observable.get("Wizard")); + setEnableNextButton(); + } + + return ((Boolean)(observable.get("installCert"))).booleanValue(); + } + + public boolean pageHide(WizardObservable observable) { + boolean hide = true; + + if (modified) { + observable.put("CertInstModified", new Boolean(true)); + modified = false; + } + + if (((Boolean)(observable.get("CertInstModified"))).booleanValue()) { + CertInstallTypePane.param.put("inputtype" , + certInFile.isSelected() ? "0":"1"); + CertInstallTypePane.param.put("cert_file", + certFilename.getText()); + CertInstallTypePane.param.put("cert_txt" , certText.getText()); + CertInstallTypePane.param.put("tokenName", observable.get("tokenName")); + + KeyCertTaskInfo taskInfo = observable.getTaskInfo(); + Enumeration cgiParam = CertInstallTypePane.param.keys(); + while (cgiParam.hasMoreElements()) { + String key = (String)(cgiParam.nextElement()); + taskInfo.put(key, CertInstallTypePane.param.get(key)); + } + + Response response = null; + try { + response = taskInfo.exec(taskInfo.SEC_ICRT); + taskInfo.clear(); + } catch (Exception e) { + SuiOptionPane.showMessageDialog( + UtilConsoleGlobals.getActivatedFrame(), + e.getMessage()); + hide = false; + } + + if (response.hasCertInstInfo() && response.hasCertInfo()) { + observable.put("certInstInfo", response.getCertInstInfo()); + observable.put("certInfo", response.getCertInfo()); + observable.put("CertInstModified", new Boolean(false)); + } else { + //hide = false; + //MessageDialog.messageDialog((Message)(taskInfo.getResponse().getMessages().elementAt(0))); + StatusPane statusPane = (StatusPane)(observable.get("statusPane")); + + statusPane.setMessage( (Message) + (taskInfo.getResponse().getMessages(). + elementAt(0))); + statusPane.setShow(true); + } + } + + return hide; + } + + + class CertPaneActionListener implements ActionListener, KeyListener { + public void keyTyped(KeyEvent e) {} + public void keyPressed(KeyEvent e) {} + public void keyReleased(KeyEvent e) { + setEnableNextButton(); + } + + public void actionPerformed(ActionEvent event) { + modified = true; + + if (event.getActionCommand().equals("PASTE")) { + certText.paste(); + } + + setEnableNextButton(); + } + } + + void setEnableNextButton() { + if ((certInFile.isSelected() && + (certFilename.getText().length() != 0)) || + (certInText.isSelected() && + (certText.getText().length() != 0))) { + control.setCanGoForward(true); + } else { + control.setCanGoForward(false); + } + + if (certInFile.isSelected()) { + certText.setEnabled(false); + certFilename.setEnabled(true); + } else { + certText.setEnabled(true); + certFilename.setEnabled(false); + } + } + + + public CertInstallCertPane() { + super(); + setLayout(new GridBagLayout()); + + ResourceSet resource = KeyCertUtility.getKeyCertWizardResourceSet(); + + certInFile = new JRadioButton( + resource.getString("CertInstallCertPane", + "certInFileLabel"), false); + certInText = new JRadioButton( + resource.getString("CertInstallCertPane", + "certInTextLabel"), true); + paste = new JButton(resource.getString("CertInstallCertPane", "pasteLabel")); + + ButtonGroup buttonGroup = new ButtonGroup(); + buttonGroup.add(certInFile); + buttonGroup.add(certInText); + + int y = 0; + + CertPaneActionListener listener = new CertPaneActionListener(); + certFilename.addKeyListener(listener); + + //certText.addActionListener(listener); + certText.addKeyListener(listener); + + certInText.addActionListener(listener); + certInFile.addActionListener(listener); + + paste.setActionCommand("PASTE"); + paste.addActionListener(listener); + + + setBorder( new TitledBorder( new CompoundBorder(new EtchedBorder(), + new EmptyBorder(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE)), + resource.getString("CertInstallCertPane", "title"))); + + + GridBagUtil.constrain(this, certInFile, 0, ++y, 1, 1, 1.0, 0.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, certFilename, 0, ++y, 1, 1, 1.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, + 0, 0, DIFFERENT_COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, certInText, 0, ++y, 1, 1, 1.0, 0.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, + new MultilineLabel( + resource.getString("CertInstallCertPane", + "certTextExplain")), 0, ++y, 1, 1, 1.0, 0.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, COMPONENT_SPACE, 0); + + + JScrollPane scrollPane = new JScrollPane(certText, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrollPane.setBorder(UITools.createLoweredBorder()); + GridBagUtil.constrain(this, scrollPane, 0, ++y, 1, 1, 1.0, 0.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, DIFFERENT_COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, paste, 0, ++y, 1, 1, 0.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.NONE, 0, + 0, DIFFERENT_COMPONENT_SPACE, 0); + + + GridBagUtil.constrain(this, Box.createVerticalGlue(), 0, ++y, + 1, 1, 1.0, 1.0, GridBagConstraints.NORTH, + GridBagConstraints.BOTH, 0, 0, 0, 0); + + + JLabel _next = new JLabel(resource.getString(null, "clickNextToContinue")); + GridBagUtil.constrain(this, _next, 0, ++y, 1, 1, 1.0, 0.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, 0, 0); + } + + /*public static void main(String arg[]) { + JFrame f = new JFrame(); + f.getContentPane().add("North", new CertInstallCertPane()); + f.setSize(400,400); + f.show(); + }*/ + +} |