1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski import javax.swing.JEditorPane;
23*b1cdbd2cSJim Jagielski import javax.swing.event.HyperlinkListener;
24*b1cdbd2cSJim Jagielski import javax.swing.event.HyperlinkEvent;
25*b1cdbd2cSJim Jagielski import javax.swing.text.Document;
26*b1cdbd2cSJim Jagielski import java.net.URL;
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski class TextLogger
29*b1cdbd2cSJim Jagielski     extends JEditorPane
30*b1cdbd2cSJim Jagielski {
TextLogger()31*b1cdbd2cSJim Jagielski     public TextLogger ()
32*b1cdbd2cSJim Jagielski         throws java.io.IOException
33*b1cdbd2cSJim Jagielski     {
34*b1cdbd2cSJim Jagielski //        maDocument = getEditorKit().createDefaultDocument();
35*b1cdbd2cSJim Jagielski             super ("http://localhost");
36*b1cdbd2cSJim Jagielski         try
37*b1cdbd2cSJim Jagielski         {
38*b1cdbd2cSJim Jagielski             //            setPage (new URL ("http://www.spiegel.de"));
39*b1cdbd2cSJim Jagielski         }
40*b1cdbd2cSJim Jagielski         catch (Exception e)
41*b1cdbd2cSJim Jagielski         {}
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski         setEditable (false);
44*b1cdbd2cSJim Jagielski         final JEditorPane finalPane = this;
45*b1cdbd2cSJim Jagielski         addHyperlinkListener (new HyperlinkListener()
46*b1cdbd2cSJim Jagielski             {
47*b1cdbd2cSJim Jagielski                 public void hyperlinkUpdate (HyperlinkEvent e)
48*b1cdbd2cSJim Jagielski                 {
49*b1cdbd2cSJim Jagielski                     try
50*b1cdbd2cSJim Jagielski                     {
51*b1cdbd2cSJim Jagielski                         if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
52*b1cdbd2cSJim Jagielski                             finalPane.setPage (e.getURL());
53*b1cdbd2cSJim Jagielski                     }
54*b1cdbd2cSJim Jagielski                     catch (java.io.IOException ex)
55*b1cdbd2cSJim Jagielski                     {
56*b1cdbd2cSJim Jagielski                         ex.printStackTrace(System.err);
57*b1cdbd2cSJim Jagielski                     }
58*b1cdbd2cSJim Jagielski                 }
59*b1cdbd2cSJim Jagielski             });
60*b1cdbd2cSJim Jagielski     }
61*b1cdbd2cSJim Jagielski 
appendText(String sText)62*b1cdbd2cSJim Jagielski     public void appendText (String sText)
63*b1cdbd2cSJim Jagielski     {
64*b1cdbd2cSJim Jagielski         try
65*b1cdbd2cSJim Jagielski         {
66*b1cdbd2cSJim Jagielski             maDocument.insertString (maDocument.getLength(), sText, null);
67*b1cdbd2cSJim Jagielski         }
68*b1cdbd2cSJim Jagielski         catch (javax.swing.text.BadLocationException e)
69*b1cdbd2cSJim Jagielski         {}
70*b1cdbd2cSJim Jagielski     }
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski     private Document maDocument;
73*b1cdbd2cSJim Jagielski }
74