Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / java / java / util / HTMLFrame.java
1
2 //Title:        Geological editor
3 //Version:      
4 //Copyright:    Copyright (c) 1998
5 //Author:       User Interface Group (Nizhny Novgorod)
6 //Company:      EQCC
7 //Description:  Prototype of BRGM project
8
9
10 package util;
11
12 import java.awt.*;
13 import java.awt.event.*;
14 import javax.swing.*;
15 import javax.swing.event.*;
16 import java.util.*;
17 import java.net.*;
18 import java.io.IOException;
19 import javax.swing.text.html.*;
20 import javax.swing.border.*;
21
22
23 public class HTMLFrame extends JFrame
24                        implements HyperlinkListener
25 {
26   JEditorPane html;
27   JViewport vp;
28   String myPage;
29
30 //=======================================================================//
31 // Constructor
32 //=======================================================================//
33   public HTMLFrame(String name)
34   {
35 //    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
36     myPage = name;
37     try
38     {
39       jbInit();
40     }
41     catch (Exception e)
42     {
43       e.printStackTrace();
44     }
45   }
46
47 //=======================================================================//
48 // Component initialization
49 //=======================================================================//
50   private void jbInit() throws Exception
51   {
52     try
53     {
54       URL url = null;
55       String prefix = "file:";
56
57       try
58       {
59         url = new URL(prefix + myPage);
60       }
61       catch (MalformedURLException exc)
62       {
63         System.err.println("Attempted to open file "
64                            + "with a bad URL: " + url);
65         url = null;
66       }
67
68       if(url != null)
69       {
70         html = new JEditorPane(url);
71         html.setEditable(false);
72         html.setContentType("text/html");
73         html.addHyperlinkListener(this);
74
75         JScrollPane scroller = new JScrollPane();
76         scroller.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
77
78         vp = scroller.getViewport();
79         vp.add(html);
80         vp.setBackingStoreEnabled(true);
81
82         this.getContentPane().add(scroller, BorderLayout.CENTER);
83         this.setSize(800, 600);
84       }
85     }
86     catch (MalformedURLException e)
87     {
88       System.out.println("Malformed URL: " + e);
89     }
90     catch (IOException e)
91     {
92       System.out.println("IOException: " + e);
93     }
94   }
95
96
97 //=======================================================================//
98 //                          HyperlinkListener                            //
99 //=======================================================================//
100   public void hyperlinkUpdate(HyperlinkEvent e)
101   {
102     if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
103     {
104       JEditorPane pane = (JEditorPane) e.getSource();
105       if (e instanceof HTMLFrameHyperlinkEvent)
106       {
107         HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent) e;
108         HTMLDocument doc = (HTMLDocument)pane.getDocument();
109         doc.processHTMLFrameHyperlinkEvent(evt);
110       }
111       else
112       {
113         try
114         {
115           pane.setPage(e.getURL());
116           Point p = vp.getViewPosition();
117           if (p.y < 0)
118           {
119             p.y = 0;
120             vp.setViewPosition(p);
121           }
122         }
123         catch (Throwable t)
124         {
125           t.printStackTrace();
126         }
127       }
128     }
129   }
130
131 }