diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java | 493 |
1 files changed, 493 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java new file mode 100644 index 000000000..97774727b --- /dev/null +++ b/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; + } + } +} |