summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java374
1 files changed, 374 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java
new file mode 100644
index 000000000..723668790
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java
@@ -0,0 +1,374 @@
+// --- 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.management.client.util.*;
+import com.netscape.certsrv.common.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.StringTokenizer;
+
+/**
+ * Panel Setting CRL Cache
+ *
+ * @author Andrew Wnuk
+ * @version $Revision$, $Date$
+ */
+public class CMSCRLCachePanel extends CMSBaseTab {
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ private static String PANEL_NAME = "CRLCACHE";
+
+ private JCheckBox mEnableCache;
+
+ private JLabel mCacheFreqLabel;
+ private JTextField mCacheFreq;
+ private JLabel mCacheFreqMinLabel;
+
+ private JLabel mEnableCacheRecoveryLabel;
+ private JCheckBox mEnableCacheRecovery;
+
+ private JLabel mEnableCacheTestingLabel;
+ private JCheckBox mEnableCacheTesting;
+
+ private Color mActiveColor;
+ private AdminConnection _admin;
+ private CMSBaseResourceModel _model;
+ private CMSTabPanel mParent;
+ private String mId = null;
+ private static final String HELPINDEX =
+ "configuration-ca-ldappublish-crl-help";
+ private CMSCRLFormatPanel mCRLFormatPanel = null;
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public CMSCRLCachePanel(CMSTabPanel parent) {
+ super(PANEL_NAME, parent);
+ _model = parent.getResourceModel();
+ mParent = parent;
+ mHelpToken = HELPINDEX;
+ }
+
+ public CMSCRLCachePanel(CMSTabPanel parent, String id) {
+ super(PANEL_NAME, parent);
+ _model = parent.getResourceModel();
+ mParent = parent;
+ mHelpToken = HELPINDEX;
+ mId = id;
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+ public void init() {
+ Debug.println("CRLCachePanel: init()");
+ _admin = _model.getServerInfo().getAdmin();
+
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ mCenterPanel.setLayout(gb);
+
+
+ //cache panel
+ JPanel cachePanel = new JPanel();
+ cachePanel.setBorder(makeTitledBorder("CACHE"));
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTH;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ gb.setConstraints(cachePanel, gbc);
+ mCenterPanel.add(cachePanel);
+
+ GridBagLayout gb3 = new GridBagLayout();
+ cachePanel.setLayout(gb3);
+
+
+ // enable cache
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel enableCacheLabel = makeJLabel("CACHE");
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.gridx = 0;
+ gbc.weightx = 0.0;
+ gbc.gridwidth = 1;
+ gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0);
+ cachePanel.add(enableCacheLabel, gbc);
+
+ mEnableCache = makeJCheckBox();
+ gbc.anchor = gbc.WEST;
+ gbc.gridx++;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE);
+ cachePanel.add(mEnableCache, gbc);
+
+
+ // how often to save cache
+ CMSAdminUtil.resetGBC(gbc);
+ mCacheFreqLabel = makeJLabel("INTERVAL");
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.gridx = 0;
+ gbc.weightx = 0.0;
+ gbc.gridwidth = 1;
+ gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0);
+ cachePanel.add(mCacheFreqLabel, gbc);
+
+ mCacheFreq = makeJTextField(5);
+ gbc.anchor = gbc.WEST;
+ gbc.gridx++;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0);
+ cachePanel.add(mCacheFreq, gbc);
+ mActiveColor = mCacheFreq.getBackground();
+
+ mCacheFreqMinLabel = makeJLabel("MINUTES");
+ gbc.anchor = gbc.WEST;
+ gbc.gridx++;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE);
+ cachePanel.add(mCacheFreqMinLabel, gbc);
+
+
+ // enable cache recovery
+ CMSAdminUtil.resetGBC(gbc);
+ mEnableCacheRecoveryLabel = makeJLabel("RECOVERY");
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.gridx = 0;
+ gbc.weightx = 0.0;
+ gbc.gridwidth = 1;
+ gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0);
+ cachePanel.add(mEnableCacheRecoveryLabel, gbc );
+
+ mEnableCacheRecovery = makeJCheckBox();
+ gbc.anchor = gbc.WEST;
+ gbc.gridx++;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE);
+ cachePanel.add(mEnableCacheRecovery, gbc);
+
+ // enable cache testing
+ CMSAdminUtil.resetGBC(gbc);
+ mEnableCacheTestingLabel = makeJLabel("TEST");
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.gridx = 0;
+ gbc.weightx = 0.0;
+ gbc.gridwidth = 1;
+ gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0);
+ cachePanel.add(mEnableCacheTestingLabel, gbc );
+
+ mEnableCacheTesting = makeJCheckBox();
+ gbc.anchor = gbc.WEST;
+ gbc.gridx++;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE);
+ cachePanel.add(mEnableCacheTesting, gbc);
+
+ int nTabs = mParent.mTabbedPane.getTabCount();
+ for (int i = 0; i < nTabs; i++) {
+ Object p = mParent.mTabbedPane.getComponentAt(i);
+ if (p instanceof CMSCRLFormatPanel) {
+ mCRLFormatPanel = (CMSCRLFormatPanel)p;
+ }
+ }
+
+ refresh();
+ }
+
+ public void refresh() {
+ _model.progressStart();
+ NameValuePairs nvps = new NameValuePairs();
+ nvps.add(Constants.PR_ENABLE_CACHE, "");
+ nvps.add(Constants.PR_CACHE_FREQ, "");
+ nvps.add(Constants.PR_CACHE_RECOVERY, "");
+ nvps.add(Constants.PR_CACHE_TESTING, "");
+
+ try {
+ NameValuePairs val = null;
+ if (mId != null && mId.length() > 0) {
+ val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL,
+ mId, nvps);
+ } else {
+ val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL,
+ Constants.RS_ID_CONFIG, nvps);
+ }
+
+ populate(val);
+ } catch (EAdminException e) {
+ showErrorDialog(e.toString());
+ _model.progressStop();
+ }
+ _model.progressStop();
+ clearDirtyFlag();
+ mParent.setOKCancel();
+ enableFields();
+ }
+
+ public void populate(NameValuePairs nvps) {
+ String signingAlg = "";
+ for (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ String value = nvp.getValue().trim();
+ if (name.equals(Constants.PR_ENABLE_CACHE)) {
+ mEnableCache.setSelected(getBoolean(value, true));
+ } else if (name.equals(Constants.PR_CACHE_FREQ)) {
+ mCacheFreq.setText(value);
+ } else if (name.equals(Constants.PR_CACHE_RECOVERY)) {
+ mEnableCacheRecovery.setSelected(getBoolean(value));
+ } else if (name.equals(Constants.PR_CACHE_TESTING)) {
+ mEnableCacheTesting.setSelected(getBoolean(value));
+ }
+ }
+ }
+
+ public boolean getBoolean(String val) {
+ if (val.equals(Constants.TRUE))
+ return true;
+ return false;
+ }
+
+ public boolean getBoolean(String val, boolean defaultValue) {
+ if (val.equals(Constants.TRUE))
+ return true;
+ else if (val.equals(Constants.FALSE))
+ return false;
+ else
+ return defaultValue;
+ }
+
+ /**
+ * Implementation for saving panel information
+ * @return true if save successful; otherwise, false.
+ */
+ public boolean applyCallback() {
+ String cacheFreq = "";
+ int iCacheFreq = 0;
+
+ NameValuePairs nvps = new NameValuePairs();
+
+
+ if (mEnableCache.isSelected())
+ nvps.add(Constants.PR_ENABLE_CACHE, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE_CACHE, Constants.FALSE);
+
+ cacheFreq = mCacheFreq.getText().trim();
+ if (cacheFreq.equals("")) {
+ showMessageDialog("BLANKFIELD");
+ return false;
+ }
+ try {
+ iCacheFreq = Integer.parseInt(cacheFreq);
+ } catch (NumberFormatException e) {
+ showMessageDialog("NUMBERFORMAT");
+ return false;
+ }
+ if (iCacheFreq < 0) {
+ showMessageDialog("NUMBERFORMAT");
+ return false;
+ }
+ nvps.add(Constants.PR_CACHE_FREQ, cacheFreq);
+
+
+ if (mEnableCacheRecovery.isSelected())
+ nvps.add(Constants.PR_CACHE_RECOVERY, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_CACHE_RECOVERY, Constants.FALSE);
+
+ if (mEnableCacheTesting.isSelected())
+ nvps.add(Constants.PR_CACHE_TESTING, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_CACHE_TESTING, Constants.FALSE);
+
+ _model.progressStart();
+
+ try {
+ if (mId != null && mId.length() > 0) {
+ _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL,
+ mId, nvps);
+ } else {
+ _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL,
+ Constants.RS_ID_CONFIG, nvps);
+ }
+ } catch (EAdminException e) {
+ showErrorDialog(e.toString());
+ _model.progressStop();
+ return false;
+ }
+
+ _model.progressStop();
+ clearDirtyFlag();
+ return true;
+ }
+
+ /**
+ * Implementation for reset values
+ * @return true if save successful; otherwise, false.
+ */
+ public boolean resetCallback() {
+ refresh();
+ return true;
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ if (e.getSource().equals(mEnableCache)) {
+ enableFields();
+ }
+ super.actionPerformed(e);
+ }
+
+ private void enableFields() {
+ boolean enable = mEnableCache.isSelected();
+ Color color = (enable)? mActiveColor: getBackground();
+ mCRLFormatPanel.setCacheEnabled(enable);
+
+ mCacheFreqLabel.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mCacheFreqLabel);
+
+ CMSAdminUtil.enableJTextField(mCacheFreq, enable, color);
+
+ mCacheFreqMinLabel.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mCacheFreqMinLabel);
+
+ mEnableCacheRecoveryLabel.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mEnableCacheRecoveryLabel);
+
+ mEnableCacheRecovery.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mEnableCacheRecovery);
+
+ mEnableCacheTestingLabel.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mEnableCacheTestingLabel);
+
+ mEnableCacheTesting.setEnabled(enable);
+ CMSAdminUtil.repaintComp(mEnableCacheTesting);
+ }
+}
+