summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java493
1 files changed, 493 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java
new file mode 100644
index 000000000..97774727b
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java
@@ -0,0 +1,493 @@
+// --- 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 java.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.event.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+import com.netscape.admin.certsrv.wizard.*;
+import com.netscape.certsrv.common.*;
+
+/**
+ * CA signing cert for installation wizard.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config.install
+ */
+public class WBaseDNPage extends WizardBasePanel implements IWizardPanel {
+ protected JTextField mCNText, mOUText, mOText, mLText, mSTText, mCText;
+ protected JTextArea mSubjectDNText;
+ public static final String CN = "CN=";
+ public static final String OU = "OU=";
+ public static final String O = "O=";
+ public static final String L = "L=";
+ public static final String ST = "ST=";
+ public static final String C = "C=";
+ public static final String cn = "cn=";
+ public static final String ou = "ou=";
+ public static final String o = "o=";
+ public static final String l = "l=";
+ public static final String st = "st=";
+ public static final String c = "c=";
+ protected JRadioButton mDNComponents;
+ protected JRadioButton mDNString;
+ protected JTextField mSubjectStringText;
+ protected JLabel cnLabel;
+ protected JLabel ouLabel;
+ protected JLabel oLabel;
+ protected JLabel lLabel;
+ protected JLabel stLabel;
+ protected JLabel cLabel;
+ protected JLabel subjectDNLabel;
+ protected Color mActiveColor;
+ //protected JTextArea dnDesc;
+ protected boolean displayWarning=false;
+ protected String mPanelName;
+
+
+ public WBaseDNPage(String panelName) {
+ super(panelName);
+ mPanelName = panelName;
+ }
+
+ public boolean isLastPage() {
+ return false;
+ }
+
+ public boolean initializePanel(WizardInfo info) {
+ return true;
+ }
+
+ public boolean validatePanel() {
+ String str = "";
+ if (mDNComponents.isSelected()) {
+ str = mOText.getText().trim();
+ } else {
+ String dnString = mSubjectStringText.getText().trim();
+ StringTokenizer tokenizer = new StringTokenizer(dnString, ",");
+ while (tokenizer.hasMoreTokens()) {
+ String element = ((String)tokenizer.nextToken()).trim();
+ if (element.startsWith(O) || element.startsWith(o)) {
+ int index = element.indexOf("=");
+ if (index > -1) {
+ str = element.substring(index+1);
+ break;
+ }
+ }
+ }
+ }
+
+ if (str.equals("") && !displayWarning) {
+ String errorMsg =
+ mResource.getString(mPanelName+"_DIALOG_MISSINGO_MESSAGE");
+ JOptionPane.showMessageDialog(new JFrame(), errorMsg, "Warning",
+ JOptionPane.WARNING_MESSAGE,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON));
+/*
+ WarningDialog dialog = new WarningDialog(new JFrame(),
+ "_TEXT_MISSINGO_LABEL");
+*/
+ displayWarning = true;
+ return false;
+ }
+
+ return true;
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ return true;
+ }
+
+ public void callHelp() {
+ }
+
+ public void getUpdateInfo(WizardInfo info) {
+ }
+
+ protected void populateDN(String str) {
+ StringTokenizer tokenizer = new StringTokenizer(str, ",");
+ boolean isDNString = false;
+ while (tokenizer.hasMoreTokens()) {
+ String element = (String)tokenizer.nextToken();
+ element = element.trim();
+ int index = element.indexOf('=');
+ String val = element.substring(index+1);
+ if (element.startsWith(CN) || element.startsWith(cn)) {
+ mCNText.setText(val);
+ } else if (element.startsWith(OU) || element.startsWith(ou)) {
+ mOUText.setText(val);
+ } else if (element.startsWith(O) || element.startsWith(o)) {
+ mOText.setText(val);
+ } else if (element.startsWith(L) || element.startsWith(l)) {
+ mLText.setText(val);
+ } else if (element.startsWith(ST) || element.startsWith(st)) {
+ mSTText.setText(val);
+ } else if (element.startsWith(C) || element.startsWith(c)) {
+ mCText.setText(val);
+ } else {
+ isDNString = true;
+ }
+ }
+
+ mSubjectStringText.setText(str);
+
+ if (isDNString) {
+ mDNString.setSelected(true);
+ enableFields(false, getBackground());
+ } else {
+ mDNComponents.setSelected(true);
+ enableFields(true, mActiveColor);
+ }
+ }
+
+ protected void init() {
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ setLayout(gb);
+
+/*
+ JLabel currentDN = makeJLabel("SUBJECTNAME");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(currentDN, gbc);
+
+ dnDesc = createTextArea(" ", 2, 80);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(dnDesc, gbc);
+*/
+
+/*
+ JTextArea desc = createTextArea(
+ CMSAdminUtil.wrapText(mResource.getString(
+ "CACERT2WIZARD_TEXT_DN_LABEL"), 80), 1, 80);
+*/
+
+ JTextArea desc = createTextArea(mResource.getString(
+ mPanelName+"_LABEL_DN_LABEL"));
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ gbc.weighty = 0.0;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(desc, gbc);
+
+ mDNComponents = makeJRadioButton("DNCOMP", true);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mDNComponents, gbc);
+
+ cnLabel = makeJLabel("CN");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(cnLabel, gbc);
+
+ mCNText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mCNText, gbc);
+
+/*
+ JTextArea dummy = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, cnLabel, mCNText, dummy, gbc);
+*/
+ //CMSAdminUtil.addComponents(this, cnLabel, mCNText, gbc);
+
+ ouLabel = makeJLabel("OU");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE,4*COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(ouLabel, gbc);
+
+ mOUText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(mOUText, gbc);
+
+/*
+ JTextArea dummy1 = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, ouLabel, mOUText, dummy1, gbc);
+*/
+// CMSAdminUtil.addComponents(this, ouLabel, mOUText, gbc);
+
+ oLabel = makeJLabel("O");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(oLabel, gbc);
+
+ mOText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mOText, gbc);
+
+/*
+ JTextArea dummy2 = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, oLabel, mOText, dummy2, gbc);
+*/
+ //CMSAdminUtil.addComponents(this, oLabel, mOText, gbc);
+
+ lLabel = makeJLabel("LOCALITY");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(lLabel, gbc);
+
+ mLText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mLText, gbc);
+/*
+ JTextArea dummy3 = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, lLabel, mLText, dummy3, gbc);
+*/
+ //CMSAdminUtil.addComponents(this, lLabel, mLText, gbc);
+
+ stLabel = makeJLabel("STATE");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(stLabel, gbc);
+
+ mSTText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mSTText, gbc);
+/*
+ JTextArea dummy4 = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, stLabel, mSTText, dummy4, gbc);
+*/
+ //CMSAdminUtil.addComponents(this, stLabel, mSTText, gbc);
+
+ cLabel = makeJLabel("COUNTRY");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ add(cLabel, gbc);
+
+ mCText = new JTextField(30);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mCText, gbc);
+/*
+ JTextArea dummy5 = createTextArea(" ", 1, 1);
+ CMSAdminUtil.addComponents(this, cLabel, mCText, dummy5, gbc);
+*/
+ //CMSAdminUtil.addComponents(this, cLabel, mCText, gbc);
+
+ subjectDNLabel = makeJLabel("SELECTEDDN");
+ mSubjectDNText = new SubjectDNTextArea(3, 30);
+ mSubjectDNText.setLineWrap(true);
+ mSubjectDNText.setBackground(getBackground());
+ mSubjectDNText.setEditable(false);
+ mSubjectDNText.setCaretColor(getBackground());
+ CMSAdminUtil.resetGBC(gbc);
+ //gbc.weighty = 1.0;
+ CMSAdminUtil.addComponents(this, subjectDNLabel, mSubjectDNText, gbc);
+
+ mDNString = makeJRadioButton("DNSTRING", false);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mDNString, gbc);
+
+ ButtonGroup group = new ButtonGroup();
+ group.add(mDNString);
+ group.add(mDNComponents);
+
+ mSubjectStringText = new JTextField(256);
+/*
+ mSubjectStringText = new JTextArea(null, null, 0, 0);
+ mSubjectStringText.setBorder(BorderFactory.createLineBorder(Color.black));
+ JScrollPane scrollPane = new JScrollPane(mSubjectStringText,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+ scrollPane.setPreferredSize(new Dimension(50, 20));
+*/
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ //gbc.weighty = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0,
+ COMPONENT_SPACE);
+ gbc.fill = gbc.BOTH;
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mSubjectStringText, gbc);
+ //mSubjectStringText.setLineWrap(true);
+ mActiveColor = mCNText.getBackground();
+
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel d1 = new JLabel();
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.gridwidth = gbc.REMAINDER;
+ add(d1, gbc);
+
+
+ mCNText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+ mOUText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+ mOText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+ mLText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+ mSTText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+ mCText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText);
+
+ super.init();
+ }
+
+ protected void enableFields(boolean enable, Color color) {
+ CMSAdminUtil.enableJTextField(mCNText, enable, color);
+ CMSAdminUtil.enableJTextField(mOUText, enable, color);
+ CMSAdminUtil.enableJTextField(mOText, enable, color);
+ CMSAdminUtil.enableJTextField(mLText, enable, color);
+ CMSAdminUtil.enableJTextField(mSTText, enable, color);
+ CMSAdminUtil.enableJTextField(mCText, enable, color);
+ cnLabel.setEnabled(enable);
+ ouLabel.setEnabled(enable);
+ oLabel.setEnabled(enable);
+ lLabel.setEnabled(enable);
+ stLabel.setEnabled(enable);
+ cLabel.setEnabled(enable);
+ subjectDNLabel.setEnabled(enable);
+ CMSAdminUtil.repaintComp(cnLabel);
+ CMSAdminUtil.repaintComp(ouLabel);
+ CMSAdminUtil.repaintComp(oLabel);
+ CMSAdminUtil.repaintComp(lLabel);
+ CMSAdminUtil.repaintComp(stLabel);
+ CMSAdminUtil.repaintComp(cLabel);
+ CMSAdminUtil.repaintComp(subjectDNLabel);
+ if (enable)
+ CMSAdminUtil.enableJTextField(mSubjectStringText, !enable,
+ getBackground());
+ else
+ CMSAdminUtil.enableJTextField(mSubjectStringText, !enable,
+ mActiveColor);
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ if (mDNComponents.isSelected()) {
+ enableFields(true, mActiveColor);
+ } else {
+ enableFields(false, getBackground());
+ }
+ }
+
+ public class SubjectDNTextArea extends JTextArea implements
+ DocumentListener {
+
+ public SubjectDNTextArea(int rows, int columns) {
+ super(rows, columns);
+ }
+
+ public void insertUpdate(DocumentEvent e) {
+ super.setText(updateStr());
+ }
+
+ public void removeUpdate(DocumentEvent e) {
+ super.setText(updateStr());
+ }
+
+ public void changedUpdate(DocumentEvent e) {
+ super.setText(updateStr());
+ }
+
+ private String updateStr() {
+ String cnStr = mCNText.getText().trim();
+ String ouStr = mOUText.getText().trim();
+ String oStr = mOText.getText().trim();
+ String lStr = mLText.getText().trim();
+ String stStr = mSTText.getText().trim();
+ String cStr = mCText.getText().trim();
+
+ String result = "";
+ result = result+appendStr(result, CN, cnStr);
+ result = result+appendStr(result, OU, ouStr);
+ result = result+appendStr(result, O, oStr);
+ result = result+appendStr(result, L, lStr);
+ result = result+appendStr(result, ST, stStr);
+ result = result+appendStr(result, C, cStr);
+
+ return result;
+ }
+
+ private String appendStr(String origStr, String prefix, String suffix) {
+ String result = "";
+ if (suffix.equals(""))
+ return result;
+
+ result = prefix + suffix;
+ if (!origStr.equals("")) {
+ result = ", "+result;
+ }
+ return result;
+ }
+ }
+}