/* * ------------------------------------------------------------------------- * $Id: Browser.java,v 1.3 2003/04/04 14:10:51 trudisch Exp $ * ------------------------------------------------------------------------- * Copyright (c) 1999 Visual Numerics Inc. All Rights Reserved. * * This software is confidential information which is proprietary to * and a trade secret of Visual Numerics, Inc. Use, duplication or * disclosure is subject to the terms of an appropriate license * agreement. * * VISUAL NUMERICS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. VISUAL * NUMERICS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR * ITS DERIVATIVES. *-------------------------------------------------------------------------- */ package com.imsl.demo.WallStreet; import java.net.URL; import java.util.ArrayList; import javax.swing.JEditorPane; import javax.swing.event.*; import javax.swing.text.html.*; /** * * @author brophy * @created October 5, 2001 */ public class Browser extends javax.swing.JFrame { private ArrayList listURL; private int listURLindex; /** Creates new form Browser */ public Browser(URL url) throws java.io.IOException { initComponents(); listURL = new ArrayList(20); listURL.add(url); listURLindex = 0; jump(); } private void jump() { try { URL url = (URL)listURL.get(listURLindex); jEditorPane.setPage(url); jLabelStatus.setText(url.toExternalForm()); } catch (java.io.IOException e) { jLabelStatus.setText(e.toString()); } finally { jButtonForward.setEnabled(listURLindex+1 < listURL.size()); jButtonBack.setEnabled(listURLindex > 0); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jScrollPane1 = new javax.swing.JScrollPane(); jEditorPane = new javax.swing.JEditorPane(); jPanelControl = new javax.swing.JPanel(); jButtonBack = new javax.swing.JButton(); jButtonForward = new javax.swing.JButton(); jButtonReload = new javax.swing.JButton(); jButtonHome = new javax.swing.JButton(); jLabelStatus = new javax.swing.JLabel(); jScrollPane1.setPreferredSize(new java.awt.Dimension(700, 900)); jEditorPane.setEditable(false); jEditorPane.setContentType("text/html"); jEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener() { public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) { jEditorPaneHyperlinkUpdate(evt); } }); jScrollPane1.setViewportView(jEditorPane); getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); jPanelControl.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jButtonBack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/imsl/test/chart/harness/Back16.gif"))); jButtonBack.setToolTipText("Back"); jButtonBack.setEnabled(false); jButtonBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonBackActionPerformed(evt); } }); jPanelControl.add(jButtonBack); jButtonForward.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/imsl/test/chart/harness/Forward16.gif"))); jButtonForward.setToolTipText("Forward"); jButtonForward.setEnabled(false); jButtonForward.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonForwardActionPerformed(evt); } }); jPanelControl.add(jButtonForward); jButtonReload.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/imsl/test/chart/harness/Refresh16.gif"))); jButtonReload.setToolTipText("Reload"); jButtonReload.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonReloadActionPerformed(evt); } }); jPanelControl.add(jButtonReload); jButtonHome.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/imsl/test/chart/harness/Home16.gif"))); jButtonHome.setToolTipText("Home"); jButtonHome.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonHomeActionPerformed(evt); } }); jPanelControl.add(jButtonHome); getContentPane().add(jPanelControl, java.awt.BorderLayout.NORTH); getContentPane().add(jLabelStatus, java.awt.BorderLayout.SOUTH); pack(); }//GEN-END:initComponents private void jButtonReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonReloadActionPerformed jump(); }//GEN-LAST:event_jButtonReloadActionPerformed private void jButtonHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonHomeActionPerformed listURLindex = 0; jump(); }//GEN-LAST:event_jButtonHomeActionPerformed private void jButtonForwardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonForwardActionPerformed ++listURLindex; jump(); }//GEN-LAST:event_jButtonForwardActionPerformed private void jButtonBackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonBackActionPerformed --listURLindex; jump(); }//GEN-LAST:event_jButtonBackActionPerformed private void jEditorPaneHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {//GEN-FIRST:event_jEditorPaneHyperlinkUpdate if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { JEditorPane pane = (JEditorPane) evt.getSource(); if (evt instanceof HTMLFrameHyperlinkEvent) { HTMLFrameHyperlinkEvent hevt = (HTMLFrameHyperlinkEvent)evt; HTMLDocument doc = (HTMLDocument)pane.getDocument(); doc.processHTMLFrameHyperlinkEvent(hevt); } else { try { URL url = evt.getURL(); for (int k = listURL.size()-1; k > listURLindex; k--) listURL.remove(k); ++listURLindex; listURL.add(url); jump(); } catch (Throwable t) { t.printStackTrace(); } } } }//GEN-LAST:event_jEditorPaneHyperlinkUpdate /** Exit the Application */ // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel jLabelStatus; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JEditorPane jEditorPane; private javax.swing.JPanel jPanelControl; private javax.swing.JButton jButtonHome; private javax.swing.JButton jButtonBack; private javax.swing.JButton jButtonForward; private javax.swing.JButton jButtonReload; // End of variables declaration//GEN-END:variables static public void main(String arg[]) throws Exception { Browser hf = new Browser(new URL(arg[0])); hf.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { System.exit(0); } }); hf.show(); } }