HelpFrame.java
01 package gate.gui;
02 
03 import java.awt.BorderLayout;
04 import java.beans.PropertyChangeEvent;
05 import java.beans.PropertyChangeListener;
06 import java.io.IOException;
07 import java.net.URL;
08 
09 import javax.swing.*;
10 import javax.swing.text.Document;
11 
12 import gate.event.StatusListener;
13 import gate.swing.XJEditorPane;
14 
15 /**
16  * A frame used by Gate to display Help information.
17  * It is a basic HTML browser.
18  */
19 @SuppressWarnings("serial")
20 public class HelpFrame extends JFrame implements StatusListener {
21 
22   public HelpFrame(){
23     super();
24     initLocalData();
25     initGuiComponents();
26     initListeners();
27   }
28 
29   protected void initLocalData(){
30   }
31 
32   protected void initGuiComponents(){
33     getContentPane().setLayout(new BorderLayout());
34     textPane = new XJEditorPane();
35     textPane.setEditable(false);
36     getContentPane().add(new JScrollPane(textPane), BorderLayout.CENTER);
37 
38     toolBar = new JToolBar();
39     toolBar.add(textPane.getBackAction());
40     toolBar.add(textPane.getForwardAction());
41 
42     getContentPane().add(toolBar, BorderLayout.NORTH);
43 
44     Box southBox = Box.createHorizontalBox();
45     southBox.add(new JLabel(" "));
46     status = new JLabel();
47     southBox.add(status);
48     getContentPane().add(southBox, BorderLayout.SOUTH);
49 
50   }
51 
52   protected void initListeners(){
53     textPane.addPropertyChangeListener(new PropertyChangeListener(){
54       @Override
55       public void propertyChange(PropertyChangeEvent e) {
56         if(e.getPropertyName().equals("document")){
57           String title = (String)textPane.getDocument().
58                                           getProperty("title");
59           setTitle((title == null?
60                    "GATE help browser" :
61                    title + " - GATE help browser");
62         }
63       }
64     });
65 
66     textPane.addStatusListener(this);
67   }
68 
69   public void setPage(URL newPagethrows IOException{
70     textPane.setPage(newPage);
71     String title = (String)textPane.getDocument().
72                                     getProperty(Document.TitleProperty);
73     setTitle((title == null?
74              "GATE help browser" :
75              title + " - GATE help browser");
76   }
77 
78   XJEditorPane textPane;
79   JToolBar toolBar;
80   JLabel status;
81   @Override
82   public void statusChanged(String e) {
83     status.setText(e);
84   }
85 }