KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > umd > cs > findbugs > gui > AboutDialog


1 /*
2  * FindBugs - Find bugs in Java programs
3  * Copyright (C) 2003,2004 University of Maryland
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  */

19
20 /*
21  * AboutDialog.java
22  *
23  * Created on April 6, 2003, 7:05 PM
24  */

25
26 package edu.umd.cs.findbugs.gui;
27
28 import java.io.BufferedReader JavaDoc;
29 import java.io.IOException JavaDoc;
30 import java.io.InputStream JavaDoc;
31 import java.io.InputStreamReader JavaDoc;
32 import java.net.URL JavaDoc;
33 import java.text.MessageFormat JavaDoc;
34 import java.util.regex.Pattern JavaDoc;
35
36 import javax.swing.JFrame JavaDoc;
37 import javax.swing.event.HyperlinkEvent JavaDoc;
38
39 import edu.umd.cs.findbugs.L10N;
40 import edu.umd.cs.findbugs.SystemProperties;
41 import edu.umd.cs.findbugs.Version;
42 import edu.umd.cs.findbugs.util.LaunchBrowser;
43
44 /**
45  * The Help:About dialog.
46  *
47  * @author David Hovemeyer
48  */

49 public class AboutDialog extends javax.swing.JDialog JavaDoc {
50     private static final long serialVersionUID = 3546076956480385584L;
51
52     //private JFrame parent;
53

54     /**
55      * Creates new form AboutDialog
56      */

57     public AboutDialog(JFrame JavaDoc parent, Logger l, boolean modal) {
58         super(parent, modal);
59         //this.parent = parent;
60

61         initComponents();
62
63         try {
64             aboutEditorPane.setPage(getClass().getClassLoader().getResource("edu/umd/cs/findbugs/gui/help/About.html"));
65             licenseEditorPane.setPage(getClass().getClassLoader().getResource("edu/umd/cs/findbugs/gui/help/License.html"));
66             acknowldgementsEditorPane.setPage(getClass().getClassLoader().getResource("edu/umd/cs/findbugs/gui/help/Acknowledgements.html"));
67         } catch (IOException JavaDoc e) {
68             l.logMessage(ConsoleLogger.ERROR, e.toString());
69         }
70
71         setTitle(MessageFormat.format(L10N.getLocalString("dlg.aboutfindbugs_ttl", "About FindBugs {0}"), new Object JavaDoc[]{Version.RELEASE}));
72     }
73
74     static Pattern JavaDoc pattern = Pattern.compile("@VERSION@");
75     /**
76      * Process an HTML page to replace certain substitution patterns.
77      * Right now, we just expand @VERSION@.
78      */

79     @edu.umd.cs.findbugs.annotations.SuppressWarnings("OS_OPEN_STREAM")
80     private void processPage(javax.swing.JEditorPane JavaDoc pane, String JavaDoc fileName) throws IOException JavaDoc {
81         InputStream JavaDoc in = null;
82         BufferedReader JavaDoc reader = null;
83         try {
84             StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
85
86             // Open the file as a stream
87
in = getClass().getClassLoader().getResourceAsStream(fileName);
88             if (in == null)
89                 throw new IOException JavaDoc(MessageFormat.format(L10N.getLocalString("msg.couldntload_txt", "Couldn't load {0}"), new Object JavaDoc[]{fileName}));
90              reader = new BufferedReader JavaDoc(new InputStreamReader JavaDoc(in));
91
92             // Replace instances of @VERSION@ with actual version number
93

94             String JavaDoc line;
95             while ((line = reader.readLine()) != null) {
96                 line = pattern.matcher(line).replaceAll(Version.RELEASE);
97                 buf.append(line);
98                 buf.append('\n');
99             }
100
101             // Load the page into the editor pane
102
String JavaDoc text = buf.toString();
103             pane.setContentType("text/html");
104             pane.setText(text);
105         } finally {
106             try {
107                 if (reader != null)
108                     reader.close();
109                 else if (in != null)
110                     in.close();
111             } catch (IOException JavaDoc e) {
112             }
113         }
114     }
115
116     /**
117      * This method is called from within the constructor to
118      * initialize the form.
119      * WARNING: Do NOT modify this code. The content of this method is
120      * always regenerated by the Form Editor.
121      */

122     private void initComponents() {//GEN-BEGIN:initComponents
123
java.awt.GridBagConstraints JavaDoc gridBagConstraints;
124
125         aboutTabPane = new javax.swing.JTabbedPane JavaDoc();
126         aboutScrollPane = new javax.swing.JScrollPane JavaDoc();
127         aboutEditorPane = new javax.swing.JEditorPane JavaDoc();
128         licenseScrollPane = new javax.swing.JScrollPane JavaDoc();
129         licenseEditorPane = new javax.swing.JEditorPane JavaDoc();
130         acknowledgmentsScrollPane = new javax.swing.JScrollPane JavaDoc();
131         acknowldgementsEditorPane = new javax.swing.JEditorPane JavaDoc();
132         jSeparator1 = new javax.swing.JSeparator JavaDoc();
133         okButton = new javax.swing.JButton JavaDoc();
134
135         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
136
137         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
138             @Override JavaDoc
139             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
140                 closeDialog(evt);
141             }
142         });
143
144         aboutEditorPane.setEditable(false);
145         aboutEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener JavaDoc() {
146             public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent JavaDoc evt) {
147                 editorPaneHyperlinkUpdate(evt);
148             }
149         });
150
151         aboutScrollPane.setViewportView(aboutEditorPane);
152
153         aboutTabPane.addTab("About", aboutScrollPane);
154
155         licenseEditorPane.setEditable(false);
156         licenseEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener JavaDoc() {
157             public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent JavaDoc evt) {
158                 editorPaneHyperlinkUpdate(evt);
159             }
160         });
161
162         licenseScrollPane.setViewportView(licenseEditorPane);
163
164         aboutTabPane.addTab("License", licenseScrollPane);
165
166         acknowldgementsEditorPane.setEditable(false);
167         acknowldgementsEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener JavaDoc() {
168             public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent JavaDoc evt) {
169                 editorPaneHyperlinkUpdate(evt);
170             }
171         });
172
173         acknowledgmentsScrollPane.setViewportView(acknowldgementsEditorPane);
174
175         aboutTabPane.addTab("Acknowledgments", acknowledgmentsScrollPane);
176
177         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
178         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
179         gridBagConstraints.weightx = 1.0;
180         gridBagConstraints.weighty = 1.0;
181         getContentPane().add(aboutTabPane, gridBagConstraints);
182
183         {
184             aboutTabPane.setTitleAt(0, L10N.getLocalString("dlg.about_tab", "About"));
185             aboutTabPane.setTitleAt(1, L10N.getLocalString("dlg.license_tab", "License"));
186             aboutTabPane.setTitleAt(2, L10N.getLocalString("dlg.acknowledgements_tab", "Acknowledgements"));
187         }
188         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
189         gridBagConstraints.gridx = 0;
190         gridBagConstraints.gridy = 1;
191         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
192         getContentPane().add(jSeparator1, gridBagConstraints);
193
194         okButton.setMnemonic('O');
195         okButton.setText("OK");
196         okButton.setText(L10N.getLocalString("dlg.ok_btn", "OK"));
197         okButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
198             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
199                 okButtonActionPerformed(evt);
200             }
201         });
202
203         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
204         gridBagConstraints.gridx = 0;
205         gridBagConstraints.gridy = 2;
206         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 0, 3, 0);
207         getContentPane().add(okButton, gridBagConstraints);
208
209         pack();
210     }//GEN-END:initComponents
211

