[CompStrm Wiki] A back button needed for the Swing browser--Interested in working on this?
Status: Beta
Brought to you by:
blaforge
From: Bill la F. <laf...@ya...> - 2006-05-08 01:32:58
|
/* * Doc.java * * Created on April 8, 2006, 8:27 AM */ package org.agilewiki.swingclient; import org.agilewiki.events.Event; import org.agilewiki.events.EventComposer; /** * * @author Bill */ public class Doc extends javax.swing.JPanel { SwingClient frame; /** Creates new form Doc */ public Doc(SwingClient frame, Event docEvent) { this.frame=frame; initComponents(); String text=docEvent.text(); this.content.setText(text); } /** 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. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); content = new javax.swing.JEditorPane(); link = new javax.swing.JTextField(); content.setEditable(false); content.setContentType("text/html"); content.addHyperlinkListener(new javax.swing.event.HyperlinkListener() { public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) { onHyperLink(evt); } }); jScrollPane1.setViewportView(content); link.setEditable(false); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(link, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(link, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) ); }// </editor-fold>//GEN-END:initComponents private void onHyperLink(javax.swing.event.HyperlinkEvent evt)//GEN-FIRST:event_onHyperLink {//GEN-HEADEREND:event_onHyperLink if (evt.getEventType()==javax.swing.event.HyperlinkEvent.EventType.ACTIVATED) { String url=evt.getDescription(); final String PREFIX="AwServlet?cmd="; if (url.startsWith(PREFIX)) { String input=url.substring(PREFIX.length()); EventComposer composer=new EventComposer(); composer.startEvent("Request"); composer.attribute("line",input); composer.endEvent("Request"); Event requestEvent=composer.getRootEvent(); frame.request(requestEvent); return; } javax.swing.JEditorPane pane=(javax.swing.JEditorPane)evt.getSource(); if (evt instanceof javax.swing.text.html.HTMLFrameHyperlinkEvent) { javax.swing.text.html.HTMLFrameHyperlinkEvent e=(javax.swing.text.html.HTMLFrameHyperlinkEvent)evt; javax.swing.text.html.HTMLDocument doc=(javax.swing.text.html.HTMLDocument)pane.getDocument(); doc.processHTMLFrameHyperlinkEvent(e); } else { try { pane.setPage(evt.getURL()); } catch (Throwable t) { t.printStackTrace(); } } } else if (evt.getEventType() == javax.swing.event.HyperlinkEvent.EventType.ENTERED) { String url=evt.getDescription(); this.link.setText(url); } else if (evt.getEventType() == javax.swing.event.HyperlinkEvent.EventType.EXITED) { String url=evt.getDescription(); this.link.setText(""); } }//GEN-LAST:event_onHyperLink // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JEditorPane content; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField link; // End of variables declaration//GEN-END:variables } |