The help
system.
Mystifier
/*
* Created on Mar 27, 2005
*/
package mystifier.examples.helpsystem;
* Created on Mar 27, 2005
*/
package mystifier.examples.helpsystem;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Hashtable;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Hashtable;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreeNode;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreeNode;
/**
* @author mystifier
*
*/
public class HelpSystemExample extends JPanel implements ActionListener {
private JButton newButton;
private JButton embedButton;
private JFrame frame;
public HelpSystemExample() {
super(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
newButton = new JButton("Show/Hide help in new window");
newButton.addActionListener(this);
c.weightx = 0.5;
c.weighty = 0.01;
c.anchor = GridBagConstraints.NORTHWEST;
add(newButton,c);
embedButton = new JButton("Show/Hide help embed in this window");
embedButton.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
c.anchor = GridBagConstraints.NORTHEAST;
add(embedButton,c);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
if(e.getSource() == newButton)
{
if(frame == null)
{
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
frame = new JFrame("HelpSystem");
//Create and set up the content pane.
JPanel newContentPane = HelpSystem.getInstance();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.setPreferredSize(new Dimension(400,400));
frame.pack();
frame.setVisible(true);
}
else
{
frame.dispose();
frame = null;
}
* @author mystifier
*
*/
public class HelpSystemExample extends JPanel implements ActionListener {
private JButton newButton;
private JButton embedButton;
private JFrame frame;
public HelpSystemExample() {
super(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
newButton = new JButton("Show/Hide help in new window");
newButton.addActionListener(this);
c.weightx = 0.5;
c.weighty = 0.01;
c.anchor = GridBagConstraints.NORTHWEST;
add(newButton,c);
embedButton = new JButton("Show/Hide help embed in this window");
embedButton.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
c.anchor = GridBagConstraints.NORTHEAST;
add(embedButton,c);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
if(e.getSource() == newButton)
{
if(frame == null)
{
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
frame = new JFrame("HelpSystem");
//Create and set up the content pane.
JPanel newContentPane = HelpSystem.getInstance();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.setPreferredSize(new Dimension(400,400));
frame.pack();
frame.setVisible(true);
}
else
{
frame.dispose();
frame = null;
}
}
if(e.getSource() ==
embedButton)
{
if(HelpSystem.getInstance().getParent() == this )
{
remove(HelpSystem.getInstance());
this.updateUI();
}
else
{
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.gridwidth = 2;
c.weightx = 1.0;
c.weighty = 1.0;
add(HelpSystem.getInstance(),c);
HelpSystem.getInstance().updateUI();
frame.dispose();
frame = null;
}
return;
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
{
if(HelpSystem.getInstance().getParent() == this )
{
remove(HelpSystem.getInstance());
this.updateUI();
}
else
{
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.gridwidth = 2;
c.weightx = 1.0;
c.weighty = 1.0;
add(HelpSystem.getInstance(),c);
HelpSystem.getInstance().updateUI();
frame.dispose();
frame = null;
}
return;
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create
and set up the window.
JFrame frame = new JFrame("HelpSystemExample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFrame frame = new JFrame("HelpSystemExample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create
and set up the content pane.
JPanel newContentPane = new HelpSystemExample();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
JPanel newContentPane = new HelpSystemExample();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.setPreferredSize(new Dimension(400,400));
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static class HelpSystem extends JPanel implements TreeSelectionListener
{
private static HelpSystem instance = new HelpSystem();
private JEditorPane contentPanel;
private JTabbedPane navigationPanel;
private Hashtable contextMap;
private JTree contentTree;
private JSplitPane splitPanel;
private JList indexList;
frame.setPreferredSize(new Dimension(400,400));
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static class HelpSystem extends JPanel implements TreeSelectionListener
{
private static HelpSystem instance = new HelpSystem();
private JEditorPane contentPanel;
private JTabbedPane navigationPanel;
private Hashtable contextMap;
private JTree contentTree;
private JSplitPane splitPanel;
private JList indexList;
private HelpSystem()
{
super(new BorderLayout());
contextMap = new Hashtable();
contextMap.put("google","http://www.google.com");
contextMap.put("ebay","http://www.ebay.com");
contextMap.put("sourceforge","http://www.sourceforge.net");
navigationPanel = new JTabbedPane();
contentTree = new JTree(contextMap);
contentTree.addTreeSelectionListener(this);
navigationPanel.addTab("Contents",contentTree);
indexList = new JList(contextMap.keySet().toArray());
navigationPanel.addTab("Index",indexList);
contentPanel = new JEditorPane();
splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,navigationPanel,(new JScrollPane(contentPanel)));
splitPanel.setOneTouchExpandable(true);
add(splitPanel);
}
public static HelpSystem getInstance()
{
return instance;
}
public void showHelp(String contextId)
{
try {
contentPanel.setPage((String)contextMap.get(contextId));
} catch (IOException e) {
e.printStackTrace();
}
}
super(new BorderLayout());
contextMap = new Hashtable();
contextMap.put("google","http://www.google.com");
contextMap.put("ebay","http://www.ebay.com");
contextMap.put("sourceforge","http://www.sourceforge.net");
navigationPanel = new JTabbedPane();
contentTree = new JTree(contextMap);
contentTree.addTreeSelectionListener(this);
navigationPanel.addTab("Contents",contentTree);
indexList = new JList(contextMap.keySet().toArray());
navigationPanel.addTab("Index",indexList);
contentPanel = new JEditorPane();
splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,navigationPanel,(new JScrollPane(contentPanel)));
splitPanel.setOneTouchExpandable(true);
add(splitPanel);
}
public static HelpSystem getInstance()
{
return instance;
}
public void showHelp(String contextId)
{
try {
contentPanel.setPage((String)contextMap.get(contextId));
} catch (IOException e) {
e.printStackTrace();
}
}
public void
valueChanged(TreeSelectionEvent e) {
TreeNode node = (TreeNode) contentTree.getLastSelectedPathComponent();
if(node != null) showHelp(node.toString());
}
}
TreeNode node = (TreeNode) contentTree.getLastSelectedPathComponent();
if(node != null) showHelp(node.toString());
}
}
}
_______________________________________________ Java mailing list [email protected] http://mail.jug-delhi.org/mailman/listinfo/java_jug-delhi.org
