KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * FindBugs - Find bugs in Java programs
3  * Copyright (C) 2003-2006 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.gui2;
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.SystemProperties;
40 import edu.umd.cs.findbugs.Version;
41 import edu.umd.cs.findbugs.gui.ConsoleLogger;
42 import edu.umd.cs.findbugs.gui.Logger;
43 import edu.umd.cs.findbugs.util.LaunchBrowser;
44
45 /**
46  * The Help:About dialog.
47  *
48  * @author David Hovemeyer
49  */

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

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

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

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

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

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

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

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

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

230     /**
231      * Closes the dialog
232      */

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

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

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