212     private void editorPaneHyperlinkUpdate(javax.swing.event.HyperlinkEvent JavaDoc evt) {//GEN-FIRST:event_editorPaneHyperlinkUpdate
213
try {
214             if (evt.getEventType().equals( HyperlinkEvent.EventType.ACTIVATED)) {
215                 URL JavaDoc url = evt.getURL();
216                 //showInBrowser(url.toString());
217
LaunchBrowser.showDocument(url);
218             }
219         }
220         catch (Exception JavaDoc e) {
221         }
222     }//GEN-LAST:event_editorPaneHyperlinkUpdate
223

224
225     private void okButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_okButtonActionPerformed
226
closeDialog();
227     }//GEN-LAST:event_okButtonActionPerformed
228

229     /**
230      * Closes the dialog
231      */

232     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
233
closeDialog();
234     }//GEN-LAST:event_closeDialog
235

236     private void closeDialog() {
237         setVisible(false);
238         dispose();
239     }
240
241     // Variables declaration - do not modify//GEN-BEGIN:variables
242
private javax.swing.JEditorPane JavaDoc aboutEditorPane;
243     private javax.swing.JScrollPane JavaDoc aboutScrollPane;
244     private javax.swing.JTabbedPane JavaDoc aboutTabPane;
245     private javax.swing.JEditorPane JavaDoc acknowldgementsEditorPane;
246     private javax.swing.JScrollPane JavaDoc acknowledgmentsScrollPane;
247     private javax.swing.JSeparator JavaDoc jSeparator1;
248     private javax.swing.JEditorPane JavaDoc licenseEditorPane;
249     private javax.swing.JScrollPane JavaDoc licenseScrollPane;
250     private javax.swing.JButton JavaDoc okButton;
251     // End of variables declaration//GEN-END:variables
252

253 }
254
255 // vim:ts=4
256
Popular Tags