diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/wizard/WizardBasePanel.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/wizard/WizardBasePanel.java | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/wizard/WizardBasePanel.java b/base/console/src/com/netscape/admin/certsrv/wizard/WizardBasePanel.java new file mode 100644 index 000000000..c31767d99 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/wizard/WizardBasePanel.java @@ -0,0 +1,290 @@ +// --- 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.wizard; + +import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionListener; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import javax.swing.border.*; +import java.net.*; +import java.io.*; + +/** + * Wizard Base Panel + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class WizardBasePanel extends CMSBasePanel implements MouseMotionListener, + ConfigServlet { + + /*========================================================== + * variables + *==========================================================*/ + protected String mTitle; + protected String mErrorString; + protected String mNextString = + mResource.getString("GENERALWIZARD_LABEL_NEXT_LABEL"); + protected String mPanelName; + public static long mSeed; + + /*========================================================== + * constructors + *==========================================================*/ + public WizardBasePanel(String name) { + super(name); + mTitle = mResource.getString(name+"_TITLE"); + mPanelName = name; + addMouseMotionListener(this); + } + + public WizardBasePanel(String name, ResourceBundle rb) { + super(name, rb); + mPanelName = name; + try { + mTitle = mResource.getString(name+"_TITLE"); + } catch (MissingResourceException e) { + mTitle = "Missing Title"; + } + addMouseMotionListener(this); + } + + protected void init() { + +/* + GridBagConstraints gbc = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + JLabel nextLabel = new JLabel(mNextString); + add(nextLabel, gbc); + + setBorder(makeTitledBorder(mPanelName)); +*/ + } + + protected JTextArea createTextArea(String str, int row, int col) { + JTextArea desc = new JTextArea(str, row, col); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); + + return desc; + } + + protected JTextArea createTextArea(String str) { + JTextArea desc = new JTextArea(str); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); + desc.setLineWrap(true); + desc.setWrapStyleWord(true); + + return desc; + } + + /*========================================================== + * public methods + *==========================================================*/ + /** + * Returns the title of the tab + * @return string representation of the title + */ + public String getTitle() { + return mTitle; + } + + /** + * Returns the error string + */ + public String getErrorMessage() { + return mErrorString; + } + + /** + * Set error string + */ + public void setErrorMessage(String keyword) { + try { + String err = mResource.getString(mPanelName+"_DIALOG_"+keyword+"_MESSAGE"); + mErrorString = err; + } catch (MissingResourceException e) { + mErrorString = keyword; + } + } + + public void cleanUpWizardInfo(WizardInfo wizardInfo) { + wizardInfo.remove("NMC_WARNINFO"); + wizardInfo.remove("NMC_ERRINFO"); + wizardInfo.remove("NMC_STATUS"); + } + + public String getErrorMessage(WizardInfo wizardInfo) { + String value = (String)wizardInfo.get("NMC_ERRINFO"); + if (value != null || value.trim().length() == 0) + return value; + value = (String)wizardInfo.get("NMC_WARNINFO"); + if (value != null || value.trim().length() == 0) + return value; + + return null; + } + + public boolean send(String host, int port, String servlet, String rawData, + WizardInfo wizardInfo) { + try { + Socket socket = new Socket(host, port); + DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); + InputStream is = socket.getInputStream(); + String spost = "POST "+servlet+" HTTP/1.0\r\n"; + byte[] b = rawData.getBytes(); + dos.writeBytes(spost); + dos.writeBytes("User-Agent: HTTPTool/1.0\r\n"); + dos.writeBytes("Content-length: " + b.length + "\r\n"); + dos.writeBytes("Content-Type: application/x-www-form-urlencoded\r\n"); + dos.writeBytes("\r\n"); + dos.write(b); + dos.writeBytes("\r\n"); + dos.flush(); + + ByteArrayOutputStream bstream = new ByteArrayOutputStream(10000); + while (true) + { + int r = is.read(); + if (r == -1) + break; + bstream.write(r); + } + + socket.close(); + String test = bstream.toString(); + + StringTokenizer tokenizer = new StringTokenizer(test, "\r\n"); + while (tokenizer.hasMoreTokens()) { + String nvalue = tokenizer.nextToken(); + System.out.println("tokenizer="+nvalue); + StringTokenizer tokenizer1 = new StringTokenizer(nvalue, ":"); + int numTokens = tokenizer1.countTokens(); + if (numTokens == 2) { + String name = tokenizer1.nextToken().trim(); + String value = tokenizer1.nextToken().trim(); + wizardInfo.put(name, value); + } + } + bstream.close(); + String sendStatus = (String)wizardInfo.get("NMC_STATUS"); + if (sendStatus.equals("0")) { + return true; + } else { + return false; + } + } catch (Exception e) { + } + + return false; + } + + public boolean send(String rawData, WizardInfo wizardInfo) { + try { + Socket socket = new Socket("droopy-linux.sfbay.redhat.com", 1924); + DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); + InputStream is = socket.getInputStream(); + String servlet = "/config/configSubsystem"; + String spost = "POST "+servlet+" HTTP/1.0\r\n"; + byte[] b = rawData.getBytes(); + dos.writeBytes(spost); + dos.writeBytes("User-Agent: HTTPTool/1.0\r\n"); + dos.writeBytes("Content-length: " + b.length + "\r\n"); + dos.writeBytes("Content-Type: application/x-www-form-urlencoded\r\n"); + dos.writeBytes("\r\n"); + dos.write(b); + dos.writeBytes("\r\n"); + dos.flush(); + + ByteArrayOutputStream bstream = new ByteArrayOutputStream(10000); + while (true) + { + int r = is.read(); + if (r == -1) + break; + bstream.write(r); + } + + socket.close(); + String test = bstream.toString(); + + StringTokenizer tokenizer = new StringTokenizer(test, "\r\n"); + while (tokenizer.hasMoreTokens()) { + String nvalue = tokenizer.nextToken(); + System.out.println("tokenizer="+nvalue); + StringTokenizer tokenizer1 = new StringTokenizer(nvalue, ":"); + int numTokens = tokenizer1.countTokens(); + if (numTokens == 2) { + String name = tokenizer1.nextToken().trim(); + String value = tokenizer1.nextToken().trim(); + wizardInfo.put(name, value); + } + } + bstream.close(); + String sendStatus = (String)wizardInfo.get("NMC_STATUS"); + if (sendStatus.equals("0")) { + return true; + } else { + return false; + } + } catch (Exception e) { + } + + return false; + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + /* + * mouselistener events - for JPanel + */ + + /** + * This lets us know when someone move the mouse, so we can + * keep coordidate of mouse posion and use this value as a random seed + */ + public void mouseDragged(MouseEvent e) { + // Do nothing for this + } + + public void mouseMoved(MouseEvent e) { + // Keep tracking coordinate values + long x = e.getX(); + long y = e.getY(); + + long top = mSeed >> 62; + mSeed = ((mSeed << 2) ^ top ^ (x<<8) ^ (y)) % Long.MAX_VALUE; + } +} |