package com.compomics.util.examples;
import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
/**
* A window used to display help text in HTML format.
*
* @author Harald Barsnes
*/
public class HelpWindow extends javax.swing.JFrame {
/**
* Creates a new HelpWindow object with a Frame as a parent.
*
* @param parent the parent frame
* @param fileName the name of the help file
*/
public HelpWindow(javax.swing.JFrame parent, URL fileName) {
// only works for Java 1.6 and newer
//this.setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
initComponents();
// sets the icon of the frame
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().
getResource("/icons/help.GIF")));
try {
InputStream stream = fileName.openStream();
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader b = new BufferedReader(streamReader);
String s = b.readLine();
String helpText = "";
while (s != null) {
helpText += s;
s = b.readLine();
}
b.close();
streamReader.close();
stream.close();
textJEditorPane.setText(helpText);
} catch (Exception e) {
textJEditorPane.setText("The selected help file is not yet available.");
}
textJEditorPane.setCaretPosition(0);
setSize(450, 500);
setLocationRelativeTo(parent);
setVisible(true);
}
/**
* Creates a new HelpWindow-object with a JDialog as a parent.
*
* @param parent the parent dialog
* @param fileName the name of the help file
*/
public HelpWindow(javax.swing.JDialog parent, URL fileName) {
// only works for Java 1.6 and newer
//this.setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
initComponents();
// sets the icon of the frame
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().
getResource("/icons/help.GIF")));
try {
InputStream stream = fileName.openStream();
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader b = new BufferedReader(streamReader);
String s = b.readLine();
String helpText = "";
while (s != null) {
helpText += s;
s = b.readLine();
}
b.close();
streamReader.close();
stream.close();
textJEditorPane.setText(helpText);
} catch (Exception e) {
textJEditorPane.setText("The selected help file is not yet available.");
}
textJEditorPane.setCaretPosition(0);
setSize(450, 500);
setLocationRelativeTo(parent);
setVisible(true);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
closeJButton = new javax.swing.JButton();
textEditorScrollPane = new javax.swing.JScrollPane();
textJEditorPane = new javax.swing.JEditorPane();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Compomics-Utilites - Help");
setAlwaysOnTop(true);
closeJButton.setText("Close");
closeJButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
closeJButtonActionPerformed(evt);
}
});
textJEditorPane.setEditable(false);
textJEditorPane.setBorder(javax.swing.BorderFactory.createEmptyBorder(20, 20, 20, 20));
textJEditorPane.setContentType("text/html"); // NOI18N
textJEditorPane.setMinimumSize(new java.awt.Dimension(10, 10));
textJEditorPane.setPreferredSize(new java.awt.Dimension(10, 10));
textJEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {
textJEditorPaneHyperlinkUpdate(evt);
}
});
textEditorScrollPane.setViewportView(textJEditorPane);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(textEditorScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)
.add(closeJButton))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.add(textEditorScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 494, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(closeJButton)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
/**
* Closes the dialog
*
* @param evt
*/
private void closeJButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeJButtonActionPerformed
this.setVisible(false);
this.dispose();
}//GEN-LAST:event_closeJButtonActionPerformed
/**
* Makes the links active.
*
* @param evt
*/
private void textJEditorPaneHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {//GEN-FIRST:event_textJEditorPaneHyperlinkUpdate
if (evt.getEventType().toString().equalsIgnoreCase(
javax.swing.event.HyperlinkEvent.EventType.ENTERED.toString())) {
setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
} else if (evt.getEventType().toString().equalsIgnoreCase(
javax.swing.event.HyperlinkEvent.EventType.EXITED.toString())) {
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
} else if (evt.getEventType().toString().equalsIgnoreCase(
javax.swing.event.HyperlinkEvent.EventType.ACTIVATED.toString())) {
if (evt.getDescription().startsWith("#")) {
textJEditorPane.scrollToReference(evt.getDescription());
} else {
this.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
BareBonesBrowserLaunch.openURL(evt.getDescription());
this.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
}
}
}//GEN-LAST:event_textJEditorPaneHyperlinkUpdate
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton closeJButton;
private javax.swing.JScrollPane textEditorScrollPane;
private javax.swing.JEditorPane textJEditorPane;
// End of variables declaration//GEN-END:variables
}