diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java | 330 |
1 files changed, 330 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java b/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java new file mode 100644 index 000000000..040b21b83 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java @@ -0,0 +1,330 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL IP Editor + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CRLIPEditor extends JDialog implements ActionListener { + + private final static String PREFIX = "CRLIPEDITOR"; + private final static String HELPINDEX = + "configuration-revocation"; + private JButton mOK, mCancel, mHelp; + private String mName; + private JTextField mNameText, mDescText; + private ResourceBundle mResource; + private JFrame mParentFrame; + private AdminConnection mAdmin; + private JLabel nameLabel, descLabel; + private Color mActiveColor; + private String mDest; + private JCheckBox mEnableBox; + private boolean mEnable = true; + private String mInstanceName; + private Vector mNames; + + public CRLIPEditor(AdminConnection admin, JFrame parent, + String name, String dest, String instanceName, Vector names) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mAdmin = admin; + mName = name; + mNames = names; + mInstanceName = instanceName; + mDest = dest; + setSize(600, 180); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + //gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + public void showDialog(NameValuePairs values) { + + for (String name : values.keySet()) { + String val = values.get(name); + if ((mName == null || mName.length() == 0) && + name.equals(Constants.PR_ID)) { + mNameText.setText(val); + } else if (name.equals(Constants.PR_DESCRIPTION)) { + mDescText.setText(val); + } else if (name.equals(Constants.PR_ENABLED)) { + if (val.equalsIgnoreCase(Constants.TRUE)) + mEnable = true; + else + mEnable = false; + } + } + + mEnableBox.setSelected(mEnable); + enableCRLIP(); + this.show(); + } + + public String getCRLName() { + return mNameText.getText().trim(); + } + + private void enableCRLIP() { + if (mName == null || mName.length() == 0) { + nameLabel.setEnabled(true); + mNameText.setBackground(mActiveColor); + mNameText.setEnabled(true); + mNameText.setEditable(true); + + descLabel.setEnabled(true); + mDescText.setBackground(mActiveColor); + mDescText.setEnabled(true); + mDescText.setEditable(true); + + CMSAdminUtil.repaintComp(nameLabel); + CMSAdminUtil.repaintComp(mNameText); + } else if (mEnable) { + descLabel.setEnabled(true); + mDescText.setBackground(mActiveColor); + mDescText.setEnabled(true); + mDescText.setEditable(true); + } else { + descLabel.setEnabled(false); + mDescText.setBackground(getBackground()); + mDescText.setEnabled(false); + mDescText.setEditable(false); + } + + CMSAdminUtil.repaintComp(descLabel); + CMSAdminUtil.repaintComp(mDescText); + } + + private JPanel makeContentPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + if (mName != null && mName.length() > 0) { + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CRLIPNAME", null); + gbc.anchor = gbc.WEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label1, gbc); + mainPanel.add(label1); + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = new JLabel(mName); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label2, gbc); + mainPanel.add(label2); + } + + CMSAdminUtil.resetGBC(gbc); + mEnableBox = CMSAdminUtil.makeJCheckBox(mResource, PREFIX, + "ENABLE", null, false, this); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(mEnableBox, gbc); + mainPanel.add(mEnableBox); + + if (mName == null || mName.length() == 0) { + CMSAdminUtil.resetGBC(gbc); + nameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CRLIPNAME", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.insets = new Insets(0, 0, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(nameLabel, gbc); + mainPanel.add(nameLabel); + + CMSAdminUtil.resetGBC(gbc); + mNameText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(mNameText, gbc); + mainPanel.add(mNameText); + //mActiveColor = mNameText.getBackground(); + } + + CMSAdminUtil.resetGBC(gbc); + descLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCRIPTION", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gbc.weightx = 0.0; + gb.setConstraints(descLabel, gbc); + mainPanel.add(descLabel); + + CMSAdminUtil.resetGBC(gbc); + mDescText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mDescText, gbc); + mainPanel.add(mDescText); + mActiveColor = mDescText.getBackground(); + + return mainPanel; + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + public void actionPerformed(ActionEvent e) { + + if (e.getSource().equals(mEnableBox)) { + mEnable = mEnableBox.isSelected(); + enableCRLIP(); + } else if (e.getSource().equals(mCancel)) { + this.dispose(); + } else if (e.getSource().equals(mOK)) { + NameValuePairs nvps = new NameValuePairs(); + + if (mName != null && mName.length() > 0) { + nvps.put(Constants.PR_ID, mName); + } else { + nvps.put(Constants.PR_ID, mNameText.getText().trim()); + } + + nvps.put(Constants.PR_DESCRIPTION, mDescText.getText().trim()); + + if (mEnable) { + nvps.put(Constants.PR_ENABLED, Constants.TRUE); + } else { + nvps.put(Constants.PR_ENABLED, Constants.FALSE); + } + + try { + if (mName != null && mName.length() > 0) { + mAdmin.modify(mDest, ScopeDef.SC_CRLIPS, Constants.OP_SET, nvps); + } else { + for (int i = 0; i < mNames.size(); i++) { + String name = (String)mNames.elementAt(i); + if (name.equalsIgnoreCase(mNameText.getText().trim())) { + CMSAdminUtil.showMessageDialog(mParentFrame, "Error", + mNameText.getText().trim()+" already exists", + CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (mNameText.getText().trim().indexOf(' ') > -1 || + mNameText.getText().trim().indexOf('.') > -1 || + mNameText.getText().trim().indexOf(',') > -1) { + CMSAdminUtil.showMessageDialog(mParentFrame, "Error", + "Invalid name: "+mNameText.getText(), + CMSAdminUtil.ERROR_MESSAGE); + return; + } + } + + mAdmin.add(mDest, ScopeDef.SC_CRLIPS, + mNameText.getText().trim(), nvps); + mNames.addElement(mNameText.getText()); + } + this.dispose(); + } catch (EAdminException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, + "Error", ex.toString(), CMSAdminUtil.ERROR_MESSAGE); + } + } else if (e.getSource().equals(mHelp)) { + CMSAdminUtil.help(HELPINDEX); + } + } +} + |