<!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=ISO-8859-1" />
<title>CategoryNodeEditor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditor.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.lf5.viewer.categoryexplorer;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.awt.Component;
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionEvent;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionListener;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseAdapter;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseEvent;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> javax.swing.JCheckBox;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.swing.JMenuItem;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.swing.JOptionPane;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPopupMenu;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.swing.JTree;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.swing.tree.TreePath;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">/**</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * CategoryNodeEditor</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> *</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @author Michael J. Sikorsky</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @author Robert Shaw</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> */</em>
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  <em class="jxr_comment">// Contributed by ThoughtWorks Inc.</em>
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditor.html">CategoryNodeEditor</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryAbstractCellEditor.html">CategoryAbstractCellEditor</a> {
<a name="44" href="#44">44</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="45" href="#45">45</a>    <em class="jxr_comment">//   Constants:</em>
<a name="46" href="#46">46</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="49" href="#49">49</a>    <em class="jxr_comment">//   Protected Variables:</em>
<a name="50" href="#50">50</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="51" href="#51">51</a>    <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditorRenderer.html">CategoryNodeEditorRenderer</a> _renderer;
<a name="52" href="#52">52</a>    <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> _lastEditedNode;
<a name="53" href="#53">53</a>    <strong class="jxr_keyword">protected</strong> JCheckBox _checkBox;
<a name="54" href="#54">54</a>    <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryExplorerModel.html">CategoryExplorerModel</a> _categoryModel;
<a name="55" href="#55">55</a>    <strong class="jxr_keyword">protected</strong> JTree _tree;
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="58" href="#58">58</a>    <em class="jxr_comment">//   Private Variables:</em>
<a name="59" href="#59">59</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="62" href="#62">62</a>    <em class="jxr_comment">//   Constructors:</em>
<a name="63" href="#63">63</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditor.html">CategoryNodeEditor</a>(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryExplorerModel.html">CategoryExplorerModel</a> model) {
<a name="66" href="#66">66</a>      _renderer = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditorRenderer.html">CategoryNodeEditorRenderer</a>();
<a name="67" href="#67">67</a>      _checkBox = _renderer.getCheckBox();
<a name="68" href="#68">68</a>      _categoryModel = model;
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>      _checkBox.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener() {
<a name="71" href="#71">71</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="72" href="#72">72</a>          _categoryModel.update(_lastEditedNode, _checkBox.isSelected());
<a name="73" href="#73">73</a>          stopCellEditing();
<a name="74" href="#74">74</a>        }
<a name="75" href="#75">75</a>      });
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>      _renderer.addMouseListener(<strong class="jxr_keyword">new</strong> MouseAdapter() {
<a name="78" href="#78">78</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mousePressed(MouseEvent e) {
<a name="79" href="#79">79</a>          <strong class="jxr_keyword">if</strong> ((e.getModifiers() &amp; MouseEvent.BUTTON3_MASK) != 0) {
<a name="80" href="#80">80</a>            showPopup(_lastEditedNode, e.getX(), e.getY());
<a name="81" href="#81">81</a>          }
<a name="82" href="#82">82</a>          stopCellEditing();
<a name="83" href="#83">83</a>        }
<a name="84" href="#84">84</a>      });
<a name="85" href="#85">85</a>    }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="88" href="#88">88</a>    <em class="jxr_comment">//   Public Methods:</em>
<a name="89" href="#89">89</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>    <strong class="jxr_keyword">public</strong> Component getTreeCellEditorComponent(JTree tree, Object value,
<a name="92" href="#92">92</a>        <strong class="jxr_keyword">boolean</strong> selected, <strong class="jxr_keyword">boolean</strong> expanded,
<a name="93" href="#93">93</a>        <strong class="jxr_keyword">boolean</strong> leaf, <strong class="jxr_keyword">int</strong> row) {
<a name="94" href="#94">94</a>      _lastEditedNode = (CategoryNode) value;
<a name="95" href="#95">95</a>      _tree = tree;
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>      <strong class="jxr_keyword">return</strong> _renderer.getTreeCellRendererComponent(tree,
<a name="98" href="#98">98</a>          value, selected, expanded,
<a name="99" href="#99">99</a>          leaf, row, <strong class="jxr_keyword">true</strong>);
<a name="100" href="#100">100</a>     <em class="jxr_comment">// hasFocus ignored</em>
<a name="101" href="#101">101</a>   }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>   <strong class="jxr_keyword">public</strong> Object getCellEditorValue() {
<a name="104" href="#104">104</a>     <strong class="jxr_keyword">return</strong> _lastEditedNode.getUserObject();
<a name="105" href="#105">105</a>   }
<a name="106" href="#106">106</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="107" href="#107">107</a>   <em class="jxr_comment">//   Protected Methods:</em>
<a name="108" href="#108">108</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createPropertiesMenuItem(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="111" href="#111">111</a>     JMenuItem result = <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Properties"</span>);
<a name="112" href="#112">112</a>     result.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener() {
<a name="113" href="#113">113</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="114" href="#114">114</a>         showPropertiesDialog(node);
<a name="115" href="#115">115</a>       }
<a name="116" href="#116">116</a>     });
<a name="117" href="#117">117</a>     <strong class="jxr_keyword">return</strong> result;
<a name="118" href="#118">118</a>   }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> showPropertiesDialog(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="121" href="#121">121</a>     JOptionPane.showMessageDialog(
<a name="122" href="#122">122</a>         _tree,
<a name="123" href="#123">123</a>         getDisplayedProperties(node),
<a name="124" href="#124">124</a>         <span class="jxr_string">"Category Properties: "</span> + node.getTitle(),
<a name="125" href="#125">125</a>         JOptionPane.PLAIN_MESSAGE
<a name="126" href="#126">126</a>     );
<a name="127" href="#127">127</a>   }
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>   <strong class="jxr_keyword">protected</strong> Object getDisplayedProperties(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="130" href="#130">130</a>     ArrayList result = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="131" href="#131">131</a>     result.add(<span class="jxr_string">"Category: "</span> + node.getTitle());
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">if</strong> (node.hasFatalRecords()) {
<a name="133" href="#133">133</a>       result.add(<span class="jxr_string">"Contains at least one fatal LogRecord."</span>);
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a>     <strong class="jxr_keyword">if</strong> (node.hasFatalChildren()) {
<a name="136" href="#136">136</a>       result.add(<span class="jxr_string">"Contains descendants with a fatal LogRecord."</span>);
<a name="137" href="#137">137</a>     }
<a name="138" href="#138">138</a>     result.add(<span class="jxr_string">"LogRecords in this category alone: "</span> +
<a name="139" href="#139">139</a>         node.getNumberOfContainedRecords());
<a name="140" href="#140">140</a>     result.add(<span class="jxr_string">"LogRecords in descendant categories: "</span> +
<a name="141" href="#141">141</a>         node.getNumberOfRecordsFromChildren());
<a name="142" href="#142">142</a>     result.add(<span class="jxr_string">"LogRecords in this category including descendants: "</span> +
<a name="143" href="#143">143</a>         node.getTotalNumberOfRecords());
<a name="144" href="#144">144</a>     <strong class="jxr_keyword">return</strong> result.toArray();
<a name="145" href="#145">145</a>   }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> showPopup(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node, <strong class="jxr_keyword">int</strong> x, <strong class="jxr_keyword">int</strong> y) {
<a name="148" href="#148">148</a>     JPopupMenu popup = <strong class="jxr_keyword">new</strong> JPopupMenu();
<a name="149" href="#149">149</a>     popup.setSize(150, 400);
<a name="150" href="#150">150</a>     <em class="jxr_comment">//</em>
<a name="151" href="#151">151</a>     <em class="jxr_comment">// Configure the Popup</em>
<a name="152" href="#152">152</a>     <em class="jxr_comment">//</em>
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">if</strong> (node.getParent() == <strong class="jxr_keyword">null</strong>) {
<a name="154" href="#154">154</a>       popup.add(createRemoveMenuItem());
<a name="155" href="#155">155</a>       popup.addSeparator();
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a>     popup.add(createSelectDescendantsMenuItem(node));
<a name="158" href="#158">158</a>     popup.add(createUnselectDescendantsMenuItem(node));
<a name="159" href="#159">159</a>     popup.addSeparator();
<a name="160" href="#160">160</a>     popup.add(createExpandMenuItem(node));
<a name="161" href="#161">161</a>     popup.add(createCollapseMenuItem(node));
<a name="162" href="#162">162</a>     popup.addSeparator();
<a name="163" href="#163">163</a>     popup.add(createPropertiesMenuItem(node));
<a name="164" href="#164">164</a>     popup.show(_renderer, x, y);
<a name="165" href="#165">165</a>   }
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createSelectDescendantsMenuItem(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="168" href="#168">168</a>     JMenuItem selectDescendants =
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Select All Descendant Categories"</span>);
<a name="170" href="#170">170</a>     selectDescendants.addActionListener(
<a name="171" href="#171">171</a>         <strong class="jxr_keyword">new</strong> ActionListener() {
<a name="172" href="#172">172</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="173" href="#173">173</a>             _categoryModel.setDescendantSelection(node, <strong class="jxr_keyword">true</strong>);
<a name="174" href="#174">174</a>           }
<a name="175" href="#175">175</a>         }
<a name="176" href="#176">176</a>     );
<a name="177" href="#177">177</a>     <strong class="jxr_keyword">return</strong> selectDescendants;
<a name="178" href="#178">178</a>   }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createUnselectDescendantsMenuItem(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="181" href="#181">181</a>     JMenuItem unselectDescendants =
<a name="182" href="#182">182</a>         <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Deselect All Descendant Categories"</span>);
<a name="183" href="#183">183</a>     unselectDescendants.addActionListener(
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>         <strong class="jxr_keyword">new</strong> ActionListener() {
<a name="186" href="#186">186</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="187" href="#187">187</a>             _categoryModel.setDescendantSelection(node, false);
<a name="188" href="#188">188</a>           }
<a name="189" href="#189">189</a>         }
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>     );
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">return</strong> unselectDescendants;
<a name="193" href="#193">193</a>   }
<a name="194" href="#194">194</a> 
<a name="195" href="#195">195</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createExpandMenuItem(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="196" href="#196">196</a>     JMenuItem result = <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Expand All Descendant Categories"</span>);
<a name="197" href="#197">197</a>     result.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener() {
<a name="198" href="#198">198</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="199" href="#199">199</a>         expandDescendants(node);
<a name="200" href="#200">200</a>       }
<a name="201" href="#201">201</a>     });
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">return</strong> result;
<a name="203" href="#203">203</a>   }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createCollapseMenuItem(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="206" href="#206">206</a>     JMenuItem result = <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Collapse All Descendant Categories"</span>);
<a name="207" href="#207">207</a>     result.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener() {
<a name="208" href="#208">208</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="209" href="#209">209</a>         collapseDescendants(node);
<a name="210" href="#210">210</a>       }
<a name="211" href="#211">211</a>     });
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">return</strong> result;
<a name="213" href="#213">213</a>   }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>   <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">   * This featured was moved from the LogBrokerMonitor class</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">   * to the CategoryNodeExplorer so that the Category tree</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">   * could be pruned from the Category Explorer popup menu.</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">   * This menu option only appears when a user right clicks on</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">   * the Category parent node.</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">   *</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">   * See removeUnusedNodes()</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">   */</em>
<a name="224" href="#224">224</a>   <strong class="jxr_keyword">protected</strong> JMenuItem createRemoveMenuItem() {
<a name="225" href="#225">225</a>     JMenuItem result = <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Remove All Empty Categories"</span>);
<a name="226" href="#226">226</a>     result.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener() {
<a name="227" href="#227">227</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">while</strong> (removeUnusedNodes() &gt; 0) ;
<a name="229" href="#229">229</a>       }
<a name="230" href="#230">230</a>     });
<a name="231" href="#231">231</a>     <strong class="jxr_keyword">return</strong> result;
<a name="232" href="#232">232</a>   }
<a name="233" href="#233">233</a> 
<a name="234" href="#234">234</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> expandDescendants(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="235" href="#235">235</a>     Enumeration descendants = node.depthFirstEnumeration();
<a name="236" href="#236">236</a>     <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> current;
<a name="237" href="#237">237</a>     <strong class="jxr_keyword">while</strong> (descendants.hasMoreElements()) {
<a name="238" href="#238">238</a>       current = (CategoryNode) descendants.nextElement();
<a name="239" href="#239">239</a>       expand(current);
<a name="240" href="#240">240</a>     }
<a name="241" href="#241">241</a>   }
<a name="242" href="#242">242</a> 
<a name="243" href="#243">243</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> collapseDescendants(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="244" href="#244">244</a>     Enumeration descendants = node.depthFirstEnumeration();
<a name="245" href="#245">245</a>     <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> current;
<a name="246" href="#246">246</a>     <strong class="jxr_keyword">while</strong> (descendants.hasMoreElements()) {
<a name="247" href="#247">247</a>       current = (CategoryNode) descendants.nextElement();
<a name="248" href="#248">248</a>       collapse(current);
<a name="249" href="#249">249</a>     }
<a name="250" href="#250">250</a>   }
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>   <em class="jxr_javadoccomment">/**</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">   * Removes any inactive nodes from the Category tree.</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">   */</em>
<a name="255" href="#255">255</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> removeUnusedNodes() {
<a name="256" href="#256">256</a>     <strong class="jxr_keyword">int</strong> count = 0;
<a name="257" href="#257">257</a>     <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> root = _categoryModel.getRootCategoryNode();
<a name="258" href="#258">258</a>     Enumeration enumeration = root.depthFirstEnumeration();
<a name="259" href="#259">259</a>     <strong class="jxr_keyword">while</strong> (enumeration.hasMoreElements()) {
<a name="260" href="#260">260</a>       <a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node = (CategoryNode) enumeration.nextElement();
<a name="261" href="#261">261</a>       <strong class="jxr_keyword">if</strong> (node.isLeaf() &amp;&amp; node.getNumberOfContainedRecords() == 0
<a name="262" href="#262">262</a>           &amp;&amp; node.getParent() != <strong class="jxr_keyword">null</strong>) {
<a name="263" href="#263">263</a>         _categoryModel.removeNodeFromParent(node);
<a name="264" href="#264">264</a>         count++;
<a name="265" href="#265">265</a>       }
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <strong class="jxr_keyword">return</strong> count;
<a name="269" href="#269">269</a>   }
<a name="270" href="#270">270</a> 
<a name="271" href="#271">271</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> expand(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="272" href="#272">272</a>     _tree.expandPath(getTreePath(node));
<a name="273" href="#273">273</a>   }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>   <strong class="jxr_keyword">protected</strong> TreePath getTreePath(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="276" href="#276">276</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> TreePath(node.getPath());
<a name="277" href="#277">277</a>   }
<a name="278" href="#278">278</a> 
<a name="279" href="#279">279</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> collapse(<a href="../../../../../../org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNode.html">CategoryNode</a> node) {
<a name="280" href="#280">280</a>     _tree.collapsePath(getTreePath(node));
<a name="281" href="#281">281</a>   }
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>   <em class="jxr_comment">//-----------------------------------------------------------------------</em>
<a name="284" href="#284">284</a>   <em class="jxr_comment">//   Private Methods:</em>
<a name="285" href="#285">285</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="286" href="#286">286</a> 
<a name="287" href="#287">287</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="288" href="#288">288</a>   <em class="jxr_comment">//   Nested Top-Level Classes or Interfaces:</em>
<a name="289" href="#289">289</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

