<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ReceiversPanel xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.chainsaw.receivers;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.awt.*;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionEvent;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionListener;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.awt.event.KeyEvent;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> javax.swing.AbstractAction;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> javax.swing.Action;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> javax.swing.BorderFactory;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> javax.swing.Box;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> javax.swing.Icon;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> javax.swing.ImageIcon;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> javax.swing.JComponent;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> javax.swing.JDialog;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> javax.swing.JFrame;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> javax.swing.JMenuItem;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> javax.swing.JOptionPane;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPanel;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPopupMenu;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> javax.swing.JRadioButtonMenuItem;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> javax.swing.JScrollPane;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> javax.swing.JSplitPane;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> javax.swing.JToolBar;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> javax.swing.JTree;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> javax.swing.SwingUtilities;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeExpansionEvent;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeModelEvent;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeModelListener;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeSelectionEvent;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeSelectionListener;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> javax.swing.event.TreeWillExpandListener;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> javax.swing.tree.DefaultMutableTreeNode;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> javax.swing.tree.ExpandVetoException;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> javax.swing.tree.TreePath;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.LogManager;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.PopupListener;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.SmallButton;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.SettingsManager;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.SettingsListener;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.SaveSettingsEvent;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.LoadSettingsEvent;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.help.HelpManager;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.helper.SwingHelper;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.icons.ChainsawIcons;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.icons.LevelIconFactory;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.icons.LineIconFactory;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.messages.MessageCenter;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.net.SocketNodeEventListener;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.net.SocketReceiver;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.Pauseable;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.Plugin;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.PluginEvent;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.PluginListener;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.PluginRegistry;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.Receiver;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepository;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepositoryEx;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment"> * This panel is used to manage all the Receivers configured within Log4j</em>
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment"> * @author Paul Smith &amp;lt;psmith@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment"> * @author Scott Deboy &amp;lt;sdeboy@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiversPanel</a> <strong class="jxr_keyword">extends</strong> JPanel <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/log4j/chainsaw/prefs/SettingsListener.html">SettingsListener</a> {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>    <strong class="jxr_keyword">final</strong> Action newReceiverButtonAction;
<a class="jxr_linenumber" name="L97" href="#L97">97</a>    <strong class="jxr_keyword">final</strong> Action pauseReceiverButtonAction;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>    <strong class="jxr_keyword">final</strong> Action playReceiverButtonAction;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>    <strong class="jxr_keyword">final</strong> Action shutdownReceiverButtonAction;
<a class="jxr_linenumber" name="L100" href="#L100">100</a>   <strong class="jxr_keyword">final</strong> Action saveReceiversButtonAction;
<a class="jxr_linenumber" name="L101" href="#L101">101</a>   <strong class="jxr_keyword">final</strong> Action restartReceiverButtonAction;
<a class="jxr_linenumber" name="L102" href="#L102">102</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Action showReceiverHelpAction;
<a class="jxr_linenumber" name="L103" href="#L103">103</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Action startAllAction;
<a class="jxr_linenumber" name="L104" href="#L104">104</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JPopupMenu popupMenu = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverPopupMenu</a>();
<a class="jxr_linenumber" name="L105" href="#L105">105</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JTree receiversTree = <strong class="jxr_keyword">new</strong> JTree();
<a class="jxr_linenumber" name="L106" href="#L106">106</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">NewReceiverPopupMenu</a> newReceiverPopup =
<a class="jxr_linenumber" name="L107" href="#L107">107</a>     <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">NewReceiverPopupMenu</a>();
<a class="jxr_linenumber" name="L108" href="#L108">108</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverToolbar</a> buttonPanel;
<a class="jxr_linenumber" name="L109" href="#L109">109</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JSplitPane splitter = <strong class="jxr_keyword">new</strong> JSplitPane();
<a class="jxr_linenumber" name="L110" href="#L110">110</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.html">PluginPropertyEditorPanel</a> pluginEditorPanel =
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/PluginPropertyEditorPanel.html">PluginPropertyEditorPanel</a>();
<a class="jxr_linenumber" name="L112" href="#L112">112</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger = LogManager.getLogger(ReceiversPanel.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L113" href="#L113">113</a>   
<a class="jxr_linenumber" name="L114" href="#L114">114</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/plugins/PluginRegistry.html">PluginRegistry</a> pluginRegistry;
<a class="jxr_linenumber" name="L115" href="#L115">115</a>   
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiversPanel</a>() {
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     LoggerRepository repo = LogManager.getLoggerRepository();
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.html">ReceiversTreeModel</a> model = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.html">ReceiversTreeModel</a>();
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     <strong class="jxr_keyword">if</strong> (repo instanceof LoggerRepositoryEx) {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>        pluginRegistry = ((LoggerRepositoryEx) repo).getPluginRegistry();
<a class="jxr_linenumber" name="L123" href="#L123">123</a>        pluginRegistry.addPluginListener(model);
<a class="jxr_linenumber" name="L124" href="#L124">124</a> 
<a class="jxr_linenumber" name="L125" href="#L125">125</a>        <em class="jxr_comment">//iterate over visual receivers and call setcontainer</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a>        Collection c = pluginRegistry.getPlugins(VisualReceiver.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L127" href="#L127">127</a>        <strong class="jxr_keyword">for</strong> (Iterator iter = c.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>     	   ((VisualReceiver)iter.next()).setContainer(<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L129" href="#L129">129</a>        }
<a class="jxr_linenumber" name="L130" href="#L130">130</a>        
<a class="jxr_linenumber" name="L131" href="#L131">131</a>        pluginRegistry.addPluginListener(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/plugins/PluginListener.html">PluginListener</a>() {
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> pluginStarted(<a href="../../../../../org/apache/log4j/plugins/PluginEvent.html">PluginEvent</a> e) {
<a class="jxr_linenumber" name="L133" href="#L133">133</a> 			<em class="jxr_comment">//if we get a plugin started callback, set the container</em>
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 			<strong class="jxr_keyword">if</strong> (e.getPlugin() instanceof VisualReceiver) {
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 				((VisualReceiver)e.getPlugin()).setContainer(ReceiversPanel.<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L136" href="#L136">136</a> 			}
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 		}
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 
<a class="jxr_linenumber" name="L139" href="#L139">139</a> 		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> pluginStopped(<a href="../../../../../org/apache/log4j/plugins/PluginEvent.html">PluginEvent</a> e) {
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 		}
<a class="jxr_linenumber" name="L141" href="#L141">141</a>        });
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L143" href="#L143">143</a>        pluginRegistry = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     }
<a class="jxr_linenumber" name="L145" href="#L145">145</a>     
<a class="jxr_linenumber" name="L146" href="#L146">146</a>     receiversTree.setModel(model);
<a class="jxr_linenumber" name="L147" href="#L147">147</a> 
<a class="jxr_linenumber" name="L148" href="#L148">148</a>     receiversTree.setExpandsSelectedPaths(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>     model.addTreeModelListener(
<a class="jxr_linenumber" name="L150" href="#L150">150</a>       <strong class="jxr_keyword">new</strong> TreeModelListener() {
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeNodesChanged(TreeModelEvent e) {
<a class="jxr_linenumber" name="L152" href="#L152">152</a>           expandRoot();
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         }
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeNodesInserted(TreeModelEvent e) {
<a class="jxr_linenumber" name="L156" href="#L156">156</a>           expandRoot();
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         }
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeNodesRemoved(TreeModelEvent e) {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>           expandRoot();
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         }
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeStructureChanged(TreeModelEvent e) {
<a class="jxr_linenumber" name="L164" href="#L164">164</a>           expandRoot();
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         }
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> expandRoot() {
<a class="jxr_linenumber" name="L168" href="#L168">168</a>           receiversTree.expandPath(
<a class="jxr_linenumber" name="L169" href="#L169">169</a>             <strong class="jxr_keyword">new</strong> TreePath(model.getPathToRoot(model.RootNode)));
<a class="jxr_linenumber" name="L170" href="#L170">170</a>         }
<a class="jxr_linenumber" name="L171" href="#L171">171</a>       });
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     receiversTree.expandPath(
<a class="jxr_linenumber" name="L173" href="#L173">173</a>       <strong class="jxr_keyword">new</strong> TreePath(model.getPathToRoot(model.RootNode)));
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     receiversTree.addTreeWillExpandListener(
<a class="jxr_linenumber" name="L176" href="#L176">176</a>       <strong class="jxr_keyword">new</strong> TreeWillExpandListener() {
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeWillCollapse(TreeExpansionEvent event)
<a class="jxr_linenumber" name="L178" href="#L178">178</a>           <strong class="jxr_keyword">throws</strong> ExpandVetoException {
<a class="jxr_linenumber" name="L179" href="#L179">179</a>           <strong class="jxr_keyword">if</strong> (event.getPath().getLastPathComponent() == model.RootNode) {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ExpandVetoException(event);
<a class="jxr_linenumber" name="L181" href="#L181">181</a>           }
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         }
<a class="jxr_linenumber" name="L183" href="#L183">183</a> 
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> treeWillExpand(TreeExpansionEvent event)
<a class="jxr_linenumber" name="L185" href="#L185">185</a>           <strong class="jxr_keyword">throws</strong> ExpandVetoException {
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         }
<a class="jxr_linenumber" name="L187" href="#L187">187</a>       });
<a class="jxr_linenumber" name="L188" href="#L188">188</a> 
<a class="jxr_linenumber" name="L189" href="#L189">189</a>     receiversTree.addTreeSelectionListener(
<a class="jxr_linenumber" name="L190" href="#L190">190</a>       <strong class="jxr_keyword">new</strong> TreeSelectionListener() {
<a class="jxr_linenumber" name="L191" href="#L191">191</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> valueChanged(TreeSelectionEvent e) {
<a class="jxr_linenumber" name="L192" href="#L192">192</a>           TreePath path = e.getNewLeadSelectionPath();
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>           <strong class="jxr_keyword">if</strong> (path != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L195" href="#L195">195</a>             DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L196" href="#L196">196</a>               (DefaultMutableTreeNode) path.getLastPathComponent();
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 
<a class="jxr_linenumber" name="L198" href="#L198">198</a>             <strong class="jxr_keyword">if</strong> (
<a class="jxr_linenumber" name="L199" href="#L199">199</a>               (node != <strong class="jxr_keyword">null</strong>) &amp;&amp; (node.getUserObject() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L200" href="#L200">200</a>                 &amp;&amp; (node.getUserObject() instanceof Plugin)) {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>               <a href="../../../../../org/apache/log4j/plugins/Plugin.html">Plugin</a> p = (Plugin) node.getUserObject();
<a class="jxr_linenumber" name="L202" href="#L202">202</a>               logger.debug(<span class="jxr_string">"plugin="</span> + p);
<a class="jxr_linenumber" name="L203" href="#L203">203</a>               pluginEditorPanel.setPlugin(p);
<a class="jxr_linenumber" name="L204" href="#L204">204</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L205" href="#L205">205</a>               pluginEditorPanel.setPlugin(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             }
<a class="jxr_linenumber" name="L207" href="#L207">207</a>           }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         }
<a class="jxr_linenumber" name="L209" href="#L209">209</a>       });
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     receiversTree.setToolTipText(<span class="jxr_string">"Allows you to manage Log4j Receivers"</span>);
<a class="jxr_linenumber" name="L212" href="#L212">212</a>     newReceiverButtonAction =
<a class="jxr_linenumber" name="L213" href="#L213">213</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L214" href="#L214">214</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L215" href="#L215">215</a>             newReceiverPopup.show(
<a class="jxr_linenumber" name="L216" href="#L216">216</a>               buttonPanel.newReceiverButton, 0,
<a class="jxr_linenumber" name="L217" href="#L217">217</a>               buttonPanel.newReceiverButton.getHeight());
<a class="jxr_linenumber" name="L218" href="#L218">218</a>           }
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         };
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     newReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L221" href="#L221">221</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_NEW_RECEIVER));
<a class="jxr_linenumber" name="L222" href="#L222">222</a>     newReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L223" href="#L223">223</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Creates and configures a new Receiver"</span>);
<a class="jxr_linenumber" name="L224" href="#L224">224</a>     newReceiverButtonAction.putValue(Action.NAME, <span class="jxr_string">"New Receiver"</span>);
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     newReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L226" href="#L226">226</a>       Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_N));
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
<a class="jxr_linenumber" name="L228" href="#L228">228</a>     newReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>     playReceiverButtonAction =
<a class="jxr_linenumber" name="L231" href="#L231">231</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L232" href="#L232">232</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L233" href="#L233">233</a>             playCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L234" href="#L234">234</a>           }
<a class="jxr_linenumber" name="L235" href="#L235">235</a>         };
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     playReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L238" href="#L238">238</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Resumes the selected Node"</span>);
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     playReceiverButtonAction.putValue(Action.NAME, <span class="jxr_string">"Resume"</span>);
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     playReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L241" href="#L241">241</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_RESUME_RECEIVER));
<a class="jxr_linenumber" name="L242" href="#L242">242</a>     playReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L243" href="#L243">243</a>     playReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L244" href="#L244">244</a>       Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_R));
<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     pauseReceiverButtonAction =
<a class="jxr_linenumber" name="L247" href="#L247">247</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L248" href="#L248">248</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L249" href="#L249">249</a>             pauseCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L250" href="#L250">250</a>           }
<a class="jxr_linenumber" name="L251" href="#L251">251</a>         };
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
<a class="jxr_linenumber" name="L253" href="#L253">253</a>     pauseReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L254" href="#L254">254</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L255" href="#L255">255</a>       <span class="jxr_string">"Pause the selected Receiver.  All events received will be discarded."</span>);
<a class="jxr_linenumber" name="L256" href="#L256">256</a>     pauseReceiverButtonAction.putValue(Action.NAME, <span class="jxr_string">"Pause"</span>);
<a class="jxr_linenumber" name="L257" href="#L257">257</a> 
<a class="jxr_linenumber" name="L258" href="#L258">258</a>     pauseReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L259" href="#L259">259</a>       Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_P));
<a class="jxr_linenumber" name="L260" href="#L260">260</a> 
<a class="jxr_linenumber" name="L261" href="#L261">261</a>     pauseReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L262" href="#L262">262</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.PAUSE));
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     pauseReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L264" href="#L264">264</a> 
<a class="jxr_linenumber" name="L265" href="#L265">265</a>     shutdownReceiverButtonAction =
<a class="jxr_linenumber" name="L266" href="#L266">266</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L267" href="#L267">267</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             shutdownCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L269" href="#L269">269</a>           }
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         };
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 
<a class="jxr_linenumber" name="L272" href="#L272">272</a>     shutdownReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L273" href="#L273">273</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L274" href="#L274">274</a>       <span class="jxr_string">"Shuts down the selected Receiver, and removes it from the Plugin registry"</span>);
<a class="jxr_linenumber" name="L275" href="#L275">275</a>     shutdownReceiverButtonAction.putValue(Action.NAME, <span class="jxr_string">"Shutdown"</span>);
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     shutdownReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L278" href="#L278">278</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_STOP_RECEIVER));
<a class="jxr_linenumber" name="L279" href="#L279">279</a>     shutdownReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L280" href="#L280">280</a>       Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_S));
<a class="jxr_linenumber" name="L281" href="#L281">281</a> 
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     shutdownReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L283" href="#L283">283</a> 
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     saveReceiversButtonAction =
<a class="jxr_linenumber" name="L285" href="#L285">285</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L286" href="#L286">286</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L287" href="#L287">287</a>             saveReceivers();
<a class="jxr_linenumber" name="L288" href="#L288">288</a>           }
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         };
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     saveReceiversButtonAction.putValue(
<a class="jxr_linenumber" name="L292" href="#L292">292</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L293" href="#L293">293</a>       <span class="jxr_string">"Save the current receiver configuration"</span>);
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     saveReceiversButtonAction.putValue(Action.NAME, <span class="jxr_string">"Save receivers"</span>);
<a class="jxr_linenumber" name="L295" href="#L295">295</a> 
<a class="jxr_linenumber" name="L296" href="#L296">296</a>     saveReceiversButtonAction.putValue(
<a class="jxr_linenumber" name="L297" href="#L297">297</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.FILE_SAVE_AS));
<a class="jxr_linenumber" name="L298" href="#L298">298</a>     saveReceiversButtonAction.putValue(
<a class="jxr_linenumber" name="L299" href="#L299">299</a>       Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_V));
<a class="jxr_linenumber" name="L300" href="#L300">300</a> 
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     restartReceiverButtonAction =
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L304" href="#L304">304</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L305" href="#L305">305</a>               <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> selectedReceiver = getCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L306" href="#L306">306</a>               <strong class="jxr_keyword">if</strong>(selectedReceiver == <strong class="jxr_keyword">null</strong>){
<a class="jxr_linenumber" name="L307" href="#L307">307</a>               	<strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L308" href="#L308">308</a>               }
<a class="jxr_linenumber" name="L309" href="#L309">309</a>               selectedReceiver.shutdown();
<a class="jxr_linenumber" name="L310" href="#L310">310</a>               selectedReceiver.activateOptions();
<a class="jxr_linenumber" name="L311" href="#L311">311</a>               <em class="jxr_comment">//allow the visual receiver to get a container on restart</em>
<a class="jxr_linenumber" name="L312" href="#L312">312</a>               <strong class="jxr_keyword">if</strong> (selectedReceiver instanceof VisualReceiver) {
<a class="jxr_linenumber" name="L313" href="#L313">313</a>                   ((<a href="../../../../../org/apache/log4j/chainsaw/receivers/VisualReceiver.html">VisualReceiver</a>)selectedReceiver).setContainer(ReceiversPanel.<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L314" href="#L314">314</a>               }
<a class="jxr_linenumber" name="L315" href="#L315">315</a>             }
<a class="jxr_linenumber" name="L316" href="#L316">316</a>           };
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 
<a class="jxr_linenumber" name="L318" href="#L318">318</a>       restartReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L319" href="#L319">319</a>         Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         <span class="jxr_string">"Restarts the selected Receiver"</span>);
<a class="jxr_linenumber" name="L321" href="#L321">321</a>       restartReceiverButtonAction.putValue(Action.NAME, <span class="jxr_string">"Restart"</span>);
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
<a class="jxr_linenumber" name="L323" href="#L323">323</a>       restartReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_RESTART));
<a class="jxr_linenumber" name="L325" href="#L325">325</a>       restartReceiverButtonAction.putValue(
<a class="jxr_linenumber" name="L326" href="#L326">326</a>         Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_R));
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 
<a class="jxr_linenumber" name="L328" href="#L328">328</a>       restartReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L329" href="#L329">329</a> 
<a class="jxr_linenumber" name="L330" href="#L330">330</a>     showReceiverHelpAction =
<a class="jxr_linenumber" name="L331" href="#L331">331</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Help"</span>) {
<a class="jxr_linenumber" name="L332" href="#L332">332</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>             <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> receiver = getCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L334" href="#L334">334</a> 
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             <strong class="jxr_keyword">if</strong> (receiver != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L336" href="#L336">336</a>               HelpManager.getInstance().showHelpForClass(receiver.getClass());
<a class="jxr_linenumber" name="L337" href="#L337">337</a>             }
<a class="jxr_linenumber" name="L338" href="#L338">338</a>           }
<a class="jxr_linenumber" name="L339" href="#L339">339</a>         };
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
<a class="jxr_linenumber" name="L341" href="#L341">341</a>     showReceiverHelpAction.putValue(
<a class="jxr_linenumber" name="L342" href="#L342">342</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.HELP));
<a class="jxr_linenumber" name="L343" href="#L343">343</a>     showReceiverHelpAction.putValue(
<a class="jxr_linenumber" name="L344" href="#L344">344</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Displays the JavaDoc page for this Plugin"</span>);
<a class="jxr_linenumber" name="L345" href="#L345">345</a> 
<a class="jxr_linenumber" name="L346" href="#L346">346</a>     startAllAction =
<a class="jxr_linenumber" name="L347" href="#L347">347</a>       <strong class="jxr_keyword">new</strong> AbstractAction(
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         <span class="jxr_string">"(Re)start All Receivers"</span>, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_RESTART_ALL)) {
<a class="jxr_linenumber" name="L349" href="#L349">349</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             <strong class="jxr_keyword">if</strong> (
<a class="jxr_linenumber" name="L351" href="#L351">351</a>               JOptionPane.showConfirmDialog(
<a class="jxr_linenumber" name="L352" href="#L352">352</a>                   <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L353" href="#L353">353</a>                   <span class="jxr_string">"This will cause any active Receiver to stop, and disconnect.  Is this ok?"</span>,
<a class="jxr_linenumber" name="L354" href="#L354">354</a>                   <span class="jxr_string">"Confirm"</span>, JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
<a class="jxr_linenumber" name="L355" href="#L355">355</a>               <strong class="jxr_keyword">new</strong> Thread(
<a class="jxr_linenumber" name="L356" href="#L356">356</a>                 <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L357" href="#L357">357</a>                   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L358" href="#L358">358</a>                     Collection allReceivers =
<a class="jxr_linenumber" name="L359" href="#L359">359</a>                         pluginRegistry.getPlugins(Receiver.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L360" href="#L360">360</a> 
<a class="jxr_linenumber" name="L361" href="#L361">361</a>                     <strong class="jxr_keyword">for</strong> (Iterator iter = allReceivers.iterator();
<a class="jxr_linenumber" name="L362" href="#L362">362</a>                         iter.hasNext();) {
<a class="jxr_linenumber" name="L363" href="#L363">363</a>                       <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> item = (Receiver) iter.next();
<a class="jxr_linenumber" name="L364" href="#L364">364</a>                       item.shutdown();
<a class="jxr_linenumber" name="L365" href="#L365">365</a>                       item.activateOptions();
<a class="jxr_linenumber" name="L366" href="#L366">366</a>                     }
<a class="jxr_linenumber" name="L367" href="#L367">367</a> 
<a class="jxr_linenumber" name="L368" href="#L368">368</a>                     updateReceiverTreeInDispatchThread();
<a class="jxr_linenumber" name="L369" href="#L369">369</a>                     MessageCenter.getInstance().getLogger().info(
<a class="jxr_linenumber" name="L370" href="#L370">370</a>                       <span class="jxr_string">"All Receivers have been (re)started"</span>);
<a class="jxr_linenumber" name="L371" href="#L371">371</a>                   }
<a class="jxr_linenumber" name="L372" href="#L372">372</a>                 }).start();
<a class="jxr_linenumber" name="L373" href="#L373">373</a>             }
<a class="jxr_linenumber" name="L374" href="#L374">374</a>           }
<a class="jxr_linenumber" name="L375" href="#L375">375</a>         };
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 
<a class="jxr_linenumber" name="L377" href="#L377">377</a>     startAllAction.putValue(
<a class="jxr_linenumber" name="L378" href="#L378">378</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L379" href="#L379">379</a>       <span class="jxr_string">"Ensures that any Receiver that isn't active, is started, and any started action is stopped, and then restarted"</span>);
<a class="jxr_linenumber" name="L380" href="#L380">380</a> 
<a class="jxr_linenumber" name="L381" href="#L381">381</a>     receiversTree.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
<a class="jxr_linenumber" name="L382" href="#L382">382</a>     receiversTree.setCellRenderer(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiverTreeCellRenderer.html">ReceiverTreeCellRenderer</a>());
<a class="jxr_linenumber" name="L383" href="#L383">383</a>     receiversTree.setRowHeight(19);
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 
<a class="jxr_linenumber" name="L385" href="#L385">385</a>     buttonPanel = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverToolbar</a>();
<a class="jxr_linenumber" name="L386" href="#L386">386</a>     receiversTree.addTreeSelectionListener(buttonPanel);
<a class="jxr_linenumber" name="L387" href="#L387">387</a> 
<a class="jxr_linenumber" name="L388" href="#L388">388</a>     <a href="../../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a> popupListener = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a>(popupMenu);
<a class="jxr_linenumber" name="L389" href="#L389">389</a>     receiversTree.addMouseListener(popupListener);
<a class="jxr_linenumber" name="L390" href="#L390">390</a>     <strong class="jxr_keyword">this</strong>.addMouseListener(popupListener);
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a>     JComponent component = receiversTree;
<a class="jxr_linenumber" name="L393" href="#L393">393</a>     JScrollPane pane = <strong class="jxr_keyword">new</strong> JScrollPane(component);
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 
<a class="jxr_linenumber" name="L395" href="#L395">395</a>     splitter.setOrientation(JSplitPane.VERTICAL_SPLIT);
<a class="jxr_linenumber" name="L396" href="#L396">396</a> 
<a class="jxr_linenumber" name="L397" href="#L397">397</a>     splitter.setTopComponent(pane);
<a class="jxr_linenumber" name="L398" href="#L398">398</a>     splitter.setBottomComponent(pluginEditorPanel);
<a class="jxr_linenumber" name="L399" href="#L399">399</a> 
<a class="jxr_linenumber" name="L400" href="#L400">400</a>     splitter.setResizeWeight(0.7);
<a class="jxr_linenumber" name="L401" href="#L401">401</a>     add(buttonPanel, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L402" href="#L402">402</a>     add(splitter, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L403" href="#L403">403</a> 
<a class="jxr_linenumber" name="L404" href="#L404">404</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a> <em class="jxr_javadoccomment">     * This Tree likes to be notified when Socket's are accepted so</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">     * we listen for them and update the Tree.</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L408" href="#L408">408</a>     <a href="../../../../../org/apache/log4j/net/SocketNodeEventListener.html">SocketNodeEventListener</a> listener =
<a class="jxr_linenumber" name="L409" href="#L409">409</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/net/SocketNodeEventListener.html">SocketNodeEventListener</a>() {
<a class="jxr_linenumber" name="L410" href="#L410">410</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> socketOpened(String remoteInfo) {
<a class="jxr_linenumber" name="L411" href="#L411">411</a>           updateReceiverTreeInDispatchThread();
<a class="jxr_linenumber" name="L412" href="#L412">412</a>         }
<a class="jxr_linenumber" name="L413" href="#L413">413</a> 
<a class="jxr_linenumber" name="L414" href="#L414">414</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> socketClosedEvent(Exception e) {
<a class="jxr_linenumber" name="L415" href="#L415">415</a>           updateReceiverTreeInDispatchThread();
<a class="jxr_linenumber" name="L416" href="#L416">416</a>         }
<a class="jxr_linenumber" name="L417" href="#L417">417</a>       };
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 
<a class="jxr_linenumber" name="L419" href="#L419">419</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L420" href="#L420">420</a> <em class="jxr_javadoccomment">     * add this listener to all SocketReceivers</em>
<a class="jxr_linenumber" name="L421" href="#L421">421</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L422" href="#L422">422</a>     <strong class="jxr_keyword">if</strong> (pluginRegistry != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L423" href="#L423">423</a>     	List socketReceivers =
<a class="jxr_linenumber" name="L424" href="#L424">424</a>       		pluginRegistry.getPlugins(SocketReceiver.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 
<a class="jxr_linenumber" name="L426" href="#L426">426</a>     	<strong class="jxr_keyword">for</strong> (Iterator iter = socketReceivers.iterator(); iter.hasNext();) {
<a class="jxr_linenumber" name="L427" href="#L427">427</a>       		SocketReceiver element = (SocketReceiver) iter.next();
<a class="jxr_linenumber" name="L428" href="#L428">428</a>       		element.addSocketNodeEventListener(listener);
<a class="jxr_linenumber" name="L429" href="#L429">429</a>     	}
<a class="jxr_linenumber" name="L430" href="#L430">430</a>      }
<a class="jxr_linenumber" name="L431" href="#L431">431</a>   }
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> saveReceivers() {
<a class="jxr_linenumber" name="L434" href="#L434">434</a>     File saveConfigFile = SwingHelper.promptForFile(<strong class="jxr_keyword">this</strong>, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"Save receiver configuration XML file"</span>, false);
<a class="jxr_linenumber" name="L435" href="#L435">435</a>     <strong class="jxr_keyword">if</strong> (saveConfigFile != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L436" href="#L436">436</a>       ReceiversHelper.getInstance().saveReceiverConfiguration(saveConfigFile);
<a class="jxr_linenumber" name="L437" href="#L437">437</a>     }
<a class="jxr_linenumber" name="L438" href="#L438">438</a>   }
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
<a class="jxr_linenumber" name="L440" href="#L440">440</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversTreeModel.html">ReceiversTreeModel</a> getReceiverTreeModel() {
<a class="jxr_linenumber" name="L441" href="#L441">441</a>     <strong class="jxr_keyword">return</strong> ((ReceiversTreeModel) receiversTree.getModel());
<a class="jxr_linenumber" name="L442" href="#L442">442</a>   }
<a class="jxr_linenumber" name="L443" href="#L443">443</a> 
<a class="jxr_linenumber" name="L444" href="#L444">444</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L445" href="#L445">445</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L446" href="#L446">446</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L447" href="#L447">447</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateCurrentlySelectedNodeInDispatchThread() {
<a class="jxr_linenumber" name="L448" href="#L448">448</a>     SwingUtilities.invokeLater(
<a class="jxr_linenumber" name="L449" href="#L449">449</a>       <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L450" href="#L450">450</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L451" href="#L451">451</a>           DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L452" href="#L452">452</a>             (DefaultMutableTreeNode) receiversTree
<a class="jxr_linenumber" name="L453" href="#L453">453</a>             .getLastSelectedPathComponent();
<a class="jxr_linenumber" name="L454" href="#L454">454</a> 
<a class="jxr_linenumber" name="L455" href="#L455">455</a>           <strong class="jxr_keyword">if</strong> (node == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L456" href="#L456">456</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L457" href="#L457">457</a>           }
<a class="jxr_linenumber" name="L458" href="#L458">458</a> 
<a class="jxr_linenumber" name="L459" href="#L459">459</a>           getReceiverTreeModel().nodeChanged(node);
<a class="jxr_linenumber" name="L460" href="#L460">460</a>           updateActions();
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         }
<a class="jxr_linenumber" name="L462" href="#L462">462</a>       });
<a class="jxr_linenumber" name="L463" href="#L463">463</a>   }
<a class="jxr_linenumber" name="L464" href="#L464">464</a> 
<a class="jxr_linenumber" name="L465" href="#L465">465</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em class="jxr_javadoccomment">   * Returns the currently selected Receiver, or null if there is no</em>
<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">   * selected Receiver (this could be because a) nothing at all is selected</em>
<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_javadoccomment">   * or b) a non Receiver type node is selected</em>
<a class="jxr_linenumber" name="L469" href="#L469">469</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L470" href="#L470">470</a> <em class="jxr_javadoccomment">   * @return Receiver or null</em>
<a class="jxr_linenumber" name="L471" href="#L471">471</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L472" href="#L472">472</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> getCurrentlySelectedReceiver() {
<a class="jxr_linenumber" name="L473" href="#L473">473</a>     DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L474" href="#L474">474</a>       (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent();
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 
<a class="jxr_linenumber" name="L476" href="#L476">476</a>     <strong class="jxr_keyword">if</strong> (node == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L477" href="#L477">477</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L478" href="#L478">478</a>     }
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a>     Object userObject = node.getUserObject();
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 
<a class="jxr_linenumber" name="L482" href="#L482">482</a>     <strong class="jxr_keyword">if</strong> (userObject instanceof Receiver) {
<a class="jxr_linenumber" name="L483" href="#L483">483</a>       <strong class="jxr_keyword">return</strong> (Receiver) userObject;
<a class="jxr_linenumber" name="L484" href="#L484">484</a>     }
<a class="jxr_linenumber" name="L485" href="#L485">485</a> 
<a class="jxr_linenumber" name="L486" href="#L486">486</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L487" href="#L487">487</a>   }
<a class="jxr_linenumber" name="L488" href="#L488">488</a> 
<a class="jxr_linenumber" name="L489" href="#L489">489</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a>[] getSelectedReceivers() {
<a class="jxr_linenumber" name="L490" href="#L490">490</a>     TreePath[] paths = receiversTree.getSelectionPaths();
<a class="jxr_linenumber" name="L491" href="#L491">491</a>     Collection receivers = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L492" href="#L492">492</a> 
<a class="jxr_linenumber" name="L493" href="#L493">493</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++) {
<a class="jxr_linenumber" name="L494" href="#L494">494</a>       TreePath path = paths[i];
<a class="jxr_linenumber" name="L495" href="#L495">495</a>       DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L496" href="#L496">496</a>         (DefaultMutableTreeNode) path.getLastPathComponent();
<a class="jxr_linenumber" name="L497" href="#L497">497</a> 
<a class="jxr_linenumber" name="L498" href="#L498">498</a>       <strong class="jxr_keyword">if</strong> ((node != <strong class="jxr_keyword">null</strong>) &amp;&amp; node.getUserObject() instanceof Receiver) {
<a class="jxr_linenumber" name="L499" href="#L499">499</a>         receivers.add(node.getUserObject());
<a class="jxr_linenumber" name="L500" href="#L500">500</a>       }
<a class="jxr_linenumber" name="L501" href="#L501">501</a>     }
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 
<a class="jxr_linenumber" name="L503" href="#L503">503</a>     <strong class="jxr_keyword">return</strong> (Receiver[]) receivers.toArray(<strong class="jxr_keyword">new</strong> Receiver[0]);
<a class="jxr_linenumber" name="L504" href="#L504">504</a>   }
<a class="jxr_linenumber" name="L505" href="#L505">505</a> 
<a class="jxr_linenumber" name="L506" href="#L506">506</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L507" href="#L507">507</a> <em class="jxr_javadoccomment">   * Returns the currently seleted node's User Object, or null</em>
<a class="jxr_linenumber" name="L508" href="#L508">508</a> <em class="jxr_javadoccomment">   * if there is no selected node, or if the currently selected node has</em>
<a class="jxr_linenumber" name="L509" href="#L509">509</a> <em class="jxr_javadoccomment">   * not user Object</em>
<a class="jxr_linenumber" name="L510" href="#L510">510</a> <em class="jxr_javadoccomment">   * @return Object representing currently seleted Node's User Object</em>
<a class="jxr_linenumber" name="L511" href="#L511">511</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L512" href="#L512">512</a>   <strong class="jxr_keyword">private</strong> Object getCurrentlySelectedUserObject() {
<a class="jxr_linenumber" name="L513" href="#L513">513</a>     DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L514" href="#L514">514</a>       (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent();
<a class="jxr_linenumber" name="L515" href="#L515">515</a> 
<a class="jxr_linenumber" name="L516" href="#L516">516</a>     <strong class="jxr_keyword">if</strong> (node == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L517" href="#L517">517</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L518" href="#L518">518</a>     }
<a class="jxr_linenumber" name="L519" href="#L519">519</a> 
<a class="jxr_linenumber" name="L520" href="#L520">520</a>     <strong class="jxr_keyword">return</strong> node.getUserObject();
<a class="jxr_linenumber" name="L521" href="#L521">521</a>   }
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L524" href="#L524">524</a> <em class="jxr_javadoccomment">   * Takes the currently selected Receiver and pauess it, effectively</em>
<a class="jxr_linenumber" name="L525" href="#L525">525</a> <em class="jxr_javadoccomment">   * discarding any received event BEFORE it is even posted to the logger</em>
<a class="jxr_linenumber" name="L526" href="#L526">526</a> <em class="jxr_javadoccomment">   * repository.</em>
<a class="jxr_linenumber" name="L527" href="#L527">527</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L528" href="#L528">528</a> <em class="jxr_javadoccomment">   * The user is NOT asked to confirm this operation</em>
<a class="jxr_linenumber" name="L529" href="#L529">529</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L530" href="#L530">530</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L531" href="#L531">531</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> pauseCurrentlySelectedReceiver() {
<a class="jxr_linenumber" name="L532" href="#L532">532</a>     <strong class="jxr_keyword">new</strong> Thread(
<a class="jxr_linenumber" name="L533" href="#L533">533</a>       <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L534" href="#L534">534</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L535" href="#L535">535</a>           Object obj = getCurrentlySelectedUserObject();
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 
<a class="jxr_linenumber" name="L537" href="#L537">537</a>           <strong class="jxr_keyword">if</strong> ((obj != <strong class="jxr_keyword">null</strong>) &amp;&amp; obj instanceof Pauseable) {
<a class="jxr_linenumber" name="L538" href="#L538">538</a>             ((<a href="../../../../../org/apache/log4j/plugins/Pauseable.html">Pauseable</a>) obj).setPaused(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L539" href="#L539">539</a>             updateCurrentlySelectedNodeInDispatchThread();
<a class="jxr_linenumber" name="L540" href="#L540">540</a>           }
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         }
<a class="jxr_linenumber" name="L542" href="#L542">542</a>       }).start();
<a class="jxr_linenumber" name="L543" href="#L543">543</a>   }
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 
<a class="jxr_linenumber" name="L545" href="#L545">545</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L546" href="#L546">546</a> <em class="jxr_javadoccomment">   * Ensures that the currently selected receiver active property is set to</em>
<a class="jxr_linenumber" name="L547" href="#L547">547</a> <em class="jxr_javadoccomment">   * true</em>
<a class="jxr_linenumber" name="L548" href="#L548">548</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L549" href="#L549">549</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L550" href="#L550">550</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> playCurrentlySelectedReceiver() {
<a class="jxr_linenumber" name="L551" href="#L551">551</a>     <strong class="jxr_keyword">new</strong> Thread(
<a class="jxr_linenumber" name="L552" href="#L552">552</a>       <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L553" href="#L553">553</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L554" href="#L554">554</a>           Object obj = getCurrentlySelectedUserObject();
<a class="jxr_linenumber" name="L555" href="#L555">555</a> 
<a class="jxr_linenumber" name="L556" href="#L556">556</a>           <strong class="jxr_keyword">if</strong> ((obj != <strong class="jxr_keyword">null</strong>) &amp;&amp; obj instanceof Pauseable) {
<a class="jxr_linenumber" name="L557" href="#L557">557</a>             ((<a href="../../../../../org/apache/log4j/plugins/Pauseable.html">Pauseable</a>) obj).setPaused(false);
<a class="jxr_linenumber" name="L558" href="#L558">558</a> 
<a class="jxr_linenumber" name="L559" href="#L559">559</a>             updateCurrentlySelectedNodeInDispatchThread();
<a class="jxr_linenumber" name="L560" href="#L560">560</a>           }
<a class="jxr_linenumber" name="L561" href="#L561">561</a>         }
<a class="jxr_linenumber" name="L562" href="#L562">562</a>       }).start();
<a class="jxr_linenumber" name="L563" href="#L563">563</a>   }
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 
<a class="jxr_linenumber" name="L565" href="#L565">565</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L566" href="#L566">566</a> <em class="jxr_javadoccomment">   * Takes the currently selected Receiver and stops it, which effectively</em>
<a class="jxr_linenumber" name="L567" href="#L567">567</a> <em class="jxr_javadoccomment">   * removes it from the PluginRegistry.</em>
<a class="jxr_linenumber" name="L568" href="#L568">568</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L569" href="#L569">569</a> <em class="jxr_javadoccomment">   * The user is asked to confirm this operation</em>
<a class="jxr_linenumber" name="L570" href="#L570">570</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L571" href="#L571">571</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L572" href="#L572">572</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> shutdownCurrentlySelectedReceiver() {
<a class="jxr_linenumber" name="L573" href="#L573">573</a>     <strong class="jxr_keyword">if</strong> (
<a class="jxr_linenumber" name="L574" href="#L574">574</a>       JOptionPane.showConfirmDialog(
<a class="jxr_linenumber" name="L575" href="#L575">575</a>           <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L576" href="#L576">576</a>           <span class="jxr_string">"Are you sure you wish to shutdown this receiver?\n\nThis will disconnect any network resources, and remove it from the PluginRegistry."</span>,
<a class="jxr_linenumber" name="L577" href="#L577">577</a>           <span class="jxr_string">"Confirm stop of Receiver"</span>, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
<a class="jxr_linenumber" name="L578" href="#L578">578</a>       <strong class="jxr_keyword">new</strong> Thread(
<a class="jxr_linenumber" name="L579" href="#L579">579</a>         <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L580" href="#L580">580</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L581" href="#L581">581</a>             <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a>[] receivers = getSelectedReceivers();
<a class="jxr_linenumber" name="L582" href="#L582">582</a> 
<a class="jxr_linenumber" name="L583" href="#L583">583</a>             <strong class="jxr_keyword">if</strong> (receivers != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L584" href="#L584">584</a>               <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; receivers.length; i++) {
<a class="jxr_linenumber" name="L585" href="#L585">585</a>                 pluginRegistry.stopPlugin(receivers[i].getName());
<a class="jxr_linenumber" name="L586" href="#L586">586</a>               }
<a class="jxr_linenumber" name="L587" href="#L587">587</a>             }
<a class="jxr_linenumber" name="L588" href="#L588">588</a>           }
<a class="jxr_linenumber" name="L589" href="#L589">589</a>         }).start();
<a class="jxr_linenumber" name="L590" href="#L590">590</a>     }
<a class="jxr_linenumber" name="L591" href="#L591">591</a>   }
<a class="jxr_linenumber" name="L592" href="#L592">592</a> 
<a class="jxr_linenumber" name="L593" href="#L593">593</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L594" href="#L594">594</a> <em class="jxr_javadoccomment">   * Sets the state of actions depending on certain conditions (i.e what is</em>
<a class="jxr_linenumber" name="L595" href="#L595">595</a> <em class="jxr_javadoccomment">   * currently selected etc.)</em>
<a class="jxr_linenumber" name="L596" href="#L596">596</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L597" href="#L597">597</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateActions() {
<a class="jxr_linenumber" name="L598" href="#L598">598</a>     Object object = getCurrentlySelectedUserObject();
<a class="jxr_linenumber" name="L599" href="#L599">599</a> 
<a class="jxr_linenumber" name="L600" href="#L600">600</a>     <strong class="jxr_keyword">if</strong> ((object != <strong class="jxr_keyword">null</strong>) &amp;&amp; object instanceof Pauseable) {
<a class="jxr_linenumber" name="L601" href="#L601">601</a>       <a href="../../../../../org/apache/log4j/plugins/Pauseable.html">Pauseable</a> pauseable = (Pauseable) object;
<a class="jxr_linenumber" name="L602" href="#L602">602</a> 
<a class="jxr_linenumber" name="L603" href="#L603">603</a>       <strong class="jxr_keyword">if</strong> (!pauseable.isPaused()) {
<a class="jxr_linenumber" name="L604" href="#L604">604</a>         pauseReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L605" href="#L605">605</a>         playReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L606" href="#L606">606</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L607" href="#L607">607</a>         pauseReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L608" href="#L608">608</a>         playReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L609" href="#L609">609</a>       }
<a class="jxr_linenumber" name="L610" href="#L610">610</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L611" href="#L611">611</a>       pauseReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L612" href="#L612">612</a>       playReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L613" href="#L613">613</a>     }
<a class="jxr_linenumber" name="L614" href="#L614">614</a> 
<a class="jxr_linenumber" name="L615" href="#L615">615</a>     <strong class="jxr_keyword">if</strong> (object instanceof Receiver) {
<a class="jxr_linenumber" name="L616" href="#L616">616</a>       newReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L617" href="#L617">617</a>       shutdownReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L618" href="#L618">618</a>       restartReceiverButtonAction.setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L619" href="#L619">619</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L620" href="#L620">620</a>       shutdownReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L621" href="#L621">621</a>       restartReceiverButtonAction.setEnabled(false);
<a class="jxr_linenumber" name="L622" href="#L622">622</a>     }
<a class="jxr_linenumber" name="L623" href="#L623">623</a>   }
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 
<a class="jxr_linenumber" name="L625" href="#L625">625</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L626" href="#L626">626</a> <em class="jxr_javadoccomment">   * Ensures that the Receiver tree is updated with the latest information</em>
<a class="jxr_linenumber" name="L627" href="#L627">627</a> <em class="jxr_javadoccomment">   * and that this operation occurs in the Swing Event Dispatch thread.</em>
<a class="jxr_linenumber" name="L628" href="#L628">628</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L629" href="#L629">629</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L630" href="#L630">630</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateReceiverTreeInDispatchThread() {
<a class="jxr_linenumber" name="L631" href="#L631">631</a>     logger.debug(
<a class="jxr_linenumber" name="L632" href="#L632">632</a>       <span class="jxr_string">"updateReceiverTreeInDispatchThread, should not be needed now"</span>);
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 
<a class="jxr_linenumber" name="L634" href="#L634">634</a>     <em class="jxr_comment">//    if (SwingUtilities.isEventDispatchThread()) {</em>
<a class="jxr_linenumber" name="L635" href="#L635">635</a>     <em class="jxr_comment">//      updateReceiverTree.run();</em>
<a class="jxr_linenumber" name="L636" href="#L636">636</a>     <em class="jxr_comment">//    } else {</em>
<a class="jxr_linenumber" name="L637" href="#L637">637</a>     <em class="jxr_comment">//      SwingUtilities.invokeLater(updateReceiverTree);</em>
<a class="jxr_linenumber" name="L638" href="#L638">638</a>     <em class="jxr_comment">//    }</em>
<a class="jxr_linenumber" name="L639" href="#L639">639</a>   }
<a class="jxr_linenumber" name="L640" href="#L640">640</a> 
<a class="jxr_linenumber" name="L641" href="#L641">641</a>   <em class="jxr_comment">/* (non-Javadoc)</em>
<a class="jxr_linenumber" name="L642" href="#L642">642</a> <em class="jxr_comment">   * @see java.awt.Component#setVisible(boolean)</em>
<a class="jxr_linenumber" name="L643" href="#L643">643</a> <em class="jxr_comment">   */</em>
<a class="jxr_linenumber" name="L644" href="#L644">644</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setVisible(<strong class="jxr_keyword">boolean</strong> aFlag) {
<a class="jxr_linenumber" name="L645" href="#L645">645</a>     <strong class="jxr_keyword">boolean</strong> oldValue = isVisible();
<a class="jxr_linenumber" name="L646" href="#L646">646</a>     <strong class="jxr_keyword">super</strong>.setVisible(aFlag);
<a class="jxr_linenumber" name="L647" href="#L647">647</a>     firePropertyChange(<span class="jxr_string">"visible"</span>, oldValue, isVisible());
<a class="jxr_linenumber" name="L648" href="#L648">648</a>   }
<a class="jxr_linenumber" name="L649" href="#L649">649</a> 
<a class="jxr_linenumber" name="L650" href="#L650">650</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadSettings(<a href="../../../../../org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.html">LoadSettingsEvent</a> event){}
<a class="jxr_linenumber" name="L651" href="#L651">651</a> 
<a class="jxr_linenumber" name="L652" href="#L652">652</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L653" href="#L653">653</a> <em class="jxr_javadoccomment">    * Saves all the receivers which are active at shut down as a configuration</em>
<a class="jxr_linenumber" name="L654" href="#L654">654</a> <em class="jxr_javadoccomment">    * file which can be loaded when Chainsaw will be restarted.</em>
<a class="jxr_linenumber" name="L655" href="#L655">655</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L656" href="#L656">656</a> 
<a class="jxr_linenumber" name="L657" href="#L657">657</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> saveSettings(<a href="../../../../../org/apache/log4j/chainsaw/prefs/SaveSettingsEvent.html">SaveSettingsEvent</a> event){
<a class="jxr_linenumber" name="L658" href="#L658">658</a>      File file = <strong class="jxr_keyword">new</strong> File(SettingsManager.getInstance().getSettingsDirectory(), <span class="jxr_string">"receiver-config.xml"</span>);
<a class="jxr_linenumber" name="L659" href="#L659">659</a>      ReceiversHelper.getInstance().saveReceiverConfiguration(file);
<a class="jxr_linenumber" name="L660" href="#L660">660</a>   }
<a class="jxr_linenumber" name="L661" href="#L661">661</a> 
<a class="jxr_linenumber" name="L662" href="#L662">662</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L663" href="#L663">663</a> <em class="jxr_javadoccomment">   * A popup menu that allows the user to choose which</em>
<a class="jxr_linenumber" name="L664" href="#L664">664</a> <em class="jxr_javadoccomment">   * style of Receiver to create, which spawns a relevant Dialog</em>
<a class="jxr_linenumber" name="L665" href="#L665">665</a> <em class="jxr_javadoccomment">   * to enter the information and create the Receiver</em>
<a class="jxr_linenumber" name="L666" href="#L666">666</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L667" href="#L667">667</a> <em class="jxr_javadoccomment">   * @author Paul Smith &amp;lt;psmith@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L668" href="#L668">668</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L669" href="#L669">669</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L670" href="#L670">670</a>   <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">NewReceiverPopupMenu</a> <strong class="jxr_keyword">extends</strong> JPopupMenu {
<a class="jxr_linenumber" name="L671" href="#L671">671</a>     <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">NewReceiverPopupMenu</a>() {
<a class="jxr_linenumber" name="L672" href="#L672">672</a>       <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L673" href="#L673">673</a>         <strong class="jxr_keyword">final</strong> List receiverList =
<a class="jxr_linenumber" name="L674" href="#L674">674</a>           ReceiversHelper.getInstance().getKnownReceiverClasses();
<a class="jxr_linenumber" name="L675" href="#L675">675</a>         String separatorCheck = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L676" href="#L676">676</a> 
<a class="jxr_linenumber" name="L677" href="#L677">677</a>         <strong class="jxr_keyword">for</strong> (Iterator iter = receiverList.iterator(); iter.hasNext();) {
<a class="jxr_linenumber" name="L678" href="#L678">678</a>           <strong class="jxr_keyword">final</strong> Class toCreate = (Class) iter.next();
<a class="jxr_linenumber" name="L679" href="#L679">679</a>           Package thePackage = toCreate.getPackage();
<a class="jxr_linenumber" name="L680" href="#L680">680</a>           <strong class="jxr_keyword">final</strong> String name =
<a class="jxr_linenumber" name="L681" href="#L681">681</a>             toCreate.getName().substring(thePackage.getName().length() + 1);
<a class="jxr_linenumber" name="L682" href="#L682">682</a> 
<a class="jxr_linenumber" name="L683" href="#L683">683</a>           <strong class="jxr_keyword">if</strong> (separatorCheck == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L684" href="#L684">684</a>             separatorCheck = name.substring(0, 1);
<a class="jxr_linenumber" name="L685" href="#L685">685</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L686" href="#L686">686</a>             String current = name.substring(0, 1);
<a class="jxr_linenumber" name="L687" href="#L687">687</a> 
<a class="jxr_linenumber" name="L688" href="#L688">688</a>             <strong class="jxr_keyword">if</strong> (!current.equals(separatorCheck)) {
<a class="jxr_linenumber" name="L689" href="#L689">689</a>               addSeparator();
<a class="jxr_linenumber" name="L690" href="#L690">690</a>               separatorCheck = current;
<a class="jxr_linenumber" name="L691" href="#L691">691</a>             }
<a class="jxr_linenumber" name="L692" href="#L692">692</a>           }
<a class="jxr_linenumber" name="L693" href="#L693">693</a> 
<a class="jxr_linenumber" name="L694" href="#L694">694</a>           add(
<a class="jxr_linenumber" name="L695" href="#L695">695</a>             <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"New "</span> + name + <span class="jxr_string">"..."</span>) {
<a class="jxr_linenumber" name="L696" href="#L696">696</a>               <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L697" href="#L697">697</a>                 Container container = SwingUtilities.getAncestorOfClass(JFrame.<strong class="jxr_keyword">class</strong>, ReceiversPanel.<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L698" href="#L698">698</a>                 <strong class="jxr_keyword">final</strong> JDialog dialog = <strong class="jxr_keyword">new</strong> JDialog((JFrame) container,<span class="jxr_string">"New "</span> + toCreate.getName() + <span class="jxr_string">"..."</span> ,<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L699" href="#L699">699</a>                 
<a class="jxr_linenumber" name="L700" href="#L700">700</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L701" href="#L701">701</a>                   <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/NewReceiverDialogPanel.html">NewReceiverDialogPanel</a> panel =
<a class="jxr_linenumber" name="L702" href="#L702">702</a>                     NewReceiverDialogPanel.create(toCreate);
<a class="jxr_linenumber" name="L703" href="#L703">703</a>                   dialog.getContentPane().add(panel);
<a class="jxr_linenumber" name="L704" href="#L704">704</a>                   dialog.pack();
<a class="jxr_linenumber" name="L705" href="#L705">705</a>                   SwingHelper.centerOnScreen(dialog);
<a class="jxr_linenumber" name="L706" href="#L706">706</a> 
<a class="jxr_linenumber" name="L707" href="#L707">707</a>                   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L708" href="#L708">708</a> <em class="jxr_javadoccomment">                   * Make the default button the ok button</em>
<a class="jxr_linenumber" name="L709" href="#L709">709</a> <em class="jxr_javadoccomment">                   */</em>
<a class="jxr_linenumber" name="L710" href="#L710">710</a>                   dialog.getRootPane().setDefaultButton(panel.getOkPanel().getOkButton());
<a class="jxr_linenumber" name="L711" href="#L711">711</a>                   
<a class="jxr_linenumber" name="L712" href="#L712">712</a>                   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L713" href="#L713">713</a> <em class="jxr_javadoccomment">                   * Use the standard Cancel metaphor</em>
<a class="jxr_linenumber" name="L714" href="#L714">714</a> <em class="jxr_javadoccomment">                   */</em>
<a class="jxr_linenumber" name="L715" href="#L715">715</a>                   SwingHelper.configureCancelForDialog(dialog, panel.getOkPanel().getCancelButton());
<a class="jxr_linenumber" name="L716" href="#L716">716</a>                   
<a class="jxr_linenumber" name="L717" href="#L717">717</a> 
<a class="jxr_linenumber" name="L718" href="#L718">718</a>                   panel.getOkPanel().getOkButton().addActionListener(
<a class="jxr_linenumber" name="L719" href="#L719">719</a>                     <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L720" href="#L720">720</a>                       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e2) {
<a class="jxr_linenumber" name="L721" href="#L721">721</a>                         <a href="../../../../../org/apache/log4j/plugins/Plugin.html">Plugin</a> plugin = panel.getPlugin();
<a class="jxr_linenumber" name="L722" href="#L722">722</a>                         <strong class="jxr_keyword">if</strong> (plugin.getName() != <strong class="jxr_keyword">null</strong> &amp;&amp; !plugin.getName().trim().equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L723" href="#L723">723</a>                             dialog.dispose();
<a class="jxr_linenumber" name="L724" href="#L724">724</a>                             pluginRegistry.addPlugin(plugin);
<a class="jxr_linenumber" name="L725" href="#L725">725</a>                             plugin.activateOptions();
<a class="jxr_linenumber" name="L726" href="#L726">726</a>                             MessageCenter.getInstance().addMessage(<span class="jxr_string">"Plugin '"</span> + plugin.getName() + <span class="jxr_string">"' started"</span>);
<a class="jxr_linenumber" name="L727" href="#L727">727</a>                         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L728" href="#L728">728</a>                             MessageCenter.getInstance().getLogger().error(<span class="jxr_string">"Name required to create receiver"</span>);
<a class="jxr_linenumber" name="L729" href="#L729">729</a>                         }
<a class="jxr_linenumber" name="L730" href="#L730">730</a>                       }
<a class="jxr_linenumber" name="L731" href="#L731">731</a>                     });
<a class="jxr_linenumber" name="L732" href="#L732">732</a>                   dialog.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L733" href="#L733">733</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e1) {
<a class="jxr_linenumber" name="L734" href="#L734">734</a>                   e1.printStackTrace();
<a class="jxr_linenumber" name="L735" href="#L735">735</a>                   MessageCenter.getInstance().getLogger().error(
<a class="jxr_linenumber" name="L736" href="#L736">736</a>                     <span class="jxr_string">"Failed to create the new Receiver dialog"</span>, e1);
<a class="jxr_linenumber" name="L737" href="#L737">737</a>                 }
<a class="jxr_linenumber" name="L738" href="#L738">738</a>               }
<a class="jxr_linenumber" name="L739" href="#L739">739</a>             });
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         }
<a class="jxr_linenumber" name="L741" href="#L741">741</a>       } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L742" href="#L742">742</a>         e.printStackTrace();
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(e.getMessage());
<a class="jxr_linenumber" name="L744" href="#L744">744</a>       }
<a class="jxr_linenumber" name="L745" href="#L745">745</a>     }
<a class="jxr_linenumber" name="L746" href="#L746">746</a>   }
<a class="jxr_linenumber" name="L747" href="#L747">747</a> 
<a class="jxr_linenumber" name="L748" href="#L748">748</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L749" href="#L749">749</a> <em class="jxr_javadoccomment">   * A popup menu class for when the user uses the popup trigger action</em>
<a class="jxr_linenumber" name="L750" href="#L750">750</a> <em class="jxr_javadoccomment">   * on a node in the Receiver tree.</em>
<a class="jxr_linenumber" name="L751" href="#L751">751</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L752" href="#L752">752</a> <em class="jxr_javadoccomment">   * @author Paul Smith &amp;lt;psmith@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L753" href="#L753">753</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L754" href="#L754">754</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L755" href="#L755">755</a>   <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverPopupMenu</a> <strong class="jxr_keyword">extends</strong> JPopupMenu {
<a class="jxr_linenumber" name="L756" href="#L756">756</a>     <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverPopupMenu</a>() {
<a class="jxr_linenumber" name="L757" href="#L757">757</a>     }
<a class="jxr_linenumber" name="L758" href="#L758">758</a> 
<a class="jxr_linenumber" name="L759" href="#L759">759</a>     <em class="jxr_comment">/* (non-Javadoc)</em>
<a class="jxr_linenumber" name="L760" href="#L760">760</a> <em class="jxr_comment">     * @see javax.swing.JPopupMenu#show(java.awt.Component, int, int)</em>
<a class="jxr_linenumber" name="L761" href="#L761">761</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L762" href="#L762">762</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> show(<a href="../../../../../org/apache/log4j/spi/Component.html">Component</a> invoker, <strong class="jxr_keyword">int</strong> x, <strong class="jxr_keyword">int</strong> y) {
<a class="jxr_linenumber" name="L763" href="#L763">763</a>       DefaultMutableTreeNode node =
<a class="jxr_linenumber" name="L764" href="#L764">764</a>         (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent();
<a class="jxr_linenumber" name="L765" href="#L765">765</a> 
<a class="jxr_linenumber" name="L766" href="#L766">766</a>       <strong class="jxr_keyword">if</strong> (node == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L767" href="#L767">767</a>         <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L768" href="#L768">768</a>       }
<a class="jxr_linenumber" name="L769" href="#L769">769</a> 
<a class="jxr_linenumber" name="L770" href="#L770">770</a>       Object userObject = node.getUserObject();
<a class="jxr_linenumber" name="L771" href="#L771">771</a>       removeAll();
<a class="jxr_linenumber" name="L772" href="#L772">772</a> 
<a class="jxr_linenumber" name="L773" href="#L773">773</a>       <strong class="jxr_keyword">if</strong> (userObject == getRootOfTree().getUserObject()) {
<a class="jxr_linenumber" name="L774" href="#L774">774</a>         buildForReceiversRoot();
<a class="jxr_linenumber" name="L775" href="#L775">775</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (getCurrentlySelectedReceiver() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L776" href="#L776">776</a>         buildForReceiverNode();
<a class="jxr_linenumber" name="L777" href="#L777">777</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L778" href="#L778">778</a>         <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L779" href="#L779">779</a>       }
<a class="jxr_linenumber" name="L780" href="#L780">780</a> 
<a class="jxr_linenumber" name="L781" href="#L781">781</a>       <strong class="jxr_keyword">this</strong>.invalidate();
<a class="jxr_linenumber" name="L782" href="#L782">782</a>       <strong class="jxr_keyword">this</strong>.validate();
<a class="jxr_linenumber" name="L783" href="#L783">783</a> 
<a class="jxr_linenumber" name="L784" href="#L784">784</a>       <strong class="jxr_keyword">super</strong>.show(invoker, x, y);
<a class="jxr_linenumber" name="L785" href="#L785">785</a>     }
<a class="jxr_linenumber" name="L786" href="#L786">786</a> 
<a class="jxr_linenumber" name="L787" href="#L787">787</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L788" href="#L788">788</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L789" href="#L789">789</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L790" href="#L790">790</a>     <strong class="jxr_keyword">private</strong> DefaultMutableTreeNode getRootOfTree() {
<a class="jxr_linenumber" name="L791" href="#L791">791</a>       <strong class="jxr_keyword">return</strong> (DefaultMutableTreeNode) receiversTree.getModel().getRoot();
<a class="jxr_linenumber" name="L792" href="#L792">792</a>     }
<a class="jxr_linenumber" name="L793" href="#L793">793</a> 
<a class="jxr_linenumber" name="L794" href="#L794">794</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L795" href="#L795">795</a> <em class="jxr_javadoccomment">     * Builds the popup menu with relevant items for a selected</em>
<a class="jxr_linenumber" name="L796" href="#L796">796</a> <em class="jxr_javadoccomment">     * Receiver node in the Tree.</em>
<a class="jxr_linenumber" name="L797" href="#L797">797</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L798" href="#L798">798</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> buildForReceiverNode() {
<a class="jxr_linenumber" name="L799" href="#L799">799</a> 
<a class="jxr_linenumber" name="L800" href="#L800">800</a>       add(playReceiverButtonAction);
<a class="jxr_linenumber" name="L801" href="#L801">801</a>       add(pauseReceiverButtonAction);
<a class="jxr_linenumber" name="L802" href="#L802">802</a>       add(restartReceiverButtonAction);
<a class="jxr_linenumber" name="L803" href="#L803">803</a>       add(shutdownReceiverButtonAction);
<a class="jxr_linenumber" name="L804" href="#L804">804</a>       add(saveReceiversButtonAction);
<a class="jxr_linenumber" name="L805" href="#L805">805</a> 
<a class="jxr_linenumber" name="L806" href="#L806">806</a>       addSeparator();
<a class="jxr_linenumber" name="L807" href="#L807">807</a> 
<a class="jxr_linenumber" name="L808" href="#L808">808</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> r = getCurrentlySelectedReceiver();
<a class="jxr_linenumber" name="L809" href="#L809">809</a>       add(createLevelRadioButton(r, Level.TRACE));
<a class="jxr_linenumber" name="L810" href="#L810">810</a>       add(createLevelRadioButton(r, Level.DEBUG));
<a class="jxr_linenumber" name="L811" href="#L811">811</a>       add(createLevelRadioButton(r, Level.INFO));
<a class="jxr_linenumber" name="L812" href="#L812">812</a>       add(createLevelRadioButton(r, Level.WARN));
<a class="jxr_linenumber" name="L813" href="#L813">813</a>       add(createLevelRadioButton(r, Level.ERROR));
<a class="jxr_linenumber" name="L814" href="#L814">814</a>       addSeparator();
<a class="jxr_linenumber" name="L815" href="#L815">815</a>       add(createLevelRadioButton(r, Level.OFF));
<a class="jxr_linenumber" name="L816" href="#L816">816</a>       add(createLevelRadioButton(r, Level.ALL));
<a class="jxr_linenumber" name="L817" href="#L817">817</a>       addSeparator();
<a class="jxr_linenumber" name="L818" href="#L818">818</a>       add(showReceiverHelpAction);
<a class="jxr_linenumber" name="L819" href="#L819">819</a>     }
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 
<a class="jxr_linenumber" name="L821" href="#L821">821</a>     <strong class="jxr_keyword">private</strong> JRadioButtonMenuItem createLevelRadioButton(
<a class="jxr_linenumber" name="L822" href="#L822">822</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/plugins/Receiver.html">Receiver</a> r, <strong class="jxr_keyword">final</strong> Level l) {
<a class="jxr_linenumber" name="L823" href="#L823">823</a>       Map levelIconMap = LevelIconFactory.getInstance().getLevelToIconMap();
<a class="jxr_linenumber" name="L824" href="#L824">824</a> 
<a class="jxr_linenumber" name="L825" href="#L825">825</a>       Action action =
<a class="jxr_linenumber" name="L826" href="#L826">826</a>         <strong class="jxr_keyword">new</strong> AbstractAction(
<a class="jxr_linenumber" name="L827" href="#L827">827</a>           l.toString(), (Icon) levelIconMap.get(l.toString())) {
<a class="jxr_linenumber" name="L828" href="#L828">828</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L829" href="#L829">829</a>             <strong class="jxr_keyword">if</strong> (r != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L830" href="#L830">830</a>               r.setThreshold(l);
<a class="jxr_linenumber" name="L831" href="#L831">831</a>               updateCurrentlySelectedNodeInDispatchThread();
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             }
<a class="jxr_linenumber" name="L833" href="#L833">833</a>           }
<a class="jxr_linenumber" name="L834" href="#L834">834</a>         };
<a class="jxr_linenumber" name="L835" href="#L835">835</a> 
<a class="jxr_linenumber" name="L836" href="#L836">836</a>       JRadioButtonMenuItem item = <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(action);
<a class="jxr_linenumber" name="L837" href="#L837">837</a>       item.setSelected(r.getThreshold() == l);
<a class="jxr_linenumber" name="L838" href="#L838">838</a> 
<a class="jxr_linenumber" name="L839" href="#L839">839</a>       <strong class="jxr_keyword">return</strong> item;
<a class="jxr_linenumber" name="L840" href="#L840">840</a>     }
<a class="jxr_linenumber" name="L841" href="#L841">841</a> 
<a class="jxr_linenumber" name="L842" href="#L842">842</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L843" href="#L843">843</a> <em class="jxr_javadoccomment">     * Builds a relevant set of menus for when the Root node in the Receiver</em>
<a class="jxr_linenumber" name="L844" href="#L844">844</a> <em class="jxr_javadoccomment">     * tree has been selected</em>
<a class="jxr_linenumber" name="L845" href="#L845">845</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L846" href="#L846">846</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L847" href="#L847">847</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> buildForReceiversRoot() {
<a class="jxr_linenumber" name="L848" href="#L848">848</a>       JMenuItem startAll = <strong class="jxr_keyword">new</strong> JMenuItem(startAllAction);
<a class="jxr_linenumber" name="L849" href="#L849">849</a> 
<a class="jxr_linenumber" name="L850" href="#L850">850</a>       add(newReceiverButtonAction);
<a class="jxr_linenumber" name="L851" href="#L851">851</a> 
<a class="jxr_linenumber" name="L852" href="#L852">852</a>       addSeparator();
<a class="jxr_linenumber" name="L853" href="#L853">853</a>       add(startAll);
<a class="jxr_linenumber" name="L854" href="#L854">854</a>     }
<a class="jxr_linenumber" name="L855" href="#L855">855</a>   }
<a class="jxr_linenumber" name="L856" href="#L856">856</a> 
<a class="jxr_linenumber" name="L857" href="#L857">857</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L858" href="#L858">858</a> <em class="jxr_javadoccomment">   * A simple Panel that has toolbar buttons for restarting,</em>
<a class="jxr_linenumber" name="L859" href="#L859">859</a> <em class="jxr_javadoccomment">   * playing, pausing, and stoping receivers</em>
<a class="jxr_linenumber" name="L860" href="#L860">860</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L861" href="#L861">861</a> <em class="jxr_javadoccomment">   * @author Paul Smith &amp;lt;psmith@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L862" href="#L862">862</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L863" href="#L863">863</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L864" href="#L864">864</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverToolbar</a> <strong class="jxr_keyword">extends</strong> JToolBar
<a class="jxr_linenumber" name="L865" href="#L865">865</a>     <strong class="jxr_keyword">implements</strong> TreeSelectionListener {
<a class="jxr_linenumber" name="L866" href="#L866">866</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> newReceiverButton;
<a class="jxr_linenumber" name="L867" href="#L867">867</a> 
<a class="jxr_linenumber" name="L868" href="#L868">868</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/log4j/chainsaw/receivers/ReceiversPanel.html">ReceiverToolbar</a>() {
<a class="jxr_linenumber" name="L869" href="#L869">869</a>       setFloatable(false);
<a class="jxr_linenumber" name="L870" href="#L870">870</a> 
<a class="jxr_linenumber" name="L871" href="#L871">871</a>       <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> restartReceiverButton = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(restartReceiverButtonAction);
<a class="jxr_linenumber" name="L872" href="#L872">872</a>       restartReceiverButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L873" href="#L873">873</a>       
<a class="jxr_linenumber" name="L874" href="#L874">874</a>       <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> shutdownReceiverButton =
<a class="jxr_linenumber" name="L875" href="#L875">875</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(shutdownReceiverButtonAction);
<a class="jxr_linenumber" name="L876" href="#L876">876</a>       shutdownReceiverButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L877" href="#L877">877</a> 
<a class="jxr_linenumber" name="L878" href="#L878">878</a>       <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> saveReceiversButton =
<a class="jxr_linenumber" name="L879" href="#L879">879</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(saveReceiversButtonAction);
<a class="jxr_linenumber" name="L880" href="#L880">880</a>       saveReceiversButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L881" href="#L881">881</a> 
<a class="jxr_linenumber" name="L882" href="#L882">882</a>       <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> restartAllButton = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(startAllAction);
<a class="jxr_linenumber" name="L883" href="#L883">883</a>       restartAllButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L884" href="#L884">884</a>       
<a class="jxr_linenumber" name="L885" href="#L885">885</a>       
<a class="jxr_linenumber" name="L886" href="#L886">886</a> 
<a class="jxr_linenumber" name="L887" href="#L887">887</a>       newReceiverButton = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(newReceiverButtonAction);
<a class="jxr_linenumber" name="L888" href="#L888">888</a>       newReceiverButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L889" href="#L889">889</a>       newReceiverButton.addMouseListener(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a>(newReceiverPopup));
<a class="jxr_linenumber" name="L890" href="#L890">890</a> 
<a class="jxr_linenumber" name="L891" href="#L891">891</a>       add(newReceiverButton);
<a class="jxr_linenumber" name="L892" href="#L892">892</a>       add(restartAllButton);
<a class="jxr_linenumber" name="L893" href="#L893">893</a> 
<a class="jxr_linenumber" name="L894" href="#L894">894</a>       addSeparator();
<a class="jxr_linenumber" name="L895" href="#L895">895</a> 
<a class="jxr_linenumber" name="L896" href="#L896">896</a>       add(restartReceiverButton);
<a class="jxr_linenumber" name="L897" href="#L897">897</a>       add(shutdownReceiverButton);
<a class="jxr_linenumber" name="L898" href="#L898">898</a>       add(saveReceiversButton);
<a class="jxr_linenumber" name="L899" href="#L899">899</a> 
<a class="jxr_linenumber" name="L900" href="#L900">900</a>       addSeparator();
<a class="jxr_linenumber" name="L901" href="#L901">901</a> 
<a class="jxr_linenumber" name="L902" href="#L902">902</a>       Action closeAction =
<a class="jxr_linenumber" name="L903" href="#L903">903</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<strong class="jxr_keyword">null</strong>, LineIconFactory.createCloseIcon()) {
<a class="jxr_linenumber" name="L904" href="#L904">904</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L905" href="#L905">905</a>             ReceiversPanel.<strong class="jxr_keyword">this</strong>.setVisible(false);
<a class="jxr_linenumber" name="L906" href="#L906">906</a>           }
<a class="jxr_linenumber" name="L907" href="#L907">907</a>         };
<a class="jxr_linenumber" name="L908" href="#L908">908</a> 
<a class="jxr_linenumber" name="L909" href="#L909">909</a>       closeAction.putValue(
<a class="jxr_linenumber" name="L910" href="#L910">910</a>         Action.SHORT_DESCRIPTION, <span class="jxr_string">"Closes the Receiver panel"</span>);
<a class="jxr_linenumber" name="L911" href="#L911">911</a> 
<a class="jxr_linenumber" name="L912" href="#L912">912</a>       add(Box.createHorizontalGlue());
<a class="jxr_linenumber" name="L913" href="#L913">913</a> 
<a class="jxr_linenumber" name="L914" href="#L914">914</a>       add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(closeAction));
<a class="jxr_linenumber" name="L915" href="#L915">915</a> 
<a class="jxr_linenumber" name="L916" href="#L916">916</a>       add(Box.createHorizontalStrut(5));
<a class="jxr_linenumber" name="L917" href="#L917">917</a>     }
<a class="jxr_linenumber" name="L918" href="#L918">918</a> 
<a class="jxr_linenumber" name="L919" href="#L919">919</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L920" href="#L920">920</a> <em class="jxr_javadoccomment">     * Ensures the enabled property of the actions is set properly</em>
<a class="jxr_linenumber" name="L921" href="#L921">921</a> <em class="jxr_javadoccomment">     * according to the currently selected node in the tree</em>
<a class="jxr_linenumber" name="L922" href="#L922">922</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L923" href="#L923">923</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> valueChanged(TreeSelectionEvent e) {
<a class="jxr_linenumber" name="L924" href="#L924">924</a>       updateActions();
<a class="jxr_linenumber" name="L925" href="#L925">925</a>     }
<a class="jxr_linenumber" name="L926" href="#L926">926</a>   }
<a class="jxr_linenumber" name="L927" href="#L927">927</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2002&#x2013;2017 <a href="http://www.apache.org">Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
