KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > rice > cs > drjava > ui > QuickStartFrame


1 /*BEGIN_COPYRIGHT_BLOCK
2  *
3  * This file is part of DrJava. Download the current version of this project from http://www.drjava.org/
4  * or http://sourceforge.net/projects/drjava/
5  *
6  * DrJava Open Source License
7  *
8  * Copyright (C) 2001-2005 JavaPLT group at Rice University (javaplt@rice.edu). All rights reserved.
9  *
10  * Developed by: Java Programming Languages Team, Rice University, http://www.cs.rice.edu/~javaplt/
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
13  * documentation files (the "Software"), to deal with the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
15  * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
16  *
17  * - Redistributions of source code must retain the above copyright notice, this list of conditions and the
18  * following disclaimers.
19  * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
20  * following disclaimers in the documentation and/or other materials provided with the distribution.
21  * - Neither the names of DrJava, the JavaPLT, Rice University, nor the names of its contributors may be used to
22  * endorse or promote products derived from this Software without specific prior written permission.
23  * - Products derived from this software may not be called "DrJava" nor use the term "DrJava" as part of their
24  * names without prior written permission from the JavaPLT group. For permission, write to javaplt@rice.edu.
25  *
26  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
27  * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28  * CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
29  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
30  * WITH THE SOFTWARE.
31  *
32  END_COPYRIGHT_BLOCK*/

33
34 package edu.rice.cs.drjava.ui;
35
36 import edu.rice.cs.drjava.platform.PlatformFactory;
37
38 import javax.swing.event.HyperlinkListener JavaDoc;
39 import javax.swing.event.HyperlinkEvent JavaDoc;
40 import java.net.URL JavaDoc;
41 import java.net.MalformedURLException JavaDoc;
42
43 /**
44  * The frame for displaying the HTML quick start files.
45  */

46 public class QuickStartFrame extends HelpFrame {
47   private static final String JavaDoc HELP_PATH = "/edu/rice/cs/drjava/docs/quickstart/";
48   protected static final URL JavaDoc INTRO_URL =
49     HTMLFrame.class.getResource(HELP_PATH + HOME_PAGE);
50  
51   
52   public QuickStartFrame() {
53     super("QuickStart Guide to DrJava", INTRO_URL,
54           QuickStartFrame.class.getResource(HELP_PATH + CONTENTS_PAGE),
55           ICON);
56     addHyperlinkListener(_linkListener);
57   }
58   
59    /**
60    * Shows the page selected by the hyperlink event.
61    * (theo) changed to anonymous inner class for encapsulation purposes
62    */

63   private HyperlinkListener JavaDoc _linkListener = new HyperlinkListener JavaDoc() {
64     public void hyperlinkUpdate(HyperlinkEvent JavaDoc event) {
65       if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
66         // Only follow links within the documentation
67
URL JavaDoc url = event.getURL();
68         String JavaDoc protocol = url.getProtocol();
69
70         if ((!"file".equals(protocol)) && (!"jar".equals(protocol))) {
71           // try to open in the platform's web browser, since we can't
72
// view it effectively here if it isn't in the jar
73
// (we only handle file/jar protocols)
74
PlatformFactory.ONLY.openURL(url);
75           return;
76         }
77
78         // perform path testing
79
String JavaDoc path = url.getPath();
80
81         if (path.indexOf(HELP_PATH+CONTENTS_PAGE) >= 0) {
82           try {
83             url = new URL JavaDoc(url,HOME_PAGE); // redirect to home, not contents
84
}
85           catch(MalformedURLException JavaDoc murle) {
86           }
87         }
88         else if (path.indexOf(HELP_PATH) < 0) {
89           // not anywhere in the help section
90
return;
91         }
92         if (url.sameFile(_history.contents)) {
93           return; // we're already here!
94
}
95         jumpTo(url);
96       }
97     }
98   };
99
100   
101 }
102
Popular Tags