psmith 2003/09/23 16:13:14
Modified: src/java/org/apache/log4j/chainsaw/help tutorial.html
Tutorial.java
src/java/org/apache/log4j/chainsaw LogUI.java
Log:
Tutorial dialog now has a toolbar to start/stop the tutorial.
These actions are now encapsulated as proper Swing actions, with
the buttons tracking their state correctly.
Revision Changes Path
1.4 +2 -2
jakarta-log4j/src/java/org/apache/log4j/chainsaw/help/tutorial.html
Index: tutorial.html
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/help/tutorial.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- tutorial.html 23 Sep 2003 04:10:01 -0000 1.3
+++ tutorial.html 23 Sep 2003 23:13:14 -0000 1.4
@@ -21,7 +21,7 @@
<li><img src="../icons/TipOfTheDay16.gif" alt="Interesting...">If you would like to
read more about Receivers first, then click here. <font
color="red"><b>(TODO)</b></font></li>
</ul>
<hr>
-<p><b>When you are ready to begin the tutorial, <a href="StartTutorial">click
here</a>.</b></p>
+<p><b>When you are ready to begin the tutorial, <a href="StartTutorial">click
here</a>, or click the "Start Tutorial" button in this dialog's toolbar.</b></p>
<hr>
<h2>Receivers</h2>
<p>After you have said yes to the confirmation dialog, you should see 3 new tabs
appear
@@ -112,7 +112,7 @@
<ul>
<li><img src="../icons/Help16.gif" alt="Try this...">Show the Receivers panel ()
and shutdown each of the Generator Receivers by using the <img
src="../icons/Stop16.gif" alt="Stop"> icon.</li>
</ul>
-<p>For convenience you can simply <a href="StopTutorial">click here</a>, and
Chainsaw will stop all the tutorial generators for you (If you created any other
non-Generator Receivers, they will be left untouched).</p>
+<p>For convenience you can simply <a href="StopTutorial">click here</a> or click on
the Stop Tutorial button in this dialogs toolbar, and Chainsaw will stop all the
tutorial generators for you (If you created any other non-Generator Receivers, they
will be left untouched).</p>
</p>
<hr>
<PRE>Transmission Ends</PRE>
1.3 +0 -8
jakarta-log4j/src/java/org/apache/log4j/chainsaw/help/Tutorial.java
Index: Tutorial.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/help/Tutorial.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Tutorial.java 22 Sep 2003 06:55:27 -0000 1.2
+++ Tutorial.java 23 Sep 2003 23:13:14 -0000 1.3
@@ -53,8 +53,6 @@
import org.apache.log4j.plugins.Plugin;
import org.apache.log4j.plugins.PluginRegistry;
-import javax.swing.JOptionPane;
-
/**
* A runnable element that installs into the Log4j environment some fake Receivers
@@ -67,17 +65,11 @@
* @see java.lang.Runnable#run()
*/
public void run() {
- if (
- JOptionPane.showConfirmDialog(
- null,
- "This will start 3 \"Generator\" receivers for use in the Tutorial. Is
that ok?",
- "Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
Plugin p1 = new Generator("Generator 1");
Plugin p2 = new Generator("Generator 2");
Plugin p3 = new Generator("Generator 3");
PluginRegistry.startPlugin(p1);
PluginRegistry.startPlugin(p2);
PluginRegistry.startPlugin(p3);
- }
}
}
1.35 +85 -15 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java
Index: LogUI.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- LogUI.java 23 Sep 2003 04:09:13 -0000 1.34
+++ LogUI.java 23 Sep 2003 23:13:14 -0000 1.35
@@ -631,36 +631,98 @@
final JEditorPane tutorialArea = new JEditorPane();
tutorialArea.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
tutorialArea.setEditable(false);
+ container.setLayout(new BorderLayout());
try {
tutorialArea.setPage(getWelcomePanel().getTutorialURL());
- container.add(new JScrollPane(tutorialArea));
+ container.add(new JScrollPane(tutorialArea), BorderLayout.CENTER);
} catch (Exception e) {
LogLog.error("Error occurred loading the Tutorial", e);
}
tutorialFrame.setSize(new Dimension(640, 480));
+ final Action startTutorial =
+ new AbstractAction(
+ "Start Tutorial", new ImageIcon(ChainsawIcons.ICON_RESUME_RECEIVER)) {
+ public void actionPerformed(ActionEvent e) {
+ if (
+ JOptionPane.showConfirmDialog(
+ null,
+ "This will start 3 \"Generator\" receivers for use in the Tutorial.
Is that ok?",
+ "Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+ new Thread(new Tutorial()).start();
+ putValue("TutorialStarted", Boolean.TRUE);
+ } else {
+ putValue("TutorialStarted", Boolean.FALSE);
+ }
+ }
+ };
+
+ final Action stopTutorial =
+ new AbstractAction(
+ "Stop Tutorial", new ImageIcon(ChainsawIcons.ICON_STOP_RECEIVER)) {
+ public void actionPerformed(ActionEvent e) {
+ if (
+ JOptionPane.showConfirmDialog(
+ null,
+ "This will stop all of the \"Generator\" receivers used in the
Tutorial, but leave any other Receiver untouched. Is that ok?",
+ "Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+ new Thread(
+ new Runnable() {
+ public void run() {
+ List list =
+ PluginRegistry.getPlugins(
+ LogManager.getLoggerRepository(), Generator.class);
+
+ for (Iterator iter = list.iterator(); iter.hasNext();) {
+ Plugin plugin = (Plugin) iter.next();
+ PluginRegistry.stopPlugin(plugin);
+ }
+ }
+ }).start();
+ setEnabled(false);
+ startTutorial.putValue("TutorialStarted", Boolean.FALSE);
+ }
+ }
+ };
+
+ stopTutorial.putValue(
+ Action.SHORT_DESCRIPTION,
+ "Removes all of the Tutorials Generator Receivers, leaving all other
Receivers untouched");
+ startTutorial.putValue(
+ Action.SHORT_DESCRIPTION,
+ "Begins the Tutorial, starting up some Generator Receivers so you can see
Chainsaw in action");
+ stopTutorial.setEnabled(false);
+
+ final SmallToggleButton startButton = new SmallToggleButton(startTutorial);
+ PropertyChangeListener pcl =
+ new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ stopTutorial.setEnabled(
+ ((Boolean) startTutorial.getValue("TutorialStarted")) == Boolean.TRUE);
+ startButton.setSelected(stopTutorial.isEnabled());
+ }
+ };
+
+ startTutorial.addPropertyChangeListener(pcl);
+ stopTutorial.addPropertyChangeListener(pcl);
+
+ final SmallButton stopButton = new SmallButton(stopTutorial);
+
+ final JToolBar tutorialToolbar = new JToolBar();
+ tutorialToolbar.setFloatable(false);
+ tutorialToolbar.add(startButton);
+ tutorialToolbar.add(stopButton);
+ container.add(tutorialToolbar, BorderLayout.NORTH);
tutorialArea.addHyperlinkListener(
new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
if (e.getDescription().equals("StartTutorial")) {
- new Thread(new Tutorial()).start();
+ startTutorial.actionPerformed(null);
} else if (e.getDescription().equals("StopTutorial")) {
- new Thread(
- new Runnable() {
- public void run() {
- List list =
- PluginRegistry.getPlugins(
- LogManager.getLoggerRepository(), Generator.class);
-
- for (Iterator iter = list.iterator(); iter.hasNext();) {
- Plugin plugin = (Plugin) iter.next();
- PluginRegistry.stopPlugin(plugin);
- }
- }
- }).start();
+ stopTutorial.actionPerformed(null);
} else {
try {
tutorialArea.setPage(e.getURL());
@@ -1100,6 +1162,14 @@
* @param string The FQN of the LookANdFeel
*/
private void applyLookAndFeel(String lookAndFeelClassName) {
+ if (
+ UIManager.getLookAndFeel().getClass().getName().equals(
+ lookAndFeelClassName)) {
+ LogLog.debug("No need to change L&F, already the same");
+
+ return;
+ }
+
LogLog.debug("Setting L&F -> " + lookAndFeelClassName);
try {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]