/* * @(#)HelperDiag.java 1.5 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media.customizer; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.URL; import javax.swing.event.*; import java.io.*; import java.util.*; import java.util.zip.*; /** * This dialog class provides the help information: * * @version 2.0 */ public class HelperDiag extends JDialog { JEditorPane helpPane = null; int anch = 0; String[] helpcontent = new String[6]; int FILELEN = 0; public HelperDiag(Customizer parent, int anch) { super(parent, I18N.getResource("HelperDiag.TITLE"), false); this.anch = anch; try { loadHTML(); helpPane = new JEditorPane("text/html",helpcontent[anch]); helpPane.setBackground(Color.lightGray); helpPane.setEditable(false); // setResizable(true); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add("Center", new JScrollPane(helpPane)); } catch (Exception ex) { System.out.println(I18N.getResource("HelperDiag.ERROR")); ex.printStackTrace(); } this.addWindowListener(new CloseAdapter(parent, this)); } public void setHelpPage(int idx) { helpPane.setText(helpcontent[idx]); } private void loadHTML() throws Exception { InputStream fin = getHelpFileStream(); if ( fin == null){ // System.out.println("Can't find CustomizerHelp.html"); // return; // System.exit(0); throw new IOException(I18N.getResource("HelperDiag.ERROR")); } BufferedReader br = new BufferedReader(new InputStreamReader((fin))); char[] rawhtml = new char[FILELEN]; int[] idx = new int[6]; StringBuffer[] sb = new StringBuffer[6]; for ( int i = 0; i < 6; i++ ) sb[i] = new StringBuffer(); int len = br.read(rawhtml, 0, FILELEN); br.close(); int j = 0; for ( int i = 0; i < len-1; i++) { if ( rawhtml[i] == '<' && rawhtml[i+1] == 'a') idx[j++] = i; } for ( int i = 0; i < 5; i++ ) { sb[i].append(rawhtml, idx[i], idx[i+1]-idx[i]); helpcontent[i] = sb[i].toString(); } sb[5].append(rawhtml, idx[5], len - idx[5]); helpcontent[5] = sb[5].toString(); } private InputStream getHelpFileStream() throws Exception { String helpfile = "CustomizerHelp.html"; String retstr = helpfile; String classpath = System.getProperty("java.class.path"); String pathsep = System.getProperty("path.separator"); StringTokenizer st = new StringTokenizer(classpath, pathsep); while (st.hasMoreTokens()) { String path = st.nextToken(); if (path.endsWith(".jar")) { ZipFile zipfile = new ZipFile(path); ZipEntry entry = zipfile.getEntry(helpfile); if ( entry != null ) { FILELEN = (int)entry.getSize(); return zipfile.getInputStream(entry); } } } return null; } } class CloseAdapter extends WindowAdapter { JDialog target; Customizer parent; public CloseAdapter(Customizer parent, JDialog t) { this.parent = parent; target = t; } public void windowClosing(WindowEvent e) { parent.dismissHelp(); target.dispose(); } }