summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java335
1 files changed, 335 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java
new file mode 100644
index 000000000..8f442d4ff
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java
@@ -0,0 +1,335 @@
+// --- 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.config.*;
+import com.netscape.admin.certsrv.connection.*;
+import javax.swing.*;
+import javax.swing.event.*;
+import javax.swing.table.*;
+import javax.swing.text.*;
+import java.awt.event.*;
+import java.awt.*;
+import java.util.*;
+import com.netscape.management.client.*;
+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 (int i=0; i<values.size(); i++) {
+ NameValuePair nvp = values.elementAt(i);
+ String name = nvp.getName();
+ String val = nvp.getValue();
+ 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};
+ 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.add(Constants.PR_ID, mName);
+ } else {
+ nvps.add(Constants.PR_ID, mNameText.getText().trim());
+ }
+
+ nvps.add(Constants.PR_DESCRIPTION, mDescText.getText().trim());
+
+ if (mEnable) {
+ nvps.add(Constants.PR_ENABLED, Constants.TRUE);
+ } else {
+ nvps.add(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);
+ }
+ }
+}
+