<!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>LogPanel xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/chainsaw/LogPanel.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;
<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.BorderLayout;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.awt.Color;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.awt.Component;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.awt.Container;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.awt.Dimension;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.awt.EventQueue;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.awt.Font;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.awt.FontMetrics;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.awt.Graphics;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.awt.Point;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.awt.Toolkit;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> java.awt.Window;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.awt.datatransfer.Clipboard;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.awt.datatransfer.StringSelection;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionEvent;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.awt.event.ActionListener;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.awt.event.FocusEvent;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.awt.event.FocusListener;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.awt.event.InputEvent;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.awt.event.KeyEvent;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.awt.event.KeyListener;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseAdapter;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseEvent;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseListener;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseMotionAdapter;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> java.awt.event.WindowAdapter;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> java.awt.event.WindowEvent;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyChangeEvent;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyChangeListener;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> java.io.EOFException;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> java.io.FileReader;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> java.io.ObjectInputStream;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> java.io.ObjectOutputStream;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> java.io.StringReader;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> java.io.UnsupportedEncodingException;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> java.net.URLEncoder;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> java.text.DateFormat;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> java.text.NumberFormat;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> java.util.EventObject;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.util.StringTokenizer;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> javax.swing.AbstractAction;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> javax.swing.AbstractListModel;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> javax.swing.Action;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> javax.swing.BorderFactory;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> javax.swing.Box;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> javax.swing.BoxLayout;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> javax.swing.ButtonGroup;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> javax.swing.ComboBoxEditor;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> javax.swing.ImageIcon;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <strong class="jxr_keyword">import</strong> javax.swing.JButton;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <strong class="jxr_keyword">import</strong> javax.swing.JCheckBoxMenuItem;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <strong class="jxr_keyword">import</strong> javax.swing.JColorChooser;
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <strong class="jxr_keyword">import</strong> javax.swing.JComboBox;
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <strong class="jxr_keyword">import</strong> javax.swing.JComponent;
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <strong class="jxr_keyword">import</strong> javax.swing.JDialog;
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <strong class="jxr_keyword">import</strong> javax.swing.JEditorPane;
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <strong class="jxr_keyword">import</strong> javax.swing.JFrame;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <strong class="jxr_keyword">import</strong> javax.swing.JLabel;
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <strong class="jxr_keyword">import</strong> javax.swing.JMenuItem;
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPanel;
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPopupMenu;
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <strong class="jxr_keyword">import</strong> javax.swing.JRadioButtonMenuItem;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <strong class="jxr_keyword">import</strong> javax.swing.JScrollPane;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <strong class="jxr_keyword">import</strong> javax.swing.JSeparator;
<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">import</strong> javax.swing.JSplitPane;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> <strong class="jxr_keyword">import</strong> javax.swing.JTable;
<a class="jxr_linenumber" name="L102" href="#L102">102</a> <strong class="jxr_keyword">import</strong> javax.swing.JTextField;
<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">import</strong> javax.swing.JToolBar;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">import</strong> javax.swing.KeyStroke;
<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">import</strong> javax.swing.ListSelectionModel;
<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">import</strong> javax.swing.MutableComboBoxModel;
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <strong class="jxr_keyword">import</strong> javax.swing.SwingConstants;
<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">import</strong> javax.swing.SwingUtilities;
<a class="jxr_linenumber" name="L109" href="#L109">109</a> <strong class="jxr_keyword">import</strong> javax.swing.UIManager;
<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">import</strong> javax.swing.WindowConstants;
<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">import</strong> javax.swing.event.CellEditorListener;
<a class="jxr_linenumber" name="L112" href="#L112">112</a> <strong class="jxr_keyword">import</strong> javax.swing.event.ChangeEvent;
<a class="jxr_linenumber" name="L113" href="#L113">113</a> <strong class="jxr_keyword">import</strong> javax.swing.event.DocumentEvent;
<a class="jxr_linenumber" name="L114" href="#L114">114</a> <strong class="jxr_keyword">import</strong> javax.swing.event.DocumentListener;
<a class="jxr_linenumber" name="L115" href="#L115">115</a> <strong class="jxr_keyword">import</strong> javax.swing.event.ListSelectionEvent;
<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">import</strong> javax.swing.event.ListSelectionListener;
<a class="jxr_linenumber" name="L117" href="#L117">117</a> <strong class="jxr_keyword">import</strong> javax.swing.event.PopupMenuEvent;
<a class="jxr_linenumber" name="L118" href="#L118">118</a> <strong class="jxr_keyword">import</strong> javax.swing.event.PopupMenuListener;
<a class="jxr_linenumber" name="L119" href="#L119">119</a> <strong class="jxr_keyword">import</strong> javax.swing.event.TableColumnModelEvent;
<a class="jxr_linenumber" name="L120" href="#L120">120</a> <strong class="jxr_keyword">import</strong> javax.swing.event.TableColumnModelListener;
<a class="jxr_linenumber" name="L121" href="#L121">121</a> <strong class="jxr_keyword">import</strong> javax.swing.event.TableModelEvent;
<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">import</strong> javax.swing.event.TableModelListener;
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">import</strong> javax.swing.table.TableCellEditor;
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">import</strong> javax.swing.table.TableColumn;
<a class="jxr_linenumber" name="L125" href="#L125">125</a> <strong class="jxr_keyword">import</strong> javax.swing.table.TableColumnModel;
<a class="jxr_linenumber" name="L126" href="#L126">126</a> <strong class="jxr_keyword">import</strong> javax.swing.text.Document;
<a class="jxr_linenumber" name="L127" href="#L127">127</a> 
<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.LogManager;
<a class="jxr_linenumber" name="L130" href="#L130">130</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a class="jxr_linenumber" name="L131" href="#L131">131</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.PatternLayout;
<a class="jxr_linenumber" name="L132" href="#L132">132</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.color.ColorPanel;
<a class="jxr_linenumber" name="L133" href="#L133">133</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.color.RuleColorizer;
<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.filter.FilterModel;
<a class="jxr_linenumber" name="L135" href="#L135">135</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.helper.SwingHelper;
<a class="jxr_linenumber" name="L136" href="#L136">136</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.icons.ChainsawIcons;
<a class="jxr_linenumber" name="L137" href="#L137">137</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.icons.LineIconFactory;
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.layout.DefaultLayoutFactory;
<a class="jxr_linenumber" name="L139" href="#L139">139</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.layout.EventDetailLayout;
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.layout.LayoutEditorPane;
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.messages.MessageCenter;
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.LoadSettingsEvent;
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.Profileable;
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.SaveSettingsEvent;
<a class="jxr_linenumber" name="L145" href="#L145">145</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.prefs.SettingsManager;
<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.xstream.TableColumnConverter;
<a class="jxr_linenumber" name="L147" href="#L147">147</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.Constants;
<a class="jxr_linenumber" name="L148" href="#L148">148</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.rule.ColorRule;
<a class="jxr_linenumber" name="L149" href="#L149">149</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.rule.ExpressionRule;
<a class="jxr_linenumber" name="L150" href="#L150">150</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.rule.Rule;
<a class="jxr_linenumber" name="L151" href="#L151">151</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a class="jxr_linenumber" name="L152" href="#L152">152</a> <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEventFieldResolver;
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a> <strong class="jxr_keyword">import</strong> com.thoughtworks.xstream.XStream;
<a class="jxr_linenumber" name="L155" href="#L155">155</a> <strong class="jxr_keyword">import</strong> com.thoughtworks.xstream.io.xml.DomDriver;
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
<a class="jxr_linenumber" name="L158" href="#L158">158</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_javadoccomment"> * A LogPanel provides a view to a collection of LoggingEvents.&lt;br&gt;</em>
<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment"> * &lt;br&gt;</em>
<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment"> * As events are received, the keywords in the 'tab identifier' application</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment"> * preference  are replaced with the values from the received event.  The</em>
<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment"> * main application uses  this expression to route received LoggingEvents to</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment"> * individual LogPanels which  match each event's resolved expression.&lt;br&gt;</em>
<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment"> * &lt;br&gt;</em>
<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment"> * The LogPanel's capabilities can be broken up into four areas:&lt;br&gt;</em>
<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment"> * &lt;ul&gt;&lt;li&gt; toolbar - provides 'find' and 'refine focus' features</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment"> * &lt;li&gt; logger tree - displays a tree of the logger hierarchy, which can be used</em>
<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment"> * to filter the display</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment"> * &lt;li&gt; table - displays the events which pass the filtering rules</em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment"> * &lt;li&gt;detail panel - displays information about the currently selected event</em>
<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment"> * Here is a complete list of LogPanel's capabilities:&lt;br&gt;</em>
<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment"> * &lt;ul&gt;&lt;li&gt;display selected LoggingEvent row number and total LoggingEvent count</em>
<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment"> * &lt;li&gt;pause or unpause reception of LoggingEvents</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment"> * &lt;li&gt;configure, load and save column settings (displayed columns, order, width)</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment"> * &lt;li&gt;configure, load and save color rules</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment"> * filter displayed LoggingEvents based on the logger tree settings</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment"> * &lt;li&gt;filter displayed LoggingEvents based on a 'refine focus' expression</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment"> * (evaluates only those LoggingEvents which pass the logger tree filter</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment"> * &lt;li&gt;colorize LoggingEvents based on expressions</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment"> * &lt;li&gt;hide, show and configure the detail pane and tooltip</em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment"> * &lt;li&gt;configure the formatting of the logger, level and timestamp fields</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment"> * &lt;li&gt;dock or undock</em>
<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment"> * &lt;li&gt;table displays first line of exception, but when cell is clicked, a</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment"> * popup opens to display the full stack trace</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a> <em class="jxr_javadoccomment"> * &lt;li&gt;find</em>
<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment"> * &lt;li&gt;scroll to bottom</em>
<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment"> * &lt;li&gt;sort</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment"> * &lt;li&gt;provide a context menu which can be used to build color or display expressions</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment"> * &lt;li&gt;hide or show the logger tree</em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment"> * &lt;li&gt;toggle the container storing the LoggingEvents to use either a</em>
<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment"> * CyclicBuffer (defaults to max size of 5000,  but configurable  through</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment"> * CHAINSAW_CAPACITY system property) or ArrayList (no max size)</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment"> * &lt;li&gt;use the mouse context menu to 'best-fit' columns, define display</em>
<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment"> * expression filters based on mouse location and access other capabilities</em>
<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment"> *&lt;/ul&gt;</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment"> *@see org.apache.log4j.chainsaw.color.ColorPanel</em>
<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment"> *@see org.apache.log4j.rule.ExpressionRule</em>
<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment"> *@see org.apache.log4j.spi.LoggingEventFieldResolver</em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment"> *@author Scott Deboy (sdeboy at apache.org)</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment"> *@author Paul Smith (psmith at apache.org)</em>
<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment"> *@author Stephen Pain</em>
<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_javadoccomment"> *@author Isuru Suriarachchi</em>
<a class="jxr_linenumber" name="L207" href="#L207">207</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L208" href="#L208">208</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L209" href="#L209">209</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanel</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/chainsaw/DockablePanel.html">DockablePanel</a> <strong class="jxr_keyword">implements</strong> EventBatchListener, <a href="../../../../org/apache/log4j/chainsaw/prefs/Profileable.html">Profileable</a> {
<a class="jxr_linenumber" name="L210" href="#L210">210</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> DateFormat TIMESTAMP_DATE_FORMAT = <strong class="jxr_keyword">new</strong> SimpleDateFormat(Constants.TIMESTAMP_RULE_FORMAT);
<a class="jxr_linenumber" name="L211" href="#L211">211</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> DEFAULT_DETAIL_SPLIT_LOCATION = 0.71d;
<a class="jxr_linenumber" name="L212" href="#L212">212</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> DEFAULT_LOG_TREE_SPLIT_LOCATION = 0.2d;
<a class="jxr_linenumber" name="L213" href="#L213">213</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String identifier;
<a class="jxr_linenumber" name="L214" href="#L214">214</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/ChainsawStatusBar.html">ChainsawStatusBar</a> statusBar;
<a class="jxr_linenumber" name="L215" href="#L215">215</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JFrame logPanelPreferencesFrame = <strong class="jxr_keyword">new</strong> JFrame();
<a class="jxr_linenumber" name="L216" href="#L216">216</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a> colorPanel;
<a class="jxr_linenumber" name="L217" href="#L217">217</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JFrame colorFrame = <strong class="jxr_keyword">new</strong> JFrame();
<a class="jxr_linenumber" name="L218" href="#L218">218</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JFrame undockedFrame;
<a class="jxr_linenumber" name="L219" href="#L219">219</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/DockablePanel.html">DockablePanel</a> externalPanel;
<a class="jxr_linenumber" name="L220" href="#L220">220</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Action dockingAction;
<a class="jxr_linenumber" name="L221" href="#L221">221</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JToolBar undockedToolbar;
<a class="jxr_linenumber" name="L222" href="#L222">222</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a> table;
<a class="jxr_linenumber" name="L223" href="#L223">223</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a> renderer;
<a class="jxr_linenumber" name="L224" href="#L224">224</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> tableModel;
<a class="jxr_linenumber" name="L225" href="#L225">225</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JEditorPane detail;
<a class="jxr_linenumber" name="L226" href="#L226">226</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JSplitPane lowerPanel;
<a class="jxr_linenumber" name="L227" href="#L227">227</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DetailPaneUpdater</a> detailPaneUpdater;
<a class="jxr_linenumber" name="L228" href="#L228">228</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JPanel detailPanel = <strong class="jxr_keyword">new</strong> JPanel(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L229" href="#L229">229</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JSplitPane nameTreeAndMainPanelSplit;
<a class="jxr_linenumber" name="L230" href="#L230">230</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggerNameTreePanel.html">LoggerNameTreePanel</a> logTreePanel;
<a class="jxr_linenumber" name="L231" href="#L231">231</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a> preferenceModel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a>();
<a class="jxr_linenumber" name="L232" href="#L232">232</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/ApplicationPreferenceModel.html">ApplicationPreferenceModel</a> applicationPreferenceModel;
<a class="jxr_linenumber" name="L233" href="#L233">233</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferencePanel.html">LogPanelPreferencePanel</a> logPanelPreferencesPanel;
<a class="jxr_linenumber" name="L234" href="#L234">234</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/filter/FilterModel.html">FilterModel</a> filterModel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/filter/FilterModel.html">FilterModel</a>();
<a class="jxr_linenumber" name="L235" href="#L235">235</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/color/RuleColorizer.html">RuleColorizer</a> colorizer = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/color/RuleColorizer.html">RuleColorizer</a>();
<a class="jxr_linenumber" name="L236" href="#L236">236</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/RuleMediator.html">RuleMediator</a> tableRuleMediator = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/RuleMediator.html">RuleMediator</a>(false);
<a class="jxr_linenumber" name="L237" href="#L237">237</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/RuleMediator.html">RuleMediator</a> searchRuleMediator = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/RuleMediator.html">RuleMediator</a>(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L238" href="#L238">238</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/layout/EventDetailLayout.html">EventDetailLayout</a> detailLayout = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/layout/EventDetailLayout.html">EventDetailLayout</a>();
<a class="jxr_linenumber" name="L239" href="#L239">239</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">double</strong> lastLogTreePanelSplitLocation = DEFAULT_LOG_TREE_SPLIT_LOCATION;
<a class="jxr_linenumber" name="L240" href="#L240">240</a>   <strong class="jxr_keyword">private</strong> Point currentPoint;
<a class="jxr_linenumber" name="L241" href="#L241">241</a>   <strong class="jxr_keyword">private</strong> JTable currentTable;
<a class="jxr_linenumber" name="L242" href="#L242">242</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> paused = false;
<a class="jxr_linenumber" name="L243" href="#L243">243</a>   <strong class="jxr_keyword">private</strong> Rule findRule;
<a class="jxr_linenumber" name="L244" href="#L244">244</a>   <strong class="jxr_keyword">private</strong> String currentFindRuleText;
<a class="jxr_linenumber" name="L245" href="#L245">245</a>   <strong class="jxr_keyword">private</strong> Rule findMarkerRule;
<a class="jxr_linenumber" name="L246" href="#L246">246</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> dividerSize;
<a class="jxr_linenumber" name="L247" href="#L247">247</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TABLE_COLUMN_ORDER = <span class="jxr_string">"table.columns.order"</span>;
<a class="jxr_linenumber" name="L248" href="#L248">248</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TABLE_COLUMN_WIDTHS = <span class="jxr_string">"table.columns.widths"</span>;
<a class="jxr_linenumber" name="L249" href="#L249">249</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String COLORS_EXTENSION = <span class="jxr_string">".colors"</span>;
<a class="jxr_linenumber" name="L250" href="#L250">250</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> LOG_PANEL_SERIALIZATION_VERSION_NUMBER = 2; <em class="jxr_comment">//increment when format changes</em>
<a class="jxr_linenumber" name="L251" href="#L251">251</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> previousLastIndex = -1;
<a class="jxr_linenumber" name="L252" href="#L252">252</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger = LogManager.getLogger(LogPanel.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L253" href="#L253">253</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a> filterCombo;
<a class="jxr_linenumber" name="L254" href="#L254">254</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a> findCombo;
<a class="jxr_linenumber" name="L255" href="#L255">255</a>   <strong class="jxr_keyword">private</strong> JScrollPane eventsPane;
<a class="jxr_linenumber" name="L256" href="#L256">256</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> currentSearchMatchCount;
<a class="jxr_linenumber" name="L257" href="#L257">257</a>   <strong class="jxr_keyword">private</strong> Rule clearTableExpressionRule;
<a class="jxr_linenumber" name="L258" href="#L258">258</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> lowerPanelDividerLocation;
<a class="jxr_linenumber" name="L259" href="#L259">259</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> searchModel;
<a class="jxr_linenumber" name="L260" href="#L260">260</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a> searchTable;
<a class="jxr_linenumber" name="L261" href="#L261">261</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a> searchRenderer;
<a class="jxr_linenumber" name="L262" href="#L262">262</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a> mainToggleToolTips;
<a class="jxr_linenumber" name="L263" href="#L263">263</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a> searchToggleToolTips;
<a class="jxr_linenumber" name="L264" href="#L264">264</a>   <strong class="jxr_keyword">private</strong> JScrollPane detailPane;
<a class="jxr_linenumber" name="L265" href="#L265">265</a>   <strong class="jxr_keyword">private</strong> JScrollPane searchPane;
<a class="jxr_linenumber" name="L266" href="#L266">266</a>   <em class="jxr_comment">//only one tableCellEditor, shared by both tables</em>
<a class="jxr_linenumber" name="L267" href="#L267">267</a>   <strong class="jxr_keyword">private</strong> TableCellEditor markerCellEditor;
<a class="jxr_linenumber" name="L268" href="#L268">268</a>   <strong class="jxr_keyword">private</strong> JToolBar detailToolbar;
<a class="jxr_linenumber" name="L269" href="#L269">269</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> searchResultsDisplayed;
<a class="jxr_linenumber" name="L270" href="#L270">270</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ColorizedEventAndSearchMatchThumbnail</a> colorizedEventAndSearchMatchThumbnail;
<a class="jxr_linenumber" name="L271" href="#L271">271</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">EventTimeDeltaMatchThumbnail</a> eventTimeDeltaMatchThumbnail;
<a class="jxr_linenumber" name="L272" href="#L272">272</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isDetailPanelVisible;
<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
<a class="jxr_linenumber" name="L274" href="#L274">274</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L275" href="#L275">275</a> <em class="jxr_javadoccomment">   * Creates a new LogPanel object.  If a LogPanel with this identifier has</em>
<a class="jxr_linenumber" name="L276" href="#L276">276</a> <em class="jxr_javadoccomment">   * been loaded previously, reload settings saved on last exit.</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L278" href="#L278">278</a> <em class="jxr_javadoccomment">   * @param statusBar shared status bar, provided by main application</em>
<a class="jxr_linenumber" name="L279" href="#L279">279</a> <em class="jxr_javadoccomment">   * @param identifier used to load and save settings</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanel</a>(<strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/ChainsawStatusBar.html">ChainsawStatusBar</a> statusBar, <strong class="jxr_keyword">final</strong> String identifier, <strong class="jxr_keyword">int</strong> cyclicBufferSize,
<a class="jxr_linenumber" name="L282" href="#L282">282</a>                   Map allColorizers, <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/ApplicationPreferenceModel.html">ApplicationPreferenceModel</a> applicationPreferenceModel) {
<a class="jxr_linenumber" name="L283" href="#L283">283</a>     <strong class="jxr_keyword">this</strong>.identifier = identifier;
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     <strong class="jxr_keyword">this</strong>.statusBar = statusBar;
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     <strong class="jxr_keyword">this</strong>.applicationPreferenceModel = applicationPreferenceModel;
<a class="jxr_linenumber" name="L286" href="#L286">286</a>     <strong class="jxr_keyword">this</strong>.logPanelPreferencesPanel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferencePanel.html">LogPanelPreferencePanel</a>(preferenceModel, applicationPreferenceModel);
<a class="jxr_linenumber" name="L287" href="#L287">287</a>     logger.debug(<span class="jxr_string">"creating logpanel for "</span> + identifier);
<a class="jxr_linenumber" name="L288" href="#L288">288</a> 
<a class="jxr_linenumber" name="L289" href="#L289">289</a>     setLayout(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     String prototypeValue = <span class="jxr_string">"1231231231231231231231"</span>;
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 
<a class="jxr_linenumber" name="L293" href="#L293">293</a>     filterCombo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a>();
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     findCombo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a>();
<a class="jxr_linenumber" name="L295" href="#L295">295</a> 
<a class="jxr_linenumber" name="L296" href="#L296">296</a>     filterCombo.setPrototypeDisplayValue(prototypeValue);
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     buildCombo(filterCombo, <strong class="jxr_keyword">true</strong>, findCombo.model);
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>     findCombo.setPrototypeDisplayValue(prototypeValue);
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     buildCombo(findCombo, false, filterCombo.model);
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     <strong class="jxr_keyword">final</strong> Map columnNameKeywordMap = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     columnNameKeywordMap.put(ChainsawConstants.CLASS_COL_NAME, LoggingEventFieldResolver.CLASS_FIELD);
<a class="jxr_linenumber" name="L304" href="#L304">304</a>     columnNameKeywordMap.put(ChainsawConstants.FILE_COL_NAME, LoggingEventFieldResolver.FILE_FIELD);
<a class="jxr_linenumber" name="L305" href="#L305">305</a>     columnNameKeywordMap.put(ChainsawConstants.LEVEL_COL_NAME, LoggingEventFieldResolver.LEVEL_FIELD);
<a class="jxr_linenumber" name="L306" href="#L306">306</a>     columnNameKeywordMap.put(ChainsawConstants.LINE_COL_NAME, LoggingEventFieldResolver.LINE_FIELD);
<a class="jxr_linenumber" name="L307" href="#L307">307</a>     columnNameKeywordMap.put(ChainsawConstants.LOGGER_COL_NAME, LoggingEventFieldResolver.LOGGER_FIELD);
<a class="jxr_linenumber" name="L308" href="#L308">308</a>     columnNameKeywordMap.put(ChainsawConstants.NDC_COL_NAME, LoggingEventFieldResolver.NDC_FIELD);
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     columnNameKeywordMap.put(ChainsawConstants.MESSAGE_COL_NAME, LoggingEventFieldResolver.MSG_FIELD);
<a class="jxr_linenumber" name="L310" href="#L310">310</a>     columnNameKeywordMap.put(ChainsawConstants.THREAD_COL_NAME, LoggingEventFieldResolver.THREAD_FIELD);
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     columnNameKeywordMap.put(ChainsawConstants.THROWABLE_COL_NAME, LoggingEventFieldResolver.EXCEPTION_FIELD);
<a class="jxr_linenumber" name="L312" href="#L312">312</a>     columnNameKeywordMap.put(ChainsawConstants.TIMESTAMP_COL_NAME, LoggingEventFieldResolver.TIMESTAMP_FIELD);
<a class="jxr_linenumber" name="L313" href="#L313">313</a>     columnNameKeywordMap.put(ChainsawConstants.ID_COL_NAME.toUpperCase(), LoggingEventFieldResolver.PROP_FIELD + Constants.LOG4J_ID_KEY);
<a class="jxr_linenumber" name="L314" href="#L314">314</a>     columnNameKeywordMap.put(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE.toUpperCase(), LoggingEventFieldResolver.PROP_FIELD + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L315" href="#L315">315</a>     columnNameKeywordMap.put(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE.toUpperCase(), LoggingEventFieldResolver.PROP_FIELD + ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L316" href="#L316">316</a> 
<a class="jxr_linenumber" name="L317" href="#L317">317</a>     logPanelPreferencesFrame.setTitle(<span class="jxr_string">"'"</span> + identifier + <span class="jxr_string">"' Log Panel Preferences"</span>);
<a class="jxr_linenumber" name="L318" href="#L318">318</a>     logPanelPreferencesFrame.setIconImage(
<a class="jxr_linenumber" name="L319" href="#L319">319</a>       ((ImageIcon) ChainsawIcons.ICON_PREFERENCES).getImage());
<a class="jxr_linenumber" name="L320" href="#L320">320</a>     logPanelPreferencesFrame.getContentPane().add(<strong class="jxr_keyword">new</strong> JScrollPane(logPanelPreferencesPanel));
<a class="jxr_linenumber" name="L321" href="#L321">321</a> 
<a class="jxr_linenumber" name="L322" href="#L322">322</a>     logPanelPreferencesFrame.setSize(740, 520);
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 
<a class="jxr_linenumber" name="L324" href="#L324">324</a>     logPanelPreferencesPanel.setOkCancelActionListener(
<a class="jxr_linenumber" name="L325" href="#L325">325</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L326" href="#L326">326</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L327" href="#L327">327</a>           logPanelPreferencesFrame.setVisible(false);
<a class="jxr_linenumber" name="L328" href="#L328">328</a>         }
<a class="jxr_linenumber" name="L329" href="#L329">329</a>       });
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 
<a class="jxr_linenumber" name="L331" href="#L331">331</a>         KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
<a class="jxr_linenumber" name="L332" href="#L332">332</a>             Action closeLogPanelPreferencesFrameAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L334" href="#L334">334</a>                   logPanelPreferencesFrame.setVisible(false);
<a class="jxr_linenumber" name="L335" href="#L335">335</a>                 }
<a class="jxr_linenumber" name="L336" href="#L336">336</a>             };
<a class="jxr_linenumber" name="L337" href="#L337">337</a>             logPanelPreferencesFrame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, <span class="jxr_string">"ESCAPE"</span>); logPanelPreferencesFrame.getRootPane().
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                     getActionMap().put(<span class="jxr_string">"ESCAPE"</span>, closeLogPanelPreferencesFrameAction);
<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>     setDetailPaneConversionPattern(
<a class="jxr_linenumber" name="L342" href="#L342">342</a>       DefaultLayoutFactory.getDefaultPatternLayout());
<a class="jxr_linenumber" name="L343" href="#L343">343</a>       detailLayout.setConversionPattern(
<a class="jxr_linenumber" name="L344" href="#L344">344</a>       DefaultLayoutFactory.getDefaultPatternLayout());
<a class="jxr_linenumber" name="L345" href="#L345">345</a> 
<a class="jxr_linenumber" name="L346" href="#L346">346</a>     undockedFrame = <strong class="jxr_keyword">new</strong> JFrame(identifier);
<a class="jxr_linenumber" name="L347" href="#L347">347</a>     undockedFrame.setDefaultCloseOperation(
<a class="jxr_linenumber" name="L348" href="#L348">348</a>       WindowConstants.DO_NOTHING_ON_CLOSE);
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>     <strong class="jxr_keyword">if</strong> (ChainsawIcons.UNDOCKED_ICON != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L351" href="#L351">351</a>       undockedFrame.setIconImage(
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.UNDOCKED_ICON).getImage());
<a class="jxr_linenumber" name="L353" href="#L353">353</a>     }
<a class="jxr_linenumber" name="L354" href="#L354">354</a> 
<a class="jxr_linenumber" name="L355" href="#L355">355</a>     externalPanel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/DockablePanel.html">DockablePanel</a>();
<a class="jxr_linenumber" name="L356" href="#L356">356</a>     externalPanel.setLayout(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>     undockedFrame.addWindowListener(
<a class="jxr_linenumber" name="L359" href="#L359">359</a>       <strong class="jxr_keyword">new</strong> WindowAdapter() {
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> windowClosing(WindowEvent e) {
<a class="jxr_linenumber" name="L361" href="#L361">361</a>           dock();
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         }
<a class="jxr_linenumber" name="L363" href="#L363">363</a>       });
<a class="jxr_linenumber" name="L364" href="#L364">364</a> 
<a class="jxr_linenumber" name="L365" href="#L365">365</a>     undockedToolbar = createDockwindowToolbar();
<a class="jxr_linenumber" name="L366" href="#L366">366</a>     externalPanel.add(undockedToolbar, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L367" href="#L367">367</a>     undockedFrame.getContentPane().add(externalPanel);
<a class="jxr_linenumber" name="L368" href="#L368">368</a>     undockedFrame.setSize(<strong class="jxr_keyword">new</strong> Dimension(1024, 768));
<a class="jxr_linenumber" name="L369" href="#L369">369</a>     undockedFrame.pack();
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
<a class="jxr_linenumber" name="L371" href="#L371">371</a>     preferenceModel.addPropertyChangeListener(
<a class="jxr_linenumber" name="L372" href="#L372">372</a>       <span class="jxr_string">"scrollToBottom"</span>,
<a class="jxr_linenumber" name="L373" href="#L373">373</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L375" href="#L375">375</a>           <strong class="jxr_keyword">boolean</strong> value = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L376" href="#L376">376</a>           <strong class="jxr_keyword">if</strong> (value) {
<a class="jxr_linenumber" name="L377" href="#L377">377</a>             scrollToBottom();
<a class="jxr_linenumber" name="L378" href="#L378">378</a>           }
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         }
<a class="jxr_linenumber" name="L380" href="#L380">380</a>       });
<a class="jxr_linenumber" name="L381" href="#L381">381</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L382" href="#L382">382</a> <em class="jxr_comment">     * Menus on which the preferencemodels rely</em>
<a class="jxr_linenumber" name="L383" href="#L383">383</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 
<a class="jxr_linenumber" name="L385" href="#L385">385</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L386" href="#L386">386</a> <em class="jxr_javadoccomment">     * Setup a popup menu triggered for Timestamp column to allow time stamp</em>
<a class="jxr_linenumber" name="L387" href="#L387">387</a> <em class="jxr_javadoccomment">     * format changes</em>
<a class="jxr_linenumber" name="L388" href="#L388">388</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L389" href="#L389">389</a>     <strong class="jxr_keyword">final</strong> JPopupMenu dateFormatChangePopup = <strong class="jxr_keyword">new</strong> JPopupMenu();
<a class="jxr_linenumber" name="L390" href="#L390">390</a>     <strong class="jxr_keyword">final</strong> JRadioButtonMenuItem isoButton =
<a class="jxr_linenumber" name="L391" href="#L391">391</a>       <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Use ISO8601Format"</span>) {
<a class="jxr_linenumber" name="L393" href="#L393">393</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             preferenceModel.setDateFormatPattern(<span class="jxr_string">"ISO8601"</span>);
<a class="jxr_linenumber" name="L395" href="#L395">395</a>           }
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         });
<a class="jxr_linenumber" name="L397" href="#L397">397</a>     <strong class="jxr_keyword">final</strong> JRadioButtonMenuItem simpleTimeButton =
<a class="jxr_linenumber" name="L398" href="#L398">398</a>       <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(
<a class="jxr_linenumber" name="L399" href="#L399">399</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Use simple time"</span>) {
<a class="jxr_linenumber" name="L400" href="#L400">400</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L401" href="#L401">401</a>             preferenceModel.setDateFormatPattern(<span class="jxr_string">"HH:mm:ss"</span>);
<a class="jxr_linenumber" name="L402" href="#L402">402</a>           }
<a class="jxr_linenumber" name="L403" href="#L403">403</a>         });
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a>     ButtonGroup dfBG = <strong class="jxr_keyword">new</strong> ButtonGroup();
<a class="jxr_linenumber" name="L406" href="#L406">406</a>     dfBG.add(isoButton);
<a class="jxr_linenumber" name="L407" href="#L407">407</a>     dfBG.add(simpleTimeButton);
<a class="jxr_linenumber" name="L408" href="#L408">408</a>     simpleTimeButton.setSelected(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L409" href="#L409">409</a>     dateFormatChangePopup.add(isoButton);
<a class="jxr_linenumber" name="L410" href="#L410">410</a>     dateFormatChangePopup.add(simpleTimeButton);
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>     <strong class="jxr_keyword">final</strong> JCheckBoxMenuItem menuItemLoggerTree =
<a class="jxr_linenumber" name="L413" href="#L413">413</a>       <strong class="jxr_keyword">new</strong> JCheckBoxMenuItem(<span class="jxr_string">"Show Logger Tree"</span>);
<a class="jxr_linenumber" name="L414" href="#L414">414</a>     menuItemLoggerTree.addActionListener(
<a class="jxr_linenumber" name="L415" href="#L415">415</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L416" href="#L416">416</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L417" href="#L417">417</a>           preferenceModel.setLogTreePanelVisible(
<a class="jxr_linenumber" name="L418" href="#L418">418</a>             menuItemLoggerTree.isSelected());
<a class="jxr_linenumber" name="L419" href="#L419">419</a>         }
<a class="jxr_linenumber" name="L420" href="#L420">420</a>       });
<a class="jxr_linenumber" name="L421" href="#L421">421</a>     menuItemLoggerTree.setIcon(<strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.WINDOW_ICON));
<a class="jxr_linenumber" name="L422" href="#L422">422</a> 
<a class="jxr_linenumber" name="L423" href="#L423">423</a>     <strong class="jxr_keyword">final</strong> JCheckBoxMenuItem menuItemToggleDetails =
<a class="jxr_linenumber" name="L424" href="#L424">424</a>       <strong class="jxr_keyword">new</strong> JCheckBoxMenuItem(<span class="jxr_string">"Show Detail Pane"</span>);
<a class="jxr_linenumber" name="L425" href="#L425">425</a>     menuItemToggleDetails.addActionListener(
<a class="jxr_linenumber" name="L426" href="#L426">426</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L428" href="#L428">428</a>           preferenceModel.setDetailPaneVisible(
<a class="jxr_linenumber" name="L429" href="#L429">429</a>             menuItemToggleDetails.isSelected());
<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>     menuItemToggleDetails.setIcon(<strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.INFO));
<a class="jxr_linenumber" name="L434" href="#L434">434</a> 
<a class="jxr_linenumber" name="L435" href="#L435">435</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L436" href="#L436">436</a> <em class="jxr_comment">     * add preferencemodel listeners</em>
<a class="jxr_linenumber" name="L437" href="#L437">437</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L438" href="#L438">438</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"levelIcons"</span>,
<a class="jxr_linenumber" name="L439" href="#L439">439</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L441" href="#L441">441</a>           <strong class="jxr_keyword">boolean</strong> useIcons = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L442" href="#L442">442</a>           renderer.setLevelUseIcons(useIcons);
<a class="jxr_linenumber" name="L443" href="#L443">443</a>           table.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(tableModel));
<a class="jxr_linenumber" name="L444" href="#L444">444</a>           searchRenderer.setLevelUseIcons(useIcons);
<a class="jxr_linenumber" name="L445" href="#L445">445</a>           searchTable.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(searchModel));
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         }
<a class="jxr_linenumber" name="L447" href="#L447">447</a>       });
<a class="jxr_linenumber" name="L448" href="#L448">448</a> 
<a class="jxr_linenumber" name="L449" href="#L449">449</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em class="jxr_comment">     * add preferencemodel listeners</em>
<a class="jxr_linenumber" name="L451" href="#L451">451</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L452" href="#L452">452</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"wrapMessage"</span>,
<a class="jxr_linenumber" name="L453" href="#L453">453</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L454" href="#L454">454</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L455" href="#L455">455</a>           <strong class="jxr_keyword">boolean</strong> wrap = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L456" href="#L456">456</a>           renderer.setWrapMessage(wrap);
<a class="jxr_linenumber" name="L457" href="#L457">457</a>           table.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(tableModel));
<a class="jxr_linenumber" name="L458" href="#L458">458</a>           searchRenderer.setWrapMessage(wrap);
<a class="jxr_linenumber" name="L459" href="#L459">459</a>           searchTable.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(searchModel));
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         }
<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>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"searchResultsVisible"</span>,
<a class="jxr_linenumber" name="L464" href="#L464">464</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L465" href="#L465">465</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L466" href="#L466">466</a>           <strong class="jxr_keyword">boolean</strong> displaySearchResultsInDetailsIfAvailable = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L467" href="#L467">467</a>           <strong class="jxr_keyword">if</strong> (displaySearchResultsInDetailsIfAvailable) {
<a class="jxr_linenumber" name="L468" href="#L468">468</a>             showSearchResults();
<a class="jxr_linenumber" name="L469" href="#L469">469</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L470" href="#L470">470</a>             hideSearchResults();
<a class="jxr_linenumber" name="L471" href="#L471">471</a>           }
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         }
<a class="jxr_linenumber" name="L473" href="#L473">473</a>       });
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 
<a class="jxr_linenumber" name="L475" href="#L475">475</a>       preferenceModel.addPropertyChangeListener(<span class="jxr_string">"highlightSearchMatchText"</span>,
<a class="jxr_linenumber" name="L476" href="#L476">476</a>         <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L477" href="#L477">477</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L478" href="#L478">478</a>             <strong class="jxr_keyword">boolean</strong> highlightText = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L479" href="#L479">479</a>             renderer.setHighlightSearchMatchText(highlightText);
<a class="jxr_linenumber" name="L480" href="#L480">480</a>             table.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(tableModel));
<a class="jxr_linenumber" name="L481" href="#L481">481</a>             searchRenderer.setHighlightSearchMatchText(highlightText);
<a class="jxr_linenumber" name="L482" href="#L482">482</a>             searchTable.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(searchModel));
<a class="jxr_linenumber" name="L483" href="#L483">483</a>           }
<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>     preferenceModel.addPropertyChangeListener(
<a class="jxr_linenumber" name="L487" href="#L487">487</a>       <span class="jxr_string">"detailPaneVisible"</span>,
<a class="jxr_linenumber" name="L488" href="#L488">488</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L490" href="#L490">490</a>           <strong class="jxr_keyword">boolean</strong> detailPaneVisible = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L491" href="#L491">491</a> 
<a class="jxr_linenumber" name="L492" href="#L492">492</a>           <strong class="jxr_keyword">if</strong> (detailPaneVisible) {
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             showDetailPane();
<a class="jxr_linenumber" name="L494" href="#L494">494</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L495" href="#L495">495</a>             <em class="jxr_comment">//don't hide the detail pane if search results are being displayed</em>
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             <strong class="jxr_keyword">if</strong> (!searchResultsDisplayed) {
<a class="jxr_linenumber" name="L497" href="#L497">497</a>               hideDetailPane();
<a class="jxr_linenumber" name="L498" href="#L498">498</a>             }
<a class="jxr_linenumber" name="L499" href="#L499">499</a>           }
<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>     preferenceModel.addPropertyChangeListener(
<a class="jxr_linenumber" name="L504" href="#L504">504</a>       <span class="jxr_string">"logTreePanelVisible"</span>,
<a class="jxr_linenumber" name="L505" href="#L505">505</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L506" href="#L506">506</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L507" href="#L507">507</a>           <strong class="jxr_keyword">boolean</strong> newValue = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L508" href="#L508">508</a> 
<a class="jxr_linenumber" name="L509" href="#L509">509</a>           <strong class="jxr_keyword">if</strong> (newValue) {
<a class="jxr_linenumber" name="L510" href="#L510">510</a>             showLogTreePanel();
<a class="jxr_linenumber" name="L511" href="#L511">511</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L512" href="#L512">512</a>             hideLogTreePanel();
<a class="jxr_linenumber" name="L513" href="#L513">513</a>           }
<a class="jxr_linenumber" name="L514" href="#L514">514</a>         }
<a class="jxr_linenumber" name="L515" href="#L515">515</a>       });
<a class="jxr_linenumber" name="L516" href="#L516">516</a>     
<a class="jxr_linenumber" name="L517" href="#L517">517</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"toolTips"</span>,
<a class="jxr_linenumber" name="L518" href="#L518">518</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L519" href="#L519">519</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L520" href="#L520">520</a>           <strong class="jxr_keyword">boolean</strong> toolTips = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L521" href="#L521">521</a>           renderer.setToolTipsVisible(toolTips);
<a class="jxr_linenumber" name="L522" href="#L522">522</a>           searchRenderer.setToolTipsVisible(toolTips);
<a class="jxr_linenumber" name="L523" href="#L523">523</a>         }
<a class="jxr_linenumber" name="L524" href="#L524">524</a>       });
<a class="jxr_linenumber" name="L525" href="#L525">525</a> 
<a class="jxr_linenumber" name="L526" href="#L526">526</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"visibleColumns"</span>,
<a class="jxr_linenumber" name="L527" href="#L527">527</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L528" href="#L528">528</a>     	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L529" href="#L529">529</a>     		<em class="jxr_comment">//remove all columns and re-add visible</em>
<a class="jxr_linenumber" name="L530" href="#L530">530</a>             TableColumnModel columnModel = table.getColumnModel();
<a class="jxr_linenumber" name="L531" href="#L531">531</a>             <strong class="jxr_keyword">while</strong> (columnModel.getColumnCount() &gt; 0) {
<a class="jxr_linenumber" name="L532" href="#L532">532</a>                 columnModel.removeColumn(columnModel.getColumn(0));
<a class="jxr_linenumber" name="L533" href="#L533">533</a>         		}
<a class="jxr_linenumber" name="L534" href="#L534">534</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L535" href="#L535">535</a>               TableColumn c = (TableColumn)iter.next();
<a class="jxr_linenumber" name="L536" href="#L536">536</a>               <strong class="jxr_keyword">if</strong> (c.getHeaderValue().toString().equalsIgnoreCase(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE))
<a class="jxr_linenumber" name="L537" href="#L537">537</a>               {
<a class="jxr_linenumber" name="L538" href="#L538">538</a>                 c.setCellEditor(markerCellEditor);
<a class="jxr_linenumber" name="L539" href="#L539">539</a>               }
<a class="jxr_linenumber" name="L540" href="#L540">540</a>               columnModel.addColumn(c);
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         		}
<a class="jxr_linenumber" name="L542" href="#L542">542</a>           TableColumnModel searchColumnModel = searchTable.getColumnModel();
<a class="jxr_linenumber" name="L543" href="#L543">543</a>           <strong class="jxr_keyword">while</strong> (searchColumnModel.getColumnCount() &gt; 0) {
<a class="jxr_linenumber" name="L544" href="#L544">544</a>               searchColumnModel.removeColumn(searchColumnModel.getColumn(0));
<a class="jxr_linenumber" name="L545" href="#L545">545</a>           }
<a class="jxr_linenumber" name="L546" href="#L546">546</a>           <strong class="jxr_keyword">for</strong> (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L547" href="#L547">547</a>             TableColumn c = (TableColumn)iter.next();
<a class="jxr_linenumber" name="L548" href="#L548">548</a>             searchColumnModel.addColumn(c);
<a class="jxr_linenumber" name="L549" href="#L549">549</a>           }
<a class="jxr_linenumber" name="L550" href="#L550">550</a>       	}
<a class="jxr_linenumber" name="L551" href="#L551">551</a>       });
<a class="jxr_linenumber" name="L552" href="#L552">552</a> 
<a class="jxr_linenumber" name="L553" href="#L553">553</a>     PropertyChangeListener datePrefsChangeListener =
<a class="jxr_linenumber" name="L554" href="#L554">554</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L555" href="#L555">555</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L556" href="#L556">556</a>           <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a> model = (LogPanelPreferenceModel) evt.getSource();
<a class="jxr_linenumber" name="L557" href="#L557">557</a> 
<a class="jxr_linenumber" name="L558" href="#L558">558</a>           isoButton.setSelected(model.isUseISO8601Format());
<a class="jxr_linenumber" name="L559" href="#L559">559</a>           simpleTimeButton.setSelected(!model.isUseISO8601Format() &amp;&amp; !model.isCustomDateFormat());
<a class="jxr_linenumber" name="L560" href="#L560">560</a> 
<a class="jxr_linenumber" name="L561" href="#L561">561</a>           <strong class="jxr_keyword">if</strong> (model.getTimeZone() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L562" href="#L562">562</a>             renderer.setTimeZone(model.getTimeZone());
<a class="jxr_linenumber" name="L563" href="#L563">563</a>             searchRenderer.setTimeZone(model.getTimeZone());
<a class="jxr_linenumber" name="L564" href="#L564">564</a>           }
<a class="jxr_linenumber" name="L565" href="#L565">565</a>           
<a class="jxr_linenumber" name="L566" href="#L566">566</a>           <strong class="jxr_keyword">if</strong> (model.isUseISO8601Format()) {
<a class="jxr_linenumber" name="L567" href="#L567">567</a>             renderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(Constants.ISO8601_PATTERN));
<a class="jxr_linenumber" name="L568" href="#L568">568</a>             searchRenderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(Constants.ISO8601_PATTERN));
<a class="jxr_linenumber" name="L569" href="#L569">569</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L570" href="#L570">570</a>       		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L571" href="#L571">571</a>               renderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(model.getDateFormatPattern()));
<a class="jxr_linenumber" name="L572" href="#L572">572</a>           } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L573" href="#L573">573</a>             model.setDefaultDatePatternFormat();
<a class="jxr_linenumber" name="L574" href="#L574">574</a>             renderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(Constants.ISO8601_PATTERN));
<a class="jxr_linenumber" name="L575" href="#L575">575</a>           }
<a class="jxr_linenumber" name="L576" href="#L576">576</a>   		    <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L577" href="#L577">577</a>               searchRenderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(model.getDateFormatPattern()));
<a class="jxr_linenumber" name="L578" href="#L578">578</a>           } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L579" href="#L579">579</a>             model.setDefaultDatePatternFormat();
<a class="jxr_linenumber" name="L580" href="#L580">580</a>             searchRenderer.setDateFormatter(<strong class="jxr_keyword">new</strong> SimpleDateFormat(Constants.ISO8601_PATTERN));
<a class="jxr_linenumber" name="L581" href="#L581">581</a>           }
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         }
<a class="jxr_linenumber" name="L583" href="#L583">583</a> 
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         table.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(tableModel));
<a class="jxr_linenumber" name="L585" href="#L585">585</a>         searchTable.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(searchModel));
<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>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"dateFormatPattern"</span>, datePrefsChangeListener);
<a class="jxr_linenumber" name="L590" href="#L590">590</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"dateFormatTimeZone"</span>, datePrefsChangeListener);
<a class="jxr_linenumber" name="L591" href="#L591">591</a> 
<a class="jxr_linenumber" name="L592" href="#L592">592</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"clearTableExpression"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a> model = (LogPanelPreferenceModel)evt.getSource();
<a class="jxr_linenumber" name="L595" href="#L595">595</a>             String expression = model.getClearTableExpression();
<a class="jxr_linenumber" name="L596" href="#L596">596</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                 clearTableExpressionRule = ExpressionRule.getRule(expression);
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                 logger.info(<span class="jxr_string">"clearTableExpressionRule set to: "</span> + expression);
<a class="jxr_linenumber" name="L599" href="#L599">599</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                 logger.info(<span class="jxr_string">"clearTableExpressionRule invalid - ignoring: "</span> + expression);
<a class="jxr_linenumber" name="L601" href="#L601">601</a>                 clearTableExpressionRule = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L602" href="#L602">602</a>             }
<a class="jxr_linenumber" name="L603" href="#L603">603</a>         }
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     });
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 
<a class="jxr_linenumber" name="L606" href="#L606">606</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"loggerPrecision"</span>,
<a class="jxr_linenumber" name="L607" href="#L607">607</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L608" href="#L608">608</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L609" href="#L609">609</a>           <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a> model = (LogPanelPreferenceModel) evt.getSource();
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 
<a class="jxr_linenumber" name="L611" href="#L611">611</a>           renderer.setLoggerPrecision(model.getLoggerPrecision());
<a class="jxr_linenumber" name="L612" href="#L612">612</a>           table.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(tableModel));
<a class="jxr_linenumber" name="L613" href="#L613">613</a> 
<a class="jxr_linenumber" name="L614" href="#L614">614</a>           searchRenderer.setLoggerPrecision(model.getLoggerPrecision());
<a class="jxr_linenumber" name="L615" href="#L615">615</a>           searchTable.tableChanged(<strong class="jxr_keyword">new</strong> TableModelEvent(searchModel));
<a class="jxr_linenumber" name="L616" href="#L616">616</a>         }
<a class="jxr_linenumber" name="L617" href="#L617">617</a>       });
<a class="jxr_linenumber" name="L618" href="#L618">618</a> 
<a class="jxr_linenumber" name="L619" href="#L619">619</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"toolTips"</span>,
<a class="jxr_linenumber" name="L620" href="#L620">620</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L621" href="#L621">621</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L622" href="#L622">622</a>           <strong class="jxr_keyword">boolean</strong> value = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L623" href="#L623">623</a>           searchToggleToolTips.setSelected(value);
<a class="jxr_linenumber" name="L624" href="#L624">624</a>           mainToggleToolTips.setSelected(value);
<a class="jxr_linenumber" name="L625" href="#L625">625</a>         }
<a class="jxr_linenumber" name="L626" href="#L626">626</a>       });
<a class="jxr_linenumber" name="L627" href="#L627">627</a> 
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     preferenceModel.addPropertyChangeListener(
<a class="jxr_linenumber" name="L629" href="#L629">629</a>       <span class="jxr_string">"logTreePanelVisible"</span>,
<a class="jxr_linenumber" name="L630" href="#L630">630</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L631" href="#L631">631</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L632" href="#L632">632</a>           <strong class="jxr_keyword">boolean</strong> value = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L633" href="#L633">633</a>           menuItemLoggerTree.setSelected(value);
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         }
<a class="jxr_linenumber" name="L635" href="#L635">635</a>       });
<a class="jxr_linenumber" name="L636" href="#L636">636</a> 
<a class="jxr_linenumber" name="L637" href="#L637">637</a>     preferenceModel.addPropertyChangeListener(
<a class="jxr_linenumber" name="L638" href="#L638">638</a>       <span class="jxr_string">"detailPaneVisible"</span>,
<a class="jxr_linenumber" name="L639" href="#L639">639</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L640" href="#L640">640</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L641" href="#L641">641</a>           <strong class="jxr_keyword">boolean</strong> value = ((Boolean) evt.getNewValue()).booleanValue();
<a class="jxr_linenumber" name="L642" href="#L642">642</a>           menuItemToggleDetails.setSelected(value);
<a class="jxr_linenumber" name="L643" href="#L643">643</a>         }
<a class="jxr_linenumber" name="L644" href="#L644">644</a>       });
<a class="jxr_linenumber" name="L645" href="#L645">645</a> 
<a class="jxr_linenumber" name="L646" href="#L646">646</a>     applicationPreferenceModel.addPropertyChangeListener(<span class="jxr_string">"searchColor"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L647" href="#L647">647</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt)
<a class="jxr_linenumber" name="L648" href="#L648">648</a>         {
<a class="jxr_linenumber" name="L649" href="#L649">649</a>             <strong class="jxr_keyword">if</strong> (table != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L650" href="#L650">650</a>               table.repaint();
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             }
<a class="jxr_linenumber" name="L652" href="#L652">652</a>             <strong class="jxr_keyword">if</strong> (searchTable != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L653" href="#L653">653</a>               searchTable.repaint();
<a class="jxr_linenumber" name="L654" href="#L654">654</a>             }
<a class="jxr_linenumber" name="L655" href="#L655">655</a>         }
<a class="jxr_linenumber" name="L656" href="#L656">656</a>     });
<a class="jxr_linenumber" name="L657" href="#L657">657</a> 
<a class="jxr_linenumber" name="L658" href="#L658">658</a>     applicationPreferenceModel.addPropertyChangeListener(<span class="jxr_string">"alternatingColor"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L659" href="#L659">659</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt)
<a class="jxr_linenumber" name="L660" href="#L660">660</a>         {
<a class="jxr_linenumber" name="L661" href="#L661">661</a>             <strong class="jxr_keyword">if</strong> (table != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L662" href="#L662">662</a>               table.repaint();
<a class="jxr_linenumber" name="L663" href="#L663">663</a>             }
<a class="jxr_linenumber" name="L664" href="#L664">664</a>             <strong class="jxr_keyword">if</strong> (searchTable != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L665" href="#L665">665</a>               searchTable.repaint();
<a class="jxr_linenumber" name="L666" href="#L666">666</a>            }
<a class="jxr_linenumber" name="L667" href="#L667">667</a>         }
<a class="jxr_linenumber" name="L668" href="#L668">668</a>     });
<a class="jxr_linenumber" name="L669" href="#L669">669</a> 
<a class="jxr_linenumber" name="L670" href="#L670">670</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L671" href="#L671">671</a> <em class="jxr_comment">     *End of preferenceModel listeners</em>
<a class="jxr_linenumber" name="L672" href="#L672">672</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L673" href="#L673">673</a>     tableModel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.html">ChainsawCyclicBufferTableModel</a>(cyclicBufferSize, colorizer, <span class="jxr_string">"main"</span>);
<a class="jxr_linenumber" name="L674" href="#L674">674</a>     table = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a>(tableModel);
<a class="jxr_linenumber" name="L675" href="#L675">675</a> 
<a class="jxr_linenumber" name="L676" href="#L676">676</a>     markerCellEditor = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">MarkerCellEditor</a>();
<a class="jxr_linenumber" name="L677" href="#L677">677</a>     table.setName(<span class="jxr_string">"main"</span>);
<a class="jxr_linenumber" name="L678" href="#L678">678</a>     table.setColumnSelectionAllowed(false);
<a class="jxr_linenumber" name="L679" href="#L679">679</a>     table.setRowSelectionAllowed(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L680" href="#L680">680</a> 
<a class="jxr_linenumber" name="L681" href="#L681">681</a>     searchModel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.html">ChainsawCyclicBufferTableModel</a>(cyclicBufferSize, colorizer, <span class="jxr_string">"search"</span>);
<a class="jxr_linenumber" name="L682" href="#L682">682</a>     searchTable = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a>(searchModel);
<a class="jxr_linenumber" name="L683" href="#L683">683</a> 
<a class="jxr_linenumber" name="L684" href="#L684">684</a>     searchTable.setName(<span class="jxr_string">"search"</span>);
<a class="jxr_linenumber" name="L685" href="#L685">685</a>     searchTable.setColumnSelectionAllowed(false);
<a class="jxr_linenumber" name="L686" href="#L686">686</a>     searchTable.setRowSelectionAllowed(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L687" href="#L687">687</a> 
<a class="jxr_linenumber" name="L688" href="#L688">688</a>     <em class="jxr_comment">//we've mapped f2, shift f2 and ctrl-f2 to marker-related actions, unmap them from the table</em>
<a class="jxr_linenumber" name="L689" href="#L689">689</a>     table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(<span class="jxr_string">"F2"</span>), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L690" href="#L690">690</a>     table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, InputEvent.SHIFT_MASK), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L691" href="#L691">691</a>     table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L692" href="#L692">692</a>     table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | InputEvent.SHIFT_MASK), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L693" href="#L693">693</a> 
<a class="jxr_linenumber" name="L694" href="#L694">694</a>     <em class="jxr_comment">//we're also mapping ctrl-a to scroll-to-top, unmap from the table</em>
<a class="jxr_linenumber" name="L695" href="#L695">695</a>     table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L696" href="#L696">696</a>         
<a class="jxr_linenumber" name="L697" href="#L697">697</a>     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(<span class="jxr_string">"F2"</span>), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L698" href="#L698">698</a>     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, InputEvent.SHIFT_MASK), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L699" href="#L699">699</a>     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L700" href="#L700">700</a>     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | InputEvent.SHIFT_MASK), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L701" href="#L701">701</a> 
<a class="jxr_linenumber" name="L702" href="#L702">702</a>     <em class="jxr_comment">//we're also mapping ctrl-a to scroll-to-top, unmap from the table</em>
<a class="jxr_linenumber" name="L703" href="#L703">703</a>     searchTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), <span class="jxr_string">"none"</span>);
<a class="jxr_linenumber" name="L704" href="#L704">704</a> 
<a class="jxr_linenumber" name="L705" href="#L705">705</a>     <em class="jxr_comment">//add a listener to update the 'refine focus'</em>
<a class="jxr_linenumber" name="L706" href="#L706">706</a>     tableModel.addNewKeyListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/NewKeyListener.html">NewKeyListener</a>() {
<a class="jxr_linenumber" name="L707" href="#L707">707</a> 		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> newKeyAdded(<a href="../../../../org/apache/log4j/chainsaw/NewKeyEvent.html">NewKeyEvent</a> e) {
<a class="jxr_linenumber" name="L708" href="#L708">708</a>           columnNameKeywordMap.put(e.getKey(), <span class="jxr_string">"PROP."</span> + e.getKey());
<a class="jxr_linenumber" name="L709" href="#L709">709</a> 		}
<a class="jxr_linenumber" name="L710" href="#L710">710</a>     });
<a class="jxr_linenumber" name="L711" href="#L711">711</a> 
<a class="jxr_linenumber" name="L712" href="#L712">712</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L713" href="#L713">713</a> <em class="jxr_comment">     * Set the Display rule to use the mediator, the model will add itself as</em>
<a class="jxr_linenumber" name="L714" href="#L714">714</a> <em class="jxr_comment">     * a property change listener and update itself when the rule changes.</em>
<a class="jxr_linenumber" name="L715" href="#L715">715</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L716" href="#L716">716</a>     tableModel.setRuleMediator(tableRuleMediator);
<a class="jxr_linenumber" name="L717" href="#L717">717</a>     searchModel.setRuleMediator(searchRuleMediator);
<a class="jxr_linenumber" name="L718" href="#L718">718</a> 
<a class="jxr_linenumber" name="L719" href="#L719">719</a>     tableModel.addEventCountListener(
<a class="jxr_linenumber" name="L720" href="#L720">720</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/EventCountListener.html">EventCountListener</a>() {
<a class="jxr_linenumber" name="L721" href="#L721">721</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> eventCountChanged(<strong class="jxr_keyword">int</strong> currentCount, <strong class="jxr_keyword">int</strong> totalCount) {
<a class="jxr_linenumber" name="L722" href="#L722">722</a>           <strong class="jxr_keyword">if</strong> (LogPanel.<strong class="jxr_keyword">this</strong>.isVisible()) {
<a class="jxr_linenumber" name="L723" href="#L723">723</a>             statusBar.setSelectedLine(
<a class="jxr_linenumber" name="L724" href="#L724">724</a>               table.getSelectedRow() + 1, currentCount, totalCount, getIdentifier());
<a class="jxr_linenumber" name="L725" href="#L725">725</a>           }
<a class="jxr_linenumber" name="L726" href="#L726">726</a>         }
<a class="jxr_linenumber" name="L727" href="#L727">727</a>       });
<a class="jxr_linenumber" name="L728" href="#L728">728</a> 
<a class="jxr_linenumber" name="L729" href="#L729">729</a>     tableModel.addEventCountListener(
<a class="jxr_linenumber" name="L730" href="#L730">730</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/EventCountListener.html">EventCountListener</a>() {
<a class="jxr_linenumber" name="L731" href="#L731">731</a>         <strong class="jxr_keyword">final</strong> NumberFormat formatter = NumberFormat.getPercentInstance();
<a class="jxr_linenumber" name="L732" href="#L732">732</a>         <strong class="jxr_keyword">boolean</strong> warning75 = false;
<a class="jxr_linenumber" name="L733" href="#L733">733</a>         <strong class="jxr_keyword">boolean</strong> warning100 = false;
<a class="jxr_linenumber" name="L734" href="#L734">734</a> 
<a class="jxr_linenumber" name="L735" href="#L735">735</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> eventCountChanged(<strong class="jxr_keyword">int</strong> currentCount, <strong class="jxr_keyword">int</strong> totalCount) {
<a class="jxr_linenumber" name="L736" href="#L736">736</a>           <strong class="jxr_keyword">if</strong> (preferenceModel.isCyclic()) {
<a class="jxr_linenumber" name="L737" href="#L737">737</a>             <strong class="jxr_keyword">double</strong> percent =
<a class="jxr_linenumber" name="L738" href="#L738">738</a>               ((<strong class="jxr_keyword">double</strong>) totalCount) / ((ChainsawCyclicBufferTableModel) tableModel)
<a class="jxr_linenumber" name="L739" href="#L739">739</a>               .getMaxSize();
<a class="jxr_linenumber" name="L740" href="#L740">740</a>             String msg = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L741" href="#L741">741</a>             <strong class="jxr_keyword">boolean</strong> wasWarning = warning75 || warning100;
<a class="jxr_linenumber" name="L742" href="#L742">742</a>             <strong class="jxr_keyword">if</strong> ((percent &gt; 0.75) &amp;&amp; (percent &lt; 1.0) &amp;&amp; !warning75) {
<a class="jxr_linenumber" name="L743" href="#L743">743</a>               msg =
<a class="jxr_linenumber" name="L744" href="#L744">744</a>                 <span class="jxr_string">"Warning :: "</span> + formatter.format(percent) + <span class="jxr_string">" of the '"</span>
<a class="jxr_linenumber" name="L745" href="#L745">745</a>                 + getIdentifier() + <span class="jxr_string">"' buffer has been used"</span>;
<a class="jxr_linenumber" name="L746" href="#L746">746</a>               warning75 = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L747" href="#L747">747</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ((percent &gt;= 1.0) &amp;&amp; !warning100) {
<a class="jxr_linenumber" name="L748" href="#L748">748</a>               msg =
<a class="jxr_linenumber" name="L749" href="#L749">749</a>                 <span class="jxr_string">"Warning :: "</span> + formatter.format(percent) + <span class="jxr_string">" of the '"</span>
<a class="jxr_linenumber" name="L750" href="#L750">750</a>                 + getIdentifier()
<a class="jxr_linenumber" name="L751" href="#L751">751</a>                 + <span class="jxr_string">"' buffer has been used.  Older events are being discarded."</span>;
<a class="jxr_linenumber" name="L752" href="#L752">752</a>               warning100 = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L753" href="#L753">753</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L754" href="#L754">754</a>                 <em class="jxr_comment">//clear msg</em>
<a class="jxr_linenumber" name="L755" href="#L755">755</a>                 msg = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L756" href="#L756">756</a>                 warning75 = false;
<a class="jxr_linenumber" name="L757" href="#L757">757</a>                 warning100 = false;
<a class="jxr_linenumber" name="L758" href="#L758">758</a>             }
<a class="jxr_linenumber" name="L759" href="#L759">759</a> 
<a class="jxr_linenumber" name="L760" href="#L760">760</a>             <strong class="jxr_keyword">if</strong> (msg != <strong class="jxr_keyword">null</strong> &amp;&amp; wasWarning) {
<a class="jxr_linenumber" name="L761" href="#L761">761</a>               MessageCenter.getInstance().getLogger().info(msg);
<a class="jxr_linenumber" name="L762" href="#L762">762</a>             }
<a class="jxr_linenumber" name="L763" href="#L763">763</a>           }
<a class="jxr_linenumber" name="L764" href="#L764">764</a>         }
<a class="jxr_linenumber" name="L765" href="#L765">765</a>       });
<a class="jxr_linenumber" name="L766" href="#L766">766</a> 
<a class="jxr_linenumber" name="L767" href="#L767">767</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L768" href="#L768">768</a> <em class="jxr_comment">     * Logger tree panel</em>
<a class="jxr_linenumber" name="L769" href="#L769">769</a> <em class="jxr_comment">     *</em>
<a class="jxr_linenumber" name="L770" href="#L770">770</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L771" href="#L771">771</a>     <a href="../../../../org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.html">LogPanelLoggerTreeModel</a> logTreeModel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.html">LogPanelLoggerTreeModel</a>();
<a class="jxr_linenumber" name="L772" href="#L772">772</a>     logTreePanel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggerNameTreePanel.html">LoggerNameTreePanel</a>(logTreeModel, preferenceModel, <strong class="jxr_keyword">this</strong>, colorizer, filterModel);
<a class="jxr_linenumber" name="L773" href="#L773">773</a>     logTreePanel.getLoggerVisibilityRule().addPropertyChangeListener(<strong class="jxr_keyword">new</strong> PropertyChangeListener()
<a class="jxr_linenumber" name="L774" href="#L774">774</a>     {
<a class="jxr_linenumber" name="L775" href="#L775">775</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt)
<a class="jxr_linenumber" name="L776" href="#L776">776</a>         {
<a class="jxr_linenumber" name="L777" href="#L777">777</a>             <strong class="jxr_keyword">if</strong> (evt.getPropertyName().equals(<span class="jxr_string">"searchExpression"</span>)) {
<a class="jxr_linenumber" name="L778" href="#L778">778</a>                 findCombo.setSelectedItem(evt.getNewValue().toString());
<a class="jxr_linenumber" name="L779" href="#L779">779</a>                 findNext();
<a class="jxr_linenumber" name="L780" href="#L780">780</a>             }
<a class="jxr_linenumber" name="L781" href="#L781">781</a>         }
<a class="jxr_linenumber" name="L782" href="#L782">782</a>     });
<a class="jxr_linenumber" name="L783" href="#L783">783</a>       
<a class="jxr_linenumber" name="L784" href="#L784">784</a>     tableModel.addLoggerNameListener(logTreeModel);
<a class="jxr_linenumber" name="L785" href="#L785">785</a>     tableModel.addLoggerNameListener(logTreePanel);
<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">     * Set the LoggerRule to be the LoggerTreePanel, as this visual component</em>
<a class="jxr_linenumber" name="L789" href="#L789">789</a> <em class="jxr_javadoccomment">     * is a rule itself, and the RuleMediator will automatically listen when</em>
<a class="jxr_linenumber" name="L790" href="#L790">790</a> <em class="jxr_javadoccomment">     * it's rule state changes.</em>
<a class="jxr_linenumber" name="L791" href="#L791">791</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L792" href="#L792">792</a>     tableRuleMediator.setLoggerRule(logTreePanel.getLoggerVisibilityRule());
<a class="jxr_linenumber" name="L793" href="#L793">793</a>     searchRuleMediator.setLoggerRule(logTreePanel.getLoggerVisibilityRule());
<a class="jxr_linenumber" name="L794" href="#L794">794</a> 
<a class="jxr_linenumber" name="L795" href="#L795">795</a>     colorizer.setLoggerRule(logTreePanel.getLoggerColorRule());
<a class="jxr_linenumber" name="L796" href="#L796">796</a> 
<a class="jxr_linenumber" name="L797" href="#L797">797</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L798" href="#L798">798</a> <em class="jxr_comment">     * Color rule frame and panel</em>
<a class="jxr_linenumber" name="L799" href="#L799">799</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L800" href="#L800">800</a>     colorFrame.setTitle(<span class="jxr_string">"'"</span> + identifier + <span class="jxr_string">"' color settings"</span>);
<a class="jxr_linenumber" name="L801" href="#L801">801</a>     colorFrame.setIconImage(
<a class="jxr_linenumber" name="L802" href="#L802">802</a>       ((ImageIcon) ChainsawIcons.ICON_PREFERENCES).getImage());
<a class="jxr_linenumber" name="L803" href="#L803">803</a> 
<a class="jxr_linenumber" name="L804" href="#L804">804</a>     allColorizers.put(identifier, colorizer);
<a class="jxr_linenumber" name="L805" href="#L805">805</a>     colorPanel = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a>(colorizer, filterModel, allColorizers, applicationPreferenceModel);
<a class="jxr_linenumber" name="L806" href="#L806">806</a> 
<a class="jxr_linenumber" name="L807" href="#L807">807</a>     colorFrame.getContentPane().add(colorPanel);
<a class="jxr_linenumber" name="L808" href="#L808">808</a> 
<a class="jxr_linenumber" name="L809" href="#L809">809</a>         Action closeColorPanelAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L810" href="#L810">810</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L811" href="#L811">811</a>               colorPanel.hidePanel();
<a class="jxr_linenumber" name="L812" href="#L812">812</a>             }
<a class="jxr_linenumber" name="L813" href="#L813">813</a>         };
<a class="jxr_linenumber" name="L814" href="#L814">814</a>         colorFrame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, <span class="jxr_string">"ESCAPE"</span>); colorFrame.getRootPane().
<a class="jxr_linenumber" name="L815" href="#L815">815</a>                 getActionMap().put(<span class="jxr_string">"ESCAPE"</span>, closeColorPanelAction);
<a class="jxr_linenumber" name="L816" href="#L816">816</a> 
<a class="jxr_linenumber" name="L817" href="#L817">817</a>     colorPanel.setCloseActionListener(
<a class="jxr_linenumber" name="L818" href="#L818">818</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L819" href="#L819">819</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L820" href="#L820">820</a>           colorFrame.setVisible(false);
<a class="jxr_linenumber" name="L821" href="#L821">821</a>         }
<a class="jxr_linenumber" name="L822" href="#L822">822</a>       });
<a class="jxr_linenumber" name="L823" href="#L823">823</a> 
<a class="jxr_linenumber" name="L824" href="#L824">824</a>     colorizer.addPropertyChangeListener(
<a class="jxr_linenumber" name="L825" href="#L825">825</a>       <span class="jxr_string">"colorrule"</span>,
<a class="jxr_linenumber" name="L826" href="#L826">826</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L827" href="#L827">827</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L828" href="#L828">828</a>           <strong class="jxr_keyword">for</strong> (Iterator iter = tableModel.getAllEvents().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L829" href="#L829">829</a>             <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = (LoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L830" href="#L830">830</a>             loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()), colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
<a class="jxr_linenumber" name="L831" href="#L831">831</a>           }
<a class="jxr_linenumber" name="L832" href="#L832">832</a> <em class="jxr_comment">//          no need to update searchmodel events since tablemodel and searchmodel share all events, and color rules aren't different between the two</em>
<a class="jxr_linenumber" name="L833" href="#L833">833</a> <em class="jxr_comment">//          if that changes, un-do the color syncing in loggingeventwrapper &amp; re-enable this code</em>
<a class="jxr_linenumber" name="L834" href="#L834">834</a> <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L835" href="#L835">835</a> <em class="jxr_comment">//          for (Iterator iter = searchModel.getAllEvents().iterator();iter.hasNext();) {</em>
<a class="jxr_linenumber" name="L836" href="#L836">836</a> <em class="jxr_comment">//             LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper)iter.next();</em>
<a class="jxr_linenumber" name="L837" href="#L837">837</a> <em class="jxr_comment">//             loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()), colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));</em>
<a class="jxr_linenumber" name="L838" href="#L838">838</a> <em class="jxr_comment">//           }</em>
<a class="jxr_linenumber" name="L839" href="#L839">839</a>           colorizedEventAndSearchMatchThumbnail.configureColors();
<a class="jxr_linenumber" name="L840" href="#L840">840</a>           lowerPanel.revalidate();
<a class="jxr_linenumber" name="L841" href="#L841">841</a>           lowerPanel.repaint();
<a class="jxr_linenumber" name="L842" href="#L842">842</a> 
<a class="jxr_linenumber" name="L843" href="#L843">843</a>           searchTable.revalidate();
<a class="jxr_linenumber" name="L844" href="#L844">844</a>           searchTable.repaint();
<a class="jxr_linenumber" name="L845" href="#L845">845</a>         }
<a class="jxr_linenumber" name="L846" href="#L846">846</a>       });
<a class="jxr_linenumber" name="L847" href="#L847">847</a> 
<a class="jxr_linenumber" name="L848" href="#L848">848</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L849" href="#L849">849</a> <em class="jxr_comment">     * Table definition.  Actual construction is above (next to tablemodel)</em>
<a class="jxr_linenumber" name="L850" href="#L850">850</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L851" href="#L851">851</a>     table.setRowHeight(ChainsawConstants.DEFAULT_ROW_HEIGHT);
<a class="jxr_linenumber" name="L852" href="#L852">852</a>     table.setRowMargin(0);
<a class="jxr_linenumber" name="L853" href="#L853">853</a>     table.getColumnModel().setColumnMargin(0);
<a class="jxr_linenumber" name="L854" href="#L854">854</a>     table.setShowGrid(false);
<a class="jxr_linenumber" name="L855" href="#L855">855</a>     table.getColumnModel().addColumnModelListener(<strong class="jxr_keyword">new</strong> ChainsawTableColumnModelListener(table));
<a class="jxr_linenumber" name="L856" href="#L856">856</a>     table.setAutoCreateColumnsFromModel(false);
<a class="jxr_linenumber" name="L857" href="#L857">857</a>     table.addMouseMotionListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableColumnDetailMouseListener</a>(table, tableModel));
<a class="jxr_linenumber" name="L858" href="#L858">858</a>     table.addMouseListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableMarkerListener</a>(table, tableModel, searchModel));
<a class="jxr_linenumber" name="L859" href="#L859">859</a>     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
<a class="jxr_linenumber" name="L860" href="#L860">860</a> 
<a class="jxr_linenumber" name="L861" href="#L861">861</a>     searchTable.setRowHeight(ChainsawConstants.DEFAULT_ROW_HEIGHT);
<a class="jxr_linenumber" name="L862" href="#L862">862</a>     searchTable.setRowMargin(0);
<a class="jxr_linenumber" name="L863" href="#L863">863</a>     searchTable.getColumnModel().setColumnMargin(0);
<a class="jxr_linenumber" name="L864" href="#L864">864</a>     searchTable.setShowGrid(false);
<a class="jxr_linenumber" name="L865" href="#L865">865</a>     searchTable.getColumnModel().addColumnModelListener(<strong class="jxr_keyword">new</strong> ChainsawTableColumnModelListener(searchTable));
<a class="jxr_linenumber" name="L866" href="#L866">866</a>     searchTable.setAutoCreateColumnsFromModel(false);
<a class="jxr_linenumber" name="L867" href="#L867">867</a>     searchTable.addMouseMotionListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableColumnDetailMouseListener</a>(searchTable, searchModel));
<a class="jxr_linenumber" name="L868" href="#L868">868</a>     searchTable.addMouseListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableMarkerListener</a>(searchTable, searchModel, tableModel));
<a class="jxr_linenumber" name="L869" href="#L869">869</a>     searchTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
<a class="jxr_linenumber" name="L870" href="#L870">870</a> 
<a class="jxr_linenumber" name="L871" href="#L871">871</a> 
<a class="jxr_linenumber" name="L872" href="#L872">872</a>     <em class="jxr_comment">//set valueisadjusting if holding down a key - don't process setdetail events</em>
<a class="jxr_linenumber" name="L873" href="#L873">873</a>     table.addKeyListener(
<a class="jxr_linenumber" name="L874" href="#L874">874</a>       <strong class="jxr_keyword">new</strong> KeyListener() {
<a class="jxr_linenumber" name="L875" href="#L875">875</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> keyTyped(KeyEvent e) {
<a class="jxr_linenumber" name="L876" href="#L876">876</a>         }
<a class="jxr_linenumber" name="L877" href="#L877">877</a> 
<a class="jxr_linenumber" name="L878" href="#L878">878</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> keyPressed(KeyEvent e) {
<a class="jxr_linenumber" name="L879" href="#L879">879</a>           <strong class="jxr_keyword">synchronized</strong> (detail) {
<a class="jxr_linenumber" name="L880" href="#L880">880</a>             table.getSelectionModel().setValueIsAdjusting(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             detail.notify();
<a class="jxr_linenumber" name="L882" href="#L882">882</a>           }
<a class="jxr_linenumber" name="L883" href="#L883">883</a>         }
<a class="jxr_linenumber" name="L884" href="#L884">884</a> 
<a class="jxr_linenumber" name="L885" href="#L885">885</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> keyReleased(KeyEvent e) {
<a class="jxr_linenumber" name="L886" href="#L886">886</a>           <strong class="jxr_keyword">synchronized</strong> (detail) {
<a class="jxr_linenumber" name="L887" href="#L887">887</a>             table.getSelectionModel().setValueIsAdjusting(false);
<a class="jxr_linenumber" name="L888" href="#L888">888</a>             detail.notify();
<a class="jxr_linenumber" name="L889" href="#L889">889</a>           }
<a class="jxr_linenumber" name="L890" href="#L890">890</a>         }
<a class="jxr_linenumber" name="L891" href="#L891">891</a>       });
<a class="jxr_linenumber" name="L892" href="#L892">892</a> 
<a class="jxr_linenumber" name="L893" href="#L893">893</a>     table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
<a class="jxr_linenumber" name="L894" href="#L894">894</a>     searchTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
<a class="jxr_linenumber" name="L895" href="#L895">895</a> 
<a class="jxr_linenumber" name="L896" href="#L896">896</a>     table.getSelectionModel().addListSelectionListener(<strong class="jxr_keyword">new</strong> ListSelectionListener() {
<a class="jxr_linenumber" name="L897" href="#L897">897</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> valueChanged(ListSelectionEvent evt) {
<a class="jxr_linenumber" name="L898" href="#L898">898</a>             <strong class="jxr_keyword">if</strong> (((evt.getFirstIndex() == evt.getLastIndex())
<a class="jxr_linenumber" name="L899" href="#L899">899</a>                 &amp;&amp; (evt.getFirstIndex() &gt; 0) &amp;&amp; previousLastIndex != -1) || (evt.getValueIsAdjusting())) {
<a class="jxr_linenumber" name="L900" href="#L900">900</a>               <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L901" href="#L901">901</a>             }
<a class="jxr_linenumber" name="L902" href="#L902">902</a>             <strong class="jxr_keyword">boolean</strong> lastIndexOnLastRow = (evt.getLastIndex() == (table.getRowCount() - 1));
<a class="jxr_linenumber" name="L903" href="#L903">903</a>             <strong class="jxr_keyword">boolean</strong> lastIndexSame = (previousLastIndex == evt.getLastIndex());
<a class="jxr_linenumber" name="L904" href="#L904">904</a> 
<a class="jxr_linenumber" name="L905" href="#L905">905</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L906" href="#L906">906</a> <em class="jxr_comment">             * when scroll-to-bottom is active, here is what events look like:</em>
<a class="jxr_linenumber" name="L907" href="#L907">907</a> <em class="jxr_comment">             * rowcount-1: 227, last: 227, previous last: 191..first: 191</em>
<a class="jxr_linenumber" name="L908" href="#L908">908</a> <em class="jxr_comment">             *</em>
<a class="jxr_linenumber" name="L909" href="#L909">909</a> <em class="jxr_comment">             * when the user has unselected the bottom row, here is what the events look like:</em>
<a class="jxr_linenumber" name="L910" href="#L910">910</a> <em class="jxr_comment">             * rowcount-1: 227, last: 227, previous last: 227..first: 222</em>
<a class="jxr_linenumber" name="L911" href="#L911">911</a> <em class="jxr_comment">             *</em>
<a class="jxr_linenumber" name="L912" href="#L912">912</a> <em class="jxr_comment">             * note: previouslast is set after it is evaluated in the bypass scroll check</em>
<a class="jxr_linenumber" name="L913" href="#L913">913</a> <em class="jxr_comment">            */</em>
<a class="jxr_linenumber" name="L914" href="#L914">914</a>            <em class="jxr_comment">//System.out.println("rowcount: " + (table.getRowCount() - 1) + ", last: " + evt.getLastIndex() +", previous last: " + previousLastIndex + "..first: " + evt.getFirstIndex() + ", isadjusting: " + evt.getValueIsAdjusting());</em>
<a class="jxr_linenumber" name="L915" href="#L915">915</a> 
<a class="jxr_linenumber" name="L916" href="#L916">916</a>             <strong class="jxr_keyword">boolean</strong> disableScrollToBottom = (lastIndexOnLastRow &amp;&amp; lastIndexSame &amp;&amp; previousLastIndex != evt.getFirstIndex());
<a class="jxr_linenumber" name="L917" href="#L917">917</a>             <strong class="jxr_keyword">if</strong> (disableScrollToBottom &amp;&amp; isScrollToBottom() &amp;&amp; table.getRowCount() &gt; 0) {
<a class="jxr_linenumber" name="L918" href="#L918">918</a>               preferenceModel.setScrollToBottom(false);
<a class="jxr_linenumber" name="L919" href="#L919">919</a>             }
<a class="jxr_linenumber" name="L920" href="#L920">920</a>             previousLastIndex = evt.getLastIndex();
<a class="jxr_linenumber" name="L921" href="#L921">921</a>           }
<a class="jxr_linenumber" name="L922" href="#L922">922</a>         }
<a class="jxr_linenumber" name="L923" href="#L923">923</a>     );
<a class="jxr_linenumber" name="L924" href="#L924">924</a> 
<a class="jxr_linenumber" name="L925" href="#L925">925</a>     table.getSelectionModel().addListSelectionListener(
<a class="jxr_linenumber" name="L926" href="#L926">926</a>       <strong class="jxr_keyword">new</strong> ListSelectionListener() {
<a class="jxr_linenumber" name="L927" href="#L927">927</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> valueChanged(ListSelectionEvent evt) {
<a class="jxr_linenumber" name="L928" href="#L928">928</a>           <strong class="jxr_keyword">if</strong> (((evt.getFirstIndex() == evt.getLastIndex())
<a class="jxr_linenumber" name="L929" href="#L929">929</a>               &amp;&amp; (evt.getFirstIndex() &gt; 0) &amp;&amp; previousLastIndex != -1) || (evt.getValueIsAdjusting())) {
<a class="jxr_linenumber" name="L930" href="#L930">930</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L931" href="#L931">931</a>           }
<a class="jxr_linenumber" name="L932" href="#L932">932</a> 
<a class="jxr_linenumber" name="L933" href="#L933">933</a>           <strong class="jxr_keyword">final</strong> ListSelectionModel lsm = (ListSelectionModel) evt.getSource();
<a class="jxr_linenumber" name="L934" href="#L934">934</a> 
<a class="jxr_linenumber" name="L935" href="#L935">935</a>           <strong class="jxr_keyword">if</strong> (lsm.isSelectionEmpty()) {
<a class="jxr_linenumber" name="L936" href="#L936">936</a>             <strong class="jxr_keyword">if</strong> (isVisible()) {
<a class="jxr_linenumber" name="L937" href="#L937">937</a>               statusBar.setNothingSelected();
<a class="jxr_linenumber" name="L938" href="#L938">938</a>             }
<a class="jxr_linenumber" name="L939" href="#L939">939</a> 
<a class="jxr_linenumber" name="L940" href="#L940">940</a>             <strong class="jxr_keyword">if</strong> (detail.getDocument().getDefaultRootElement() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L941" href="#L941">941</a>               detailPaneUpdater.setSelectedRow(-1);
<a class="jxr_linenumber" name="L942" href="#L942">942</a>             }
<a class="jxr_linenumber" name="L943" href="#L943">943</a>           } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L944" href="#L944">944</a>             <strong class="jxr_keyword">if</strong> (table.getSelectedRow() &gt; -1) {
<a class="jxr_linenumber" name="L945" href="#L945">945</a>               <strong class="jxr_keyword">int</strong> selectedRow = table.getSelectedRow();
<a class="jxr_linenumber" name="L946" href="#L946">946</a> 
<a class="jxr_linenumber" name="L947" href="#L947">947</a>               <strong class="jxr_keyword">if</strong> (isVisible()) {
<a class="jxr_linenumber" name="L948" href="#L948">948</a>                 updateStatusBar();
<a class="jxr_linenumber" name="L949" href="#L949">949</a>               }
<a class="jxr_linenumber" name="L950" href="#L950">950</a> 
<a class="jxr_linenumber" name="L951" href="#L951">951</a>               <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L952" href="#L952">952</a>                 <strong class="jxr_keyword">if</strong> (tableModel.getRowCount() &gt;= selectedRow) {
<a class="jxr_linenumber" name="L953" href="#L953">953</a>                   detailPaneUpdater.setSelectedRow(table.getSelectedRow());
<a class="jxr_linenumber" name="L954" href="#L954">954</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L955" href="#L955">955</a>                   detailPaneUpdater.setSelectedRow(-1);
<a class="jxr_linenumber" name="L956" href="#L956">956</a>                 }
<a class="jxr_linenumber" name="L957" href="#L957">957</a>               } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L958" href="#L958">958</a>                 e.printStackTrace();
<a class="jxr_linenumber" name="L959" href="#L959">959</a>                 detailPaneUpdater.setSelectedRow(-1);
<a class="jxr_linenumber" name="L960" href="#L960">960</a>               }
<a class="jxr_linenumber" name="L961" href="#L961">961</a>             }
<a class="jxr_linenumber" name="L962" href="#L962">962</a>           }
<a class="jxr_linenumber" name="L963" href="#L963">963</a>         }
<a class="jxr_linenumber" name="L964" href="#L964">964</a>       });
<a class="jxr_linenumber" name="L965" href="#L965">965</a> 
<a class="jxr_linenumber" name="L966" href="#L966">966</a>     renderer = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a>(colorizer, applicationPreferenceModel, tableModel, preferenceModel, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L967" href="#L967">967</a>     renderer.setToolTipsVisible(preferenceModel.isToolTips());
<a class="jxr_linenumber" name="L968" href="#L968">968</a> 
<a class="jxr_linenumber" name="L969" href="#L969">969</a>     table.setDefaultRenderer(Object.<strong class="jxr_keyword">class</strong>, renderer);
<a class="jxr_linenumber" name="L970" href="#L970">970</a> 
<a class="jxr_linenumber" name="L971" href="#L971">971</a>     searchRenderer = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a>(colorizer, applicationPreferenceModel, searchModel, preferenceModel, false);
<a class="jxr_linenumber" name="L972" href="#L972">972</a>     searchRenderer.setToolTipsVisible(preferenceModel.isToolTips());
<a class="jxr_linenumber" name="L973" href="#L973">973</a> 
<a class="jxr_linenumber" name="L974" href="#L974">974</a>     searchTable.setDefaultRenderer(Object.<strong class="jxr_keyword">class</strong>, searchRenderer);
<a class="jxr_linenumber" name="L975" href="#L975">975</a> 
<a class="jxr_linenumber" name="L976" href="#L976">976</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L977" href="#L977">977</a> <em class="jxr_comment">     * Throwable popup</em>
<a class="jxr_linenumber" name="L978" href="#L978">978</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L979" href="#L979">979</a>     table.addMouseListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThrowableDisplayMouseAdapter</a>(table, tableModel));
<a class="jxr_linenumber" name="L980" href="#L980">980</a>     searchTable.addMouseListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThrowableDisplayMouseAdapter</a>(searchTable, searchModel));
<a class="jxr_linenumber" name="L981" href="#L981">981</a> 
<a class="jxr_linenumber" name="L982" href="#L982">982</a>     <em class="jxr_comment">//select a row in the main table when a row in the search table is selected</em>
<a class="jxr_linenumber" name="L983" href="#L983">983</a>     searchTable.addMouseListener(<strong class="jxr_keyword">new</strong> MouseAdapter() {
<a class="jxr_linenumber" name="L984" href="#L984">984</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent e) {
<a class="jxr_linenumber" name="L985" href="#L985">985</a>         <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = searchModel.getRow(searchTable.getSelectedRow());
<a class="jxr_linenumber" name="L986" href="#L986">986</a>         <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L987" href="#L987">987</a>           <strong class="jxr_keyword">int</strong> id = <strong class="jxr_keyword">new</strong> Integer(loggingEventWrapper.getLoggingEvent().getProperty(<span class="jxr_string">"log4jid"</span>)).intValue();
<a class="jxr_linenumber" name="L988" href="#L988">988</a>           <em class="jxr_comment">//preserve the table's viewble column</em>
<a class="jxr_linenumber" name="L989" href="#L989">989</a>           setSelectedEvent(id);
<a class="jxr_linenumber" name="L990" href="#L990">990</a>         }
<a class="jxr_linenumber" name="L991" href="#L991">991</a>       }
<a class="jxr_linenumber" name="L992" href="#L992">992</a>     });
<a class="jxr_linenumber" name="L993" href="#L993">993</a> 
<a class="jxr_linenumber" name="L994" href="#L994">994</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L995" href="#L995">995</a> <em class="jxr_comment">     * We listen for new Key's coming in so we can get them automatically</em>
<a class="jxr_linenumber" name="L996" href="#L996">996</a> <em class="jxr_comment">     * added as columns</em>
<a class="jxr_linenumber" name="L997" href="#L997">997</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L998" href="#L998">998</a>     tableModel.addNewKeyListener(
<a class="jxr_linenumber" name="L999" href="#L999">999</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/NewKeyListener.html">NewKeyListener</a>() {
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> newKeyAdded(<strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/NewKeyEvent.html">NewKeyEvent</a> e) {
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>         	SwingHelper.invokeOnEDT(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>         		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>            <em class="jxr_comment">// don't add the column if we already know about it, this could be if we've seen it before and saved the column preferences</em>
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>             <em class="jxr_comment">//this may throw an illegalargexception - ignore it because we need to add only if not already added</em>
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>         	<em class="jxr_comment">//if the column is already added, don't add again</em>
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>         	
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a>         	<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>         	<strong class="jxr_keyword">if</strong>(table.getColumn(e.getKey())!=<strong class="jxr_keyword">null</strong>){
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>             }
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>             <em class="jxr_comment">//no need to check search table - we use the same columns</em>
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>         	} <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {}
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>           TableColumn col = <strong class="jxr_keyword">new</strong> TableColumn(e.getNewModelIndex());
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>           col.setHeaderValue(e.getKey());
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a> 
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>           <strong class="jxr_keyword">if</strong> (preferenceModel.addColumn(col)) {
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>             <strong class="jxr_keyword">if</strong> (preferenceModel.isColumnVisible(col) || !applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &amp;&amp;
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>                 applicationPreferenceModel.getDefaultColumnNames().contains(col.getHeaderValue())) {
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>               table.addColumn(col);
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>                 searchTable.addColumn(col);
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>           	  preferenceModel.setColumnVisible(e.getKey().toString(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             }
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>           }
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>         		}
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>         	});
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>         }
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>       });
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a> 
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>     <em class="jxr_comment">//if the table is refiltered, try to reselect the last selected row</em>
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>     <em class="jxr_comment">//refilter with a newValue of TRUE means refiltering is about to begin</em>
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a>     <em class="jxr_comment">//refilter with a newValue of FALSE means refiltering is complete</em>
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>     <em class="jxr_comment">//assuming notification is called on the EDT so we can in the current EDT call update the scroll &amp; selection</em>
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>     tableModel.addPropertyChangeListener(<span class="jxr_string">"refilter"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> currentEvent;
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>             <em class="jxr_comment">//if new value is true, filtering is about to begin</em>
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>             <em class="jxr_comment">//if new value is false, filtering is complete</em>
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>             <strong class="jxr_keyword">if</strong> (evt.getNewValue().equals(Boolean.TRUE)) {
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>                 <strong class="jxr_keyword">int</strong> currentRow = table.getSelectedRow();
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>                 <strong class="jxr_keyword">if</strong> (currentRow &gt; -1) {
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>                     currentEvent = tableModel.getRow(currentRow);
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>                 }
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a>                 <strong class="jxr_keyword">if</strong> (currentEvent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>                     table.scrollToRow(tableModel.getRowIndex(currentEvent));
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a>                 }
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>             }
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>         }
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>     });
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a> 
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>     table.getTableHeader().addMouseListener(
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>       <strong class="jxr_keyword">new</strong> MouseAdapter() {
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent e) {
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>           checkEvent(e);
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>         }
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a> 
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mousePressed(MouseEvent e) {
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>           checkEvent(e);
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a>         }
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a> 
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseReleased(MouseEvent e) {
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a>           checkEvent(e);
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>         }
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a> 
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkEvent(MouseEvent e) {
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>           <strong class="jxr_keyword">if</strong> (e.isPopupTrigger()) {
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>             TableColumnModel colModel = table.getColumnModel();
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>             <strong class="jxr_keyword">int</strong> index = colModel.getColumnIndexAtX(e.getX());
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>             <strong class="jxr_keyword">int</strong> modelIndex = colModel.getColumn(index).getModelIndex();
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a> 
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>             <strong class="jxr_keyword">if</strong> ((modelIndex + 1) == ChainsawColumns.INDEX_TIMESTAMP_COL_NAME) {
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>               dateFormatChangePopup.show(e.getComponent(), e.getX(), e.getY());
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a>             }
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>           }
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>         }
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a>       });
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a> 
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a> <em class="jxr_comment">     * Upper panel definition</em>
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>     JPanel upperPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>     upperPanel.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(upperPanel, BoxLayout.X_AXIS));
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>     upperPanel.setBorder(BorderFactory.createEmptyBorder(2, 5, 2, 0));
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a> 
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>     <strong class="jxr_keyword">final</strong> JLabel filterLabel = <strong class="jxr_keyword">new</strong> JLabel(<span class="jxr_string">"Refine focus on: "</span>);
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>     filterLabel.setFont(filterLabel.getFont().deriveFont(Font.BOLD));
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a> 
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>     upperPanel.add(filterLabel);
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a>     upperPanel.add(Box.createHorizontalStrut(3));
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>     upperPanel.add(filterCombo);
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>     upperPanel.add(Box.createHorizontalStrut(3));
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a> 
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>     <strong class="jxr_keyword">final</strong> JTextField filterText =(JTextField) filterCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>     <strong class="jxr_keyword">final</strong> JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a> 
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a> 
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>     <em class="jxr_comment">//Adding a button to clear filter expressions which are currently remembered by Chainsaw...</em>
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>     <strong class="jxr_keyword">final</strong> JButton removeFilterButton = <strong class="jxr_keyword">new</strong> JButton(<span class="jxr_string">" Remove "</span>);
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a> 
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a>     removeFilterButton.setToolTipText(<span class="jxr_string">"Click here to remove the selected expression from the list"</span>);
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>     removeFilterButton.addActionListener(
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>             <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e){
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a>                 	Object selectedItem = filterCombo.getSelectedItem();
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>                     <strong class="jxr_keyword">if</strong> (e.getSource() == removeFilterButton &amp;&amp; selectedItem != <strong class="jxr_keyword">null</strong> &amp;&amp; !selectedItem.toString().trim().equals(<span class="jxr_string">""</span>)){
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a>                       <em class="jxr_comment">//don't just remove the entry from the store, clear the field</em>
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a>                       <strong class="jxr_keyword">int</strong> index = filterCombo.getSelectedIndex();
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>                       filterText.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>                       filterCombo.setSelectedIndex(-1);
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a>                       filterCombo.removeItemAt(index);
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>                       <strong class="jxr_keyword">if</strong> (!(findCombo.getSelectedItem() != <strong class="jxr_keyword">null</strong> &amp;&amp; findCombo.getSelectedItem().equals(selectedItem))) {
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>                         <em class="jxr_comment">//now remove the entry from the other model</em>
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a>                         ((AutoFilterComboBox.AutoFilterComboBoxModel)findCombo.getModel()).removeElement(selectedItem);
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>                       }
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>                     }
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>                 }
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>             }
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>     );
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>     upperPanel.add(removeFilterButton);
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>     <em class="jxr_comment">//add some space between refine focus and search sections of the panel</em>
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a>     upperPanel.add(Box.createHorizontalStrut(25));
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a> 
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>     <strong class="jxr_keyword">final</strong> JLabel findLabel = <strong class="jxr_keyword">new</strong> JLabel(<span class="jxr_string">"Find: "</span>);
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a>     findLabel.setFont(filterLabel.getFont().deriveFont(Font.BOLD));
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a> 
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a>     upperPanel.add(findLabel);
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>     upperPanel.add(Box.createHorizontalStrut(3));
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a> 
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a>     upperPanel.add(findCombo);
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>     upperPanel.add(Box.createHorizontalStrut(3));
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a> 
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>     Action findNextAction = getFindNextAction();
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a>     Action findPreviousAction = getFindPreviousAction();
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>     <em class="jxr_comment">//add up &amp; down search</em>
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>     JButton findNextButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(findNextAction);
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>     findNextButton.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a>     findNextButton.getActionMap().put(
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>       findNextAction.getValue(Action.NAME), findNextAction);
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>     findNextButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>       (KeyStroke) findNextAction.getValue(Action.ACCELERATOR_KEY),
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a>       findNextAction.getValue(Action.NAME));
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a> 
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>     JButton findPreviousButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(findPreviousAction);
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>     findPreviousButton.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>     findPreviousButton.getActionMap().put(
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>       findPreviousAction.getValue(Action.NAME), findPreviousAction);
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>     findPreviousButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>       (KeyStroke) findPreviousAction.getValue(Action.ACCELERATOR_KEY),
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a>       findPreviousAction.getValue(Action.NAME));
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a> 
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>     upperPanel.add(findNextButton);
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a> 
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a>     upperPanel.add(findPreviousButton);
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>     upperPanel.add(Box.createHorizontalStrut(3));
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>     
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a>     <em class="jxr_comment">//Adding a button to clear filter expressions which are currently remembered by Chainsaw...</em>
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>     <strong class="jxr_keyword">final</strong> JButton removeFindButton = <strong class="jxr_keyword">new</strong> JButton(<span class="jxr_string">" Remove "</span>);
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a>     removeFindButton.setToolTipText(<span class="jxr_string">"Click here to remove the selected expression from the list"</span>);
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>     removeFindButton.addActionListener(
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>             <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e){
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>                 	Object selectedItem = findCombo.getSelectedItem();
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>                     <strong class="jxr_keyword">if</strong> (e.getSource() == removeFindButton &amp;&amp; selectedItem != <strong class="jxr_keyword">null</strong> &amp;&amp; !selectedItem.toString().trim().equals(<span class="jxr_string">""</span>)){
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a>                       <em class="jxr_comment">//don't just remove the entry from the store, clear the field</em>
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>                       <strong class="jxr_keyword">int</strong> index = findCombo.getSelectedIndex();
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a>                       findText.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>                       findCombo.setSelectedIndex(-1);
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>                       findCombo.removeItemAt(index);
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a>                       <strong class="jxr_keyword">if</strong> (!(filterCombo.getSelectedItem() != <strong class="jxr_keyword">null</strong> &amp;&amp; filterCombo.getSelectedItem().equals(selectedItem))) {
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a>                         <em class="jxr_comment">//now remove the entry from the other model if it wasn't selected</em>
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>                         ((AutoFilterComboBox.AutoFilterComboBoxModel)filterCombo.getModel()).removeElement(selectedItem);
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>                       }
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>                     }
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>                 }
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>             }
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>     );
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>     upperPanel.add(removeFindButton);
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a> 
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>     <em class="jxr_comment">//define search and refine focus selection and clear actions</em>
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>     Action findFocusAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent actionEvent) {
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a>         findCombo.requestFocus();
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>       }
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>     };
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a> 
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>     Action filterFocusAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent actionEvent) {
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a>         filterCombo.requestFocus();
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>       }
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a>     };
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a> 
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>     Action findClearAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent actionEvent) {
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>         findCombo.setSelectedIndex(-1);
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>         findNext();
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>       }
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>     };
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a> 
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a>     Action filterClearAction = <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent actionEvent) {
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>         setRefineFocusText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>         filterCombo.refilter();
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>       }
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>     };
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a> 
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>     <em class="jxr_comment">//now add them to the action and input maps for the logpanel</em>
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>         KeyStroke ksFindFocus =
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>       KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>     KeyStroke ksFilterFocus =
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>       KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>         KeyStroke ksFindClear =
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>       KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.SHIFT_MASK |Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>     KeyStroke ksFilterClear =
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>       KeyStroke.getKeyStroke(KeyEvent.VK_R,  InputEvent.SHIFT_MASK | Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a> 
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>     getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ksFindFocus, <span class="jxr_string">"FindFocus"</span>);
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>     getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ksFilterFocus, <span class="jxr_string">"FilterFocus"</span>);
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>     getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ksFindClear, <span class="jxr_string">"FindClear"</span>);
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a>     getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ksFilterClear, <span class="jxr_string">"FilterClear"</span>);
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a> 
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>     getActionMap().put(<span class="jxr_string">"FindFocus"</span>, findFocusAction);
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>     getActionMap().put(<span class="jxr_string">"FilterFocus"</span>, filterFocusAction);
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>     getActionMap().put(<span class="jxr_string">"FindClear"</span>, findClearAction);
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>     getActionMap().put(<span class="jxr_string">"FilterClear"</span>, filterClearAction);
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a> 
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> <em class="jxr_comment">     * Detail pane definition</em>
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>     detail = <strong class="jxr_keyword">new</strong> JEditorPane(ChainsawConstants.DETAIL_CONTENT_TYPE, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>     detail.setEditable(false);
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> 
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>     detailPaneUpdater = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DetailPaneUpdater</a>();
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a> 
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>     <em class="jxr_comment">//if the panel gets focus, update the detail pane</em>
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>     addFocusListener(<strong class="jxr_keyword">new</strong> FocusListener() {
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a> 
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> focusGained(FocusEvent e) {
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>             detailPaneUpdater.updateDetailPane();
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a>         }
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a> 
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> focusLost(FocusEvent e) {
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>             
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>         }
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>     });
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>     findMarkerRule = ExpressionRule.getRule(<span class="jxr_string">"prop."</span> + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE + <span class="jxr_string">" exists"</span>);
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>         
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>     tableModel.addTableModelListener(<strong class="jxr_keyword">new</strong> TableModelListener() {
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a> 		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tableChanged(TableModelEvent e) {
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>             <strong class="jxr_keyword">int</strong> currentRow = table.getSelectedRow();
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>             <strong class="jxr_keyword">if</strong> (e.getFirstRow() &lt;= currentRow &amp;&amp; e.getLastRow() &gt;= currentRow) {
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>                 <em class="jxr_comment">//current row has changed - update</em>
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>                 detailPaneUpdater.setAndUpdateSelectedRow(table.getSelectedRow());
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>             }
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a> 		}
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>     });
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>     addPropertyChangeListener(<span class="jxr_string">"detailPaneConversionPattern"</span>, detailPaneUpdater);
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a> 
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>     searchPane = <strong class="jxr_keyword">new</strong> JScrollPane(searchTable);
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>     searchPane.getVerticalScrollBar().setUnitIncrement(ChainsawConstants.DEFAULT_ROW_HEIGHT * 2);
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>     searchPane.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(900, 50));
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a> 
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>     <em class="jxr_comment">//default detail panel to contain detail panel - if searchResultsVisible is true, when a search if triggered, update detail pane to contain search results</em>
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>     detailPane = <strong class="jxr_keyword">new</strong> JScrollPane(detail);
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>     detailPane.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(900, 50));
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> 
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>     detailPanel.add(detailPane, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> 
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>     JPanel eventsAndStatusPanel = <strong class="jxr_keyword">new</strong> JPanel(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a> 
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>     eventsPane = <strong class="jxr_keyword">new</strong> JScrollPane(table);
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a>     eventsPane.getVerticalScrollBar().setUnitIncrement(ChainsawConstants.DEFAULT_ROW_HEIGHT * 2);
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a> 
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>     eventsAndStatusPanel.add(eventsPane, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a> 
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>     Integer scrollBarWidth = (Integer) UIManager.get(<span class="jxr_string">"ScrollBar.width"</span>);
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a> 
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>     JPanel rightPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>     rightPanel.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(rightPanel, BoxLayout.Y_AXIS));
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a> 
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>     JPanel rightThumbNailPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>     rightThumbNailPanel.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(rightThumbNailPanel, BoxLayout.Y_AXIS));
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>     rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>     colorizedEventAndSearchMatchThumbnail = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ColorizedEventAndSearchMatchThumbnail</a>();
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>     rightThumbNailPanel.add(colorizedEventAndSearchMatchThumbnail);
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>     rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>     rightPanel.add(rightThumbNailPanel);
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>     <em class="jxr_comment">//set thumbnail width to be a bit narrower than scrollbar width</em>
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>     <strong class="jxr_keyword">if</strong> (scrollBarWidth != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>         rightThumbNailPanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>     }
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>     eventsAndStatusPanel.add(rightPanel, BorderLayout.EAST);
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a> 
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>     JPanel leftPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>     leftPanel.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(leftPanel, BoxLayout.Y_AXIS));
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a> 
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>     JPanel leftThumbNailPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>     leftThumbNailPanel.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(leftThumbNailPanel, BoxLayout.Y_AXIS));
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>     leftThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>     eventTimeDeltaMatchThumbnail = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">EventTimeDeltaMatchThumbnail</a>();
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>     leftThumbNailPanel.add(eventTimeDeltaMatchThumbnail);
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>     leftThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>     leftPanel.add(leftThumbNailPanel);
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a> 
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>     <em class="jxr_comment">//set thumbnail width to be a bit narrower than scrollbar width</em>
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>     <strong class="jxr_keyword">if</strong> (scrollBarWidth != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>         leftThumbNailPanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>     }
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>     eventsAndStatusPanel.add(leftPanel, BorderLayout.WEST);
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> 
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>     <strong class="jxr_keyword">final</strong> JPanel statusLabelPanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>     statusLabelPanel.setLayout(<strong class="jxr_keyword">new</strong> BorderLayout());
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a> 
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>     statusLabelPanel.add(upperPanel, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a>     eventsAndStatusPanel.add(statusLabelPanel, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a> 
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a> <em class="jxr_comment">     * Detail panel layout editor</em>
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a>     detailToolbar = <strong class="jxr_keyword">new</strong> JToolBar(SwingConstants.HORIZONTAL);
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>     detailToolbar.setFloatable(false);
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a> 
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/layout/LayoutEditorPane.html">LayoutEditorPane</a> layoutEditorPane = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/layout/LayoutEditorPane.html">LayoutEditorPane</a>();
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a>     <strong class="jxr_keyword">final</strong> JDialog layoutEditorDialog =
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>       <strong class="jxr_keyword">new</strong> JDialog((JFrame) <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"Pattern Editor"</span>);
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a>     layoutEditorDialog.getContentPane().add(layoutEditorPane);
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>     layoutEditorDialog.setSize(640, 480);
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> 
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>     layoutEditorPane.addCancelActionListener(
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>           layoutEditorDialog.setVisible(false);
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>         }
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>       });
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> 
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>     layoutEditorPane.addOkActionListener(
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>           setDetailPaneConversionPattern(
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>             layoutEditorPane.getConversionPattern());
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>           layoutEditorDialog.setVisible(false);
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>         }
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>       });
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a> 
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>     Action copyToRefineFocusAction = <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Set 'refine focus' field"</span>) {
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>             String selectedText = detail.getSelectedText();
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>             <strong class="jxr_keyword">if</strong> (selectedText == <strong class="jxr_keyword">null</strong> || selectedText.equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>                 <em class="jxr_comment">//no-op empty searches</em>
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>             }
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>             filterText.setText(<span class="jxr_string">"msg ~= '"</span> + selectedText + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>         }
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>     };
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> 
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>     Action copyToSearchAction = <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Find next"</span>) {
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>             String selectedText = detail.getSelectedText();
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>             <strong class="jxr_keyword">if</strong> (selectedText == <strong class="jxr_keyword">null</strong> || selectedText.equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>                 <em class="jxr_comment">//no-op empty searches</em>
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>             }
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>             findCombo.setSelectedItem(<span class="jxr_string">"msg ~= '"</span> + selectedText + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>             findNext();
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>         }
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>     };
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a> 
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>     Action editDetailAction =
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>       <strong class="jxr_keyword">new</strong> AbstractAction(
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>         <span class="jxr_string">"Edit..."</span>, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.ICON_EDIT_RECEIVER)) {
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>           layoutEditorPane.setConversionPattern(
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>             getDetailPaneConversionPattern());
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a> 
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>           Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>           Point p =
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>             <strong class="jxr_keyword">new</strong> Point(
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>               ((<strong class="jxr_keyword">int</strong>) ((size.getWidth() / 2)
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>               - (layoutEditorDialog.getSize().getWidth() / 2))),
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>               ((<strong class="jxr_keyword">int</strong>) ((size.getHeight() / 2)
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>               - (layoutEditorDialog.getSize().getHeight() / 2))));
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>           layoutEditorDialog.setLocation(p);
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a> 
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>           layoutEditorDialog.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>         }
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>       };
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a> 
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>     editDetailAction.putValue(
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>       <span class="jxr_string">"opens a Dialog window to Edit the Pattern Layout text"</span>);
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a> 
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> editDetailButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(editDetailAction);
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>     editDetailButton.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>     detailToolbar.add(Box.createHorizontalGlue());
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>     detailToolbar.add(editDetailButton);
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>     detailToolbar.addSeparator();
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>     detailToolbar.add(Box.createHorizontalStrut(5));
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a> 
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>     Action closeDetailAction =
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<strong class="jxr_keyword">null</strong>, LineIconFactory.createCloseIcon()) {
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent arg0) {
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>           preferenceModel.setDetailPaneVisible(false);
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>         }
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>       };
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a> 
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>     closeDetailAction.putValue(
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Hides the Detail Panel"</span>);
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> 
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>     <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> closeDetailButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(closeDetailAction);
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>     detailToolbar.add(closeDetailButton);
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a> 
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a>     detailPanel.add(detailToolbar, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a> 
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>     lowerPanel = <strong class="jxr_keyword">new</strong> JSplitPane(JSplitPane.VERTICAL_SPLIT, eventsAndStatusPanel, detailPanel);
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a> 
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>     dividerSize = lowerPanel.getDividerSize();
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>     lowerPanel.setDividerLocation(-1);
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a> 
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>     lowerPanel.setResizeWeight(1.0);
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>     lowerPanel.setBorder(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>     lowerPanel.setContinuousLayout(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a> 
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>     JPopupMenu editDetailPopupMenu = <strong class="jxr_keyword">new</strong> JPopupMenu();
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> 
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>     editDetailPopupMenu.add(copyToRefineFocusAction);
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a>     editDetailPopupMenu.add(copyToSearchAction);
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>     editDetailPopupMenu.addSeparator();
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> 
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>     editDetailPopupMenu.add(editDetailAction);
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a>     editDetailPopupMenu.addSeparator();
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a> 
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>     <strong class="jxr_keyword">final</strong> ButtonGroup layoutGroup = <strong class="jxr_keyword">new</strong> ButtonGroup();
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a> 
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>     JRadioButtonMenuItem defaultLayoutRadio =
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>       <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Set to Default Layout"</span>) {
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>             setDetailPaneConversionPattern(
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a>               DefaultLayoutFactory.getDefaultPatternLayout());
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>           }
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>         });
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> 
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>         JRadioButtonMenuItem fullLayoutRadio =
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>           <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>             <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Set to Full Layout"</span>) {
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>               <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>                 setDetailPaneConversionPattern(
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>                   DefaultLayoutFactory.getFullPatternLayout());
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>               }
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>             });
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a> 
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>     editDetailPopupMenu.add(defaultLayoutRadio);
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>     editDetailPopupMenu.add(fullLayoutRadio);
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a> 
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>     layoutGroup.add(defaultLayoutRadio);
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>     layoutGroup.add(fullLayoutRadio);
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>     defaultLayoutRadio.setSelected(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a> 
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>     JRadioButtonMenuItem tccLayoutRadio =
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>       <strong class="jxr_keyword">new</strong> JRadioButtonMenuItem(
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Set to TCCLayout"</span>) {
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>             setDetailPaneConversionPattern(
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>               PatternLayout.TTCC_CONVERSION_PATTERN);
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>           }
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         });
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>     editDetailPopupMenu.add(tccLayoutRadio);
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>     layoutGroup.add(tccLayoutRadio);
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a> 
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>     <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a> editDetailPopupListener =
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a>(editDetailPopupMenu);
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>     detail.addMouseListener(editDetailPopupListener);
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> 
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> <em class="jxr_comment">     * Logger tree splitpane definition</em>
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>     nameTreeAndMainPanelSplit = <strong class="jxr_keyword">new</strong> JSplitPane(JSplitPane.HORIZONTAL_SPLIT, logTreePanel, lowerPanel);
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>     nameTreeAndMainPanelSplit.setDividerLocation(-1);
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a> 
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>     add(nameTreeAndMainPanelSplit, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a> 
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>     <strong class="jxr_keyword">if</strong> (isLogTreeVisible()) {
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>         showLogTreePanel();
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         hideLogTreePanel();
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>     }
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a> 
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a> <em class="jxr_comment">     * Other menu items</em>
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BestFit</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BestFit</a>() {
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Best fit column"</span>);
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>     addActionListener(
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>             <strong class="jxr_keyword">int</strong> maxWidth = getMaxColumnWidth(column);
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>             currentTable.getColumnModel().getColumn(column).setPreferredWidth(
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>               maxWidth);
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>           }
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>         }
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>       });
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>       }
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>     }
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a> 
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a>() {
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Color settings..."</span>);
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>         setIcon(ChainsawIcons.ICON_PREFERENCES);
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>   addActionListener(
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>           showColorPreferences();
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>         }
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>       });
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>       }
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>     }
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> 
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanelPreferences</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanelPreferences</a>() {
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Tab Preferences..."</span>);
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>         setIcon(ChainsawIcons.ICON_PREFERENCES);
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>     addActionListener(
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>           showPreferences();
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>         }
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>       });
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>     }
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>   }
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a> 
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">FocusOn</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">FocusOn</a>() {
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Set 'refine focus' field to value under pointer"</span>);
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>     addActionListener(
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>             String <strong class="jxr_keyword">operator</strong> = <span class="jxr_string">"=="</span>;
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>             String colName = currentTable.getColumnName(column).toUpperCase();
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a> 
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>             <strong class="jxr_keyword">if</strong> (columnNameKeywordMap.containsKey(colName)) {
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>               filterText.setText(
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>                 columnNameKeywordMap.get(colName).toString() + <span class="jxr_string">" "</span> + <strong class="jxr_keyword">operator</strong>
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>                 + <span class="jxr_string">" '"</span> + value + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>             }
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>           }
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>         }
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>       });
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>       }
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>     }
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a> 
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFilter</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFilter</a>() {
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Add value under pointer to 'refine focus' field"</span>);
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>   addActionListener(
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>             String <strong class="jxr_keyword">operator</strong> = <span class="jxr_string">"=="</span>;
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>             String colName = currentTable.getColumnName(column).toUpperCase();
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> 
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>             <strong class="jxr_keyword">if</strong> (columnNameKeywordMap.containsKey(colName)) {
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>               filterText.setText(
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>                 filterText.getText() + <span class="jxr_string">" &amp;&amp; "</span>
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>                 + columnNameKeywordMap.get(colName).toString() + <span class="jxr_string">" "</span>
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>                 + <strong class="jxr_keyword">operator</strong> + <span class="jxr_string">" '"</span> + value + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>             }
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a> 
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>           }
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>         }
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>       });
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>       }
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>     }
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFind</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFind</a>() {
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Add value under pointer to 'find' field"</span>);
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>   addActionListener(
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>             String <strong class="jxr_keyword">operator</strong> = <span class="jxr_string">"=="</span>;
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>             String colName = currentTable.getColumnName(column).toUpperCase();
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a> 
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>             <strong class="jxr_keyword">if</strong> (columnNameKeywordMap.containsKey(colName)) {
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>               findCombo.setSelectedItem(
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>                 findText.getText() + <span class="jxr_string">" &amp;&amp; "</span>
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>                 + columnNameKeywordMap.get(colName).toString() + <span class="jxr_string">" "</span>
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>                 + <strong class="jxr_keyword">operator</strong> + <span class="jxr_string">" '"</span> + value + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>               findNext();
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>             }
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>           }
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>         }
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>       });
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>       }
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>     }
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> 
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BuildColorRule</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BuildColorRule</a>() {
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Define color rule for value under pointer"</span>);
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>       addActionListener(
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>             String <strong class="jxr_keyword">operator</strong> = <span class="jxr_string">"=="</span>;
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>             String colName = currentTable.getColumnName(column).toUpperCase();
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a> 
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>             <strong class="jxr_keyword">if</strong> (columnNameKeywordMap.containsKey(colName)) {
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>                 Color c = JColorChooser.showDialog(getRootPane(), <span class="jxr_string">"Choose a color"</span>, Color.red);
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>                 <strong class="jxr_keyword">if</strong> (c != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                     String expression = columnNameKeywordMap.get(colName).toString() + <span class="jxr_string">" "</span> + <strong class="jxr_keyword">operator</strong> + <span class="jxr_string">" '"</span> + value + <span class="jxr_string">"'"</span>;
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                     colorizer.addRule(ChainsawConstants.DEFAULT_COLOR_RULE_NAME, <strong class="jxr_keyword">new</strong> ColorRule(expression,
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                             ExpressionRule.getRule(expression), c, ChainsawConstants.COLOR_DEFAULT_FOREGROUND));
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                 }
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>             }
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>           }
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         }
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>       });
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>       }
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>     }
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a> 
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>     <strong class="jxr_keyword">final</strong> JPopupMenu mainPopup = <strong class="jxr_keyword">new</strong> JPopupMenu();
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>     <strong class="jxr_keyword">final</strong> JPopupMenu searchPopup = <strong class="jxr_keyword">new</strong> JPopupMenu();
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a> 
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearFocus</a> <strong class="jxr_keyword">extends</strong> AbstractAction {
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearFocus</a>() {
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Clear 'refine focus' field"</span>);
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>       }
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>           filterText.setText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>           tableRuleMediator.setFilterRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>           searchRuleMediator.setFilterRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>         }
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>       }
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a> 
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopySelection</a> <strong class="jxr_keyword">extends</strong> AbstractAction {
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopySelection</a>() {
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Copy selection to clipboard"</span>);
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>       }
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a> 
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>           <strong class="jxr_keyword">if</strong> (currentTable == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>           }
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>           <strong class="jxr_keyword">int</strong> start = currentTable.getSelectionModel().getMinSelectionIndex();
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>           <strong class="jxr_keyword">int</strong> end = currentTable.getSelectionModel().getMaxSelectionIndex();
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>           StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>           <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> row=start;row&lt;end+1;row++) {
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> column=0;column&lt;currentTable.getColumnCount();column++) {
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>               result.append(getValueOf(row, column));
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>               <strong class="jxr_keyword">if</strong> (column != (currentTable.getColumnCount() - 1)) {
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                 result.append(<span class="jxr_string">" - "</span>);
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>               }
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>             }
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>             result.append(System.getProperty(<span class="jxr_string">"line.separator"</span>));
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>           }
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>           StringSelection selection = <strong class="jxr_keyword">new</strong> StringSelection(result.toString());
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>           Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>           clipboard.setContents(selection, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>       }
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>     }
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a> 
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopyField</a> <strong class="jxr_keyword">extends</strong> AbstractAction {
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopyField</a>() {
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Copy value under pointer to clipboard"</span>);
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>       }
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a> 
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong> &amp;&amp; currentTable != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>             StringSelection selection = <strong class="jxr_keyword">new</strong> StringSelection(value);
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>             Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>             clipboard.setContents(selection, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>         }
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>       }
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>     }
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>     <strong class="jxr_keyword">final</strong> JMenuItem menuItemToggleDock = <strong class="jxr_keyword">new</strong> JMenuItem(<span class="jxr_string">"Undock/dock"</span>);
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a> 
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>     dockingAction =
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Undock"</span>) {
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>             <strong class="jxr_keyword">if</strong> (isDocked()) {
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>               undock();
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>               dock();
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>             }
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>           }
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>         };
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>     dockingAction.putValue(
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.UNDOCK));
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     menuItemToggleDock.setAction(dockingAction);
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> 
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> <em class="jxr_comment">     * Popup definition</em>
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">FocusOn</a>());
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">FocusOn</a>());
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFilter</a>());
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFilter</a>());
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearFocus</a>());
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearFocus</a>());
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a> 
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a> 
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">Search</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">Search</a>() {
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Find value under pointer"</span>);
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> 
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>     addActionListener(
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>             String <strong class="jxr_keyword">operator</strong> = <span class="jxr_string">"=="</span>;
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>             <strong class="jxr_keyword">int</strong> column = currentTable.columnAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>             <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>             String colName = currentTable.getColumnName(column).toUpperCase();
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>             String value = getValueOf(row, column);
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>             <strong class="jxr_keyword">if</strong> (columnNameKeywordMap.containsKey(colName)) {
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>               findCombo.setSelectedItem(
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>                 columnNameKeywordMap.get(colName).toString() + <span class="jxr_string">" "</span> + <strong class="jxr_keyword">operator</strong>
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>                 + <span class="jxr_string">" '"</span> + value + <span class="jxr_string">"'"</span>);
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>               findNext();
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>             }
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>           }
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>         }
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>       });
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>       }
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>     }
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a> 
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>      <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearSearch</a> <strong class="jxr_keyword">extends</strong> AbstractAction {
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>        <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearSearch</a>() {
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>          <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Clear find field"</span>);
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>        }
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>             findCombo.setSelectedItem(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>             updateFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>           }
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         }
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a> 
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">Search</a>());
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">Search</a>());
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFind</a>());
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DefineAddCustomFind</a>());
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearSearch</a>());
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ClearSearch</a>());
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> 
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> 
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayNormalTimes</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayNormalTimes</a>() {
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Hide relative times"</span>);
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>   addActionListener(
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>           <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>             ((<a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a>)currentTable.getDefaultRenderer(Object.<strong class="jxr_keyword">class</strong>)).setUseNormalTimes();
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>             ((<a href="../../../../org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.html">ChainsawCyclicBufferTableModel</a>)currentTable.getModel()).reFilter();
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>             setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>           }
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         }
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>     });
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>       }
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>     }
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a> 
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToRowUnderCursor</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToRowUnderCursor</a>() {
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>       <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Show times relative to this event"</span>);
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>       addActionListener(
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>       <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>             <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>               <strong class="jxr_keyword">int</strong> row = currentTable.rowAtPoint(currentPoint);
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>               <a href="../../../../org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.html">ChainsawCyclicBufferTableModel</a> cyclicBufferTableModel = (ChainsawCyclicBufferTableModel) currentTable.getModel();
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>               <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = cyclicBufferTableModel.getRow(row);
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>               <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>               {
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>                   ((<a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a>)currentTable.getDefaultRenderer(Object.<strong class="jxr_keyword">class</strong>)).setUseRelativeTimes(loggingEventWrapper.getLoggingEvent().getTimeStamp());
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>                   cyclicBufferTableModel.reFilter();
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>               }
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a>               setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>             }
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>         }
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>       });
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>     }
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>     }
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a> 
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToPreviousRow</a> <strong class="jxr_keyword">extends</strong> JMenuItem {
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToPreviousRow</a>() {
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>         <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Show times relative to previous rows"</span>);
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a>       addActionListener(
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>         <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>               <strong class="jxr_keyword">if</strong> (currentPoint != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>                 ((<a href="../../../../org/apache/log4j/chainsaw/TableColorizingRenderer.html">TableColorizingRenderer</a>)currentTable.getDefaultRenderer(Object.<strong class="jxr_keyword">class</strong>)).setUseRelativeTimesToPreviousRow();
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a>                 ((<a href="../../../../org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.html">ChainsawCyclicBufferTableModel</a>)currentTable.getModel()).reFilter();
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a>                 setEnabled(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>               }
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a>           }
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>         });
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a>       }
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>     }
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a> 
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToRowUnderCursor</a>());
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToRowUnderCursor</a>());
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToPreviousRow</a>());
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayRelativeTimesToPreviousRow</a>());
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayNormalTimes</a>());
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DisplayNormalTimes</a>());
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BuildColorRule</a>());
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BuildColorRule</a>());
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopyField</a>());
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopySelection</a>());
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopyField</a>());
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">CopySelection</a>());
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a> 
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>     mainPopup.add(menuItemToggleDetails);
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>     mainPopup.add(menuItemLoggerTree);
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>     mainToggleToolTips = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a>();
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>     searchToggleToolTips = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a>();
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>     mainPopup.add(mainToggleToolTips);
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>     searchPopup.add(searchToggleToolTips);
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a> 
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> 
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a>     mainPopup.add(menuItemToggleDock);
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a> 
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BestFit</a>());
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">BestFit</a>());
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a> 
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> JSeparator());
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a> 
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a>());
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/color/ColorPanel.html">ColorPanel</a>());
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a>     mainPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanelPreferences</a>());
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>     searchPopup.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">LogPanelPreferences</a>());
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> 
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a> mainTablePopupListener = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a>(mainPopup);
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>     eventsPane.addMouseListener(mainTablePopupListener);
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>     table.addMouseListener(mainTablePopupListener);
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a> 
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>     table.addMouseListener(<strong class="jxr_keyword">new</strong> MouseListener(){
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>       }
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> 
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mousePressed(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a>       }
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> 
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseReleased(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a>       }
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a> 
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseEntered(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>       }
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a> 
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseExited(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>       }
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a> 
<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkMultiSelect(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a>         <strong class="jxr_keyword">if</strong> (mouseEvent.isAltDown()) {
<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a>           table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a>           table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a>         }
<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a>       }
<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a>     });
<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> 
<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a> 
<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a>     searchTable.addMouseListener(<strong class="jxr_keyword">new</strong> MouseListener(){
<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a>       }
<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a> 
<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mousePressed(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a>       }
<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a> 
<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseReleased(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a>       }
<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a> 
<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseEntered(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a>       }
<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a> 
<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseExited(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>         checkMultiSelect(mouseEvent);
<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a>       }
<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a> 
<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkMultiSelect(MouseEvent mouseEvent) {
<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a>         <strong class="jxr_keyword">if</strong> (mouseEvent.isAltDown()) {
<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a>           searchTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a>           searchTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a>         }
<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a>       }
<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>     });
<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a> 
<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a> 
<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a> searchTablePopupListener = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/PopupListener.html">PopupListener</a>(searchPopup);
<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a>     searchPane.addMouseListener(searchTablePopupListener);
<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a>     searchTable.addMouseListener(searchTablePopupListener);
<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a>   }
<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a> 
<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a>        <strong class="jxr_keyword">private</strong> String getValueOf(<strong class="jxr_keyword">int</strong> row, <strong class="jxr_keyword">int</strong> column) {
<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a>          <strong class="jxr_keyword">if</strong> (currentTable == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a>            <strong class="jxr_keyword">return</strong> <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a>          }
<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a> 
<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a>          Object o = currentTable.getValueAt(row, column);
<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> 
<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a>          <strong class="jxr_keyword">if</strong> (o instanceof Date) {
<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a>            <strong class="jxr_keyword">return</strong> TIMESTAMP_DATE_FORMAT.format((Date)o);
<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a>          }
<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a> 
<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a>          <strong class="jxr_keyword">if</strong> (o instanceof String) {
<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a>            <strong class="jxr_keyword">return</strong> (String)o;
<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>          }
<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a> 
<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a>          <strong class="jxr_keyword">if</strong> (o instanceof Level) {
<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a>            <strong class="jxr_keyword">return</strong> o.toString();
<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a>          }
<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a> 
<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a>          <strong class="jxr_keyword">if</strong> (o instanceof String[]) {
<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a>            String value = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>           <em class="jxr_comment">//exception - build message + throwable</em>
<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a>           String[] ti = (String[])o;
<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a>             <strong class="jxr_keyword">if</strong> (ti.length &gt; 0 &amp;&amp; (!(ti.length == 1 &amp;&amp; ti[0].equals(<span class="jxr_string">""</span>)))) {
<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a>               <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = ((ChainsawCyclicBufferTableModel)(currentTable.getModel())).getRow(row);
<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a>               value = loggingEventWrapper.getLoggingEvent().getMessage().toString();
<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a>               <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0;i&lt;((String[])o).length;i++) {
<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a>                   value = value + <span class="jxr_string">"\n"</span> + ((String[]) o)[i];
<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a>               }
<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a>             }
<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a>            <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a>          }
<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a>       }
<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a> 
<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a>     <strong class="jxr_keyword">private</strong> Action getFindNextAction() {
<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a>     <strong class="jxr_keyword">final</strong> Action action =
<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Find next"</span>) {
<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a>           findNext();
<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a>         }
<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a>       };
<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> 
<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a>     <em class="jxr_comment">//    action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_F));</em>
<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a>     action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(<span class="jxr_string">"F3"</span>));
<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a>     action.putValue(
<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a>       <span class="jxr_string">"Find the next occurrence of the rule from the current row"</span>);
<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a>     action.putValue(Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.DOWN));
<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a> 
<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a>     <strong class="jxr_keyword">return</strong> action;
<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a>   }
<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a> 
<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a>   <strong class="jxr_keyword">private</strong> Action getFindPreviousAction() {
<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a>     <strong class="jxr_keyword">final</strong> Action action =
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Find previous"</span>) {
<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a>             findPrevious();
<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a>         }
<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a>       };
<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a> 
<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a>     <em class="jxr_comment">//    action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_F));</em>
<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a>     action.putValue(
<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a>       Action.ACCELERATOR_KEY,
<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a>       KeyStroke.getKeyStroke(KeyEvent.VK_F3, InputEvent.SHIFT_MASK));
<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a>     action.putValue(
<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>       <span class="jxr_string">"Find the previous occurrence of the rule from the current row"</span>);
<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a>     action.putValue(Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.UP));
<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a> 
<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a>     <strong class="jxr_keyword">return</strong> action;
<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a>   }
<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a> 
<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>   <strong class="jxr_keyword">private</strong>  <strong class="jxr_keyword">void</strong> buildCombo(<strong class="jxr_keyword">final</strong> AutoFilterComboBox combo, <strong class="jxr_keyword">boolean</strong> isFiltering, <strong class="jxr_keyword">final</strong> AutoFilterComboBox.AutoFilterComboBoxModel otherModel) {
<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a>     <em class="jxr_comment">//add (hopefully useful) default filters</em>
<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a>     combo.addItem(<span class="jxr_string">"LEVEL == TRACE"</span>);
<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a>     combo.addItem(<span class="jxr_string">"LEVEL &gt;= DEBUG"</span>);
<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a>     combo.addItem(<span class="jxr_string">"LEVEL &gt;= INFO"</span>);
<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a>     combo.addItem(<span class="jxr_string">"LEVEL &gt;= WARN"</span>);
<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a>     combo.addItem(<span class="jxr_string">"LEVEL &gt;= ERROR"</span>);
<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a>     combo.addItem(<span class="jxr_string">"LEVEL == FATAL"</span>);
<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> 
<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a>     <strong class="jxr_keyword">final</strong> JTextField filterText =(JTextField) combo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a>     <strong class="jxr_keyword">if</strong> (isFiltering) {
<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a>       filterText.getDocument().addDocumentListener(<strong class="jxr_keyword">new</strong> DelayedTextDocumentListener(filterText));
<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a>     }
<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a>     filterText.setToolTipText(<span class="jxr_string">"Enter an expression - right click or ctrl-space for menu - press enter to add to list"</span>);
<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a>     filterText.addKeyListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/ExpressionRuleContext.html">ExpressionRuleContext</a>(filterModel, filterText));
<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a> 
<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a>     <strong class="jxr_keyword">if</strong> (combo.getEditor().getEditorComponent() instanceof JTextField) {
<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a>       combo.addActionListener(
<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a>         <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a>             <strong class="jxr_keyword">if</strong> (e.getActionCommand().equals(<span class="jxr_string">"comboBoxEdited"</span>)) {
<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a>               <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a>                 <em class="jxr_comment">//verify the expression is valid</em>
<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a>                   Object item = combo.getSelectedItem();
<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a>                   <strong class="jxr_keyword">if</strong> (item != <strong class="jxr_keyword">null</strong> &amp;&amp; !item.toString().trim().equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a>                     ExpressionRule.getRule(item.toString());
<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a>                     <em class="jxr_comment">//add entry as first row of the combo box</em>
<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a>                     combo.insertItemAt(item, 0);
<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a>                     otherModel.insertElementAt(item, 0);
<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a>                   }
<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a>                 <em class="jxr_comment">//valid expression, reset background color in case we were previously an invalid expression</em>
<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a>                 filterText.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a>               } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a>                   <em class="jxr_comment">//don't add expressions that aren't valid</em>
<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a>                   <em class="jxr_comment">//invalid expression, change background of the field</em>
<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a>                   filterText.setToolTipText(iae.getMessage());
<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a>                   filterText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a>               }
<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a>             }
<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a>           }
<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a>         });
<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a>     }
<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a>   }
<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a> 
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a> <em class="jxr_javadoccomment">   * @return scrollToBottom</em>
<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isScrollToBottom() {
<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a>   	<strong class="jxr_keyword">return</strong> preferenceModel.isScrollToBottom();
<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a>   }
<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a> 
<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRefineFocusText(String refineFocusText) {
<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a>       <strong class="jxr_keyword">final</strong> JTextField filterText =(JTextField) filterCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a>       filterText.setText(refineFocusText);
<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a>   }
<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a> 
<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a>   <strong class="jxr_keyword">public</strong> String getRefineFocusText() {
<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a>       <strong class="jxr_keyword">final</strong> JTextField filterText =(JTextField) filterCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a>       <strong class="jxr_keyword">return</strong> filterText.getText();
<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a>   }
<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a> <em class="jxr_javadoccomment">   * Mutator</em>
<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> toggleScrollToBottom() {
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a>   	preferenceModel.setScrollToBottom(!preferenceModel.isScrollToBottom());
<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a>   }
<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a>   
<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> scrollToBottom() {
<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a>     <em class="jxr_comment">//run this in an invokeLater block to ensure this action is enqueued to the end of the EDT</em>
<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a>     EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable()
<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a>     {
<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a>           <strong class="jxr_keyword">int</strong> scrollRow = tableModel.getRowCount() - 1;
<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a>             table.scrollToRow(scrollRow);
<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a>         }
<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a>     });
<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a>   }
<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a> 
<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> scrollToTop() {
<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a>       EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a>               <strong class="jxr_keyword">if</strong> (tableModel.getRowCount() &gt; 1) {
<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a>                   table.scrollToRow(0);
<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a>               }
<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a>           }
<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a>       });
<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a>   }
<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a> 
<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a> <em class="jxr_javadoccomment">   * @return namespace</em>
<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> <em class="jxr_javadoccomment">   * @see Profileable</em>
<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a>   <strong class="jxr_keyword">public</strong> String getNamespace() {
<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a>     <strong class="jxr_keyword">return</strong> getIdentifier();
<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a>   }
<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a> 
<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a> <em class="jxr_javadoccomment">   * @return identifier</em>
<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a> <em class="jxr_javadoccomment">   * @see EventBatchListener</em>
<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>   <strong class="jxr_keyword">public</strong> String getInterestedIdentifier() {
<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a>     <strong class="jxr_keyword">return</strong> getIdentifier();
<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a>   }
<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a> 
<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a> <em class="jxr_javadoccomment">   * Process events associated with the identifier.  Currently assumes it only</em>
<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a> <em class="jxr_javadoccomment">   * receives events which share this LogPanel's identifier</em>
<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a> <em class="jxr_javadoccomment">   * @param ident identifier shared by events</em>
<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a> <em class="jxr_javadoccomment">   * @param events list of LoggingEvent objects</em>
<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> receiveEventBatch(String ident, <strong class="jxr_keyword">final</strong> List events) {
<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a> 
<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a>     SwingHelper.invokeOnEDT(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a>         <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2132" href="#L2132">2132</a> <em class="jxr_comment">        * if this panel is paused, we totally ignore events</em>
<a class="jxr_linenumber" name="L2133" href="#L2133">2133</a> <em class="jxr_comment">        */</em>
<a class="jxr_linenumber" name="L2134" href="#L2134">2134</a>         <strong class="jxr_keyword">if</strong> (isPaused()) {
<a class="jxr_linenumber" name="L2135" href="#L2135">2135</a>           <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L2136" href="#L2136">2136</a>         }
<a class="jxr_linenumber" name="L2137" href="#L2137">2137</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> selectedRow = table.getSelectedRow();
<a class="jxr_linenumber" name="L2138" href="#L2138">2138</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> startingRow = table.getRowCount();
<a class="jxr_linenumber" name="L2139" href="#L2139">2139</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> selectedEvent;
<a class="jxr_linenumber" name="L2140" href="#L2140">2140</a>         <strong class="jxr_keyword">if</strong> (selectedRow &gt;= 0) {
<a class="jxr_linenumber" name="L2141" href="#L2141">2141</a>           selectedEvent = tableModel.getRow(selectedRow);
<a class="jxr_linenumber" name="L2142" href="#L2142">2142</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2143" href="#L2143">2143</a>           selectedEvent = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2144" href="#L2144">2144</a>         }
<a class="jxr_linenumber" name="L2145" href="#L2145">2145</a> 
<a class="jxr_linenumber" name="L2146" href="#L2146">2146</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> startingSearchRow = searchTable.getRowCount();
<a class="jxr_linenumber" name="L2147" href="#L2147">2147</a> 
<a class="jxr_linenumber" name="L2148" href="#L2148">2148</a>         <strong class="jxr_keyword">boolean</strong> rowAdded = false;
<a class="jxr_linenumber" name="L2149" href="#L2149">2149</a>         <strong class="jxr_keyword">boolean</strong> searchRowAdded = false;
<a class="jxr_linenumber" name="L2150" href="#L2150">2150</a> 
<a class="jxr_linenumber" name="L2151" href="#L2151">2151</a>         <strong class="jxr_keyword">int</strong> addedRowCount = 0;
<a class="jxr_linenumber" name="L2152" href="#L2152">2152</a>         <strong class="jxr_keyword">int</strong> searchAddedRowCount = 0;
<a class="jxr_linenumber" name="L2153" href="#L2153">2153</a> 
<a class="jxr_linenumber" name="L2154" href="#L2154">2154</a>         <strong class="jxr_keyword">for</strong> (Iterator iter = events.iterator(); iter.hasNext();) {
<a class="jxr_linenumber" name="L2155" href="#L2155">2155</a>           <em class="jxr_comment">//these are actual LoggingEvent instances</em>
<a class="jxr_linenumber" name="L2156" href="#L2156">2156</a>           LoggingEvent event = (LoggingEvent)iter.next();
<a class="jxr_linenumber" name="L2157" href="#L2157">2157</a>           <em class="jxr_comment">//create two separate loggingEventWrappers (main table and search table), as they have different info on display state</em>
<a class="jxr_linenumber" name="L2158" href="#L2158">2158</a>           <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper1 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a>(event);
<a class="jxr_linenumber" name="L2159" href="#L2159">2159</a>             <em class="jxr_comment">//if the clearTableExpressionRule is not null, evaluate &amp; clear the table if it matches</em>
<a class="jxr_linenumber" name="L2160" href="#L2160">2160</a>             <strong class="jxr_keyword">if</strong> (clearTableExpressionRule != <strong class="jxr_keyword">null</strong> &amp;&amp; clearTableExpressionRule.evaluate(event, <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="L2161" href="#L2161">2161</a>                 logger.info(<span class="jxr_string">"clear table expression matched - clearing table - matching event msg - "</span> + event.getMessage());
<a class="jxr_linenumber" name="L2162" href="#L2162">2162</a>                 clearEvents();
<a class="jxr_linenumber" name="L2163" href="#L2163">2163</a>             }
<a class="jxr_linenumber" name="L2164" href="#L2164">2164</a> 
<a class="jxr_linenumber" name="L2165" href="#L2165">2165</a>           updateOtherModels(event);
<a class="jxr_linenumber" name="L2166" href="#L2166">2166</a>           <strong class="jxr_keyword">boolean</strong> isCurrentRowAdded = tableModel.isAddRow(loggingEventWrapper1);
<a class="jxr_linenumber" name="L2167" href="#L2167">2167</a>           <strong class="jxr_keyword">if</strong> (isCurrentRowAdded) {
<a class="jxr_linenumber" name="L2168" href="#L2168">2168</a>               addedRowCount++;
<a class="jxr_linenumber" name="L2169" href="#L2169">2169</a>           }
<a class="jxr_linenumber" name="L2170" href="#L2170">2170</a>           rowAdded = rowAdded || isCurrentRowAdded;
<a class="jxr_linenumber" name="L2171" href="#L2171">2171</a> 
<a class="jxr_linenumber" name="L2172" href="#L2172">2172</a>           <em class="jxr_comment">//create a new loggingEventWrapper via copy constructor to ensure same IDs</em>
<a class="jxr_linenumber" name="L2173" href="#L2173">2173</a>           <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper2 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a>(loggingEventWrapper1);
<a class="jxr_linenumber" name="L2174" href="#L2174">2174</a>           <strong class="jxr_keyword">boolean</strong> isSearchCurrentRowAdded = searchModel.isAddRow(loggingEventWrapper2);
<a class="jxr_linenumber" name="L2175" href="#L2175">2175</a>           <strong class="jxr_keyword">if</strong> (isSearchCurrentRowAdded) {
<a class="jxr_linenumber" name="L2176" href="#L2176">2176</a>               searchAddedRowCount++;
<a class="jxr_linenumber" name="L2177" href="#L2177">2177</a>           }
<a class="jxr_linenumber" name="L2178" href="#L2178">2178</a>           searchRowAdded = searchRowAdded || isSearchCurrentRowAdded;
<a class="jxr_linenumber" name="L2179" href="#L2179">2179</a>         }
<a class="jxr_linenumber" name="L2180" href="#L2180">2180</a>         <em class="jxr_comment">//fire after adding all events</em>
<a class="jxr_linenumber" name="L2181" href="#L2181">2181</a>         <strong class="jxr_keyword">if</strong> (rowAdded) {
<a class="jxr_linenumber" name="L2182" href="#L2182">2182</a>           tableModel.fireTableEvent(startingRow, startingRow + addedRowCount, addedRowCount);
<a class="jxr_linenumber" name="L2183" href="#L2183">2183</a>         }
<a class="jxr_linenumber" name="L2184" href="#L2184">2184</a>         <strong class="jxr_keyword">if</strong> (searchRowAdded) {
<a class="jxr_linenumber" name="L2185" href="#L2185">2185</a>           searchModel.fireTableEvent(startingSearchRow, startingSearchRow + searchAddedRowCount, searchAddedRowCount);
<a class="jxr_linenumber" name="L2186" href="#L2186">2186</a>         }
<a class="jxr_linenumber" name="L2187" href="#L2187">2187</a> 
<a class="jxr_linenumber" name="L2188" href="#L2188">2188</a>         <em class="jxr_comment">//tell the model to notify the count listeners</em>
<a class="jxr_linenumber" name="L2189" href="#L2189">2189</a>         tableModel.notifyCountListeners();
<a class="jxr_linenumber" name="L2190" href="#L2190">2190</a> 
<a class="jxr_linenumber" name="L2191" href="#L2191">2191</a>         <strong class="jxr_keyword">if</strong> (rowAdded) {
<a class="jxr_linenumber" name="L2192" href="#L2192">2192</a>           <strong class="jxr_keyword">if</strong> (tableModel.isSortEnabled()) {
<a class="jxr_linenumber" name="L2193" href="#L2193">2193</a>             tableModel.sort();
<a class="jxr_linenumber" name="L2194" href="#L2194">2194</a>           }
<a class="jxr_linenumber" name="L2195" href="#L2195">2195</a> 
<a class="jxr_linenumber" name="L2196" href="#L2196">2196</a>           <em class="jxr_comment">//always update detail pane (since we may be using a cyclic buffer which is full)</em>
<a class="jxr_linenumber" name="L2197" href="#L2197">2197</a>           detailPaneUpdater.setSelectedRow(table.getSelectedRow());
<a class="jxr_linenumber" name="L2198" href="#L2198">2198</a>         }
<a class="jxr_linenumber" name="L2199" href="#L2199">2199</a> 
<a class="jxr_linenumber" name="L2200" href="#L2200">2200</a>         <strong class="jxr_keyword">if</strong> (searchRowAdded) {
<a class="jxr_linenumber" name="L2201" href="#L2201">2201</a>           <strong class="jxr_keyword">if</strong> (searchModel.isSortEnabled()) {
<a class="jxr_linenumber" name="L2202" href="#L2202">2202</a>             searchModel.sort();
<a class="jxr_linenumber" name="L2203" href="#L2203">2203</a>           }
<a class="jxr_linenumber" name="L2204" href="#L2204">2204</a>         }
<a class="jxr_linenumber" name="L2205" href="#L2205">2205</a> 
<a class="jxr_linenumber" name="L2206" href="#L2206">2206</a>         <strong class="jxr_keyword">if</strong> (!isScrollToBottom() &amp;&amp; selectedEvent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L2207" href="#L2207">2207</a>           <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> newIndex = tableModel.getRowIndex(selectedEvent);
<a class="jxr_linenumber" name="L2208" href="#L2208">2208</a>           <strong class="jxr_keyword">if</strong> (newIndex &gt;= 0) {
<a class="jxr_linenumber" name="L2209" href="#L2209">2209</a>             <em class="jxr_comment">// Don't scroll, just maintain selection...</em>
<a class="jxr_linenumber" name="L2210" href="#L2210">2210</a>             table.setRowSelectionInterval(newIndex, newIndex);
<a class="jxr_linenumber" name="L2211" href="#L2211">2211</a>           }
<a class="jxr_linenumber" name="L2212" href="#L2212">2212</a>         }
<a class="jxr_linenumber" name="L2213" href="#L2213">2213</a>       }
<a class="jxr_linenumber" name="L2214" href="#L2214">2214</a>     });
<a class="jxr_linenumber" name="L2215" href="#L2215">2215</a>   }
<a class="jxr_linenumber" name="L2216" href="#L2216">2216</a> 
<a class="jxr_linenumber" name="L2217" href="#L2217">2217</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2218" href="#L2218">2218</a> <em class="jxr_javadoccomment">   * Load settings from the panel preference model</em>
<a class="jxr_linenumber" name="L2219" href="#L2219">2219</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2220" href="#L2220">2220</a> <em class="jxr_javadoccomment">   * @param event</em>
<a class="jxr_linenumber" name="L2221" href="#L2221">2221</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2222" href="#L2222">2222</a> <em class="jxr_javadoccomment">   * @see LogPanelPreferenceModel</em>
<a class="jxr_linenumber" name="L2223" href="#L2223">2223</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2224" href="#L2224">2224</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="L2225" href="#L2225">2225</a> 
<a class="jxr_linenumber" name="L2226" href="#L2226">2226</a>     File xmlFile = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2227" href="#L2227">2227</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2228" href="#L2228">2228</a>       xmlFile = <strong class="jxr_keyword">new</strong> File(SettingsManager.getInstance().getSettingsDirectory(), URLEncoder.encode(identifier, <span class="jxr_string">"UTF-8"</span>) + <span class="jxr_string">".xml"</span>);
<a class="jxr_linenumber" name="L2229" href="#L2229">2229</a>     } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a class="jxr_linenumber" name="L2230" href="#L2230">2230</a>       e.printStackTrace();
<a class="jxr_linenumber" name="L2231" href="#L2231">2231</a>     }
<a class="jxr_linenumber" name="L2232" href="#L2232">2232</a> 
<a class="jxr_linenumber" name="L2233" href="#L2233">2233</a>     <strong class="jxr_keyword">if</strong> (xmlFile.exists()) {
<a class="jxr_linenumber" name="L2234" href="#L2234">2234</a>         XStream stream = buildXStreamForLogPanelPreference();
<a class="jxr_linenumber" name="L2235" href="#L2235">2235</a>         ObjectInputStream in = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2236" href="#L2236">2236</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2237" href="#L2237">2237</a>             FileReader r = <strong class="jxr_keyword">new</strong> FileReader(xmlFile);
<a class="jxr_linenumber" name="L2238" href="#L2238">2238</a>             in = stream.createObjectInputStream(r);
<a class="jxr_linenumber" name="L2239" href="#L2239">2239</a>             <a href="../../../../org/apache/log4j/chainsaw/LogPanelPreferenceModel.html">LogPanelPreferenceModel</a> storedPrefs = (LogPanelPreferenceModel)in.readObject();
<a class="jxr_linenumber" name="L2240" href="#L2240">2240</a>             lowerPanelDividerLocation = in.readInt();
<a class="jxr_linenumber" name="L2241" href="#L2241">2241</a>             <strong class="jxr_keyword">int</strong> treeDividerLocation = in.readInt();
<a class="jxr_linenumber" name="L2242" href="#L2242">2242</a>             String conversionPattern = in.readObject().toString();
<a class="jxr_linenumber" name="L2243" href="#L2243">2243</a>             Point p = (Point)in.readObject();
<a class="jxr_linenumber" name="L2244" href="#L2244">2244</a>             Dimension d = (Dimension)in.readObject();
<a class="jxr_linenumber" name="L2245" href="#L2245">2245</a>             <em class="jxr_comment">//this version number is checked to identify whether there is a Vector comming next</em>
<a class="jxr_linenumber" name="L2246" href="#L2246">2246</a>             <strong class="jxr_keyword">int</strong> versionNumber = 0;
<a class="jxr_linenumber" name="L2247" href="#L2247">2247</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2248" href="#L2248">2248</a>                 versionNumber = in.readInt();
<a class="jxr_linenumber" name="L2249" href="#L2249">2249</a>             } <strong class="jxr_keyword">catch</strong> (EOFException eof){
<a class="jxr_linenumber" name="L2250" href="#L2250">2250</a>             }
<a class="jxr_linenumber" name="L2251" href="#L2251">2251</a> 
<a class="jxr_linenumber" name="L2252" href="#L2252">2252</a>             Vector savedVector;
<a class="jxr_linenumber" name="L2253" href="#L2253">2253</a>             <em class="jxr_comment">//read the vector only if the version number is greater than 0. higher version numbers can be</em>
<a class="jxr_linenumber" name="L2254" href="#L2254">2254</a>             <em class="jxr_comment">//used in the future to save more data structures</em>
<a class="jxr_linenumber" name="L2255" href="#L2255">2255</a>             <strong class="jxr_keyword">if</strong> (versionNumber &gt; 0) {
<a class="jxr_linenumber" name="L2256" href="#L2256">2256</a>                 savedVector = (Vector) in.readObject();
<a class="jxr_linenumber" name="L2257" href="#L2257">2257</a>                 <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0 ; i &lt; savedVector.size() ; i++){
<a class="jxr_linenumber" name="L2258" href="#L2258">2258</a>                     Object item = savedVector.get(i);
<a class="jxr_linenumber" name="L2259" href="#L2259">2259</a>                     <em class="jxr_comment">//insert each row at index zero (so last row in vector will be row zero)</em>
<a class="jxr_linenumber" name="L2260" href="#L2260">2260</a>                     filterCombo.insertItemAt(item, 0);
<a class="jxr_linenumber" name="L2261" href="#L2261">2261</a>                     findCombo.insertItemAt(item, 0);
<a class="jxr_linenumber" name="L2262" href="#L2262">2262</a>                 }
<a class="jxr_linenumber" name="L2263" href="#L2263">2263</a>                 <strong class="jxr_keyword">if</strong> (versionNumber &gt; 1) {
<a class="jxr_linenumber" name="L2264" href="#L2264">2264</a>                     <em class="jxr_comment">//update prefModel columns to include defaults</em>
<a class="jxr_linenumber" name="L2265" href="#L2265">2265</a>                     <strong class="jxr_keyword">int</strong> index = 0;
<a class="jxr_linenumber" name="L2266" href="#L2266">2266</a>                     String columnOrder = event.getSetting(TABLE_COLUMN_ORDER);
<a class="jxr_linenumber" name="L2267" href="#L2267">2267</a>                     StringTokenizer tok = <strong class="jxr_keyword">new</strong> StringTokenizer(columnOrder, <span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L2268" href="#L2268">2268</a>                     <strong class="jxr_keyword">while</strong> (tok.hasMoreElements()) {
<a class="jxr_linenumber" name="L2269" href="#L2269">2269</a>                       String element = tok.nextElement().toString().trim().toUpperCase();
<a class="jxr_linenumber" name="L2270" href="#L2270">2270</a>                       TableColumn column = <strong class="jxr_keyword">new</strong> TableColumn(index++);
<a class="jxr_linenumber" name="L2271" href="#L2271">2271</a>                       column.setHeaderValue(element);
<a class="jxr_linenumber" name="L2272" href="#L2272">2272</a>                       preferenceModel.addColumn(column);
<a class="jxr_linenumber" name="L2273" href="#L2273">2273</a>                     }
<a class="jxr_linenumber" name="L2274" href="#L2274">2274</a> 
<a class="jxr_linenumber" name="L2275" href="#L2275">2275</a>                     TableColumnModel columnModel = table.getColumnModel();
<a class="jxr_linenumber" name="L2276" href="#L2276">2276</a>                     <em class="jxr_comment">//remove previous columns</em>
<a class="jxr_linenumber" name="L2277" href="#L2277">2277</a>                     <strong class="jxr_keyword">while</strong> (columnModel.getColumnCount() &gt; 0) {
<a class="jxr_linenumber" name="L2278" href="#L2278">2278</a>                         columnModel.removeColumn(columnModel.getColumn(0));
<a class="jxr_linenumber" name="L2279" href="#L2279">2279</a>                     }
<a class="jxr_linenumber" name="L2280" href="#L2280">2280</a>                     <em class="jxr_comment">//add visible column order columns</em>
<a class="jxr_linenumber" name="L2281" href="#L2281">2281</a>                     <strong class="jxr_keyword">for</strong> (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L2282" href="#L2282">2282</a>                         TableColumn col = (TableColumn)iter.next();
<a class="jxr_linenumber" name="L2283" href="#L2283">2283</a>                         columnModel.addColumn(col);
<a class="jxr_linenumber" name="L2284" href="#L2284">2284</a>                     }
<a class="jxr_linenumber" name="L2285" href="#L2285">2285</a> 
<a class="jxr_linenumber" name="L2286" href="#L2286">2286</a>                   TableColumnModel searchColumnModel = searchTable.getColumnModel();
<a class="jxr_linenumber" name="L2287" href="#L2287">2287</a>                   <em class="jxr_comment">//remove previous columns</em>
<a class="jxr_linenumber" name="L2288" href="#L2288">2288</a>                   <strong class="jxr_keyword">while</strong> (searchColumnModel.getColumnCount() &gt; 0) {
<a class="jxr_linenumber" name="L2289" href="#L2289">2289</a>                       searchColumnModel.removeColumn(searchColumnModel.getColumn(0));
<a class="jxr_linenumber" name="L2290" href="#L2290">2290</a>                   }
<a class="jxr_linenumber" name="L2291" href="#L2291">2291</a>                   <em class="jxr_comment">//add visible column order columns</em>
<a class="jxr_linenumber" name="L2292" href="#L2292">2292</a>                   <strong class="jxr_keyword">for</strong> (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L2293" href="#L2293">2293</a>                       TableColumn col = (TableColumn)iter.next();
<a class="jxr_linenumber" name="L2294" href="#L2294">2294</a>                       searchColumnModel.addColumn(col);
<a class="jxr_linenumber" name="L2295" href="#L2295">2295</a>                   }
<a class="jxr_linenumber" name="L2296" href="#L2296">2296</a> 
<a class="jxr_linenumber" name="L2297" href="#L2297">2297</a>                     preferenceModel.apply(storedPrefs);
<a class="jxr_linenumber" name="L2298" href="#L2298">2298</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2299" href="#L2299">2299</a>                     loadDefaultColumnSettings(event);
<a class="jxr_linenumber" name="L2300" href="#L2300">2300</a>                 }
<a class="jxr_linenumber" name="L2301" href="#L2301">2301</a>                 <em class="jxr_comment">//ensure tablemodel cyclic flag is updated</em>
<a class="jxr_linenumber" name="L2302" href="#L2302">2302</a>                 <em class="jxr_comment">//may be panel configs that don't have these values</em>
<a class="jxr_linenumber" name="L2303" href="#L2303">2303</a>                 tableModel.setCyclic(preferenceModel.isCyclic());
<a class="jxr_linenumber" name="L2304" href="#L2304">2304</a>                 searchModel.setCyclic(preferenceModel.isCyclic());
<a class="jxr_linenumber" name="L2305" href="#L2305">2305</a>                 lowerPanel.setDividerLocation(lowerPanelDividerLocation);
<a class="jxr_linenumber" name="L2306" href="#L2306">2306</a>                 nameTreeAndMainPanelSplit.setDividerLocation(treeDividerLocation);
<a class="jxr_linenumber" name="L2307" href="#L2307">2307</a>                 detailLayout.setConversionPattern(conversionPattern);
<a class="jxr_linenumber" name="L2308" href="#L2308">2308</a>                 <strong class="jxr_keyword">if</strong> (p.x != 0 &amp;&amp; p.y != 0) {
<a class="jxr_linenumber" name="L2309" href="#L2309">2309</a>                     undockedFrame.setLocation(p.x, p.y);
<a class="jxr_linenumber" name="L2310" href="#L2310">2310</a>                     undockedFrame.setSize(d);
<a class="jxr_linenumber" name="L2311" href="#L2311">2311</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2312" href="#L2312">2312</a>                     undockedFrame.setLocation(0, 0);
<a class="jxr_linenumber" name="L2313" href="#L2313">2313</a>                     undockedFrame.setSize(<strong class="jxr_keyword">new</strong> Dimension(1024, 768));
<a class="jxr_linenumber" name="L2314" href="#L2314">2314</a>                 }
<a class="jxr_linenumber" name="L2315" href="#L2315">2315</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2316" href="#L2316">2316</a>                 loadDefaultColumnSettings(event);
<a class="jxr_linenumber" name="L2317" href="#L2317">2317</a>             }
<a class="jxr_linenumber" name="L2318" href="#L2318">2318</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L2319" href="#L2319">2319</a>             e.printStackTrace();
<a class="jxr_linenumber" name="L2320" href="#L2320">2320</a>             loadDefaultColumnSettings(event);
<a class="jxr_linenumber" name="L2321" href="#L2321">2321</a>             <em class="jxr_comment">// TODO need to log this..</em>
<a class="jxr_linenumber" name="L2322" href="#L2322">2322</a>         } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L2323" href="#L2323">2323</a>             <strong class="jxr_keyword">if</strong> (in != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L2324" href="#L2324">2324</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2325" href="#L2325">2325</a>                     in.close();
<a class="jxr_linenumber" name="L2326" href="#L2326">2326</a>                 } <strong class="jxr_keyword">catch</strong> (IOException ioe) {}
<a class="jxr_linenumber" name="L2327" href="#L2327">2327</a>             }
<a class="jxr_linenumber" name="L2328" href="#L2328">2328</a>         }
<a class="jxr_linenumber" name="L2329" href="#L2329">2329</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2330" href="#L2330">2330</a>         <em class="jxr_comment">//not setting lower panel divider location here - will do that after the UI is visible</em>
<a class="jxr_linenumber" name="L2331" href="#L2331">2331</a>         loadDefaultColumnSettings(event);
<a class="jxr_linenumber" name="L2332" href="#L2332">2332</a>     }
<a class="jxr_linenumber" name="L2333" href="#L2333">2333</a>     <em class="jxr_comment">//ensure tablemodel cyclic flag is updated</em>
<a class="jxr_linenumber" name="L2334" href="#L2334">2334</a>     tableModel.setCyclic(preferenceModel.isCyclic());
<a class="jxr_linenumber" name="L2335" href="#L2335">2335</a>     searchModel.setCyclic(preferenceModel.isCyclic());
<a class="jxr_linenumber" name="L2336" href="#L2336">2336</a>     logTreePanel.ignore(preferenceModel.getHiddenLoggers());
<a class="jxr_linenumber" name="L2337" href="#L2337">2337</a>     logTreePanel.setHiddenExpression(preferenceModel.getHiddenExpression());
<a class="jxr_linenumber" name="L2338" href="#L2338">2338</a>     logTreePanel.setAlwaysDisplayExpression(preferenceModel.getAlwaysDisplayExpression());
<a class="jxr_linenumber" name="L2339" href="#L2339">2339</a>     <strong class="jxr_keyword">if</strong> (preferenceModel.getClearTableExpression() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L2340" href="#L2340">2340</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2341" href="#L2341">2341</a>             clearTableExpressionRule = ExpressionRule.getRule(preferenceModel.getClearTableExpression());
<a class="jxr_linenumber" name="L2342" href="#L2342">2342</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L2343" href="#L2343">2343</a>             clearTableExpressionRule = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2344" href="#L2344">2344</a>         }
<a class="jxr_linenumber" name="L2345" href="#L2345">2345</a>     }
<a class="jxr_linenumber" name="L2346" href="#L2346">2346</a> 
<a class="jxr_linenumber" name="L2347" href="#L2347">2347</a>     <em class="jxr_comment">//attempt to load color settings - no need to URL encode the identifier</em>
<a class="jxr_linenumber" name="L2348" href="#L2348">2348</a>     colorizer.loadColorSettings(identifier);
<a class="jxr_linenumber" name="L2349" href="#L2349">2349</a>   }
<a class="jxr_linenumber" name="L2350" href="#L2350">2350</a> 
<a class="jxr_linenumber" name="L2351" href="#L2351">2351</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2352" href="#L2352">2352</a> <em class="jxr_javadoccomment">   * Save preferences to the panel preference model</em>
<a class="jxr_linenumber" name="L2353" href="#L2353">2353</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2354" href="#L2354">2354</a> <em class="jxr_javadoccomment">   * @param event</em>
<a class="jxr_linenumber" name="L2355" href="#L2355">2355</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2356" href="#L2356">2356</a> <em class="jxr_javadoccomment">   * @see LogPanelPreferenceModel</em>
<a class="jxr_linenumber" name="L2357" href="#L2357">2357</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2358" href="#L2358">2358</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="L2359" href="#L2359">2359</a>     File xmlFile = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2360" href="#L2360">2360</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2361" href="#L2361">2361</a>       xmlFile = <strong class="jxr_keyword">new</strong> File(SettingsManager.getInstance().getSettingsDirectory(), URLEncoder.encode(identifier, <span class="jxr_string">"UTF-8"</span>) + <span class="jxr_string">".xml"</span>);
<a class="jxr_linenumber" name="L2362" href="#L2362">2362</a>     } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a class="jxr_linenumber" name="L2363" href="#L2363">2363</a>       e.printStackTrace();
<a class="jxr_linenumber" name="L2364" href="#L2364">2364</a>       <em class="jxr_comment">//unable to save..just return</em>
<a class="jxr_linenumber" name="L2365" href="#L2365">2365</a>       <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L2366" href="#L2366">2366</a>     }
<a class="jxr_linenumber" name="L2367" href="#L2367">2367</a> 
<a class="jxr_linenumber" name="L2368" href="#L2368">2368</a>     preferenceModel.setHiddenLoggers(<strong class="jxr_keyword">new</strong> HashSet(logTreePanel.getHiddenSet()));
<a class="jxr_linenumber" name="L2369" href="#L2369">2369</a>     preferenceModel.setHiddenExpression(logTreePanel.getHiddenExpression());
<a class="jxr_linenumber" name="L2370" href="#L2370">2370</a>     preferenceModel.setAlwaysDisplayExpression(logTreePanel.getAlwaysDisplayExpression());
<a class="jxr_linenumber" name="L2371" href="#L2371">2371</a>     List visibleOrder = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L2372" href="#L2372">2372</a>     Enumeration cols = table.getColumnModel().getColumns();
<a class="jxr_linenumber" name="L2373" href="#L2373">2373</a>     <strong class="jxr_keyword">while</strong> (cols.hasMoreElements()) {
<a class="jxr_linenumber" name="L2374" href="#L2374">2374</a>     	TableColumn c = (TableColumn)cols.nextElement();
<a class="jxr_linenumber" name="L2375" href="#L2375">2375</a>     	visibleOrder.add(c);
<a class="jxr_linenumber" name="L2376" href="#L2376">2376</a>     }
<a class="jxr_linenumber" name="L2377" href="#L2377">2377</a>     preferenceModel.setVisibleColumnOrder(visibleOrder);
<a class="jxr_linenumber" name="L2378" href="#L2378">2378</a>     <em class="jxr_comment">//search table will use same columns as main table</em>
<a class="jxr_linenumber" name="L2379" href="#L2379">2379</a>     
<a class="jxr_linenumber" name="L2380" href="#L2380">2380</a>     XStream stream = buildXStreamForLogPanelPreference();
<a class="jxr_linenumber" name="L2381" href="#L2381">2381</a>     ObjectOutputStream s = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2382" href="#L2382">2382</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2383" href="#L2383">2383</a>     	FileWriter w = <strong class="jxr_keyword">new</strong> FileWriter(xmlFile);
<a class="jxr_linenumber" name="L2384" href="#L2384">2384</a>     	s = stream.createObjectOutputStream(w);
<a class="jxr_linenumber" name="L2385" href="#L2385">2385</a>     	s.writeObject(preferenceModel);
<a class="jxr_linenumber" name="L2386" href="#L2386">2386</a>       <strong class="jxr_keyword">if</strong> (isDetailPanelVisible) {
<a class="jxr_linenumber" name="L2387" href="#L2387">2387</a>         <em class="jxr_comment">//use current size</em>
<a class="jxr_linenumber" name="L2388" href="#L2388">2388</a>         s.writeInt(lowerPanel.getDividerLocation());
<a class="jxr_linenumber" name="L2389" href="#L2389">2389</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2390" href="#L2390">2390</a>         <em class="jxr_comment">//use size when last hidden</em>
<a class="jxr_linenumber" name="L2391" href="#L2391">2391</a>         s.writeInt(lowerPanelDividerLocation);
<a class="jxr_linenumber" name="L2392" href="#L2392">2392</a>       }
<a class="jxr_linenumber" name="L2393" href="#L2393">2393</a>     	s.writeInt(nameTreeAndMainPanelSplit.getDividerLocation());
<a class="jxr_linenumber" name="L2394" href="#L2394">2394</a>     	s.writeObject(detailLayout.getConversionPattern());
<a class="jxr_linenumber" name="L2395" href="#L2395">2395</a>     	s.writeObject(undockedFrame.getLocation());
<a class="jxr_linenumber" name="L2396" href="#L2396">2396</a>     	s.writeObject(undockedFrame.getSize());
<a class="jxr_linenumber" name="L2397" href="#L2397">2397</a>         <em class="jxr_comment">//this is a version number written to the file to identify that there is a Vector serialized after this</em>
<a class="jxr_linenumber" name="L2398" href="#L2398">2398</a>         s.writeInt(LOG_PANEL_SERIALIZATION_VERSION_NUMBER);
<a class="jxr_linenumber" name="L2399" href="#L2399">2399</a>         <em class="jxr_comment">//don't write filterexpressionvector, write the combobox's model's backing vector</em>
<a class="jxr_linenumber" name="L2400" href="#L2400">2400</a>         Vector combinedVector = <strong class="jxr_keyword">new</strong> Vector();
<a class="jxr_linenumber" name="L2401" href="#L2401">2401</a>         combinedVector.addAll(filterCombo.getModelData());
<a class="jxr_linenumber" name="L2402" href="#L2402">2402</a>         combinedVector.addAll(findCombo.getModelData());
<a class="jxr_linenumber" name="L2403" href="#L2403">2403</a>         <em class="jxr_comment">//duplicates will be removed when loaded..</em>
<a class="jxr_linenumber" name="L2404" href="#L2404">2404</a>         s.writeObject(combinedVector);
<a class="jxr_linenumber" name="L2405" href="#L2405">2405</a>     } <strong class="jxr_keyword">catch</strong> (Exception ex) {
<a class="jxr_linenumber" name="L2406" href="#L2406">2406</a>         ex.printStackTrace();
<a class="jxr_linenumber" name="L2407" href="#L2407">2407</a>         <em class="jxr_comment">// TODO need to log this..</em>
<a class="jxr_linenumber" name="L2408" href="#L2408">2408</a>     } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L2409" href="#L2409">2409</a>     	<strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L2410" href="#L2410">2410</a>     		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2411" href="#L2411">2411</a>     			s.close();
<a class="jxr_linenumber" name="L2412" href="#L2412">2412</a>     		} <strong class="jxr_keyword">catch</strong> (IOException ioe) {}
<a class="jxr_linenumber" name="L2413" href="#L2413">2413</a>     	}
<a class="jxr_linenumber" name="L2414" href="#L2414">2414</a>     }
<a class="jxr_linenumber" name="L2415" href="#L2415">2415</a> 
<a class="jxr_linenumber" name="L2416" href="#L2416">2416</a>     <em class="jxr_comment">//no need to URL encode the identifier</em>
<a class="jxr_linenumber" name="L2417" href="#L2417">2417</a>     colorizer.saveColorSettings(identifier);
<a class="jxr_linenumber" name="L2418" href="#L2418">2418</a>   }
<a class="jxr_linenumber" name="L2419" href="#L2419">2419</a> 
<a class="jxr_linenumber" name="L2420" href="#L2420">2420</a>     <strong class="jxr_keyword">private</strong> XStream buildXStreamForLogPanelPreference() {
<a class="jxr_linenumber" name="L2421" href="#L2421">2421</a>         XStream stream = <strong class="jxr_keyword">new</strong> XStream(<strong class="jxr_keyword">new</strong> DomDriver());
<a class="jxr_linenumber" name="L2422" href="#L2422">2422</a>         stream.registerConverter(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/xstream/TableColumnConverter.html">TableColumnConverter</a>());
<a class="jxr_linenumber" name="L2423" href="#L2423">2423</a>         <strong class="jxr_keyword">return</strong> stream;
<a class="jxr_linenumber" name="L2424" href="#L2424">2424</a>     }
<a class="jxr_linenumber" name="L2425" href="#L2425">2425</a> 
<a class="jxr_linenumber" name="L2426" href="#L2426">2426</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2427" href="#L2427">2427</a> <em class="jxr_javadoccomment">     * Display the panel preferences frame</em>
<a class="jxr_linenumber" name="L2428" href="#L2428">2428</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2429" href="#L2429">2429</a>   <strong class="jxr_keyword">void</strong> showPreferences() {
<a class="jxr_linenumber" name="L2430" href="#L2430">2430</a>       <em class="jxr_comment">//don't pack this frame</em>
<a class="jxr_linenumber" name="L2431" href="#L2431">2431</a>       centerAndSetVisible(logPanelPreferencesFrame);
<a class="jxr_linenumber" name="L2432" href="#L2432">2432</a>   }
<a class="jxr_linenumber" name="L2433" href="#L2433">2433</a> 
<a class="jxr_linenumber" name="L2434" href="#L2434">2434</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> centerAndSetVisible(Window window) {
<a class="jxr_linenumber" name="L2435" href="#L2435">2435</a>     Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
<a class="jxr_linenumber" name="L2436" href="#L2436">2436</a>     window.setLocation(<strong class="jxr_keyword">new</strong> Point((screenDimension.width / 2) - (window.getSize().width / 2),
<a class="jxr_linenumber" name="L2437" href="#L2437">2437</a>       (screenDimension.height / 2) - (window.getSize().height / 2)));
<a class="jxr_linenumber" name="L2438" href="#L2438">2438</a>     window.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L2439" href="#L2439">2439</a>   }
<a class="jxr_linenumber" name="L2440" href="#L2440">2440</a> 
<a class="jxr_linenumber" name="L2441" href="#L2441">2441</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2442" href="#L2442">2442</a> <em class="jxr_javadoccomment">   * Display the color rule frame</em>
<a class="jxr_linenumber" name="L2443" href="#L2443">2443</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2444" href="#L2444">2444</a>   <strong class="jxr_keyword">void</strong> showColorPreferences() {
<a class="jxr_linenumber" name="L2445" href="#L2445">2445</a>     colorPanel.loadLogPanelColorizers();
<a class="jxr_linenumber" name="L2446" href="#L2446">2446</a>     colorFrame.pack();
<a class="jxr_linenumber" name="L2447" href="#L2447">2447</a>     centerAndSetVisible(colorFrame);
<a class="jxr_linenumber" name="L2448" href="#L2448">2448</a>   }
<a class="jxr_linenumber" name="L2449" href="#L2449">2449</a> 
<a class="jxr_linenumber" name="L2450" href="#L2450">2450</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2451" href="#L2451">2451</a> <em class="jxr_javadoccomment">   * Toggle panel preference for detail visibility on or off</em>
<a class="jxr_linenumber" name="L2452" href="#L2452">2452</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2453" href="#L2453">2453</a>   <strong class="jxr_keyword">void</strong> toggleDetailVisible() {
<a class="jxr_linenumber" name="L2454" href="#L2454">2454</a>     preferenceModel.setDetailPaneVisible(
<a class="jxr_linenumber" name="L2455" href="#L2455">2455</a>       !preferenceModel.isDetailPaneVisible());
<a class="jxr_linenumber" name="L2456" href="#L2456">2456</a>   }
<a class="jxr_linenumber" name="L2457" href="#L2457">2457</a> 
<a class="jxr_linenumber" name="L2458" href="#L2458">2458</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2459" href="#L2459">2459</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2460" href="#L2460">2460</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2461" href="#L2461">2461</a> <em class="jxr_javadoccomment">   * @return detail visibility flag</em>
<a class="jxr_linenumber" name="L2462" href="#L2462">2462</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2463" href="#L2463">2463</a>   <strong class="jxr_keyword">boolean</strong> isDetailVisible() {
<a class="jxr_linenumber" name="L2464" href="#L2464">2464</a>     <strong class="jxr_keyword">return</strong> preferenceModel.isDetailPaneVisible();
<a class="jxr_linenumber" name="L2465" href="#L2465">2465</a>   }
<a class="jxr_linenumber" name="L2466" href="#L2466">2466</a> 
<a class="jxr_linenumber" name="L2467" href="#L2467">2467</a>   <strong class="jxr_keyword">boolean</strong> isSearchResultsVisible() {
<a class="jxr_linenumber" name="L2468" href="#L2468">2468</a>     <strong class="jxr_keyword">return</strong> preferenceModel.isSearchResultsVisible();
<a class="jxr_linenumber" name="L2469" href="#L2469">2469</a>   }
<a class="jxr_linenumber" name="L2470" href="#L2470">2470</a> 
<a class="jxr_linenumber" name="L2471" href="#L2471">2471</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2472" href="#L2472">2472</a> <em class="jxr_javadoccomment">   * Toggle panel preference for logger tree visibility on or off</em>
<a class="jxr_linenumber" name="L2473" href="#L2473">2473</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2474" href="#L2474">2474</a>   <strong class="jxr_keyword">void</strong> toggleLogTreeVisible() {
<a class="jxr_linenumber" name="L2475" href="#L2475">2475</a>     preferenceModel.setLogTreePanelVisible(
<a class="jxr_linenumber" name="L2476" href="#L2476">2476</a>       !preferenceModel.isLogTreePanelVisible());
<a class="jxr_linenumber" name="L2477" href="#L2477">2477</a>   }
<a class="jxr_linenumber" name="L2478" href="#L2478">2478</a> 
<a class="jxr_linenumber" name="L2479" href="#L2479">2479</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2480" href="#L2480">2480</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2481" href="#L2481">2481</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2482" href="#L2482">2482</a> <em class="jxr_javadoccomment">   * @return logger tree visibility flag</em>
<a class="jxr_linenumber" name="L2483" href="#L2483">2483</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2484" href="#L2484">2484</a>   <strong class="jxr_keyword">boolean</strong> isLogTreeVisible() {
<a class="jxr_linenumber" name="L2485" href="#L2485">2485</a>     <strong class="jxr_keyword">return</strong> preferenceModel.isLogTreePanelVisible();
<a class="jxr_linenumber" name="L2486" href="#L2486">2486</a>   }
<a class="jxr_linenumber" name="L2487" href="#L2487">2487</a> 
<a class="jxr_linenumber" name="L2488" href="#L2488">2488</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2489" href="#L2489">2489</a> <em class="jxr_javadoccomment">   * Return all events</em>
<a class="jxr_linenumber" name="L2490" href="#L2490">2490</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2491" href="#L2491">2491</a> <em class="jxr_javadoccomment">   * @return list of LoggingEvents</em>
<a class="jxr_linenumber" name="L2492" href="#L2492">2492</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2493" href="#L2493">2493</a>   List getEvents() {
<a class="jxr_linenumber" name="L2494" href="#L2494">2494</a>     <strong class="jxr_keyword">return</strong> tableModel.getAllEvents();
<a class="jxr_linenumber" name="L2495" href="#L2495">2495</a>   }
<a class="jxr_linenumber" name="L2496" href="#L2496">2496</a> 
<a class="jxr_linenumber" name="L2497" href="#L2497">2497</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2498" href="#L2498">2498</a> <em class="jxr_javadoccomment">   * Return the events that are visible with the current filter applied</em>
<a class="jxr_linenumber" name="L2499" href="#L2499">2499</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2500" href="#L2500">2500</a> <em class="jxr_javadoccomment">   * @return list of LoggingEvents</em>
<a class="jxr_linenumber" name="L2501" href="#L2501">2501</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2502" href="#L2502">2502</a>   List getFilteredEvents() {
<a class="jxr_linenumber" name="L2503" href="#L2503">2503</a>   	<strong class="jxr_keyword">return</strong> tableModel.getFilteredEvents();
<a class="jxr_linenumber" name="L2504" href="#L2504">2504</a>   }
<a class="jxr_linenumber" name="L2505" href="#L2505">2505</a>   
<a class="jxr_linenumber" name="L2506" href="#L2506">2506</a>   List getMatchingEvents(Rule rule) {
<a class="jxr_linenumber" name="L2507" href="#L2507">2507</a>     <strong class="jxr_keyword">return</strong> tableModel.getMatchingEvents(rule);
<a class="jxr_linenumber" name="L2508" href="#L2508">2508</a>   }
<a class="jxr_linenumber" name="L2509" href="#L2509">2509</a> 
<a class="jxr_linenumber" name="L2510" href="#L2510">2510</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2511" href="#L2511">2511</a> <em class="jxr_javadoccomment">   * Remove all events</em>
<a class="jxr_linenumber" name="L2512" href="#L2512">2512</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2513" href="#L2513">2513</a>   <strong class="jxr_keyword">void</strong> clearEvents() {
<a class="jxr_linenumber" name="L2514" href="#L2514">2514</a>     clearModel();
<a class="jxr_linenumber" name="L2515" href="#L2515">2515</a>   }
<a class="jxr_linenumber" name="L2516" href="#L2516">2516</a> 
<a class="jxr_linenumber" name="L2517" href="#L2517">2517</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2518" href="#L2518">2518</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2519" href="#L2519">2519</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2520" href="#L2520">2520</a> <em class="jxr_javadoccomment">   * @return identifier</em>
<a class="jxr_linenumber" name="L2521" href="#L2521">2521</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2522" href="#L2522">2522</a>   String getIdentifier() {
<a class="jxr_linenumber" name="L2523" href="#L2523">2523</a>     <strong class="jxr_keyword">return</strong> identifier;
<a class="jxr_linenumber" name="L2524" href="#L2524">2524</a>   }
<a class="jxr_linenumber" name="L2525" href="#L2525">2525</a> 
<a class="jxr_linenumber" name="L2526" href="#L2526">2526</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2527" href="#L2527">2527</a> <em class="jxr_javadoccomment">   * Undocks this DockablePanel by removing the panel from the LogUI window</em>
<a class="jxr_linenumber" name="L2528" href="#L2528">2528</a> <em class="jxr_javadoccomment">   * and placing it inside it's own JFrame.</em>
<a class="jxr_linenumber" name="L2529" href="#L2529">2529</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2530" href="#L2530">2530</a>   <strong class="jxr_keyword">void</strong> undock() {
<a class="jxr_linenumber" name="L2531" href="#L2531">2531</a>   	<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> row = table.getSelectedRow();
<a class="jxr_linenumber" name="L2532" href="#L2532">2532</a>     setDocked(false);
<a class="jxr_linenumber" name="L2533" href="#L2533">2533</a>     externalPanel.removeAll();
<a class="jxr_linenumber" name="L2534" href="#L2534">2534</a> 
<a class="jxr_linenumber" name="L2535" href="#L2535">2535</a>     externalPanel.add(undockedToolbar, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L2536" href="#L2536">2536</a>     externalPanel.add(nameTreeAndMainPanelSplit, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L2537" href="#L2537">2537</a>     externalPanel.setDocked(false);
<a class="jxr_linenumber" name="L2538" href="#L2538">2538</a>     undockedFrame.pack();
<a class="jxr_linenumber" name="L2539" href="#L2539">2539</a> 
<a class="jxr_linenumber" name="L2540" href="#L2540">2540</a>     undockedFrame.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L2541" href="#L2541">2541</a>     dockingAction.putValue(Action.NAME, <span class="jxr_string">"Dock"</span>);
<a class="jxr_linenumber" name="L2542" href="#L2542">2542</a>     dockingAction.putValue(Action.SMALL_ICON, ChainsawIcons.ICON_DOCK);
<a class="jxr_linenumber" name="L2543" href="#L2543">2543</a>     <strong class="jxr_keyword">if</strong> (row &gt; -1) {
<a class="jxr_linenumber" name="L2544" href="#L2544">2544</a>         EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L2545" href="#L2545">2545</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L2546" href="#L2546">2546</a>                 table.scrollToRow(row);
<a class="jxr_linenumber" name="L2547" href="#L2547">2547</a>             }
<a class="jxr_linenumber" name="L2548" href="#L2548">2548</a>         });
<a class="jxr_linenumber" name="L2549" href="#L2549">2549</a>     }
<a class="jxr_linenumber" name="L2550" href="#L2550">2550</a>   }
<a class="jxr_linenumber" name="L2551" href="#L2551">2551</a> 
<a class="jxr_linenumber" name="L2552" href="#L2552">2552</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2553" href="#L2553">2553</a> <em class="jxr_javadoccomment">   * Add an eventCountListener</em>
<a class="jxr_linenumber" name="L2554" href="#L2554">2554</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2555" href="#L2555">2555</a> <em class="jxr_javadoccomment">   * @param l</em>
<a class="jxr_linenumber" name="L2556" href="#L2556">2556</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2557" href="#L2557">2557</a>   <strong class="jxr_keyword">void</strong> addEventCountListener(<a href="../../../../org/apache/log4j/chainsaw/EventCountListener.html">EventCountListener</a> l) {
<a class="jxr_linenumber" name="L2558" href="#L2558">2558</a>     tableModel.addEventCountListener(l);
<a class="jxr_linenumber" name="L2559" href="#L2559">2559</a>   }
<a class="jxr_linenumber" name="L2560" href="#L2560">2560</a> 
<a class="jxr_linenumber" name="L2561" href="#L2561">2561</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2562" href="#L2562">2562</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2563" href="#L2563">2563</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2564" href="#L2564">2564</a> <em class="jxr_javadoccomment">   * @return paused flag</em>
<a class="jxr_linenumber" name="L2565" href="#L2565">2565</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2566" href="#L2566">2566</a>   <strong class="jxr_keyword">boolean</strong> isPaused() {
<a class="jxr_linenumber" name="L2567" href="#L2567">2567</a>     <strong class="jxr_keyword">return</strong> paused;
<a class="jxr_linenumber" name="L2568" href="#L2568">2568</a>   }
<a class="jxr_linenumber" name="L2569" href="#L2569">2569</a> 
<a class="jxr_linenumber" name="L2570" href="#L2570">2570</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2571" href="#L2571">2571</a> <em class="jxr_javadoccomment">   * Modifies the Paused property and notifies the listeners</em>
<a class="jxr_linenumber" name="L2572" href="#L2572">2572</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2573" href="#L2573">2573</a> <em class="jxr_javadoccomment">   * @param paused</em>
<a class="jxr_linenumber" name="L2574" href="#L2574">2574</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2575" href="#L2575">2575</a>   <strong class="jxr_keyword">void</strong> setPaused(<strong class="jxr_keyword">boolean</strong> paused) {
<a class="jxr_linenumber" name="L2576" href="#L2576">2576</a>     <strong class="jxr_keyword">boolean</strong> oldValue = <strong class="jxr_keyword">this</strong>.paused;
<a class="jxr_linenumber" name="L2577" href="#L2577">2577</a>     <strong class="jxr_keyword">this</strong>.paused = paused;
<a class="jxr_linenumber" name="L2578" href="#L2578">2578</a>     firePropertyChange(<span class="jxr_string">"paused"</span>, oldValue, paused);
<a class="jxr_linenumber" name="L2579" href="#L2579">2579</a>   }
<a class="jxr_linenumber" name="L2580" href="#L2580">2580</a> 
<a class="jxr_linenumber" name="L2581" href="#L2581">2581</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2582" href="#L2582">2582</a> <em class="jxr_javadoccomment">   * Change the selected event on the log panel.  Will cause scrollToBottom to be turned off.</em>
<a class="jxr_linenumber" name="L2583" href="#L2583">2583</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2584" href="#L2584">2584</a> <em class="jxr_javadoccomment">   * @param eventNumber</em>
<a class="jxr_linenumber" name="L2585" href="#L2585">2585</a> <em class="jxr_javadoccomment">   * @return row number or -1 if row with log4jid property with that number was not found</em>
<a class="jxr_linenumber" name="L2586" href="#L2586">2586</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2587" href="#L2587">2587</a>   <strong class="jxr_keyword">int</strong> setSelectedEvent(<strong class="jxr_keyword">int</strong> eventNumber) {
<a class="jxr_linenumber" name="L2588" href="#L2588">2588</a>       <strong class="jxr_keyword">int</strong> row = tableModel.locate(ExpressionRule.getRule(<span class="jxr_string">"prop.log4jid == "</span> + eventNumber), 0, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L2589" href="#L2589">2589</a>       <strong class="jxr_keyword">if</strong> (row &gt; -1) {
<a class="jxr_linenumber" name="L2590" href="#L2590">2590</a>         preferenceModel.setScrollToBottom(false);
<a class="jxr_linenumber" name="L2591" href="#L2591">2591</a> 
<a class="jxr_linenumber" name="L2592" href="#L2592">2592</a>         table.scrollToRow(row);
<a class="jxr_linenumber" name="L2593" href="#L2593">2593</a>       }
<a class="jxr_linenumber" name="L2594" href="#L2594">2594</a>       <strong class="jxr_keyword">return</strong> row;
<a class="jxr_linenumber" name="L2595" href="#L2595">2595</a>   }
<a class="jxr_linenumber" name="L2596" href="#L2596">2596</a> 
<a class="jxr_linenumber" name="L2597" href="#L2597">2597</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2598" href="#L2598">2598</a> <em class="jxr_javadoccomment">   * Add a preference propertyChangeListener</em>
<a class="jxr_linenumber" name="L2599" href="#L2599">2599</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2600" href="#L2600">2600</a> <em class="jxr_javadoccomment">   * @param listener</em>
<a class="jxr_linenumber" name="L2601" href="#L2601">2601</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2602" href="#L2602">2602</a>   <strong class="jxr_keyword">void</strong> addPreferencePropertyChangeListener(PropertyChangeListener listener) {
<a class="jxr_linenumber" name="L2603" href="#L2603">2603</a>     preferenceModel.addPropertyChangeListener(listener);
<a class="jxr_linenumber" name="L2604" href="#L2604">2604</a>   }
<a class="jxr_linenumber" name="L2605" href="#L2605">2605</a> 
<a class="jxr_linenumber" name="L2606" href="#L2606">2606</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2607" href="#L2607">2607</a> <em class="jxr_javadoccomment">   * Toggle the LoggingEvent container from either managing a cyclic buffer of</em>
<a class="jxr_linenumber" name="L2608" href="#L2608">2608</a> <em class="jxr_javadoccomment">   * events or an ArrayList of events</em>
<a class="jxr_linenumber" name="L2609" href="#L2609">2609</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2610" href="#L2610">2610</a>   <strong class="jxr_keyword">void</strong> toggleCyclic() {
<a class="jxr_linenumber" name="L2611" href="#L2611">2611</a>     <strong class="jxr_keyword">boolean</strong> toggledCyclic = !preferenceModel.isCyclic();
<a class="jxr_linenumber" name="L2612" href="#L2612">2612</a> 
<a class="jxr_linenumber" name="L2613" href="#L2613">2613</a>     preferenceModel.setCyclic(toggledCyclic);
<a class="jxr_linenumber" name="L2614" href="#L2614">2614</a>     tableModel.setCyclic(toggledCyclic);
<a class="jxr_linenumber" name="L2615" href="#L2615">2615</a>     searchModel.setCyclic(toggledCyclic);
<a class="jxr_linenumber" name="L2616" href="#L2616">2616</a>   }
<a class="jxr_linenumber" name="L2617" href="#L2617">2617</a> 
<a class="jxr_linenumber" name="L2618" href="#L2618">2618</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2619" href="#L2619">2619</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2620" href="#L2620">2620</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2621" href="#L2621">2621</a> <em class="jxr_javadoccomment">   * @return flag answering if LoggingEvent container is a cyclic buffer</em>
<a class="jxr_linenumber" name="L2622" href="#L2622">2622</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2623" href="#L2623">2623</a>   <strong class="jxr_keyword">boolean</strong> isCyclic() {
<a class="jxr_linenumber" name="L2624" href="#L2624">2624</a>     <strong class="jxr_keyword">return</strong> preferenceModel.isCyclic();
<a class="jxr_linenumber" name="L2625" href="#L2625">2625</a>   }
<a class="jxr_linenumber" name="L2626" href="#L2626">2626</a> 
<a class="jxr_linenumber" name="L2627" href="#L2627">2627</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateFindRule(String ruleText) {
<a class="jxr_linenumber" name="L2628" href="#L2628">2628</a>     <strong class="jxr_keyword">if</strong> ((ruleText == <strong class="jxr_keyword">null</strong>) || (ruleText.trim().equals(<span class="jxr_string">""</span>))) {
<a class="jxr_linenumber" name="L2629" href="#L2629">2629</a>       findRule = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2630" href="#L2630">2630</a>       tableModel.updateEventsWithFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2631" href="#L2631">2631</a>       colorizer.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2632" href="#L2632">2632</a>       tableRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2633" href="#L2633">2633</a>       searchRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2634" href="#L2634">2634</a>       <em class="jxr_comment">//reset background color in case we were previously an invalid expression</em>
<a class="jxr_linenumber" name="L2635" href="#L2635">2635</a>       findCombo.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L2636" href="#L2636">2636</a>       findCombo.setToolTipText(
<a class="jxr_linenumber" name="L2637" href="#L2637">2637</a>         <span class="jxr_string">"Enter an expression - right click or ctrl-space for menu - press enter to add to list"</span>);
<a class="jxr_linenumber" name="L2638" href="#L2638">2638</a>       currentSearchMatchCount = 0;
<a class="jxr_linenumber" name="L2639" href="#L2639">2639</a>       currentFindRuleText = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2640" href="#L2640">2640</a>       statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L2641" href="#L2641">2641</a>       <em class="jxr_comment">//if the preference to show search results is enabled, the find rule is now null - hide search results</em>
<a class="jxr_linenumber" name="L2642" href="#L2642">2642</a>       <strong class="jxr_keyword">if</strong> (isSearchResultsVisible()) {
<a class="jxr_linenumber" name="L2643" href="#L2643">2643</a>         hideSearchResults();
<a class="jxr_linenumber" name="L2644" href="#L2644">2644</a>       }
<a class="jxr_linenumber" name="L2645" href="#L2645">2645</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2646" href="#L2646">2646</a>       <em class="jxr_comment">//only turn off scrolltobottom when finding something (find not empty)</em>
<a class="jxr_linenumber" name="L2647" href="#L2647">2647</a>       preferenceModel.setScrollToBottom(false);
<a class="jxr_linenumber" name="L2648" href="#L2648">2648</a>       <strong class="jxr_keyword">if</strong>(ruleText.equals(currentFindRuleText)) {
<a class="jxr_linenumber" name="L2649" href="#L2649">2649</a>           <em class="jxr_comment">//don't update events if rule hasn't changed (we're finding next/previous)</em>
<a class="jxr_linenumber" name="L2650" href="#L2650">2650</a>           <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L2651" href="#L2651">2651</a>       }
<a class="jxr_linenumber" name="L2652" href="#L2652">2652</a>       currentFindRuleText = ruleText;
<a class="jxr_linenumber" name="L2653" href="#L2653">2653</a>       <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L2654" href="#L2654">2654</a>         <strong class="jxr_keyword">final</strong> JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L2655" href="#L2655">2655</a>         findText.setToolTipText(
<a class="jxr_linenumber" name="L2656" href="#L2656">2656</a>           <span class="jxr_string">"Enter an expression - right click or ctrl-space for menu - press enter to add to list"</span>);
<a class="jxr_linenumber" name="L2657" href="#L2657">2657</a>         findRule = ExpressionRule.getRule(ruleText);
<a class="jxr_linenumber" name="L2658" href="#L2658">2658</a>         currentSearchMatchCount = tableModel.updateEventsWithFindRule(findRule);
<a class="jxr_linenumber" name="L2659" href="#L2659">2659</a>         searchModel.updateEventsWithFindRule(findRule);
<a class="jxr_linenumber" name="L2660" href="#L2660">2660</a>         colorizer.setFindRule(findRule);
<a class="jxr_linenumber" name="L2661" href="#L2661">2661</a>         tableRuleMediator.setFindRule(findRule);
<a class="jxr_linenumber" name="L2662" href="#L2662">2662</a>         searchRuleMediator.setFindRule(findRule);
<a class="jxr_linenumber" name="L2663" href="#L2663">2663</a>         <em class="jxr_comment">//valid expression, reset background color in case we were previously an invalid expression</em>
<a class="jxr_linenumber" name="L2664" href="#L2664">2664</a>         findText.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L2665" href="#L2665">2665</a>         statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L2666" href="#L2666">2666</a>         <strong class="jxr_keyword">if</strong> (isSearchResultsVisible()) {
<a class="jxr_linenumber" name="L2667" href="#L2667">2667</a>           showSearchResults();
<a class="jxr_linenumber" name="L2668" href="#L2668">2668</a>         }
<a class="jxr_linenumber" name="L2669" href="#L2669">2669</a>       } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException re) {
<a class="jxr_linenumber" name="L2670" href="#L2670">2670</a>         findRule = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2671" href="#L2671">2671</a>         <strong class="jxr_keyword">final</strong> JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L2672" href="#L2672">2672</a>         findText.setToolTipText(re.getMessage());
<a class="jxr_linenumber" name="L2673" href="#L2673">2673</a>         findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
<a class="jxr_linenumber" name="L2674" href="#L2674">2674</a>         colorizer.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2675" href="#L2675">2675</a>         tableRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2676" href="#L2676">2676</a>         searchRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2677" href="#L2677">2677</a>         tableModel.updateEventsWithFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2678" href="#L2678">2678</a>         searchModel.updateEventsWithFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L2679" href="#L2679">2679</a>         currentSearchMatchCount = 0;
<a class="jxr_linenumber" name="L2680" href="#L2680">2680</a>         statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L2681" href="#L2681">2681</a>         <em class="jxr_comment">//if the preference to show search results is enabled, the find rule is now null - hide search results</em>
<a class="jxr_linenumber" name="L2682" href="#L2682">2682</a>         <strong class="jxr_keyword">if</strong> (isSearchResultsVisible()) {
<a class="jxr_linenumber" name="L2683" href="#L2683">2683</a>           hideSearchResults();
<a class="jxr_linenumber" name="L2684" href="#L2684">2684</a>         }
<a class="jxr_linenumber" name="L2685" href="#L2685">2685</a>       }
<a class="jxr_linenumber" name="L2686" href="#L2686">2686</a>     }
<a class="jxr_linenumber" name="L2687" href="#L2687">2687</a>   }
<a class="jxr_linenumber" name="L2688" href="#L2688">2688</a> 
<a class="jxr_linenumber" name="L2689" href="#L2689">2689</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> hideSearchResults() {
<a class="jxr_linenumber" name="L2690" href="#L2690">2690</a>     <strong class="jxr_keyword">if</strong> (searchResultsDisplayed) {
<a class="jxr_linenumber" name="L2691" href="#L2691">2691</a>       detailPanel.removeAll();
<a class="jxr_linenumber" name="L2692" href="#L2692">2692</a>       JPanel leftSpacePanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L2693" href="#L2693">2693</a>       Integer scrollBarWidth = (Integer) UIManager.get(<span class="jxr_string">"ScrollBar.width"</span>);
<a class="jxr_linenumber" name="L2694" href="#L2694">2694</a>       leftSpacePanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L2695" href="#L2695">2695</a> 
<a class="jxr_linenumber" name="L2696" href="#L2696">2696</a>       JPanel rightSpacePanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L2697" href="#L2697">2697</a>       rightSpacePanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L2698" href="#L2698">2698</a> 
<a class="jxr_linenumber" name="L2699" href="#L2699">2699</a>       detailPanel.add(detailToolbar, BorderLayout.NORTH);
<a class="jxr_linenumber" name="L2700" href="#L2700">2700</a>       detailPanel.add(detailPane, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L2701" href="#L2701">2701</a> 
<a class="jxr_linenumber" name="L2702" href="#L2702">2702</a>       detailPanel.add(leftSpacePanel, BorderLayout.WEST);
<a class="jxr_linenumber" name="L2703" href="#L2703">2703</a>       detailPanel.add(rightSpacePanel, BorderLayout.EAST);
<a class="jxr_linenumber" name="L2704" href="#L2704">2704</a>  
<a class="jxr_linenumber" name="L2705" href="#L2705">2705</a>       detailPanel.revalidate();
<a class="jxr_linenumber" name="L2706" href="#L2706">2706</a>       detailPanel.repaint();
<a class="jxr_linenumber" name="L2707" href="#L2707">2707</a>       <em class="jxr_comment">//if the detail visible pref is not enabled, hide the detail pane</em>
<a class="jxr_linenumber" name="L2708" href="#L2708">2708</a>       searchResultsDisplayed = false;
<a class="jxr_linenumber" name="L2709" href="#L2709">2709</a>       <em class="jxr_comment">//hide if pref is not enabled</em>
<a class="jxr_linenumber" name="L2710" href="#L2710">2710</a>       <strong class="jxr_keyword">if</strong> (!isDetailVisible()) {
<a class="jxr_linenumber" name="L2711" href="#L2711">2711</a>         hideDetailPane();
<a class="jxr_linenumber" name="L2712" href="#L2712">2712</a>       }
<a class="jxr_linenumber" name="L2713" href="#L2713">2713</a>     }
<a class="jxr_linenumber" name="L2714" href="#L2714">2714</a>   }
<a class="jxr_linenumber" name="L2715" href="#L2715">2715</a> 
<a class="jxr_linenumber" name="L2716" href="#L2716">2716</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> showSearchResults() {
<a class="jxr_linenumber" name="L2717" href="#L2717">2717</a>     <strong class="jxr_keyword">if</strong> (isSearchResultsVisible() &amp;&amp; !searchResultsDisplayed &amp;&amp; findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L2718" href="#L2718">2718</a>       <em class="jxr_comment">//if pref is set, always update detail panel to contain search results</em>
<a class="jxr_linenumber" name="L2719" href="#L2719">2719</a>       detailPanel.removeAll();
<a class="jxr_linenumber" name="L2720" href="#L2720">2720</a>       detailPanel.add(searchPane, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L2721" href="#L2721">2721</a>       Integer scrollBarWidth = (Integer) UIManager.get(<span class="jxr_string">"ScrollBar.width"</span>);
<a class="jxr_linenumber" name="L2722" href="#L2722">2722</a>       JPanel leftSpacePanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L2723" href="#L2723">2723</a>       leftSpacePanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L2724" href="#L2724">2724</a>       JPanel rightSpacePanel = <strong class="jxr_keyword">new</strong> JPanel();
<a class="jxr_linenumber" name="L2725" href="#L2725">2725</a>       rightSpacePanel.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(scrollBarWidth.intValue() -4, -1));
<a class="jxr_linenumber" name="L2726" href="#L2726">2726</a>       detailPanel.add(leftSpacePanel, BorderLayout.WEST);
<a class="jxr_linenumber" name="L2727" href="#L2727">2727</a>       detailPanel.add(rightSpacePanel, BorderLayout.EAST);
<a class="jxr_linenumber" name="L2728" href="#L2728">2728</a>       detailPanel.revalidate();
<a class="jxr_linenumber" name="L2729" href="#L2729">2729</a>       detailPanel.repaint();
<a class="jxr_linenumber" name="L2730" href="#L2730">2730</a>       <em class="jxr_comment">//if the detail visible pref is not enabled, show the detail pane</em>
<a class="jxr_linenumber" name="L2731" href="#L2731">2731</a>       searchResultsDisplayed = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L2732" href="#L2732">2732</a>       <em class="jxr_comment">//show if pref is not enabled</em>
<a class="jxr_linenumber" name="L2733" href="#L2733">2733</a>       <strong class="jxr_keyword">if</strong> (!isDetailVisible()) {
<a class="jxr_linenumber" name="L2734" href="#L2734">2734</a>         showDetailPane();
<a class="jxr_linenumber" name="L2735" href="#L2735">2735</a>       }
<a class="jxr_linenumber" name="L2736" href="#L2736">2736</a>     }
<a class="jxr_linenumber" name="L2737" href="#L2737">2737</a>   }
<a class="jxr_linenumber" name="L2738" href="#L2738">2738</a> 
<a class="jxr_linenumber" name="L2739" href="#L2739">2739</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2740" href="#L2740">2740</a> <em class="jxr_javadoccomment">   * Display the detail pane, using the last known divider location</em>
<a class="jxr_linenumber" name="L2741" href="#L2741">2741</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2742" href="#L2742">2742</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> showDetailPane() {
<a class="jxr_linenumber" name="L2743" href="#L2743">2743</a>     <strong class="jxr_keyword">if</strong> (!isDetailPanelVisible) {
<a class="jxr_linenumber" name="L2744" href="#L2744">2744</a>       lowerPanel.setDividerSize(dividerSize);
<a class="jxr_linenumber" name="L2745" href="#L2745">2745</a>       <strong class="jxr_keyword">if</strong> (lowerPanelDividerLocation == 0) {
<a class="jxr_linenumber" name="L2746" href="#L2746">2746</a>         lowerPanel.setDividerLocation(DEFAULT_DETAIL_SPLIT_LOCATION);
<a class="jxr_linenumber" name="L2747" href="#L2747">2747</a>         lowerPanelDividerLocation = lowerPanel.getDividerLocation();
<a class="jxr_linenumber" name="L2748" href="#L2748">2748</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2749" href="#L2749">2749</a>         lowerPanel.setDividerLocation(lowerPanelDividerLocation);
<a class="jxr_linenumber" name="L2750" href="#L2750">2750</a>       }
<a class="jxr_linenumber" name="L2751" href="#L2751">2751</a>       detailPanel.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L2752" href="#L2752">2752</a>       detailPanel.repaint();
<a class="jxr_linenumber" name="L2753" href="#L2753">2753</a>       lowerPanel.repaint();
<a class="jxr_linenumber" name="L2754" href="#L2754">2754</a>       isDetailPanelVisible = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L2755" href="#L2755">2755</a>     }
<a class="jxr_linenumber" name="L2756" href="#L2756">2756</a>   }
<a class="jxr_linenumber" name="L2757" href="#L2757">2757</a> 
<a class="jxr_linenumber" name="L2758" href="#L2758">2758</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2759" href="#L2759">2759</a> <em class="jxr_javadoccomment">   * Hide the detail pane, holding the current divider location for later use</em>
<a class="jxr_linenumber" name="L2760" href="#L2760">2760</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2761" href="#L2761">2761</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> hideDetailPane() {
<a class="jxr_linenumber" name="L2762" href="#L2762">2762</a>     <em class="jxr_comment">//may be called not currently visible on initial setup to ensure panel is not visible..only update divider location if hiding when currently visible</em>
<a class="jxr_linenumber" name="L2763" href="#L2763">2763</a>     <strong class="jxr_keyword">if</strong> (isDetailPanelVisible) {
<a class="jxr_linenumber" name="L2764" href="#L2764">2764</a>       lowerPanelDividerLocation = lowerPanel.getDividerLocation();
<a class="jxr_linenumber" name="L2765" href="#L2765">2765</a>     }
<a class="jxr_linenumber" name="L2766" href="#L2766">2766</a>     lowerPanel.setDividerSize(0);
<a class="jxr_linenumber" name="L2767" href="#L2767">2767</a>     detailPanel.setVisible(false);
<a class="jxr_linenumber" name="L2768" href="#L2768">2768</a>     lowerPanel.repaint();
<a class="jxr_linenumber" name="L2769" href="#L2769">2769</a>     isDetailPanelVisible = false;
<a class="jxr_linenumber" name="L2770" href="#L2770">2770</a>   }
<a class="jxr_linenumber" name="L2771" href="#L2771">2771</a> 
<a class="jxr_linenumber" name="L2772" href="#L2772">2772</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2773" href="#L2773">2773</a> <em class="jxr_javadoccomment">   * Display the log tree pane, using the last known divider location</em>
<a class="jxr_linenumber" name="L2774" href="#L2774">2774</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2775" href="#L2775">2775</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> showLogTreePanel() {
<a class="jxr_linenumber" name="L2776" href="#L2776">2776</a>     nameTreeAndMainPanelSplit.setDividerSize(dividerSize);
<a class="jxr_linenumber" name="L2777" href="#L2777">2777</a>     nameTreeAndMainPanelSplit.setDividerLocation(
<a class="jxr_linenumber" name="L2778" href="#L2778">2778</a>       lastLogTreePanelSplitLocation);
<a class="jxr_linenumber" name="L2779" href="#L2779">2779</a>     logTreePanel.setVisible(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L2780" href="#L2780">2780</a>     nameTreeAndMainPanelSplit.repaint();
<a class="jxr_linenumber" name="L2781" href="#L2781">2781</a>   }
<a class="jxr_linenumber" name="L2782" href="#L2782">2782</a> 
<a class="jxr_linenumber" name="L2783" href="#L2783">2783</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2784" href="#L2784">2784</a> <em class="jxr_javadoccomment">   * Hide the log tree pane, holding the current divider location for later use</em>
<a class="jxr_linenumber" name="L2785" href="#L2785">2785</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2786" href="#L2786">2786</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> hideLogTreePanel() {
<a class="jxr_linenumber" name="L2787" href="#L2787">2787</a>     <em class="jxr_comment">//subtract one to make sizes match</em>
<a class="jxr_linenumber" name="L2788" href="#L2788">2788</a>     <strong class="jxr_keyword">int</strong> currentSize = nameTreeAndMainPanelSplit.getWidth() - nameTreeAndMainPanelSplit.getDividerSize() - 1;
<a class="jxr_linenumber" name="L2789" href="#L2789">2789</a> 
<a class="jxr_linenumber" name="L2790" href="#L2790">2790</a>     <strong class="jxr_keyword">if</strong> (currentSize &gt; 0) {
<a class="jxr_linenumber" name="L2791" href="#L2791">2791</a>       lastLogTreePanelSplitLocation =
<a class="jxr_linenumber" name="L2792" href="#L2792">2792</a>         (<strong class="jxr_keyword">double</strong>) nameTreeAndMainPanelSplit.getDividerLocation() / currentSize;
<a class="jxr_linenumber" name="L2793" href="#L2793">2793</a>     }
<a class="jxr_linenumber" name="L2794" href="#L2794">2794</a>     nameTreeAndMainPanelSplit.setDividerSize(0);
<a class="jxr_linenumber" name="L2795" href="#L2795">2795</a>     logTreePanel.setVisible(false);
<a class="jxr_linenumber" name="L2796" href="#L2796">2796</a>     nameTreeAndMainPanelSplit.repaint();
<a class="jxr_linenumber" name="L2797" href="#L2797">2797</a>   }
<a class="jxr_linenumber" name="L2798" href="#L2798">2798</a> 
<a class="jxr_linenumber" name="L2799" href="#L2799">2799</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2800" href="#L2800">2800</a> <em class="jxr_javadoccomment">   * Return a toolbar used by the undocked LogPanel's frame</em>
<a class="jxr_linenumber" name="L2801" href="#L2801">2801</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2802" href="#L2802">2802</a> <em class="jxr_javadoccomment">   * @return toolbar</em>
<a class="jxr_linenumber" name="L2803" href="#L2803">2803</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2804" href="#L2804">2804</a>   <strong class="jxr_keyword">private</strong> JToolBar createDockwindowToolbar() {
<a class="jxr_linenumber" name="L2805" href="#L2805">2805</a>     <strong class="jxr_keyword">final</strong> JToolBar toolbar = <strong class="jxr_keyword">new</strong> JToolBar();
<a class="jxr_linenumber" name="L2806" href="#L2806">2806</a>     toolbar.setFloatable(false);
<a class="jxr_linenumber" name="L2807" href="#L2807">2807</a> 
<a class="jxr_linenumber" name="L2808" href="#L2808">2808</a>     <strong class="jxr_keyword">final</strong> Action dockPauseAction =
<a class="jxr_linenumber" name="L2809" href="#L2809">2809</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Pause"</span>) {
<a class="jxr_linenumber" name="L2810" href="#L2810">2810</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L2811" href="#L2811">2811</a>           setPaused(!isPaused());
<a class="jxr_linenumber" name="L2812" href="#L2812">2812</a>         }
<a class="jxr_linenumber" name="L2813" href="#L2813">2813</a>       };
<a class="jxr_linenumber" name="L2814" href="#L2814">2814</a> 
<a class="jxr_linenumber" name="L2815" href="#L2815">2815</a>     dockPauseAction.putValue(Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_P));
<a class="jxr_linenumber" name="L2816" href="#L2816">2816</a>     dockPauseAction.putValue(
<a class="jxr_linenumber" name="L2817" href="#L2817">2817</a>       Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(<span class="jxr_string">"F12"</span>));
<a class="jxr_linenumber" name="L2818" href="#L2818">2818</a>     dockPauseAction.putValue(
<a class="jxr_linenumber" name="L2819" href="#L2819">2819</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L2820" href="#L2820">2820</a>       <span class="jxr_string">"Halts the display, while still allowing events to stream in the background"</span>);
<a class="jxr_linenumber" name="L2821" href="#L2821">2821</a>     dockPauseAction.putValue(
<a class="jxr_linenumber" name="L2822" href="#L2822">2822</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.PAUSE));
<a class="jxr_linenumber" name="L2823" href="#L2823">2823</a> 
<a class="jxr_linenumber" name="L2824" href="#L2824">2824</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a> dockPauseButton =
<a class="jxr_linenumber" name="L2825" href="#L2825">2825</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a>(dockPauseAction);
<a class="jxr_linenumber" name="L2826" href="#L2826">2826</a>     dockPauseButton.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L2827" href="#L2827">2827</a> 
<a class="jxr_linenumber" name="L2828" href="#L2828">2828</a>     dockPauseButton.getModel().setSelected(isPaused());
<a class="jxr_linenumber" name="L2829" href="#L2829">2829</a> 
<a class="jxr_linenumber" name="L2830" href="#L2830">2830</a>     addPropertyChangeListener(
<a class="jxr_linenumber" name="L2831" href="#L2831">2831</a>       <span class="jxr_string">"paused"</span>,
<a class="jxr_linenumber" name="L2832" href="#L2832">2832</a>       <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L2833" href="#L2833">2833</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L2834" href="#L2834">2834</a>           dockPauseButton.getModel().setSelected(isPaused());
<a class="jxr_linenumber" name="L2835" href="#L2835">2835</a>         }
<a class="jxr_linenumber" name="L2836" href="#L2836">2836</a>       });
<a class="jxr_linenumber" name="L2837" href="#L2837">2837</a>     toolbar.add(dockPauseButton);
<a class="jxr_linenumber" name="L2838" href="#L2838">2838</a> 
<a class="jxr_linenumber" name="L2839" href="#L2839">2839</a>     Action dockShowPrefsAction =
<a class="jxr_linenumber" name="L2840" href="#L2840">2840</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">""</span>) {
<a class="jxr_linenumber" name="L2841" href="#L2841">2841</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent arg0) {
<a class="jxr_linenumber" name="L2842" href="#L2842">2842</a>           showPreferences();
<a class="jxr_linenumber" name="L2843" href="#L2843">2843</a>         }
<a class="jxr_linenumber" name="L2844" href="#L2844">2844</a>       };
<a class="jxr_linenumber" name="L2845" href="#L2845">2845</a> 
<a class="jxr_linenumber" name="L2846" href="#L2846">2846</a>     dockShowPrefsAction.putValue(
<a class="jxr_linenumber" name="L2847" href="#L2847">2847</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Define preferences..."</span>);
<a class="jxr_linenumber" name="L2848" href="#L2848">2848</a>     dockShowPrefsAction.putValue(
<a class="jxr_linenumber" name="L2849" href="#L2849">2849</a>       Action.SMALL_ICON, ChainsawIcons.ICON_PREFERENCES);
<a class="jxr_linenumber" name="L2850" href="#L2850">2850</a> 
<a class="jxr_linenumber" name="L2851" href="#L2851">2851</a>     toolbar.add(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(dockShowPrefsAction));
<a class="jxr_linenumber" name="L2852" href="#L2852">2852</a> 
<a class="jxr_linenumber" name="L2853" href="#L2853">2853</a>     Action dockToggleLogTreeAction =
<a class="jxr_linenumber" name="L2854" href="#L2854">2854</a>       <strong class="jxr_keyword">new</strong> AbstractAction() {
<a class="jxr_linenumber" name="L2855" href="#L2855">2855</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L2856" href="#L2856">2856</a>           toggleLogTreeVisible();
<a class="jxr_linenumber" name="L2857" href="#L2857">2857</a>         }
<a class="jxr_linenumber" name="L2858" href="#L2858">2858</a>       };
<a class="jxr_linenumber" name="L2859" href="#L2859">2859</a> 
<a class="jxr_linenumber" name="L2860" href="#L2860">2860</a>       dockToggleLogTreeAction.putValue(Action.SHORT_DESCRIPTION, <span class="jxr_string">"Toggles the Logger Tree Pane"</span>);
<a class="jxr_linenumber" name="L2861" href="#L2861">2861</a>       dockToggleLogTreeAction.putValue(<span class="jxr_string">"enabled"</span>, Boolean.TRUE);
<a class="jxr_linenumber" name="L2862" href="#L2862">2862</a>       dockToggleLogTreeAction.putValue(Action.MNEMONIC_KEY, <strong class="jxr_keyword">new</strong> Integer(KeyEvent.VK_T));
<a class="jxr_linenumber" name="L2863" href="#L2863">2863</a>       dockToggleLogTreeAction.putValue(
<a class="jxr_linenumber" name="L2864" href="#L2864">2864</a>         Action.ACCELERATOR_KEY,
<a class="jxr_linenumber" name="L2865" href="#L2865">2865</a>         KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
<a class="jxr_linenumber" name="L2866" href="#L2866">2866</a>       dockToggleLogTreeAction.putValue(
<a class="jxr_linenumber" name="L2867" href="#L2867">2867</a>         Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.WINDOW_ICON));
<a class="jxr_linenumber" name="L2868" href="#L2868">2868</a> 
<a class="jxr_linenumber" name="L2869" href="#L2869">2869</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a> toggleLogTreeButton =
<a class="jxr_linenumber" name="L2870" href="#L2870">2870</a>       <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a>(dockToggleLogTreeAction);
<a class="jxr_linenumber" name="L2871" href="#L2871">2871</a>     preferenceModel.addPropertyChangeListener(<span class="jxr_string">"logTreePanelVisible"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L2872" href="#L2872">2872</a>     	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L2873" href="#L2873">2873</a>     	    toggleLogTreeButton.setSelected(preferenceModel.isLogTreePanelVisible());    		
<a class="jxr_linenumber" name="L2874" href="#L2874">2874</a>     	}
<a class="jxr_linenumber" name="L2875" href="#L2875">2875</a>     });
<a class="jxr_linenumber" name="L2876" href="#L2876">2876</a>     		
<a class="jxr_linenumber" name="L2877" href="#L2877">2877</a>     toggleLogTreeButton.setSelected(isLogTreeVisible());
<a class="jxr_linenumber" name="L2878" href="#L2878">2878</a>     toolbar.add(toggleLogTreeButton);
<a class="jxr_linenumber" name="L2879" href="#L2879">2879</a>     toolbar.addSeparator();
<a class="jxr_linenumber" name="L2880" href="#L2880">2880</a> 
<a class="jxr_linenumber" name="L2881" href="#L2881">2881</a>     <strong class="jxr_keyword">final</strong> Action undockedClearAction =
<a class="jxr_linenumber" name="L2882" href="#L2882">2882</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Clear"</span>) {
<a class="jxr_linenumber" name="L2883" href="#L2883">2883</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent arg0) {
<a class="jxr_linenumber" name="L2884" href="#L2884">2884</a>           clearModel();
<a class="jxr_linenumber" name="L2885" href="#L2885">2885</a>         }
<a class="jxr_linenumber" name="L2886" href="#L2886">2886</a>       };
<a class="jxr_linenumber" name="L2887" href="#L2887">2887</a> 
<a class="jxr_linenumber" name="L2888" href="#L2888">2888</a>     undockedClearAction.putValue(
<a class="jxr_linenumber" name="L2889" href="#L2889">2889</a>       Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.DELETE));
<a class="jxr_linenumber" name="L2890" href="#L2890">2890</a>     undockedClearAction.putValue(
<a class="jxr_linenumber" name="L2891" href="#L2891">2891</a>       Action.SHORT_DESCRIPTION, <span class="jxr_string">"Removes all the events from the current view"</span>);
<a class="jxr_linenumber" name="L2892" href="#L2892">2892</a> 
<a class="jxr_linenumber" name="L2893" href="#L2893">2893</a>     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> dockClearButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(undockedClearAction);
<a class="jxr_linenumber" name="L2894" href="#L2894">2894</a>     dockClearButton.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
<a class="jxr_linenumber" name="L2895" href="#L2895">2895</a>       KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
<a class="jxr_linenumber" name="L2896" href="#L2896">2896</a>       undockedClearAction.getValue(Action.NAME));
<a class="jxr_linenumber" name="L2897" href="#L2897">2897</a>     dockClearButton.getActionMap().put(
<a class="jxr_linenumber" name="L2898" href="#L2898">2898</a>       undockedClearAction.getValue(Action.NAME), undockedClearAction);
<a class="jxr_linenumber" name="L2899" href="#L2899">2899</a> 
<a class="jxr_linenumber" name="L2900" href="#L2900">2900</a>     dockClearButton.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L2901" href="#L2901">2901</a>     toolbar.add(dockClearButton);
<a class="jxr_linenumber" name="L2902" href="#L2902">2902</a>     toolbar.addSeparator();
<a class="jxr_linenumber" name="L2903" href="#L2903">2903</a> 
<a class="jxr_linenumber" name="L2904" href="#L2904">2904</a>     Action dockToggleScrollToBottomAction =
<a class="jxr_linenumber" name="L2905" href="#L2905">2905</a>         <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">"Toggles Scroll to Bottom"</span>) {
<a class="jxr_linenumber" name="L2906" href="#L2906">2906</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L2907" href="#L2907">2907</a>             toggleScrollToBottom();
<a class="jxr_linenumber" name="L2908" href="#L2908">2908</a>           }
<a class="jxr_linenumber" name="L2909" href="#L2909">2909</a>         };
<a class="jxr_linenumber" name="L2910" href="#L2910">2910</a> 
<a class="jxr_linenumber" name="L2911" href="#L2911">2911</a>         dockToggleScrollToBottomAction.putValue(Action.SHORT_DESCRIPTION, <span class="jxr_string">"Toggles Scroll to Bottom"</span>);
<a class="jxr_linenumber" name="L2912" href="#L2912">2912</a>         dockToggleScrollToBottomAction.putValue(<span class="jxr_string">"enabled"</span>, Boolean.TRUE);
<a class="jxr_linenumber" name="L2913" href="#L2913">2913</a>         dockToggleScrollToBottomAction.putValue(
<a class="jxr_linenumber" name="L2914" href="#L2914">2914</a>           Action.SMALL_ICON, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.SCROLL_TO_BOTTOM));
<a class="jxr_linenumber" name="L2915" href="#L2915">2915</a> 
<a class="jxr_linenumber" name="L2916" href="#L2916">2916</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a> toggleScrollToBottomButton =
<a class="jxr_linenumber" name="L2917" href="#L2917">2917</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallToggleButton.html">SmallToggleButton</a>(dockToggleScrollToBottomAction);
<a class="jxr_linenumber" name="L2918" href="#L2918">2918</a>       preferenceModel.addPropertyChangeListener(<span class="jxr_string">"scrollToBottom"</span>, <strong class="jxr_keyword">new</strong> PropertyChangeListener() {
<a class="jxr_linenumber" name="L2919" href="#L2919">2919</a>       	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent evt) {
<a class="jxr_linenumber" name="L2920" href="#L2920">2920</a>       	    toggleScrollToBottomButton.setSelected(isScrollToBottom());    		
<a class="jxr_linenumber" name="L2921" href="#L2921">2921</a>       	}
<a class="jxr_linenumber" name="L2922" href="#L2922">2922</a>       });
<a class="jxr_linenumber" name="L2923" href="#L2923">2923</a> 
<a class="jxr_linenumber" name="L2924" href="#L2924">2924</a>       toggleScrollToBottomButton.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
<a class="jxr_linenumber" name="L2925" href="#L2925">2925</a>   	      KeyStroke.getKeyStroke(KeyEvent.VK_B, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
<a class="jxr_linenumber" name="L2926" href="#L2926">2926</a>   	      dockToggleScrollToBottomAction.getValue(Action.NAME));
<a class="jxr_linenumber" name="L2927" href="#L2927">2927</a>   	    toggleScrollToBottomButton.getActionMap().put(
<a class="jxr_linenumber" name="L2928" href="#L2928">2928</a>   	      dockToggleScrollToBottomAction.getValue(Action.NAME), dockToggleScrollToBottomAction);
<a class="jxr_linenumber" name="L2929" href="#L2929">2929</a>       
<a class="jxr_linenumber" name="L2930" href="#L2930">2930</a>       toggleScrollToBottomButton.setSelected(isScrollToBottom());
<a class="jxr_linenumber" name="L2931" href="#L2931">2931</a>       toggleScrollToBottomButton.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L2932" href="#L2932">2932</a>       toolbar.add(toggleScrollToBottomButton);
<a class="jxr_linenumber" name="L2933" href="#L2933">2933</a>       toolbar.addSeparator();
<a class="jxr_linenumber" name="L2934" href="#L2934">2934</a> 
<a class="jxr_linenumber" name="L2935" href="#L2935">2935</a>     findCombo.addActionListener(<strong class="jxr_keyword">new</strong> ActionListener(){
<a class="jxr_linenumber" name="L2936" href="#L2936">2936</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent e) {
<a class="jxr_linenumber" name="L2937" href="#L2937">2937</a>           <em class="jxr_comment">//comboboxchanged event received when text is modified in the field..when enter is pressed, it's comboboxedited</em>
<a class="jxr_linenumber" name="L2938" href="#L2938">2938</a>           <strong class="jxr_keyword">if</strong> (e.getActionCommand().equalsIgnoreCase(<span class="jxr_string">"comboBoxEdited"</span>)) {
<a class="jxr_linenumber" name="L2939" href="#L2939">2939</a>               findNext();
<a class="jxr_linenumber" name="L2940" href="#L2940">2940</a>           }
<a class="jxr_linenumber" name="L2941" href="#L2941">2941</a>         }
<a class="jxr_linenumber" name="L2942" href="#L2942">2942</a>     });
<a class="jxr_linenumber" name="L2943" href="#L2943">2943</a>     Action redockAction =
<a class="jxr_linenumber" name="L2944" href="#L2944">2944</a>       <strong class="jxr_keyword">new</strong> AbstractAction(<span class="jxr_string">""</span>, ChainsawIcons.ICON_DOCK) {
<a class="jxr_linenumber" name="L2945" href="#L2945">2945</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent arg0) {
<a class="jxr_linenumber" name="L2946" href="#L2946">2946</a>           dock();
<a class="jxr_linenumber" name="L2947" href="#L2947">2947</a>         }
<a class="jxr_linenumber" name="L2948" href="#L2948">2948</a>       };
<a class="jxr_linenumber" name="L2949" href="#L2949">2949</a> 
<a class="jxr_linenumber" name="L2950" href="#L2950">2950</a>     redockAction.putValue(
<a class="jxr_linenumber" name="L2951" href="#L2951">2951</a>       Action.SHORT_DESCRIPTION,
<a class="jxr_linenumber" name="L2952" href="#L2952">2952</a>       <span class="jxr_string">"Docks this window back with the main Chainsaw window"</span>);
<a class="jxr_linenumber" name="L2953" href="#L2953">2953</a> 
<a class="jxr_linenumber" name="L2954" href="#L2954">2954</a>     <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a> redockButton = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/SmallButton.html">SmallButton</a>(redockAction);
<a class="jxr_linenumber" name="L2955" href="#L2955">2955</a>     toolbar.add(redockButton);
<a class="jxr_linenumber" name="L2956" href="#L2956">2956</a> 
<a class="jxr_linenumber" name="L2957" href="#L2957">2957</a>     <strong class="jxr_keyword">return</strong> toolbar;
<a class="jxr_linenumber" name="L2958" href="#L2958">2958</a>   }
<a class="jxr_linenumber" name="L2959" href="#L2959">2959</a> 
<a class="jxr_linenumber" name="L2960" href="#L2960">2960</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2961" href="#L2961">2961</a> <em class="jxr_javadoccomment">   * Update the status bar with current selected row and row count</em>
<a class="jxr_linenumber" name="L2962" href="#L2962">2962</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2963" href="#L2963">2963</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateStatusBar() {
<a class="jxr_linenumber" name="L2964" href="#L2964">2964</a>     SwingHelper.invokeOnEDT(
<a class="jxr_linenumber" name="L2965" href="#L2965">2965</a>       <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L2966" href="#L2966">2966</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L2967" href="#L2967">2967</a>           statusBar.setSelectedLine(
<a class="jxr_linenumber" name="L2968" href="#L2968">2968</a>             table.getSelectedRow() + 1, tableModel.getRowCount(),
<a class="jxr_linenumber" name="L2969" href="#L2969">2969</a>             tableModel.size(), getIdentifier());
<a class="jxr_linenumber" name="L2970" href="#L2970">2970</a>           statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L2971" href="#L2971">2971</a>         }
<a class="jxr_linenumber" name="L2972" href="#L2972">2972</a>       });
<a class="jxr_linenumber" name="L2973" href="#L2973">2973</a>   }
<a class="jxr_linenumber" name="L2974" href="#L2974">2974</a> 
<a class="jxr_linenumber" name="L2975" href="#L2975">2975</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2976" href="#L2976">2976</a> <em class="jxr_javadoccomment">   * Update the detail pane layout text</em>
<a class="jxr_linenumber" name="L2977" href="#L2977">2977</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2978" href="#L2978">2978</a> <em class="jxr_javadoccomment">   * @param conversionPattern layout text</em>
<a class="jxr_linenumber" name="L2979" href="#L2979">2979</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2980" href="#L2980">2980</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setDetailPaneConversionPattern(String conversionPattern) {
<a class="jxr_linenumber" name="L2981" href="#L2981">2981</a>     String oldPattern = getDetailPaneConversionPattern();
<a class="jxr_linenumber" name="L2982" href="#L2982">2982</a>     (detailLayout).setConversionPattern(conversionPattern);
<a class="jxr_linenumber" name="L2983" href="#L2983">2983</a>     firePropertyChange(
<a class="jxr_linenumber" name="L2984" href="#L2984">2984</a>       <span class="jxr_string">"detailPaneConversionPattern"</span>, oldPattern,
<a class="jxr_linenumber" name="L2985" href="#L2985">2985</a>       getDetailPaneConversionPattern());
<a class="jxr_linenumber" name="L2986" href="#L2986">2986</a>   }
<a class="jxr_linenumber" name="L2987" href="#L2987">2987</a> 
<a class="jxr_linenumber" name="L2988" href="#L2988">2988</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2989" href="#L2989">2989</a> <em class="jxr_javadoccomment">   * Accessor</em>
<a class="jxr_linenumber" name="L2990" href="#L2990">2990</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L2991" href="#L2991">2991</a> <em class="jxr_javadoccomment">   * @return conversionPattern layout text</em>
<a class="jxr_linenumber" name="L2992" href="#L2992">2992</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L2993" href="#L2993">2993</a>   <strong class="jxr_keyword">private</strong> String getDetailPaneConversionPattern() {
<a class="jxr_linenumber" name="L2994" href="#L2994">2994</a>     <strong class="jxr_keyword">return</strong> (detailLayout).getConversionPattern();
<a class="jxr_linenumber" name="L2995" href="#L2995">2995</a>   }
<a class="jxr_linenumber" name="L2996" href="#L2996">2996</a> 
<a class="jxr_linenumber" name="L2997" href="#L2997">2997</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2998" href="#L2998">2998</a> <em class="jxr_javadoccomment">   * Reset the LoggingEvent container, detail panel and status bar</em>
<a class="jxr_linenumber" name="L2999" href="#L2999">2999</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3000" href="#L3000">3000</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> clearModel() {
<a class="jxr_linenumber" name="L3001" href="#L3001">3001</a>     previousLastIndex = -1;
<a class="jxr_linenumber" name="L3002" href="#L3002">3002</a>     tableModel.clearModel();
<a class="jxr_linenumber" name="L3003" href="#L3003">3003</a>     searchModel.clearModel();
<a class="jxr_linenumber" name="L3004" href="#L3004">3004</a> 
<a class="jxr_linenumber" name="L3005" href="#L3005">3005</a>     <strong class="jxr_keyword">synchronized</strong> (detail) {
<a class="jxr_linenumber" name="L3006" href="#L3006">3006</a>       detailPaneUpdater.setSelectedRow(-1);
<a class="jxr_linenumber" name="L3007" href="#L3007">3007</a>       detail.notify();
<a class="jxr_linenumber" name="L3008" href="#L3008">3008</a>     }
<a class="jxr_linenumber" name="L3009" href="#L3009">3009</a> 
<a class="jxr_linenumber" name="L3010" href="#L3010">3010</a>     statusBar.setNothingSelected();
<a class="jxr_linenumber" name="L3011" href="#L3011">3011</a>   }
<a class="jxr_linenumber" name="L3012" href="#L3012">3012</a> 
<a class="jxr_linenumber" name="L3013" href="#L3013">3013</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findNextColorizedEvent() {
<a class="jxr_linenumber" name="L3014" href="#L3014">3014</a>     EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3015" href="#L3015">3015</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3016" href="#L3016">3016</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> nextRow = tableModel.findColoredRow(table.getSelectedRow() + 1, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3017" href="#L3017">3017</a>             <strong class="jxr_keyword">if</strong> (nextRow &gt; -1) {
<a class="jxr_linenumber" name="L3018" href="#L3018">3018</a>                 table.scrollToRow(nextRow);
<a class="jxr_linenumber" name="L3019" href="#L3019">3019</a>             }
<a class="jxr_linenumber" name="L3020" href="#L3020">3020</a>         }
<a class="jxr_linenumber" name="L3021" href="#L3021">3021</a>     });
<a class="jxr_linenumber" name="L3022" href="#L3022">3022</a>   }
<a class="jxr_linenumber" name="L3023" href="#L3023">3023</a> 
<a class="jxr_linenumber" name="L3024" href="#L3024">3024</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findPreviousColorizedEvent() {
<a class="jxr_linenumber" name="L3025" href="#L3025">3025</a>     EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3026" href="#L3026">3026</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3027" href="#L3027">3027</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> previousRow = tableModel.findColoredRow(table.getSelectedRow() - 1, false);
<a class="jxr_linenumber" name="L3028" href="#L3028">3028</a>             <strong class="jxr_keyword">if</strong> (previousRow &gt; -1) {
<a class="jxr_linenumber" name="L3029" href="#L3029">3029</a>                 table.scrollToRow(previousRow);
<a class="jxr_linenumber" name="L3030" href="#L3030">3030</a>             }
<a class="jxr_linenumber" name="L3031" href="#L3031">3031</a>         }
<a class="jxr_linenumber" name="L3032" href="#L3032">3032</a>     });
<a class="jxr_linenumber" name="L3033" href="#L3033">3033</a>   }
<a class="jxr_linenumber" name="L3034" href="#L3034">3034</a> 
<a class="jxr_linenumber" name="L3035" href="#L3035">3035</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3036" href="#L3036">3036</a> <em class="jxr_javadoccomment">   * Finds the next row matching the current find rule, and ensures it is made</em>
<a class="jxr_linenumber" name="L3037" href="#L3037">3037</a> <em class="jxr_javadoccomment">   * visible</em>
<a class="jxr_linenumber" name="L3038" href="#L3038">3038</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3039" href="#L3039">3039</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3040" href="#L3040">3040</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findNext() {
<a class="jxr_linenumber" name="L3041" href="#L3041">3041</a>     Object item = findCombo.getSelectedItem();
<a class="jxr_linenumber" name="L3042" href="#L3042">3042</a>     updateFindRule(item == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong>: item.toString());
<a class="jxr_linenumber" name="L3043" href="#L3043">3043</a> 
<a class="jxr_linenumber" name="L3044" href="#L3044">3044</a>     <strong class="jxr_keyword">if</strong> (findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3045" href="#L3045">3045</a>         EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3046" href="#L3046">3046</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3047" href="#L3047">3047</a>               <strong class="jxr_keyword">final</strong> JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L3048" href="#L3048">3048</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3049" href="#L3049">3049</a>                   <strong class="jxr_keyword">int</strong> filteredEventsSize = getFilteredEvents().size();
<a class="jxr_linenumber" name="L3050" href="#L3050">3050</a>                   <strong class="jxr_keyword">int</strong> startRow = table.getSelectedRow() + 1;
<a class="jxr_linenumber" name="L3051" href="#L3051">3051</a>                     <strong class="jxr_keyword">if</strong> (startRow &gt; filteredEventsSize - 1) {
<a class="jxr_linenumber" name="L3052" href="#L3052">3052</a>                         startRow = 0;
<a class="jxr_linenumber" name="L3053" href="#L3053">3053</a>                     }
<a class="jxr_linenumber" name="L3054" href="#L3054">3054</a>                   <em class="jxr_comment">//no selected row would return -1, so we'd start at row zero</em>
<a class="jxr_linenumber" name="L3055" href="#L3055">3055</a>                   <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> nextRow = tableModel.locate(findRule, startRow, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3056" href="#L3056">3056</a> 
<a class="jxr_linenumber" name="L3057" href="#L3057">3057</a>                   <strong class="jxr_keyword">if</strong> (nextRow &gt; -1) {
<a class="jxr_linenumber" name="L3058" href="#L3058">3058</a>                     table.scrollToRow(nextRow);
<a class="jxr_linenumber" name="L3059" href="#L3059">3059</a>                     findText.setToolTipText(<span class="jxr_string">"Enter an expression - right click or ctrl-space for menu - press enter to add to list"</span>);
<a class="jxr_linenumber" name="L3060" href="#L3060">3060</a>                   }
<a class="jxr_linenumber" name="L3061" href="#L3061">3061</a>                   findText.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L3062" href="#L3062">3062</a>                 } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L3063" href="#L3063">3063</a>                   findText.setToolTipText(iae.getMessage());
<a class="jxr_linenumber" name="L3064" href="#L3064">3064</a>                   findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
<a class="jxr_linenumber" name="L3065" href="#L3065">3065</a>                   colorizer.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3066" href="#L3066">3066</a>                   tableRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3067" href="#L3067">3067</a>                   searchRuleMediator.setFindRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3068" href="#L3068">3068</a>                 }
<a class="jxr_linenumber" name="L3069" href="#L3069">3069</a>             }
<a class="jxr_linenumber" name="L3070" href="#L3070">3070</a>         });
<a class="jxr_linenumber" name="L3071" href="#L3071">3071</a>     }
<a class="jxr_linenumber" name="L3072" href="#L3072">3072</a>   }
<a class="jxr_linenumber" name="L3073" href="#L3073">3073</a> 
<a class="jxr_linenumber" name="L3074" href="#L3074">3074</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3075" href="#L3075">3075</a> <em class="jxr_javadoccomment">   * Finds the previous row matching the current find rule, and ensures it is made</em>
<a class="jxr_linenumber" name="L3076" href="#L3076">3076</a> <em class="jxr_javadoccomment">   * visible</em>
<a class="jxr_linenumber" name="L3077" href="#L3077">3077</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3078" href="#L3078">3078</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3079" href="#L3079">3079</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findPrevious() {
<a class="jxr_linenumber" name="L3080" href="#L3080">3080</a>     Object item = findCombo.getSelectedItem();
<a class="jxr_linenumber" name="L3081" href="#L3081">3081</a>     updateFindRule(item == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong>: item.toString());
<a class="jxr_linenumber" name="L3082" href="#L3082">3082</a> 
<a class="jxr_linenumber" name="L3083" href="#L3083">3083</a>     <strong class="jxr_keyword">if</strong> (findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3084" href="#L3084">3084</a>         EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3085" href="#L3085">3085</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3086" href="#L3086">3086</a>               <strong class="jxr_keyword">final</strong> JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
<a class="jxr_linenumber" name="L3087" href="#L3087">3087</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3088" href="#L3088">3088</a>                     <strong class="jxr_keyword">int</strong> startRow = table.getSelectedRow() - 1;
<a class="jxr_linenumber" name="L3089" href="#L3089">3089</a>                     <strong class="jxr_keyword">int</strong> filteredEventsSize = getFilteredEvents().size();
<a class="jxr_linenumber" name="L3090" href="#L3090">3090</a>                     <strong class="jxr_keyword">if</strong> (startRow &lt; 0) {
<a class="jxr_linenumber" name="L3091" href="#L3091">3091</a>                         startRow = filteredEventsSize - 1;
<a class="jxr_linenumber" name="L3092" href="#L3092">3092</a>                     }
<a class="jxr_linenumber" name="L3093" href="#L3093">3093</a>                     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> previousRow = tableModel.locate(findRule, startRow, false);
<a class="jxr_linenumber" name="L3094" href="#L3094">3094</a> 
<a class="jxr_linenumber" name="L3095" href="#L3095">3095</a>                     <strong class="jxr_keyword">if</strong> (previousRow &gt; -1) {
<a class="jxr_linenumber" name="L3096" href="#L3096">3096</a>                         table.scrollToRow(previousRow);
<a class="jxr_linenumber" name="L3097" href="#L3097">3097</a>                         findCombo.setToolTipText(<span class="jxr_string">"Enter an expression - right click or ctrl-space for menu - press enter to add to list"</span>);
<a class="jxr_linenumber" name="L3098" href="#L3098">3098</a>                     }
<a class="jxr_linenumber" name="L3099" href="#L3099">3099</a>                   findText.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L3100" href="#L3100">3100</a>                 } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L3101" href="#L3101">3101</a>                   findText.setToolTipText(iae.getMessage());
<a class="jxr_linenumber" name="L3102" href="#L3102">3102</a>                   findText.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
<a class="jxr_linenumber" name="L3103" href="#L3103">3103</a>                 }
<a class="jxr_linenumber" name="L3104" href="#L3104">3104</a>             }
<a class="jxr_linenumber" name="L3105" href="#L3105">3105</a>         });
<a class="jxr_linenumber" name="L3106" href="#L3106">3106</a>     }
<a class="jxr_linenumber" name="L3107" href="#L3107">3107</a>   }
<a class="jxr_linenumber" name="L3108" href="#L3108">3108</a> 
<a class="jxr_linenumber" name="L3109" href="#L3109">3109</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3110" href="#L3110">3110</a> <em class="jxr_javadoccomment">   * Docks this DockablePanel by hiding the JFrame and placing the Panel back</em>
<a class="jxr_linenumber" name="L3111" href="#L3111">3111</a> <em class="jxr_javadoccomment">   * inside the LogUI window.</em>
<a class="jxr_linenumber" name="L3112" href="#L3112">3112</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3113" href="#L3113">3113</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> dock() {
<a class="jxr_linenumber" name="L3114" href="#L3114">3114</a>   	
<a class="jxr_linenumber" name="L3115" href="#L3115">3115</a>   	<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> row = table.getSelectedRow();
<a class="jxr_linenumber" name="L3116" href="#L3116">3116</a>     setDocked(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3117" href="#L3117">3117</a>     undockedFrame.setVisible(false);
<a class="jxr_linenumber" name="L3118" href="#L3118">3118</a>     removeAll();
<a class="jxr_linenumber" name="L3119" href="#L3119">3119</a> 
<a class="jxr_linenumber" name="L3120" href="#L3120">3120</a>     add(nameTreeAndMainPanelSplit, BorderLayout.CENTER);
<a class="jxr_linenumber" name="L3121" href="#L3121">3121</a>     externalPanel.setDocked(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3122" href="#L3122">3122</a>     dockingAction.putValue(Action.NAME, <span class="jxr_string">"Undock"</span>);
<a class="jxr_linenumber" name="L3123" href="#L3123">3123</a>     dockingAction.putValue(Action.SMALL_ICON, ChainsawIcons.ICON_UNDOCK);
<a class="jxr_linenumber" name="L3124" href="#L3124">3124</a>     <strong class="jxr_keyword">if</strong> (row &gt; -1) {
<a class="jxr_linenumber" name="L3125" href="#L3125">3125</a>         EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3126" href="#L3126">3126</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3127" href="#L3127">3127</a>                 table.scrollToRow(row);
<a class="jxr_linenumber" name="L3128" href="#L3128">3128</a>             }
<a class="jxr_linenumber" name="L3129" href="#L3129">3129</a>         });
<a class="jxr_linenumber" name="L3130" href="#L3130">3130</a>     }
<a class="jxr_linenumber" name="L3131" href="#L3131">3131</a>   }
<a class="jxr_linenumber" name="L3132" href="#L3132">3132</a> 
<a class="jxr_linenumber" name="L3133" href="#L3133">3133</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3134" href="#L3134">3134</a> <em class="jxr_javadoccomment">   * Load default column settings if no settings exist for this identifier</em>
<a class="jxr_linenumber" name="L3135" href="#L3135">3135</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3136" href="#L3136">3136</a> <em class="jxr_javadoccomment">   * @param event</em>
<a class="jxr_linenumber" name="L3137" href="#L3137">3137</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3138" href="#L3138">3138</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> loadDefaultColumnSettings(<a href="../../../../org/apache/log4j/chainsaw/prefs/LoadSettingsEvent.html">LoadSettingsEvent</a> event) {
<a class="jxr_linenumber" name="L3139" href="#L3139">3139</a>     String columnOrder = event.getSetting(TABLE_COLUMN_ORDER);
<a class="jxr_linenumber" name="L3140" href="#L3140">3140</a> 
<a class="jxr_linenumber" name="L3141" href="#L3141">3141</a>     TableColumnModel columnModel = table.getColumnModel();
<a class="jxr_linenumber" name="L3142" href="#L3142">3142</a>     TableColumnModel searchColumnModel = searchTable.getColumnModel();
<a class="jxr_linenumber" name="L3143" href="#L3143">3143</a> 
<a class="jxr_linenumber" name="L3144" href="#L3144">3144</a>     Map columnNameMap = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L3145" href="#L3145">3145</a>     Map searchColumnNameMap = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L3146" href="#L3146">3146</a> 
<a class="jxr_linenumber" name="L3147" href="#L3147">3147</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; columnModel.getColumnCount(); i++) {
<a class="jxr_linenumber" name="L3148" href="#L3148">3148</a>       columnNameMap.put(table.getColumnName(i).toUpperCase(), columnModel.getColumn(i));
<a class="jxr_linenumber" name="L3149" href="#L3149">3149</a>     }
<a class="jxr_linenumber" name="L3150" href="#L3150">3150</a> 
<a class="jxr_linenumber" name="L3151" href="#L3151">3151</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; searchColumnModel.getColumnCount(); i++) {
<a class="jxr_linenumber" name="L3152" href="#L3152">3152</a>       searchColumnNameMap.put(searchTable.getColumnName(i).toUpperCase(), searchColumnModel.getColumn(i));
<a class="jxr_linenumber" name="L3153" href="#L3153">3153</a>     }
<a class="jxr_linenumber" name="L3154" href="#L3154">3154</a> 
<a class="jxr_linenumber" name="L3155" href="#L3155">3155</a>     <strong class="jxr_keyword">int</strong> index = 0;
<a class="jxr_linenumber" name="L3156" href="#L3156">3156</a>     StringTokenizer tok = <strong class="jxr_keyword">new</strong> StringTokenizer(columnOrder, <span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L3157" href="#L3157">3157</a>     List sortedColumnList = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L3158" href="#L3158">3158</a> 
<a class="jxr_linenumber" name="L3159" href="#L3159">3159</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3160" href="#L3160">3160</a> <em class="jxr_comment">       remove all columns from the table that exist in the model</em>
<a class="jxr_linenumber" name="L3161" href="#L3161">3161</a> <em class="jxr_comment">       and add in the correct order to a new arraylist</em>
<a class="jxr_linenumber" name="L3162" href="#L3162">3162</a> <em class="jxr_comment">       (may be a subset of possible columns)</em>
<a class="jxr_linenumber" name="L3163" href="#L3163">3163</a> <em class="jxr_comment">     **/</em>
<a class="jxr_linenumber" name="L3164" href="#L3164">3164</a>     <strong class="jxr_keyword">while</strong> (tok.hasMoreElements()) {
<a class="jxr_linenumber" name="L3165" href="#L3165">3165</a>       String element = tok.nextElement().toString().trim().toUpperCase();
<a class="jxr_linenumber" name="L3166" href="#L3166">3166</a>       TableColumn column = (TableColumn) columnNameMap.get(element);
<a class="jxr_linenumber" name="L3167" href="#L3167">3167</a> 
<a class="jxr_linenumber" name="L3168" href="#L3168">3168</a>       <strong class="jxr_keyword">if</strong> (column != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3169" href="#L3169">3169</a>         sortedColumnList.add(column);
<a class="jxr_linenumber" name="L3170" href="#L3170">3170</a>         table.removeColumn(column);
<a class="jxr_linenumber" name="L3171" href="#L3171">3171</a>         searchTable.removeColumn(column);
<a class="jxr_linenumber" name="L3172" href="#L3172">3172</a>       }
<a class="jxr_linenumber" name="L3173" href="#L3173">3173</a>     }
<a class="jxr_linenumber" name="L3174" href="#L3174">3174</a>     preferenceModel.setDetailPaneVisible(event.asBoolean(<span class="jxr_string">"detailPaneVisible"</span>));
<a class="jxr_linenumber" name="L3175" href="#L3175">3175</a>     preferenceModel.setLogTreePanelVisible(event.asBoolean(<span class="jxr_string">"logTreePanelVisible"</span>));
<a class="jxr_linenumber" name="L3176" href="#L3176">3176</a>     preferenceModel.setHighlightSearchMatchText(event.asBoolean(<span class="jxr_string">"highlightSearchMatchText"</span>));
<a class="jxr_linenumber" name="L3177" href="#L3177">3177</a>     preferenceModel.setWrapMessage(event.asBoolean(<span class="jxr_string">"wrapMessage"</span>));
<a class="jxr_linenumber" name="L3178" href="#L3178">3178</a>     preferenceModel.setSearchResultsVisible(event.asBoolean(<span class="jxr_string">"searchResultsVisible"</span>));
<a class="jxr_linenumber" name="L3179" href="#L3179">3179</a>     <em class="jxr_comment">//re-add columns to the table in the order provided from the list</em>
<a class="jxr_linenumber" name="L3180" href="#L3180">3180</a>     <strong class="jxr_keyword">for</strong> (Iterator iter = sortedColumnList.iterator(); iter.hasNext();) {
<a class="jxr_linenumber" name="L3181" href="#L3181">3181</a>       TableColumn element = (TableColumn) iter.next();
<a class="jxr_linenumber" name="L3182" href="#L3182">3182</a>       <strong class="jxr_keyword">if</strong> (preferenceModel.addColumn(element)) {
<a class="jxr_linenumber" name="L3183" href="#L3183">3183</a>           <strong class="jxr_keyword">if</strong> (!applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &amp;&amp;
<a class="jxr_linenumber" name="L3184" href="#L3184">3184</a>               applicationPreferenceModel.getDefaultColumnNames().contains(element.getHeaderValue())) {
<a class="jxr_linenumber" name="L3185" href="#L3185">3185</a>             table.addColumn(element);
<a class="jxr_linenumber" name="L3186" href="#L3186">3186</a>             searchTable.addColumn(element);
<a class="jxr_linenumber" name="L3187" href="#L3187">3187</a>             preferenceModel.setColumnVisible(element.getHeaderValue().toString(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3188" href="#L3188">3188</a>           }
<a class="jxr_linenumber" name="L3189" href="#L3189">3189</a>       }
<a class="jxr_linenumber" name="L3190" href="#L3190">3190</a>     }
<a class="jxr_linenumber" name="L3191" href="#L3191">3191</a> 
<a class="jxr_linenumber" name="L3192" href="#L3192">3192</a>     String columnWidths = event.getSetting(TABLE_COLUMN_WIDTHS);
<a class="jxr_linenumber" name="L3193" href="#L3193">3193</a> 
<a class="jxr_linenumber" name="L3194" href="#L3194">3194</a>     tok = <strong class="jxr_keyword">new</strong> StringTokenizer(columnWidths, <span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L3195" href="#L3195">3195</a>     index = 0;
<a class="jxr_linenumber" name="L3196" href="#L3196">3196</a> 
<a class="jxr_linenumber" name="L3197" href="#L3197">3197</a>     <strong class="jxr_keyword">while</strong> (tok.hasMoreElements()) {
<a class="jxr_linenumber" name="L3198" href="#L3198">3198</a>       String element = (String) tok.nextElement();
<a class="jxr_linenumber" name="L3199" href="#L3199">3199</a> 
<a class="jxr_linenumber" name="L3200" href="#L3200">3200</a>       <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3201" href="#L3201">3201</a>         <strong class="jxr_keyword">int</strong> width = Integer.parseInt(element);
<a class="jxr_linenumber" name="L3202" href="#L3202">3202</a> 
<a class="jxr_linenumber" name="L3203" href="#L3203">3203</a>         <strong class="jxr_keyword">if</strong> (index &gt; (columnModel.getColumnCount() - 1)) {
<a class="jxr_linenumber" name="L3204" href="#L3204">3204</a>           logger.warn(
<a class="jxr_linenumber" name="L3205" href="#L3205">3205</a>             <span class="jxr_string">"loadsettings - failed attempt to set width for index "</span> + index
<a class="jxr_linenumber" name="L3206" href="#L3206">3206</a>             + <span class="jxr_string">", width "</span> + element);
<a class="jxr_linenumber" name="L3207" href="#L3207">3207</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3208" href="#L3208">3208</a>           columnModel.getColumn(index).setPreferredWidth(width);
<a class="jxr_linenumber" name="L3209" href="#L3209">3209</a>           searchColumnModel.getColumn(index).setPreferredWidth(width);
<a class="jxr_linenumber" name="L3210" href="#L3210">3210</a>         }
<a class="jxr_linenumber" name="L3211" href="#L3211">3211</a> 
<a class="jxr_linenumber" name="L3212" href="#L3212">3212</a>         index++;
<a class="jxr_linenumber" name="L3213" href="#L3213">3213</a>       } <strong class="jxr_keyword">catch</strong> (NumberFormatException e) {
<a class="jxr_linenumber" name="L3214" href="#L3214">3214</a>         logger.error(<span class="jxr_string">"Error decoding a Table width"</span>, e);
<a class="jxr_linenumber" name="L3215" href="#L3215">3215</a>       }
<a class="jxr_linenumber" name="L3216" href="#L3216">3216</a>     }
<a class="jxr_linenumber" name="L3217" href="#L3217">3217</a>     undockedFrame.setSize(getSize());
<a class="jxr_linenumber" name="L3218" href="#L3218">3218</a>     undockedFrame.setLocation(getBounds().x, getBounds().y);
<a class="jxr_linenumber" name="L3219" href="#L3219">3219</a> 
<a class="jxr_linenumber" name="L3220" href="#L3220">3220</a>       repaint();
<a class="jxr_linenumber" name="L3221" href="#L3221">3221</a>     }
<a class="jxr_linenumber" name="L3222" href="#L3222">3222</a> 
<a class="jxr_linenumber" name="L3223" href="#L3223">3223</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3224" href="#L3224">3224</a> <em class="jxr_javadoccomment">   * Iterate over all values in the column and return the longest width</em>
<a class="jxr_linenumber" name="L3225" href="#L3225">3225</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3226" href="#L3226">3226</a> <em class="jxr_javadoccomment">   * @param index column index</em>
<a class="jxr_linenumber" name="L3227" href="#L3227">3227</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3228" href="#L3228">3228</a> <em class="jxr_javadoccomment">   * @return longest width - relies on FontMetrics.stringWidth for calculation</em>
<a class="jxr_linenumber" name="L3229" href="#L3229">3229</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3230" href="#L3230">3230</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> getMaxColumnWidth(<strong class="jxr_keyword">int</strong> index) {
<a class="jxr_linenumber" name="L3231" href="#L3231">3231</a>     FontMetrics metrics = getGraphics().getFontMetrics();
<a class="jxr_linenumber" name="L3232" href="#L3232">3232</a>     <strong class="jxr_keyword">int</strong> longestWidth =
<a class="jxr_linenumber" name="L3233" href="#L3233">3233</a>       metrics.stringWidth(<span class="jxr_string">"  "</span> + table.getColumnName(index) + <span class="jxr_string">"  "</span>)
<a class="jxr_linenumber" name="L3234" href="#L3234">3234</a>       + (2 * table.getColumnModel().getColumnMargin());
<a class="jxr_linenumber" name="L3235" href="#L3235">3235</a> 
<a class="jxr_linenumber" name="L3236" href="#L3236">3236</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0, j = tableModel.getRowCount(); i &lt; j; i++) {
<a class="jxr_linenumber" name="L3237" href="#L3237">3237</a>       <a href="../../../../org/apache/log4j/spi/Component.html">Component</a> c =
<a class="jxr_linenumber" name="L3238" href="#L3238">3238</a>         renderer.getTableCellRendererComponent(
<a class="jxr_linenumber" name="L3239" href="#L3239">3239</a>           table, table.getValueAt(i, index), false, false, i, index);
<a class="jxr_linenumber" name="L3240" href="#L3240">3240</a> 
<a class="jxr_linenumber" name="L3241" href="#L3241">3241</a>       <strong class="jxr_keyword">if</strong> (c instanceof JLabel) {
<a class="jxr_linenumber" name="L3242" href="#L3242">3242</a>         longestWidth =
<a class="jxr_linenumber" name="L3243" href="#L3243">3243</a>           Math.max(longestWidth, metrics.stringWidth(((JLabel) c).getText()));
<a class="jxr_linenumber" name="L3244" href="#L3244">3244</a>       }
<a class="jxr_linenumber" name="L3245" href="#L3245">3245</a>     }
<a class="jxr_linenumber" name="L3246" href="#L3246">3246</a> 
<a class="jxr_linenumber" name="L3247" href="#L3247">3247</a>     <strong class="jxr_keyword">return</strong> longestWidth + 5;
<a class="jxr_linenumber" name="L3248" href="#L3248">3248</a>   }
<a class="jxr_linenumber" name="L3249" href="#L3249">3249</a> 
<a class="jxr_linenumber" name="L3250" href="#L3250">3250</a>   <strong class="jxr_keyword">private</strong> String getToolTipTextForEvent(<a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper) {
<a class="jxr_linenumber" name="L3251" href="#L3251">3251</a>     StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L3252" href="#L3252">3252</a>     buf.append(detailLayout.getHeader()).append(detailLayout.format(loggingEventWrapper.getLoggingEvent())).append(detailLayout.getFooter());
<a class="jxr_linenumber" name="L3253" href="#L3253">3253</a>     <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L3254" href="#L3254">3254</a>   }
<a class="jxr_linenumber" name="L3255" href="#L3255">3255</a> 
<a class="jxr_linenumber" name="L3256" href="#L3256">3256</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3257" href="#L3257">3257</a> <em class="jxr_javadoccomment">   * ensures the Entry map of all the unque logger names etc, that is used for</em>
<a class="jxr_linenumber" name="L3258" href="#L3258">3258</a> <em class="jxr_javadoccomment">   * the Filter panel is updated with any new information from the event</em>
<a class="jxr_linenumber" name="L3259" href="#L3259">3259</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3260" href="#L3260">3260</a> <em class="jxr_javadoccomment">   * @param event</em>
<a class="jxr_linenumber" name="L3261" href="#L3261">3261</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3262" href="#L3262">3262</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateOtherModels(LoggingEvent event) {
<a class="jxr_linenumber" name="L3263" href="#L3263">3263</a> 
<a class="jxr_linenumber" name="L3264" href="#L3264">3264</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3265" href="#L3265">3265</a> <em class="jxr_comment">     * EventContainer is a LoggerNameModel imp, use that for notifing</em>
<a class="jxr_linenumber" name="L3266" href="#L3266">3266</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="L3267" href="#L3267">3267</a>     tableModel.addLoggerName(event.getLoggerName());
<a class="jxr_linenumber" name="L3268" href="#L3268">3268</a> 
<a class="jxr_linenumber" name="L3269" href="#L3269">3269</a>     filterModel.processNewLoggingEvent(event);
<a class="jxr_linenumber" name="L3270" href="#L3270">3270</a>   }
<a class="jxr_linenumber" name="L3271" href="#L3271">3271</a> 
<a class="jxr_linenumber" name="L3272" href="#L3272">3272</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findNextMarker() {
<a class="jxr_linenumber" name="L3273" href="#L3273">3273</a>       EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3274" href="#L3274">3274</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3275" href="#L3275">3275</a>               <strong class="jxr_keyword">int</strong> startRow = table.getSelectedRow() + 1;
<a class="jxr_linenumber" name="L3276" href="#L3276">3276</a>               <strong class="jxr_keyword">int</strong> filteredEventsSize = getFilteredEvents().size();
<a class="jxr_linenumber" name="L3277" href="#L3277">3277</a>               <strong class="jxr_keyword">if</strong> (startRow &gt; filteredEventsSize - 1) {
<a class="jxr_linenumber" name="L3278" href="#L3278">3278</a>                   startRow = 0;
<a class="jxr_linenumber" name="L3279" href="#L3279">3279</a>               }
<a class="jxr_linenumber" name="L3280" href="#L3280">3280</a>               <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> nextRow = tableModel.locate(findMarkerRule, startRow, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3281" href="#L3281">3281</a> 
<a class="jxr_linenumber" name="L3282" href="#L3282">3282</a>               <strong class="jxr_keyword">if</strong> (nextRow &gt; -1) {
<a class="jxr_linenumber" name="L3283" href="#L3283">3283</a>                   table.scrollToRow(nextRow);
<a class="jxr_linenumber" name="L3284" href="#L3284">3284</a>               }
<a class="jxr_linenumber" name="L3285" href="#L3285">3285</a>           }
<a class="jxr_linenumber" name="L3286" href="#L3286">3286</a>       });
<a class="jxr_linenumber" name="L3287" href="#L3287">3287</a>     }
<a class="jxr_linenumber" name="L3288" href="#L3288">3288</a> 
<a class="jxr_linenumber" name="L3289" href="#L3289">3289</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> findPreviousMarker() {
<a class="jxr_linenumber" name="L3290" href="#L3290">3290</a>         EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3291" href="#L3291">3291</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3292" href="#L3292">3292</a>                 <strong class="jxr_keyword">int</strong> startRow = table.getSelectedRow() - 1;
<a class="jxr_linenumber" name="L3293" href="#L3293">3293</a>                 <strong class="jxr_keyword">int</strong> filteredEventsSize = getFilteredEvents().size();
<a class="jxr_linenumber" name="L3294" href="#L3294">3294</a>                 <strong class="jxr_keyword">if</strong> (startRow &lt; 0) {
<a class="jxr_linenumber" name="L3295" href="#L3295">3295</a>                     startRow = filteredEventsSize - 1;
<a class="jxr_linenumber" name="L3296" href="#L3296">3296</a>                 }
<a class="jxr_linenumber" name="L3297" href="#L3297">3297</a>                 <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> previousRow = tableModel.locate(findMarkerRule, startRow, false);
<a class="jxr_linenumber" name="L3298" href="#L3298">3298</a> 
<a class="jxr_linenumber" name="L3299" href="#L3299">3299</a>                 <strong class="jxr_keyword">if</strong> (previousRow &gt; -1) {
<a class="jxr_linenumber" name="L3300" href="#L3300">3300</a>                     table.scrollToRow(previousRow);
<a class="jxr_linenumber" name="L3301" href="#L3301">3301</a>                 }
<a class="jxr_linenumber" name="L3302" href="#L3302">3302</a>             }
<a class="jxr_linenumber" name="L3303" href="#L3303">3303</a>         });
<a class="jxr_linenumber" name="L3304" href="#L3304">3304</a>     }
<a class="jxr_linenumber" name="L3305" href="#L3305">3305</a> 
<a class="jxr_linenumber" name="L3306" href="#L3306">3306</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clearAllMarkers() {
<a class="jxr_linenumber" name="L3307" href="#L3307">3307</a>       <em class="jxr_comment">//this will get the properties to be removed from both tables..but</em>
<a class="jxr_linenumber" name="L3308" href="#L3308">3308</a>       tableModel.removePropertyFromEvents(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3309" href="#L3309">3309</a>     }
<a class="jxr_linenumber" name="L3310" href="#L3310">3310</a> 
<a class="jxr_linenumber" name="L3311" href="#L3311">3311</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> toggleMarker() {
<a class="jxr_linenumber" name="L3312" href="#L3312">3312</a>         <strong class="jxr_keyword">int</strong> row = table.getSelectedRow();
<a class="jxr_linenumber" name="L3313" href="#L3313">3313</a>         <strong class="jxr_keyword">if</strong> (row != -1) {
<a class="jxr_linenumber" name="L3314" href="#L3314">3314</a>           <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = tableModel.getRow(row);
<a class="jxr_linenumber" name="L3315" href="#L3315">3315</a>           <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3316" href="#L3316">3316</a>               Object marker = loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3317" href="#L3317">3317</a>               <strong class="jxr_keyword">if</strong> (marker == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3318" href="#L3318">3318</a>                   loggingEventWrapper.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, <span class="jxr_string">"set"</span>);
<a class="jxr_linenumber" name="L3319" href="#L3319">3319</a>               } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3320" href="#L3320">3320</a>                   loggingEventWrapper.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3321" href="#L3321">3321</a>               }
<a class="jxr_linenumber" name="L3322" href="#L3322">3322</a>               <em class="jxr_comment">//if marker -was- null, it no longer is (may need to add the column)</em>
<a class="jxr_linenumber" name="L3323" href="#L3323">3323</a>               tableModel.fireRowUpdated(row, (marker == <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="L3324" href="#L3324">3324</a>           }
<a class="jxr_linenumber" name="L3325" href="#L3325">3325</a>         }
<a class="jxr_linenumber" name="L3326" href="#L3326">3326</a>     }
<a class="jxr_linenumber" name="L3327" href="#L3327">3327</a> 
<a class="jxr_linenumber" name="L3328" href="#L3328">3328</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> layoutComponents()
<a class="jxr_linenumber" name="L3329" href="#L3329">3329</a>     {
<a class="jxr_linenumber" name="L3330" href="#L3330">3330</a>         <strong class="jxr_keyword">if</strong> (preferenceModel.isDetailPaneVisible()) {
<a class="jxr_linenumber" name="L3331" href="#L3331">3331</a>           showDetailPane();
<a class="jxr_linenumber" name="L3332" href="#L3332">3332</a>          } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3333" href="#L3333">3333</a>           hideDetailPane();
<a class="jxr_linenumber" name="L3334" href="#L3334">3334</a>         }
<a class="jxr_linenumber" name="L3335" href="#L3335">3335</a>     }
<a class="jxr_linenumber" name="L3336" href="#L3336">3336</a> 
<a class="jxr_linenumber" name="L3337" href="#L3337">3337</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFindText(String findText) {
<a class="jxr_linenumber" name="L3338" href="#L3338">3338</a>     findCombo.setSelectedItem(findText);
<a class="jxr_linenumber" name="L3339" href="#L3339">3339</a>     findNext();
<a class="jxr_linenumber" name="L3340" href="#L3340">3340</a>   }
<a class="jxr_linenumber" name="L3341" href="#L3341">3341</a> 
<a class="jxr_linenumber" name="L3342" href="#L3342">3342</a>   <strong class="jxr_keyword">public</strong> String getFindText() {
<a class="jxr_linenumber" name="L3343" href="#L3343">3343</a>     Object selectedItem = findCombo.getSelectedItem();
<a class="jxr_linenumber" name="L3344" href="#L3344">3344</a>     <strong class="jxr_keyword">if</strong> (selectedItem == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3345" href="#L3345">3345</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L3346" href="#L3346">3346</a>     }
<a class="jxr_linenumber" name="L3347" href="#L3347">3347</a>     <strong class="jxr_keyword">return</strong> selectedItem.toString();
<a class="jxr_linenumber" name="L3348" href="#L3348">3348</a>   }
<a class="jxr_linenumber" name="L3349" href="#L3349">3349</a> 
<a class="jxr_linenumber" name="L3350" href="#L3350">3350</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3351" href="#L3351">3351</a> <em class="jxr_javadoccomment">   * This class receives notification when the Refine focus or find field is</em>
<a class="jxr_linenumber" name="L3352" href="#L3352">3352</a> <em class="jxr_javadoccomment">   * updated, where a background thread periodically wakes up and checks if</em>
<a class="jxr_linenumber" name="L3353" href="#L3353">3353</a> <em class="jxr_javadoccomment">   * they have stopped typing yet. This ensures that the filtering of the</em>
<a class="jxr_linenumber" name="L3354" href="#L3354">3354</a> <em class="jxr_javadoccomment">   * model is not done for every single character typed.</em>
<a class="jxr_linenumber" name="L3355" href="#L3355">3355</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L3356" href="#L3356">3356</a> <em class="jxr_javadoccomment">   * @author Paul Smith psmith</em>
<a class="jxr_linenumber" name="L3357" href="#L3357">3357</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3358" href="#L3358">3358</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DelayedTextDocumentListener</a>
<a class="jxr_linenumber" name="L3359" href="#L3359">3359</a>     <strong class="jxr_keyword">implements</strong> DocumentListener {
<a class="jxr_linenumber" name="L3360" href="#L3360">3360</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> CHECK_PERIOD = 1000;
<a class="jxr_linenumber" name="L3361" href="#L3361">3361</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JTextField textField;
<a class="jxr_linenumber" name="L3362" href="#L3362">3362</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lastTimeStamp = System.currentTimeMillis();
<a class="jxr_linenumber" name="L3363" href="#L3363">3363</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Thread delayThread;
<a class="jxr_linenumber" name="L3364" href="#L3364">3364</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String defaultToolTip;
<a class="jxr_linenumber" name="L3365" href="#L3365">3365</a>     <strong class="jxr_keyword">private</strong> String lastText = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L3366" href="#L3366">3366</a> 
<a class="jxr_linenumber" name="L3367" href="#L3367">3367</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DelayedTextDocumentListener</a>(<strong class="jxr_keyword">final</strong> JTextField textFeld) {
<a class="jxr_linenumber" name="L3368" href="#L3368">3368</a>       <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L3369" href="#L3369">3369</a>       <strong class="jxr_keyword">this</strong>.textField = textFeld;
<a class="jxr_linenumber" name="L3370" href="#L3370">3370</a>       <strong class="jxr_keyword">this</strong>.defaultToolTip = textFeld.getToolTipText();
<a class="jxr_linenumber" name="L3371" href="#L3371">3371</a> 
<a class="jxr_linenumber" name="L3372" href="#L3372">3372</a>       <strong class="jxr_keyword">this</strong>.delayThread =
<a class="jxr_linenumber" name="L3373" href="#L3373">3373</a>         <strong class="jxr_keyword">new</strong> Thread(
<a class="jxr_linenumber" name="L3374" href="#L3374">3374</a>           <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3375" href="#L3375">3375</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3376" href="#L3376">3376</a>               <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a class="jxr_linenumber" name="L3377" href="#L3377">3377</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3378" href="#L3378">3378</a>                   Thread.sleep(CHECK_PERIOD);
<a class="jxr_linenumber" name="L3379" href="#L3379">3379</a>                 } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
<a class="jxr_linenumber" name="L3380" href="#L3380">3380</a>                 }
<a class="jxr_linenumber" name="L3381" href="#L3381">3381</a> 
<a class="jxr_linenumber" name="L3382" href="#L3382">3382</a>                 <strong class="jxr_keyword">if</strong> (
<a class="jxr_linenumber" name="L3383" href="#L3383">3383</a>                   (System.currentTimeMillis() - lastTimeStamp) &lt; CHECK_PERIOD) {
<a class="jxr_linenumber" name="L3384" href="#L3384">3384</a>                   <em class="jxr_comment">// They typed something since the last check. we ignor</em>
<a class="jxr_linenumber" name="L3385" href="#L3385">3385</a>                   <em class="jxr_comment">// this for a sample period</em>
<a class="jxr_linenumber" name="L3386" href="#L3386">3386</a>                   <em class="jxr_comment">//                logger.debug("Typed something since the last check");</em>
<a class="jxr_linenumber" name="L3387" href="#L3387">3387</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (
<a class="jxr_linenumber" name="L3388" href="#L3388">3388</a>                   (System.currentTimeMillis() - lastTimeStamp) &lt; (2 * CHECK_PERIOD)) {
<a class="jxr_linenumber" name="L3389" href="#L3389">3389</a>                   <em class="jxr_comment">// they stopped typing recently, but have stopped for at least</em>
<a class="jxr_linenumber" name="L3390" href="#L3390">3390</a>                   <em class="jxr_comment">// 1 sample period. lets apply the filter</em>
<a class="jxr_linenumber" name="L3391" href="#L3391">3391</a>                   <em class="jxr_comment">//                logger.debug("Typed something recently applying filter");</em>
<a class="jxr_linenumber" name="L3392" href="#L3392">3392</a>                   <strong class="jxr_keyword">if</strong> (!(textFeld.getText().trim().equals(lastText.trim()))) {
<a class="jxr_linenumber" name="L3393" href="#L3393">3393</a>                     lastText = textFeld.getText();
<a class="jxr_linenumber" name="L3394" href="#L3394">3394</a>                     EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable()
<a class="jxr_linenumber" name="L3395" href="#L3395">3395</a>                     {
<a class="jxr_linenumber" name="L3396" href="#L3396">3396</a>                         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run()
<a class="jxr_linenumber" name="L3397" href="#L3397">3397</a>                         {
<a class="jxr_linenumber" name="L3398" href="#L3398">3398</a>                           setFilter();
<a class="jxr_linenumber" name="L3399" href="#L3399">3399</a>                         }
<a class="jxr_linenumber" name="L3400" href="#L3400">3400</a>                     });
<a class="jxr_linenumber" name="L3401" href="#L3401">3401</a>                   }
<a class="jxr_linenumber" name="L3402" href="#L3402">3402</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3403" href="#L3403">3403</a>                   <em class="jxr_comment">// they stopped typing a while ago, let's forget about it</em>
<a class="jxr_linenumber" name="L3404" href="#L3404">3404</a>                   <em class="jxr_comment">//                logger.debug(</em>
<a class="jxr_linenumber" name="L3405" href="#L3405">3405</a>                   <em class="jxr_comment">//                  "They stoppped typing a while ago, assuming filter has been applied");</em>
<a class="jxr_linenumber" name="L3406" href="#L3406">3406</a>                 }
<a class="jxr_linenumber" name="L3407" href="#L3407">3407</a>               }
<a class="jxr_linenumber" name="L3408" href="#L3408">3408</a>             }
<a class="jxr_linenumber" name="L3409" href="#L3409">3409</a>           });
<a class="jxr_linenumber" name="L3410" href="#L3410">3410</a> 
<a class="jxr_linenumber" name="L3411" href="#L3411">3411</a>       delayThread.setPriority(Thread.MIN_PRIORITY);
<a class="jxr_linenumber" name="L3412" href="#L3412">3412</a>       delayThread.start();
<a class="jxr_linenumber" name="L3413" href="#L3413">3413</a>     }
<a class="jxr_linenumber" name="L3414" href="#L3414">3414</a> 
<a class="jxr_linenumber" name="L3415" href="#L3415">3415</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3416" href="#L3416">3416</a> <em class="jxr_javadoccomment">     * Update timestamp</em>
<a class="jxr_linenumber" name="L3417" href="#L3417">3417</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3418" href="#L3418">3418</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3419" href="#L3419">3419</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3420" href="#L3420">3420</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> insertUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L3421" href="#L3421">3421</a>       notifyChange();
<a class="jxr_linenumber" name="L3422" href="#L3422">3422</a>     }
<a class="jxr_linenumber" name="L3423" href="#L3423">3423</a> 
<a class="jxr_linenumber" name="L3424" href="#L3424">3424</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3425" href="#L3425">3425</a> <em class="jxr_javadoccomment">     * Update timestamp</em>
<a class="jxr_linenumber" name="L3426" href="#L3426">3426</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3427" href="#L3427">3427</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3428" href="#L3428">3428</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3429" href="#L3429">3429</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L3430" href="#L3430">3430</a>       notifyChange();
<a class="jxr_linenumber" name="L3431" href="#L3431">3431</a>     }
<a class="jxr_linenumber" name="L3432" href="#L3432">3432</a> 
<a class="jxr_linenumber" name="L3433" href="#L3433">3433</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3434" href="#L3434">3434</a> <em class="jxr_javadoccomment">     * Update timestamp</em>
<a class="jxr_linenumber" name="L3435" href="#L3435">3435</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3436" href="#L3436">3436</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3437" href="#L3437">3437</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3438" href="#L3438">3438</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> changedUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L3439" href="#L3439">3439</a>       notifyChange();
<a class="jxr_linenumber" name="L3440" href="#L3440">3440</a>     }
<a class="jxr_linenumber" name="L3441" href="#L3441">3441</a> 
<a class="jxr_linenumber" name="L3442" href="#L3442">3442</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3443" href="#L3443">3443</a> <em class="jxr_javadoccomment">     * Update timestamp</em>
<a class="jxr_linenumber" name="L3444" href="#L3444">3444</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3445" href="#L3445">3445</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> notifyChange() {
<a class="jxr_linenumber" name="L3446" href="#L3446">3446</a>       <strong class="jxr_keyword">this</strong>.lastTimeStamp = System.currentTimeMillis();
<a class="jxr_linenumber" name="L3447" href="#L3447">3447</a>     }
<a class="jxr_linenumber" name="L3448" href="#L3448">3448</a> 
<a class="jxr_linenumber" name="L3449" href="#L3449">3449</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3450" href="#L3450">3450</a> <em class="jxr_javadoccomment">     * Update refinement rule based on the entered expression.</em>
<a class="jxr_linenumber" name="L3451" href="#L3451">3451</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3452" href="#L3452">3452</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setFilter() {
<a class="jxr_linenumber" name="L3453" href="#L3453">3453</a>       <strong class="jxr_keyword">if</strong> (textField.getText().trim().equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L3454" href="#L3454">3454</a>         <em class="jxr_comment">//reset background color in case we were previously an invalid expression</em>
<a class="jxr_linenumber" name="L3455" href="#L3455">3455</a>         textField.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L3456" href="#L3456">3456</a>         tableRuleMediator.setFilterRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3457" href="#L3457">3457</a>         searchRuleMediator.setFilterRule(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3458" href="#L3458">3458</a>         textField.setToolTipText(defaultToolTip);
<a class="jxr_linenumber" name="L3459" href="#L3459">3459</a>         <strong class="jxr_keyword">if</strong> (findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3460" href="#L3460">3460</a>           currentSearchMatchCount=tableModel.getSearchMatchCount();
<a class="jxr_linenumber" name="L3461" href="#L3461">3461</a>           statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L3462" href="#L3462">3462</a>         }
<a class="jxr_linenumber" name="L3463" href="#L3463">3463</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3464" href="#L3464">3464</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3465" href="#L3465">3465</a>           tableRuleMediator.setFilterRule(ExpressionRule.getRule(textField.getText()));
<a class="jxr_linenumber" name="L3466" href="#L3466">3466</a>           searchRuleMediator.setFilterRule(ExpressionRule.getRule(textField.getText()));
<a class="jxr_linenumber" name="L3467" href="#L3467">3467</a>           textField.setToolTipText(defaultToolTip);
<a class="jxr_linenumber" name="L3468" href="#L3468">3468</a>           <strong class="jxr_keyword">if</strong> (findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3469" href="#L3469">3469</a>             currentSearchMatchCount=tableModel.getSearchMatchCount();
<a class="jxr_linenumber" name="L3470" href="#L3470">3470</a>             statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L3471" href="#L3471">3471</a>           }
<a class="jxr_linenumber" name="L3472" href="#L3472">3472</a>           <em class="jxr_comment">//valid expression, reset background color in case we were previously an invalid expression</em>
<a class="jxr_linenumber" name="L3473" href="#L3473">3473</a>           textField.setBackground(UIManager.getColor(<span class="jxr_string">"TextField.background"</span>));
<a class="jxr_linenumber" name="L3474" href="#L3474">3474</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException iae) {
<a class="jxr_linenumber" name="L3475" href="#L3475">3475</a>           <em class="jxr_comment">//invalid expression, change background of the field</em>
<a class="jxr_linenumber" name="L3476" href="#L3476">3476</a>           textField.setToolTipText(iae.getMessage());
<a class="jxr_linenumber" name="L3477" href="#L3477">3477</a>           textField.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
<a class="jxr_linenumber" name="L3478" href="#L3478">3478</a>           <strong class="jxr_keyword">if</strong> (findRule != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3479" href="#L3479">3479</a>             currentSearchMatchCount=tableModel.getSearchMatchCount();
<a class="jxr_linenumber" name="L3480" href="#L3480">3480</a>             statusBar.setSearchMatchCount(currentSearchMatchCount, getIdentifier());
<a class="jxr_linenumber" name="L3481" href="#L3481">3481</a>           }
<a class="jxr_linenumber" name="L3482" href="#L3482">3482</a>         }
<a class="jxr_linenumber" name="L3483" href="#L3483">3483</a>       }
<a class="jxr_linenumber" name="L3484" href="#L3484">3484</a>     }
<a class="jxr_linenumber" name="L3485" href="#L3485">3485</a>   }
<a class="jxr_linenumber" name="L3486" href="#L3486">3486</a> 
<a class="jxr_linenumber" name="L3487" href="#L3487">3487</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableMarkerListener</a> <strong class="jxr_keyword">extends</strong> MouseAdapter {
<a class="jxr_linenumber" name="L3488" href="#L3488">3488</a>     <strong class="jxr_keyword">private</strong> JTable markerTable;
<a class="jxr_linenumber" name="L3489" href="#L3489">3489</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> markerEventContainer;
<a class="jxr_linenumber" name="L3490" href="#L3490">3490</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> otherMarkerEventContainer;
<a class="jxr_linenumber" name="L3491" href="#L3491">3491</a> 
<a class="jxr_linenumber" name="L3492" href="#L3492">3492</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableMarkerListener</a>(JTable markerTable, <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> markerEventContainer, <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> otherMarkerEventContainer) {
<a class="jxr_linenumber" name="L3493" href="#L3493">3493</a>       <strong class="jxr_keyword">this</strong>.markerTable = markerTable;
<a class="jxr_linenumber" name="L3494" href="#L3494">3494</a>       <strong class="jxr_keyword">this</strong>.markerEventContainer = markerEventContainer;
<a class="jxr_linenumber" name="L3495" href="#L3495">3495</a>       <strong class="jxr_keyword">this</strong>.otherMarkerEventContainer = otherMarkerEventContainer;
<a class="jxr_linenumber" name="L3496" href="#L3496">3496</a>     }
<a class="jxr_linenumber" name="L3497" href="#L3497">3497</a>     
<a class="jxr_linenumber" name="L3498" href="#L3498">3498</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent evt) {
<a class="jxr_linenumber" name="L3499" href="#L3499">3499</a>           <strong class="jxr_keyword">if</strong> (evt.getClickCount() == 2) {
<a class="jxr_linenumber" name="L3500" href="#L3500">3500</a>               <strong class="jxr_keyword">int</strong> row = markerTable.rowAtPoint(evt.getPoint());
<a class="jxr_linenumber" name="L3501" href="#L3501">3501</a>               <strong class="jxr_keyword">if</strong> (row != -1) {
<a class="jxr_linenumber" name="L3502" href="#L3502">3502</a>                 <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = markerEventContainer.getRow(row);
<a class="jxr_linenumber" name="L3503" href="#L3503">3503</a>                 <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3504" href="#L3504">3504</a>                     Object marker = loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3505" href="#L3505">3505</a>                     <strong class="jxr_keyword">if</strong> (marker == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3506" href="#L3506">3506</a>                         loggingEventWrapper.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, <span class="jxr_string">"set"</span>);
<a class="jxr_linenumber" name="L3507" href="#L3507">3507</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3508" href="#L3508">3508</a>                         loggingEventWrapper.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3509" href="#L3509">3509</a>                     }
<a class="jxr_linenumber" name="L3510" href="#L3510">3510</a>                     <em class="jxr_comment">//if marker -was- null, it no longer is (may need to add the column)</em>
<a class="jxr_linenumber" name="L3511" href="#L3511">3511</a>                     markerEventContainer.fireRowUpdated(row, (marker == <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="L3512" href="#L3512">3512</a>                     otherMarkerEventContainer.fireRowUpdated(otherMarkerEventContainer.getRowIndex(loggingEventWrapper), (marker == <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="L3513" href="#L3513">3513</a>                 }
<a class="jxr_linenumber" name="L3514" href="#L3514">3514</a>               }
<a class="jxr_linenumber" name="L3515" href="#L3515">3515</a>           }
<a class="jxr_linenumber" name="L3516" href="#L3516">3516</a>       }
<a class="jxr_linenumber" name="L3517" href="#L3517">3517</a>   }
<a class="jxr_linenumber" name="L3518" href="#L3518">3518</a> 
<a class="jxr_linenumber" name="L3519" href="#L3519">3519</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3520" href="#L3520">3520</a> <em class="jxr_javadoccomment">   * Update active tooltip</em>
<a class="jxr_linenumber" name="L3521" href="#L3521">3521</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3522" href="#L3522">3522</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableColumnDetailMouseListener</a> <strong class="jxr_keyword">extends</strong> MouseMotionAdapter {
<a class="jxr_linenumber" name="L3523" href="#L3523">3523</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> currentRow = -1;
<a class="jxr_linenumber" name="L3524" href="#L3524">3524</a>     <strong class="jxr_keyword">private</strong> JTable detailTable;
<a class="jxr_linenumber" name="L3525" href="#L3525">3525</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> detailEventContainer;
<a class="jxr_linenumber" name="L3526" href="#L3526">3526</a> 
<a class="jxr_linenumber" name="L3527" href="#L3527">3527</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">TableColumnDetailMouseListener</a>(JTable detailTable, <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> detailEventContainer) {
<a class="jxr_linenumber" name="L3528" href="#L3528">3528</a>       <strong class="jxr_keyword">this</strong>.detailTable = detailTable;
<a class="jxr_linenumber" name="L3529" href="#L3529">3529</a>       <strong class="jxr_keyword">this</strong>.detailEventContainer = detailEventContainer;
<a class="jxr_linenumber" name="L3530" href="#L3530">3530</a>     }
<a class="jxr_linenumber" name="L3531" href="#L3531">3531</a> 
<a class="jxr_linenumber" name="L3532" href="#L3532">3532</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3533" href="#L3533">3533</a> <em class="jxr_javadoccomment">     * Update tooltip based on mouse position</em>
<a class="jxr_linenumber" name="L3534" href="#L3534">3534</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3535" href="#L3535">3535</a> <em class="jxr_javadoccomment">     * @param evt</em>
<a class="jxr_linenumber" name="L3536" href="#L3536">3536</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3537" href="#L3537">3537</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseMoved(MouseEvent evt) {
<a class="jxr_linenumber" name="L3538" href="#L3538">3538</a>       currentPoint = evt.getPoint();
<a class="jxr_linenumber" name="L3539" href="#L3539">3539</a>       currentTable = detailTable;
<a class="jxr_linenumber" name="L3540" href="#L3540">3540</a> 
<a class="jxr_linenumber" name="L3541" href="#L3541">3541</a>       <strong class="jxr_keyword">if</strong> (preferenceModel.isToolTips()) {
<a class="jxr_linenumber" name="L3542" href="#L3542">3542</a>         <strong class="jxr_keyword">int</strong> row = detailTable.rowAtPoint(evt.getPoint());
<a class="jxr_linenumber" name="L3543" href="#L3543">3543</a> 
<a class="jxr_linenumber" name="L3544" href="#L3544">3544</a>         <strong class="jxr_keyword">if</strong> ((row == currentRow) || (row == -1)) {
<a class="jxr_linenumber" name="L3545" href="#L3545">3545</a>           <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L3546" href="#L3546">3546</a>         }
<a class="jxr_linenumber" name="L3547" href="#L3547">3547</a> 
<a class="jxr_linenumber" name="L3548" href="#L3548">3548</a>         currentRow = row;
<a class="jxr_linenumber" name="L3549" href="#L3549">3549</a> 
<a class="jxr_linenumber" name="L3550" href="#L3550">3550</a>         <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> event = detailEventContainer.getRow(currentRow);
<a class="jxr_linenumber" name="L3551" href="#L3551">3551</a> 
<a class="jxr_linenumber" name="L3552" href="#L3552">3552</a>         <strong class="jxr_keyword">if</strong> (event != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3553" href="#L3553">3553</a>           String toolTipText = getToolTipTextForEvent(event);
<a class="jxr_linenumber" name="L3554" href="#L3554">3554</a>           detailTable.setToolTipText(toolTipText);
<a class="jxr_linenumber" name="L3555" href="#L3555">3555</a>         }
<a class="jxr_linenumber" name="L3556" href="#L3556">3556</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3557" href="#L3557">3557</a>         detailTable.setToolTipText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L3558" href="#L3558">3558</a>       }
<a class="jxr_linenumber" name="L3559" href="#L3559">3559</a>     }
<a class="jxr_linenumber" name="L3560" href="#L3560">3560</a>   }
<a class="jxr_linenumber" name="L3561" href="#L3561">3561</a> 
<a class="jxr_linenumber" name="L3562" href="#L3562">3562</a>   <em class="jxr_comment">//if columnmoved or columnremoved callback received, re-apply table's sort index based</em>
<a class="jxr_linenumber" name="L3563" href="#L3563">3563</a>   <em class="jxr_comment">//sort column name</em>
<a class="jxr_linenumber" name="L3564" href="#L3564">3564</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ChainsawTableColumnModelListener</a> <strong class="jxr_keyword">implements</strong> TableColumnModelListener {
<a class="jxr_linenumber" name="L3565" href="#L3565">3565</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a> modelListenerTable;
<a class="jxr_linenumber" name="L3566" href="#L3566">3566</a> 
<a class="jxr_linenumber" name="L3567" href="#L3567">3567</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ChainsawTableColumnModelListener</a>(<a href="../../../../org/apache/log4j/chainsaw/JSortTable.html">JSortTable</a> modelListenerTable) {
<a class="jxr_linenumber" name="L3568" href="#L3568">3568</a>       <strong class="jxr_keyword">this</strong>.modelListenerTable = modelListenerTable;
<a class="jxr_linenumber" name="L3569" href="#L3569">3569</a>     }
<a class="jxr_linenumber" name="L3570" href="#L3570">3570</a> 
<a class="jxr_linenumber" name="L3571" href="#L3571">3571</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> columnAdded(TableColumnModelEvent e) {
<a class="jxr_linenumber" name="L3572" href="#L3572">3572</a>       <em class="jxr_comment">//no-op</em>
<a class="jxr_linenumber" name="L3573" href="#L3573">3573</a>     }
<a class="jxr_linenumber" name="L3574" href="#L3574">3574</a> 
<a class="jxr_linenumber" name="L3575" href="#L3575">3575</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3576" href="#L3576">3576</a> <em class="jxr_javadoccomment">     * Update sorted column</em>
<a class="jxr_linenumber" name="L3577" href="#L3577">3577</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3578" href="#L3578">3578</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3579" href="#L3579">3579</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3580" href="#L3580">3580</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> columnRemoved(TableColumnModelEvent e) {
<a class="jxr_linenumber" name="L3581" href="#L3581">3581</a>       modelListenerTable.updateSortedColumn();
<a class="jxr_linenumber" name="L3582" href="#L3582">3582</a>     }
<a class="jxr_linenumber" name="L3583" href="#L3583">3583</a> 
<a class="jxr_linenumber" name="L3584" href="#L3584">3584</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3585" href="#L3585">3585</a> <em class="jxr_javadoccomment">     * Update sorted column</em>
<a class="jxr_linenumber" name="L3586" href="#L3586">3586</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3587" href="#L3587">3587</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3588" href="#L3588">3588</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3589" href="#L3589">3589</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> columnMoved(TableColumnModelEvent e) {
<a class="jxr_linenumber" name="L3590" href="#L3590">3590</a>       modelListenerTable.updateSortedColumn();
<a class="jxr_linenumber" name="L3591" href="#L3591">3591</a>     }
<a class="jxr_linenumber" name="L3592" href="#L3592">3592</a> 
<a class="jxr_linenumber" name="L3593" href="#L3593">3593</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3594" href="#L3594">3594</a> <em class="jxr_javadoccomment">     * Ignore margin changed</em>
<a class="jxr_linenumber" name="L3595" href="#L3595">3595</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3596" href="#L3596">3596</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3597" href="#L3597">3597</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3598" href="#L3598">3598</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> columnMarginChanged(ChangeEvent e) {
<a class="jxr_linenumber" name="L3599" href="#L3599">3599</a>     }
<a class="jxr_linenumber" name="L3600" href="#L3600">3600</a> 
<a class="jxr_linenumber" name="L3601" href="#L3601">3601</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3602" href="#L3602">3602</a> <em class="jxr_javadoccomment">     * Ignore selection changed</em>
<a class="jxr_linenumber" name="L3603" href="#L3603">3603</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3604" href="#L3604">3604</a> <em class="jxr_javadoccomment">     * @param e</em>
<a class="jxr_linenumber" name="L3605" href="#L3605">3605</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3606" href="#L3606">3606</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> columnSelectionChanged(ListSelectionEvent e) {
<a class="jxr_linenumber" name="L3607" href="#L3607">3607</a>     }
<a class="jxr_linenumber" name="L3608" href="#L3608">3608</a>   }
<a class="jxr_linenumber" name="L3609" href="#L3609">3609</a> 
<a class="jxr_linenumber" name="L3610" href="#L3610">3610</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3611" href="#L3611">3611</a> <em class="jxr_javadoccomment">   * Thread that periodically checks if the selected row has changed, and if</em>
<a class="jxr_linenumber" name="L3612" href="#L3612">3612</a> <em class="jxr_javadoccomment">   * it was, updates the Detail Panel with the detailed Logging information</em>
<a class="jxr_linenumber" name="L3613" href="#L3613">3613</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L3614" href="#L3614">3614</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DetailPaneUpdater</a> <strong class="jxr_keyword">implements</strong> PropertyChangeListener {
<a class="jxr_linenumber" name="L3615" href="#L3615">3615</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> selectedRow = -1;
<a class="jxr_linenumber" name="L3616" href="#L3616">3616</a>     <strong class="jxr_keyword">int</strong> lastRow = -1;
<a class="jxr_linenumber" name="L3617" href="#L3617">3617</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">DetailPaneUpdater</a>() {
<a class="jxr_linenumber" name="L3618" href="#L3618">3618</a>     }
<a class="jxr_linenumber" name="L3619" href="#L3619">3619</a> 
<a class="jxr_linenumber" name="L3620" href="#L3620">3620</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3621" href="#L3621">3621</a> <em class="jxr_javadoccomment">     * Update detail pane to display information about the LoggingEvent at index row</em>
<a class="jxr_linenumber" name="L3622" href="#L3622">3622</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3623" href="#L3623">3623</a> <em class="jxr_javadoccomment">     * @param row</em>
<a class="jxr_linenumber" name="L3624" href="#L3624">3624</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3625" href="#L3625">3625</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setSelectedRow(<strong class="jxr_keyword">int</strong> row) {
<a class="jxr_linenumber" name="L3626" href="#L3626">3626</a>       selectedRow = row;
<a class="jxr_linenumber" name="L3627" href="#L3627">3627</a>       updateDetailPane();
<a class="jxr_linenumber" name="L3628" href="#L3628">3628</a>     }
<a class="jxr_linenumber" name="L3629" href="#L3629">3629</a> 
<a class="jxr_linenumber" name="L3630" href="#L3630">3630</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setAndUpdateSelectedRow(<strong class="jxr_keyword">int</strong> row) {
<a class="jxr_linenumber" name="L3631" href="#L3631">3631</a>         selectedRow = row;
<a class="jxr_linenumber" name="L3632" href="#L3632">3632</a>         updateDetailPane(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3633" href="#L3633">3633</a>     }
<a class="jxr_linenumber" name="L3634" href="#L3634">3634</a> 
<a class="jxr_linenumber" name="L3635" href="#L3635">3635</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateDetailPane() {
<a class="jxr_linenumber" name="L3636" href="#L3636">3636</a>         updateDetailPane(false);
<a class="jxr_linenumber" name="L3637" href="#L3637">3637</a>     }
<a class="jxr_linenumber" name="L3638" href="#L3638">3638</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3639" href="#L3639">3639</a> <em class="jxr_javadoccomment">     * Update detail pane</em>
<a class="jxr_linenumber" name="L3640" href="#L3640">3640</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3641" href="#L3641">3641</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateDetailPane(<strong class="jxr_keyword">boolean</strong> force) {
<a class="jxr_linenumber" name="L3642" href="#L3642">3642</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3643" href="#L3643">3643</a> <em class="jxr_comment">             * Don't bother doing anything if it's not visible. Note: the isVisible() method on</em>
<a class="jxr_linenumber" name="L3644" href="#L3644">3644</a> <em class="jxr_comment">             * Component is not really accurate here because when the button to toggle display of</em>
<a class="jxr_linenumber" name="L3645" href="#L3645">3645</a> <em class="jxr_comment">             * the detail pane is triggered it still appears as 'visible' for some reason.</em>
<a class="jxr_linenumber" name="L3646" href="#L3646">3646</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="L3647" href="#L3647">3647</a>       <strong class="jxr_keyword">if</strong> (!preferenceModel.isDetailPaneVisible()) {
<a class="jxr_linenumber" name="L3648" href="#L3648">3648</a>         <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L3649" href="#L3649">3649</a>       }
<a class="jxr_linenumber" name="L3650" href="#L3650">3650</a> 
<a class="jxr_linenumber" name="L3651" href="#L3651">3651</a> 	      LoggingEventWrapper loggingEventWrapper = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L3652" href="#L3652">3652</a> 	      <strong class="jxr_keyword">if</strong> (force || (selectedRow != -1 &amp;&amp; (lastRow != selectedRow))) {
<a class="jxr_linenumber" name="L3653" href="#L3653">3653</a> 	        loggingEventWrapper = tableModel.getRow(selectedRow);
<a class="jxr_linenumber" name="L3654" href="#L3654">3654</a> 	
<a class="jxr_linenumber" name="L3655" href="#L3655">3655</a> 	        <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3656" href="#L3656">3656</a> 	          <strong class="jxr_keyword">final</strong> StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L3657" href="#L3657">3657</a> 	          buf.append(detailLayout.getHeader())
<a class="jxr_linenumber" name="L3658" href="#L3658">3658</a> 	             .append(detailLayout.format(loggingEventWrapper.getLoggingEvent())).append(
<a class="jxr_linenumber" name="L3659" href="#L3659">3659</a> 	            detailLayout.getFooter());
<a class="jxr_linenumber" name="L3660" href="#L3660">3660</a> 	          <strong class="jxr_keyword">if</strong> (buf.length() &gt; 0) {
<a class="jxr_linenumber" name="L3661" href="#L3661">3661</a> 		          	<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3662" href="#L3662">3662</a> 		          		<strong class="jxr_keyword">final</strong> Document doc = detail.getEditorKit().createDefaultDocument();
<a class="jxr_linenumber" name="L3663" href="#L3663">3663</a> 		          		detail.getEditorKit().read(<strong class="jxr_keyword">new</strong> StringReader(buf.toString()), doc, 0);
<a class="jxr_linenumber" name="L3664" href="#L3664">3664</a> 
<a class="jxr_linenumber" name="L3665" href="#L3665">3665</a> 				      	SwingHelper.invokeOnEDT(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3666" href="#L3666">3666</a> 				      		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3667" href="#L3667">3667</a> 				      			detail.setDocument(doc);
<a class="jxr_linenumber" name="L3668" href="#L3668">3668</a>                                 JTextComponentFormatter.applySystemFontAndSize(detail);
<a class="jxr_linenumber" name="L3669" href="#L3669">3669</a> 				      			detail.setCaretPosition(0);
<a class="jxr_linenumber" name="L3670" href="#L3670">3670</a>                                 lastRow = selectedRow;
<a class="jxr_linenumber" name="L3671" href="#L3671">3671</a> 				      		}
<a class="jxr_linenumber" name="L3672" href="#L3672">3672</a> 				      	});
<a class="jxr_linenumber" name="L3673" href="#L3673">3673</a> 		          	} <strong class="jxr_keyword">catch</strong> (Exception e) {}
<a class="jxr_linenumber" name="L3674" href="#L3674">3674</a> 	      		}
<a class="jxr_linenumber" name="L3675" href="#L3675">3675</a> 	        }
<a class="jxr_linenumber" name="L3676" href="#L3676">3676</a> 	      }
<a class="jxr_linenumber" name="L3677" href="#L3677">3677</a> 	
<a class="jxr_linenumber" name="L3678" href="#L3678">3678</a> 	      <strong class="jxr_keyword">if</strong> (loggingEventWrapper == <strong class="jxr_keyword">null</strong> &amp;&amp; (lastRow != selectedRow)) {
<a class="jxr_linenumber" name="L3679" href="#L3679">3679</a>           	<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L3680" href="#L3680">3680</a>           		<strong class="jxr_keyword">final</strong> Document doc = detail.getEditorKit().createDefaultDocument();
<a class="jxr_linenumber" name="L3681" href="#L3681">3681</a>           		detail.getEditorKit().read(<strong class="jxr_keyword">new</strong> StringReader(<span class="jxr_string">"&lt;html&gt;Nothing selected&lt;/html&gt;"</span>), doc, 0);
<a class="jxr_linenumber" name="L3682" href="#L3682">3682</a> 		      	SwingHelper.invokeOnEDT(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3683" href="#L3683">3683</a> 		      		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3684" href="#L3684">3684</a> 		      			detail.setDocument(doc);
<a class="jxr_linenumber" name="L3685" href="#L3685">3685</a>                         JTextComponentFormatter.applySystemFontAndSize(detail);
<a class="jxr_linenumber" name="L3686" href="#L3686">3686</a> 		      			detail.setCaretPosition(0);
<a class="jxr_linenumber" name="L3687" href="#L3687">3687</a>                         lastRow = selectedRow;
<a class="jxr_linenumber" name="L3688" href="#L3688">3688</a> 		      		}
<a class="jxr_linenumber" name="L3689" href="#L3689">3689</a> 		      	});
<a class="jxr_linenumber" name="L3690" href="#L3690">3690</a>           	} <strong class="jxr_keyword">catch</strong> (Exception e) {}
<a class="jxr_linenumber" name="L3691" href="#L3691">3691</a>   		}
<a class="jxr_linenumber" name="L3692" href="#L3692">3692</a>     }
<a class="jxr_linenumber" name="L3693" href="#L3693">3693</a> 
<a class="jxr_linenumber" name="L3694" href="#L3694">3694</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L3695" href="#L3695">3695</a> <em class="jxr_javadoccomment">     * Update detail pane layout if it's changed</em>
<a class="jxr_linenumber" name="L3696" href="#L3696">3696</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L3697" href="#L3697">3697</a> <em class="jxr_javadoccomment">     * @param arg0</em>
<a class="jxr_linenumber" name="L3698" href="#L3698">3698</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L3699" href="#L3699">3699</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> propertyChange(PropertyChangeEvent arg0) {
<a class="jxr_linenumber" name="L3700" href="#L3700">3700</a>       SwingUtilities.invokeLater(
<a class="jxr_linenumber" name="L3701" href="#L3701">3701</a>         <strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3702" href="#L3702">3702</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3703" href="#L3703">3703</a>             updateDetailPane(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3704" href="#L3704">3704</a>           }
<a class="jxr_linenumber" name="L3705" href="#L3705">3705</a>         });
<a class="jxr_linenumber" name="L3706" href="#L3706">3706</a>     }
<a class="jxr_linenumber" name="L3707" href="#L3707">3707</a>   }
<a class="jxr_linenumber" name="L3708" href="#L3708">3708</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThrowableDisplayMouseAdapter</a> <strong class="jxr_keyword">extends</strong> MouseAdapter {
<a class="jxr_linenumber" name="L3709" href="#L3709">3709</a>       <strong class="jxr_keyword">private</strong> JTable throwableTable;
<a class="jxr_linenumber" name="L3710" href="#L3710">3710</a>       <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> throwableEventContainer;
<a class="jxr_linenumber" name="L3711" href="#L3711">3711</a>       <strong class="jxr_keyword">final</strong> JDialog detailDialog;
<a class="jxr_linenumber" name="L3712" href="#L3712">3712</a>       <strong class="jxr_keyword">final</strong> JEditorPane detailArea;
<a class="jxr_linenumber" name="L3713" href="#L3713">3713</a>       <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThrowableDisplayMouseAdapter</a>(JTable throwableTable, <a href="../../../../org/apache/log4j/chainsaw/EventContainer.html">EventContainer</a> throwableEventContainer) {
<a class="jxr_linenumber" name="L3714" href="#L3714">3714</a>         <strong class="jxr_keyword">this</strong>.throwableTable = throwableTable;
<a class="jxr_linenumber" name="L3715" href="#L3715">3715</a>         <strong class="jxr_keyword">this</strong>.throwableEventContainer = throwableEventContainer;
<a class="jxr_linenumber" name="L3716" href="#L3716">3716</a> 
<a class="jxr_linenumber" name="L3717" href="#L3717">3717</a>         detailDialog = <strong class="jxr_keyword">new</strong> JDialog((JFrame) <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3718" href="#L3718">3718</a>         Container container = detailDialog.getContentPane();
<a class="jxr_linenumber" name="L3719" href="#L3719">3719</a>         detailArea = <strong class="jxr_keyword">new</strong> JEditorPane();
<a class="jxr_linenumber" name="L3720" href="#L3720">3720</a>         JTextComponentFormatter.applySystemFontAndSize(detailArea);
<a class="jxr_linenumber" name="L3721" href="#L3721">3721</a>         detailArea.setEditable(false);
<a class="jxr_linenumber" name="L3722" href="#L3722">3722</a>         Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
<a class="jxr_linenumber" name="L3723" href="#L3723">3723</a>         detailArea.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(screenDimension.width / 2, screenDimension.height / 2));
<a class="jxr_linenumber" name="L3724" href="#L3724">3724</a>         container.setLayout(<strong class="jxr_keyword">new</strong> BoxLayout(container, BoxLayout.Y_AXIS));
<a class="jxr_linenumber" name="L3725" href="#L3725">3725</a>         container.add(<strong class="jxr_keyword">new</strong> JScrollPane(detailArea));
<a class="jxr_linenumber" name="L3726" href="#L3726">3726</a> 
<a class="jxr_linenumber" name="L3727" href="#L3727">3727</a>         detailDialog.pack();
<a class="jxr_linenumber" name="L3728" href="#L3728">3728</a>       }
<a class="jxr_linenumber" name="L3729" href="#L3729">3729</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent e)
<a class="jxr_linenumber" name="L3730" href="#L3730">3730</a>         {
<a class="jxr_linenumber" name="L3731" href="#L3731">3731</a>             TableColumn column = throwableTable.getColumnModel().getColumn(throwableTable.columnAtPoint(e.getPoint()));
<a class="jxr_linenumber" name="L3732" href="#L3732">3732</a>             <strong class="jxr_keyword">if</strong> (!column.getHeaderValue().toString().toUpperCase().equals(ChainsawColumns.getColumnName(ChainsawColumns.INDEX_THROWABLE_COL_NAME))) {
<a class="jxr_linenumber" name="L3733" href="#L3733">3733</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L3734" href="#L3734">3734</a>             }
<a class="jxr_linenumber" name="L3735" href="#L3735">3735</a> 
<a class="jxr_linenumber" name="L3736" href="#L3736">3736</a>             <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = throwableEventContainer.getRow(throwableTable.getSelectedRow());
<a class="jxr_linenumber" name="L3737" href="#L3737">3737</a> 
<a class="jxr_linenumber" name="L3738" href="#L3738">3738</a>             <em class="jxr_comment">//throwable string representation may be a length-one empty array</em>
<a class="jxr_linenumber" name="L3739" href="#L3739">3739</a>             String[] ti = loggingEventWrapper.getLoggingEvent().getThrowableStrRep();
<a class="jxr_linenumber" name="L3740" href="#L3740">3740</a>             <strong class="jxr_keyword">if</strong> (ti != <strong class="jxr_keyword">null</strong> &amp;&amp; ti.length &gt; 0 &amp;&amp; (!(ti.length == 1 &amp;&amp; ti[0].equals(<span class="jxr_string">""</span>)))) {
<a class="jxr_linenumber" name="L3741" href="#L3741">3741</a>                  detailDialog.setTitle(throwableTable.getColumnName(throwableTable.getSelectedColumn()) + <span class="jxr_string">" detail..."</span>);
<a class="jxr_linenumber" name="L3742" href="#L3742">3742</a>                   StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L3743" href="#L3743">3743</a>                   buf.append(loggingEventWrapper.getLoggingEvent().getMessage());
<a class="jxr_linenumber" name="L3744" href="#L3744">3744</a>                   buf.append(<span class="jxr_string">"\n"</span>);
<a class="jxr_linenumber" name="L3745" href="#L3745">3745</a>                   <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; ti.length; i++) {
<a class="jxr_linenumber" name="L3746" href="#L3746">3746</a>                     buf.append(ti[i]).append(<span class="jxr_string">"\n    "</span>);
<a class="jxr_linenumber" name="L3747" href="#L3747">3747</a>                   }
<a class="jxr_linenumber" name="L3748" href="#L3748">3748</a> 
<a class="jxr_linenumber" name="L3749" href="#L3749">3749</a>                   detailArea.setText(buf.toString());
<a class="jxr_linenumber" name="L3750" href="#L3750">3750</a>                   SwingHelper.invokeOnEDT(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L3751" href="#L3751">3751</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L3752" href="#L3752">3752</a>                       centerAndSetVisible(detailDialog);
<a class="jxr_linenumber" name="L3753" href="#L3753">3753</a>                     }
<a class="jxr_linenumber" name="L3754" href="#L3754">3754</a>                   });
<a class="jxr_linenumber" name="L3755" href="#L3755">3755</a>                 }
<a class="jxr_linenumber" name="L3756" href="#L3756">3756</a>         }
<a class="jxr_linenumber" name="L3757" href="#L3757">3757</a>     }
<a class="jxr_linenumber" name="L3758" href="#L3758">3758</a> 
<a class="jxr_linenumber" name="L3759" href="#L3759">3759</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">MarkerCellEditor</a> <strong class="jxr_keyword">implements</strong> TableCellEditor {
<a class="jxr_linenumber" name="L3760" href="#L3760">3760</a>       JTable currentTable;
<a class="jxr_linenumber" name="L3761" href="#L3761">3761</a>       JTextField textField = <strong class="jxr_keyword">new</strong> JTextField();
<a class="jxr_linenumber" name="L3762" href="#L3762">3762</a>       Set cellEditorListeners = <strong class="jxr_keyword">new</strong> HashSet();
<a class="jxr_linenumber" name="L3763" href="#L3763">3763</a>       <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> currentLoggingEventWrapper;
<a class="jxr_linenumber" name="L3764" href="#L3764">3764</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object mutex = <strong class="jxr_keyword">new</strong> Object();
<a class="jxr_linenumber" name="L3765" href="#L3765">3765</a> 
<a class="jxr_linenumber" name="L3766" href="#L3766">3766</a>         <strong class="jxr_keyword">public</strong> Object getCellEditorValue()
<a class="jxr_linenumber" name="L3767" href="#L3767">3767</a>         {
<a class="jxr_linenumber" name="L3768" href="#L3768">3768</a>             <strong class="jxr_keyword">return</strong> textField.getText();
<a class="jxr_linenumber" name="L3769" href="#L3769">3769</a>         }
<a class="jxr_linenumber" name="L3770" href="#L3770">3770</a> 
<a class="jxr_linenumber" name="L3771" href="#L3771">3771</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isCellEditable(EventObject anEvent)
<a class="jxr_linenumber" name="L3772" href="#L3772">3772</a>         {
<a class="jxr_linenumber" name="L3773" href="#L3773">3773</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L3774" href="#L3774">3774</a>         }
<a class="jxr_linenumber" name="L3775" href="#L3775">3775</a> 
<a class="jxr_linenumber" name="L3776" href="#L3776">3776</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> shouldSelectCell(EventObject anEvent)
<a class="jxr_linenumber" name="L3777" href="#L3777">3777</a>         {
<a class="jxr_linenumber" name="L3778" href="#L3778">3778</a>             textField.selectAll();
<a class="jxr_linenumber" name="L3779" href="#L3779">3779</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L3780" href="#L3780">3780</a>         }
<a class="jxr_linenumber" name="L3781" href="#L3781">3781</a> 
<a class="jxr_linenumber" name="L3782" href="#L3782">3782</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> stopCellEditing()
<a class="jxr_linenumber" name="L3783" href="#L3783">3783</a>         {
<a class="jxr_linenumber" name="L3784" href="#L3784">3784</a>             <strong class="jxr_keyword">if</strong> (textField.getText().trim().equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L3785" href="#L3785">3785</a>                 currentLoggingEventWrapper.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3786" href="#L3786">3786</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3787" href="#L3787">3787</a>                 currentLoggingEventWrapper.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, textField.getText());
<a class="jxr_linenumber" name="L3788" href="#L3788">3788</a>             }
<a class="jxr_linenumber" name="L3789" href="#L3789">3789</a>             <em class="jxr_comment">//row should always exist in the main table if it is being edited</em>
<a class="jxr_linenumber" name="L3790" href="#L3790">3790</a>             tableModel.fireRowUpdated(tableModel.getRowIndex(currentLoggingEventWrapper), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3791" href="#L3791">3791</a>             <strong class="jxr_keyword">int</strong> index = searchModel.getRowIndex(currentLoggingEventWrapper);
<a class="jxr_linenumber" name="L3792" href="#L3792">3792</a>             <strong class="jxr_keyword">if</strong> (index &gt; -1) {
<a class="jxr_linenumber" name="L3793" href="#L3793">3793</a>               searchModel.fireRowUpdated(index, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L3794" href="#L3794">3794</a>             }
<a class="jxr_linenumber" name="L3795" href="#L3795">3795</a> 
<a class="jxr_linenumber" name="L3796" href="#L3796">3796</a>             ChangeEvent event = <strong class="jxr_keyword">new</strong> ChangeEvent(currentTable);
<a class="jxr_linenumber" name="L3797" href="#L3797">3797</a>             Set cellEditorListenersCopy;
<a class="jxr_linenumber" name="L3798" href="#L3798">3798</a>             <strong class="jxr_keyword">synchronized</strong>(mutex) {
<a class="jxr_linenumber" name="L3799" href="#L3799">3799</a>                 cellEditorListenersCopy = <strong class="jxr_keyword">new</strong> HashSet(cellEditorListeners);
<a class="jxr_linenumber" name="L3800" href="#L3800">3800</a>             }
<a class="jxr_linenumber" name="L3801" href="#L3801">3801</a> 
<a class="jxr_linenumber" name="L3802" href="#L3802">3802</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = cellEditorListenersCopy.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3803" href="#L3803">3803</a>                 ((CellEditorListener)iter.next()).editingStopped(event);
<a class="jxr_linenumber" name="L3804" href="#L3804">3804</a>             }
<a class="jxr_linenumber" name="L3805" href="#L3805">3805</a>             currentLoggingEventWrapper = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L3806" href="#L3806">3806</a>             currentTable = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L3807" href="#L3807">3807</a> 
<a class="jxr_linenumber" name="L3808" href="#L3808">3808</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L3809" href="#L3809">3809</a>         }
<a class="jxr_linenumber" name="L3810" href="#L3810">3810</a> 
<a class="jxr_linenumber" name="L3811" href="#L3811">3811</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cancelCellEditing()
<a class="jxr_linenumber" name="L3812" href="#L3812">3812</a>         {
<a class="jxr_linenumber" name="L3813" href="#L3813">3813</a>             Set cellEditorListenersCopy;
<a class="jxr_linenumber" name="L3814" href="#L3814">3814</a>             <strong class="jxr_keyword">synchronized</strong>(mutex) {
<a class="jxr_linenumber" name="L3815" href="#L3815">3815</a>                 cellEditorListenersCopy = <strong class="jxr_keyword">new</strong> HashSet(cellEditorListeners);
<a class="jxr_linenumber" name="L3816" href="#L3816">3816</a>             }
<a class="jxr_linenumber" name="L3817" href="#L3817">3817</a> 
<a class="jxr_linenumber" name="L3818" href="#L3818">3818</a>            ChangeEvent event = <strong class="jxr_keyword">new</strong> ChangeEvent(currentTable);
<a class="jxr_linenumber" name="L3819" href="#L3819">3819</a>            <strong class="jxr_keyword">for</strong> (Iterator iter = cellEditorListenersCopy.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3820" href="#L3820">3820</a>                ((CellEditorListener)iter.next()).editingCanceled(event);
<a class="jxr_linenumber" name="L3821" href="#L3821">3821</a>            }
<a class="jxr_linenumber" name="L3822" href="#L3822">3822</a>           currentLoggingEventWrapper = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L3823" href="#L3823">3823</a>           currentTable = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L3824" href="#L3824">3824</a>         }
<a class="jxr_linenumber" name="L3825" href="#L3825">3825</a> 
<a class="jxr_linenumber" name="L3826" href="#L3826">3826</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addCellEditorListener(CellEditorListener l)
<a class="jxr_linenumber" name="L3827" href="#L3827">3827</a>         {
<a class="jxr_linenumber" name="L3828" href="#L3828">3828</a>             <strong class="jxr_keyword">synchronized</strong>(mutex) {
<a class="jxr_linenumber" name="L3829" href="#L3829">3829</a>                 cellEditorListeners.add(l);
<a class="jxr_linenumber" name="L3830" href="#L3830">3830</a>             }
<a class="jxr_linenumber" name="L3831" href="#L3831">3831</a>         }
<a class="jxr_linenumber" name="L3832" href="#L3832">3832</a> 
<a class="jxr_linenumber" name="L3833" href="#L3833">3833</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeCellEditorListener(CellEditorListener l)
<a class="jxr_linenumber" name="L3834" href="#L3834">3834</a>         {
<a class="jxr_linenumber" name="L3835" href="#L3835">3835</a>             <strong class="jxr_keyword">synchronized</strong>(mutex) {
<a class="jxr_linenumber" name="L3836" href="#L3836">3836</a>                 cellEditorListeners.remove(l);
<a class="jxr_linenumber" name="L3837" href="#L3837">3837</a>             }
<a class="jxr_linenumber" name="L3838" href="#L3838">3838</a>         }
<a class="jxr_linenumber" name="L3839" href="#L3839">3839</a> 
<a class="jxr_linenumber" name="L3840" href="#L3840">3840</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/Component.html">Component</a> getTableCellEditorComponent(JTable table, Object value, <strong class="jxr_keyword">boolean</strong> isSelected, <strong class="jxr_keyword">int</strong> row, <strong class="jxr_keyword">int</strong> column)
<a class="jxr_linenumber" name="L3841" href="#L3841">3841</a>         {
<a class="jxr_linenumber" name="L3842" href="#L3842">3842</a>           currentTable = table;
<a class="jxr_linenumber" name="L3843" href="#L3843">3843</a>           currentLoggingEventWrapper =((EventContainer) table.getModel()).getRow(row);
<a class="jxr_linenumber" name="L3844" href="#L3844">3844</a>             <strong class="jxr_keyword">if</strong> (currentLoggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3845" href="#L3845">3845</a>                 textField.setText(currentLoggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE));
<a class="jxr_linenumber" name="L3846" href="#L3846">3846</a>                 textField.selectAll();
<a class="jxr_linenumber" name="L3847" href="#L3847">3847</a>             }
<a class="jxr_linenumber" name="L3848" href="#L3848">3848</a>             <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L3849" href="#L3849">3849</a>               textField.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L3850" href="#L3850">3850</a>             }
<a class="jxr_linenumber" name="L3851" href="#L3851">3851</a>             <strong class="jxr_keyword">return</strong> textField;
<a class="jxr_linenumber" name="L3852" href="#L3852">3852</a>         }
<a class="jxr_linenumber" name="L3853" href="#L3853">3853</a>     }
<a class="jxr_linenumber" name="L3854" href="#L3854">3854</a> 
<a class="jxr_linenumber" name="L3855" href="#L3855">3855</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">EventTimeDeltaMatchThumbnail</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AbstractEventMatchThumbnail</a> {
<a class="jxr_linenumber" name="L3856" href="#L3856">3856</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">EventTimeDeltaMatchThumbnail</a>() {
<a class="jxr_linenumber" name="L3857" href="#L3857">3857</a>             <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L3858" href="#L3858">3858</a>             initializeLists();
<a class="jxr_linenumber" name="L3859" href="#L3859">3859</a>         }
<a class="jxr_linenumber" name="L3860" href="#L3860">3860</a> 
<a class="jxr_linenumber" name="L3861" href="#L3861">3861</a>         <strong class="jxr_keyword">boolean</strong> primaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper) {
<a class="jxr_linenumber" name="L3862" href="#L3862">3862</a>             String millisDelta = wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3863" href="#L3863">3863</a>             <strong class="jxr_keyword">if</strong> (millisDelta != <strong class="jxr_keyword">null</strong> &amp;&amp; !millisDelta.trim().equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L3864" href="#L3864">3864</a>                 <strong class="jxr_keyword">long</strong> millisDeltaLong = Long.parseLong(millisDelta);
<a class="jxr_linenumber" name="L3865" href="#L3865">3865</a>                 <em class="jxr_comment">//arbitrary</em>
<a class="jxr_linenumber" name="L3866" href="#L3866">3866</a>                 <strong class="jxr_keyword">return</strong> millisDeltaLong &gt;= 1000;
<a class="jxr_linenumber" name="L3867" href="#L3867">3867</a>             }
<a class="jxr_linenumber" name="L3868" href="#L3868">3868</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L3869" href="#L3869">3869</a>         }
<a class="jxr_linenumber" name="L3870" href="#L3870">3870</a> 
<a class="jxr_linenumber" name="L3871" href="#L3871">3871</a>         <strong class="jxr_keyword">boolean</strong> secondaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper) {
<a class="jxr_linenumber" name="L3872" href="#L3872">3872</a>             <em class="jxr_comment">//secondary is not used</em>
<a class="jxr_linenumber" name="L3873" href="#L3873">3873</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L3874" href="#L3874">3874</a>         }
<a class="jxr_linenumber" name="L3875" href="#L3875">3875</a> 
<a class="jxr_linenumber" name="L3876" href="#L3876">3876</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> initializeLists() {
<a class="jxr_linenumber" name="L3877" href="#L3877">3877</a>             secondaryList.clear();
<a class="jxr_linenumber" name="L3878" href="#L3878">3878</a>             primaryList.clear();
<a class="jxr_linenumber" name="L3879" href="#L3879">3879</a> 
<a class="jxr_linenumber" name="L3880" href="#L3880">3880</a>             <strong class="jxr_keyword">int</strong> i=0;
<a class="jxr_linenumber" name="L3881" href="#L3881">3881</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = tableModel.getFilteredEvents().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3882" href="#L3882">3882</a>                 <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = (LoggingEventWrapper) iter.next();
<a class="jxr_linenumber" name="L3883" href="#L3883">3883</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a>(i, loggingEventWrapper);
<a class="jxr_linenumber" name="L3884" href="#L3884">3884</a>                 i++;
<a class="jxr_linenumber" name="L3885" href="#L3885">3885</a>                 <em class="jxr_comment">//only add if there is a color defined</em>
<a class="jxr_linenumber" name="L3886" href="#L3886">3886</a>                 <strong class="jxr_keyword">if</strong> (primaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L3887" href="#L3887">3887</a>                     primaryList.add(wrapper);
<a class="jxr_linenumber" name="L3888" href="#L3888">3888</a>                 }
<a class="jxr_linenumber" name="L3889" href="#L3889">3889</a>             }
<a class="jxr_linenumber" name="L3890" href="#L3890">3890</a>             revalidate();
<a class="jxr_linenumber" name="L3891" href="#L3891">3891</a>             repaint();
<a class="jxr_linenumber" name="L3892" href="#L3892">3892</a>         }
<a class="jxr_linenumber" name="L3893" href="#L3893">3893</a> 
<a class="jxr_linenumber" name="L3894" href="#L3894">3894</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> paintComponent(Graphics g) {
<a class="jxr_linenumber" name="L3895" href="#L3895">3895</a>             <strong class="jxr_keyword">super</strong>.paintComponent(g);
<a class="jxr_linenumber" name="L3896" href="#L3896">3896</a> 
<a class="jxr_linenumber" name="L3897" href="#L3897">3897</a>             <strong class="jxr_keyword">int</strong> rowCount = table.getRowCount();
<a class="jxr_linenumber" name="L3898" href="#L3898">3898</a>             <strong class="jxr_keyword">if</strong> (rowCount == 0) {
<a class="jxr_linenumber" name="L3899" href="#L3899">3899</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L3900" href="#L3900">3900</a>             }
<a class="jxr_linenumber" name="L3901" href="#L3901">3901</a>             <em class="jxr_comment">//use event pane height as reference height - max component height will be extended by event height if</em>
<a class="jxr_linenumber" name="L3902" href="#L3902">3902</a>             <em class="jxr_comment">// last row is rendered, so subtract here</em>
<a class="jxr_linenumber" name="L3903" href="#L3903">3903</a>             <strong class="jxr_keyword">int</strong> height = eventsPane.getHeight();
<a class="jxr_linenumber" name="L3904" href="#L3904">3904</a>             <strong class="jxr_keyword">int</strong> maxHeight = Math.min(maxEventHeight, (height / rowCount));
<a class="jxr_linenumber" name="L3905" href="#L3905">3905</a>             <strong class="jxr_keyword">int</strong> minHeight = Math.max(1, maxHeight);
<a class="jxr_linenumber" name="L3906" href="#L3906">3906</a>             <strong class="jxr_keyword">int</strong> componentHeight = height - minHeight;
<a class="jxr_linenumber" name="L3907" href="#L3907">3907</a>             <strong class="jxr_keyword">int</strong> eventHeight = minHeight;
<a class="jxr_linenumber" name="L3908" href="#L3908">3908</a> 
<a class="jxr_linenumber" name="L3909" href="#L3909">3909</a>             <em class="jxr_comment">//draw all events</em>
<a class="jxr_linenumber" name="L3910" href="#L3910">3910</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3911" href="#L3911">3911</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L3912" href="#L3912">3912</a>                     <strong class="jxr_keyword">if</strong> (primaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L3913" href="#L3913">3913</a>                         <strong class="jxr_keyword">float</strong> ratio = (wrapper.rowNum / (<strong class="jxr_keyword">float</strong>)rowCount);
<a class="jxr_linenumber" name="L3914" href="#L3914">3914</a>         <em class="jxr_comment">//                System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);</em>
<a class="jxr_linenumber" name="L3915" href="#L3915">3915</a>                         <strong class="jxr_keyword">int</strong> verticalLocation = (<strong class="jxr_keyword">int</strong>) (componentHeight * ratio);
<a class="jxr_linenumber" name="L3916" href="#L3916">3916</a> 
<a class="jxr_linenumber" name="L3917" href="#L3917">3917</a>                         <strong class="jxr_keyword">int</strong> startX = 1;
<a class="jxr_linenumber" name="L3918" href="#L3918">3918</a>                         <strong class="jxr_keyword">int</strong> width = getWidth() - (startX * 2);
<a class="jxr_linenumber" name="L3919" href="#L3919">3919</a>                         <em class="jxr_comment">//max out at 50, min 2...</em>
<a class="jxr_linenumber" name="L3920" href="#L3920">3920</a>                         String millisDelta = wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE);
<a class="jxr_linenumber" name="L3921" href="#L3921">3921</a>                         <strong class="jxr_keyword">long</strong> millisDeltaLong = Long.parseLong(millisDelta);
<a class="jxr_linenumber" name="L3922" href="#L3922">3922</a>                         <strong class="jxr_keyword">long</strong> delta = Math.min(ChainsawConstants.MILLIS_DELTA_RENDERING_HEIGHT_MAX, Math.max(0, (<strong class="jxr_keyword">long</strong>) (millisDeltaLong * ChainsawConstants.MILLIS_DELTA_RENDERING_FACTOR)));
<a class="jxr_linenumber" name="L3923" href="#L3923">3923</a>                         <strong class="jxr_keyword">float</strong> widthMaxMillisDeltaRenderRatio = ((<strong class="jxr_keyword">float</strong>)width / ChainsawConstants.MILLIS_DELTA_RENDERING_HEIGHT_MAX);
<a class="jxr_linenumber" name="L3924" href="#L3924">3924</a>                         <strong class="jxr_keyword">int</strong> widthToUse = Math.max(2, (<strong class="jxr_keyword">int</strong>)(delta * widthMaxMillisDeltaRenderRatio));
<a class="jxr_linenumber" name="L3925" href="#L3925">3925</a>                         eventHeight = Math.min(maxEventHeight, eventHeight + 3);
<a class="jxr_linenumber" name="L3926" href="#L3926">3926</a> <em class="jxr_comment">//                            eventHeight = maxEventHeight;</em>
<a class="jxr_linenumber" name="L3927" href="#L3927">3927</a>                         drawEvent(applicationPreferenceModel.getDeltaColor(), (verticalLocation - eventHeight + 1), eventHeight, g, startX, widthToUse);
<a class="jxr_linenumber" name="L3928" href="#L3928">3928</a>     <em class="jxr_comment">//                System.out.println("painting error - rownum: " + wrapper.rowNum + ", location: " + verticalLocation + ", height: " + eventHeight + ", component height: " + componentHeight + ", row count: " + rowCount);</em>
<a class="jxr_linenumber" name="L3929" href="#L3929">3929</a>                 }
<a class="jxr_linenumber" name="L3930" href="#L3930">3930</a>             }
<a class="jxr_linenumber" name="L3931" href="#L3931">3931</a>         }
<a class="jxr_linenumber" name="L3932" href="#L3932">3932</a>     }
<a class="jxr_linenumber" name="L3933" href="#L3933">3933</a> 
<a class="jxr_linenumber" name="L3934" href="#L3934">3934</a>   <em class="jxr_comment">//a listener receiving color updates needs to call configureColors on this class</em>
<a class="jxr_linenumber" name="L3935" href="#L3935">3935</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ColorizedEventAndSearchMatchThumbnail</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AbstractEventMatchThumbnail</a> {
<a class="jxr_linenumber" name="L3936" href="#L3936">3936</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ColorizedEventAndSearchMatchThumbnail</a>() {
<a class="jxr_linenumber" name="L3937" href="#L3937">3937</a>             <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L3938" href="#L3938">3938</a>             configureColors();
<a class="jxr_linenumber" name="L3939" href="#L3939">3939</a>         }
<a class="jxr_linenumber" name="L3940" href="#L3940">3940</a> 
<a class="jxr_linenumber" name="L3941" href="#L3941">3941</a>         <strong class="jxr_keyword">boolean</strong> primaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper) {
<a class="jxr_linenumber" name="L3942" href="#L3942">3942</a>             <strong class="jxr_keyword">return</strong> !wrapper.loggingEventWrapper.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND);
<a class="jxr_linenumber" name="L3943" href="#L3943">3943</a>         }
<a class="jxr_linenumber" name="L3944" href="#L3944">3944</a> 
<a class="jxr_linenumber" name="L3945" href="#L3945">3945</a>         <strong class="jxr_keyword">boolean</strong> secondaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper) {
<a class="jxr_linenumber" name="L3946" href="#L3946">3946</a>             <strong class="jxr_keyword">return</strong> wrapper.loggingEventWrapper.isSearchMatch();
<a class="jxr_linenumber" name="L3947" href="#L3947">3947</a>         }
<a class="jxr_linenumber" name="L3948" href="#L3948">3948</a> 
<a class="jxr_linenumber" name="L3949" href="#L3949">3949</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> configureColors() {
<a class="jxr_linenumber" name="L3950" href="#L3950">3950</a>             secondaryList.clear();
<a class="jxr_linenumber" name="L3951" href="#L3951">3951</a>             primaryList.clear();
<a class="jxr_linenumber" name="L3952" href="#L3952">3952</a> 
<a class="jxr_linenumber" name="L3953" href="#L3953">3953</a>             <strong class="jxr_keyword">int</strong> i=0;
<a class="jxr_linenumber" name="L3954" href="#L3954">3954</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = tableModel.getFilteredEvents().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3955" href="#L3955">3955</a>                 <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper = (LoggingEventWrapper) iter.next();
<a class="jxr_linenumber" name="L3956" href="#L3956">3956</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a>(i, loggingEventWrapper);
<a class="jxr_linenumber" name="L3957" href="#L3957">3957</a>                 <strong class="jxr_keyword">if</strong> (secondaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L3958" href="#L3958">3958</a>                     secondaryList.add(wrapper);
<a class="jxr_linenumber" name="L3959" href="#L3959">3959</a>                 }
<a class="jxr_linenumber" name="L3960" href="#L3960">3960</a>                 i++;
<a class="jxr_linenumber" name="L3961" href="#L3961">3961</a>                 <em class="jxr_comment">//only add if there is a color defined</em>
<a class="jxr_linenumber" name="L3962" href="#L3962">3962</a>                 <strong class="jxr_keyword">if</strong> (primaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L3963" href="#L3963">3963</a>                     primaryList.add(wrapper);
<a class="jxr_linenumber" name="L3964" href="#L3964">3964</a>                 }
<a class="jxr_linenumber" name="L3965" href="#L3965">3965</a>             }
<a class="jxr_linenumber" name="L3966" href="#L3966">3966</a>             revalidate();
<a class="jxr_linenumber" name="L3967" href="#L3967">3967</a>             repaint();
<a class="jxr_linenumber" name="L3968" href="#L3968">3968</a>         }
<a class="jxr_linenumber" name="L3969" href="#L3969">3969</a> 
<a class="jxr_linenumber" name="L3970" href="#L3970">3970</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> paintComponent(Graphics g) {
<a class="jxr_linenumber" name="L3971" href="#L3971">3971</a>             <strong class="jxr_keyword">super</strong>.paintComponent(g);
<a class="jxr_linenumber" name="L3972" href="#L3972">3972</a> 
<a class="jxr_linenumber" name="L3973" href="#L3973">3973</a>             <strong class="jxr_keyword">int</strong> rowCount = table.getRowCount();
<a class="jxr_linenumber" name="L3974" href="#L3974">3974</a>             <strong class="jxr_keyword">if</strong> (rowCount == 0) {
<a class="jxr_linenumber" name="L3975" href="#L3975">3975</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L3976" href="#L3976">3976</a>             }
<a class="jxr_linenumber" name="L3977" href="#L3977">3977</a>             <em class="jxr_comment">//use event pane height as reference height - max component height will be extended by event height if</em>
<a class="jxr_linenumber" name="L3978" href="#L3978">3978</a>             <em class="jxr_comment">// last row is rendered, so subtract here</em>
<a class="jxr_linenumber" name="L3979" href="#L3979">3979</a>             <strong class="jxr_keyword">int</strong> height = eventsPane.getHeight();
<a class="jxr_linenumber" name="L3980" href="#L3980">3980</a>             <strong class="jxr_keyword">int</strong> maxHeight = Math.min(maxEventHeight, (height / rowCount));
<a class="jxr_linenumber" name="L3981" href="#L3981">3981</a>             <strong class="jxr_keyword">int</strong> minHeight = Math.max(1, maxHeight);
<a class="jxr_linenumber" name="L3982" href="#L3982">3982</a>             <strong class="jxr_keyword">int</strong> componentHeight = height - minHeight;
<a class="jxr_linenumber" name="L3983" href="#L3983">3983</a>             <strong class="jxr_keyword">int</strong> eventHeight = minHeight;
<a class="jxr_linenumber" name="L3984" href="#L3984">3984</a> 
<a class="jxr_linenumber" name="L3985" href="#L3985">3985</a>             <em class="jxr_comment">//draw all non error/warning/marker events</em>
<a class="jxr_linenumber" name="L3986" href="#L3986">3986</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L3987" href="#L3987">3987</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L3988" href="#L3988">3988</a>                 <strong class="jxr_keyword">if</strong> (!wrapper.loggingEventWrapper.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND)) {
<a class="jxr_linenumber" name="L3989" href="#L3989">3989</a>                     <strong class="jxr_keyword">if</strong> (wrapper.loggingEventWrapper.getLoggingEvent().getLevel().toInt() &lt; Level.WARN.toInt() &amp;&amp; wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE) == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L3990" href="#L3990">3990</a>                         <strong class="jxr_keyword">float</strong> ratio = (wrapper.rowNum / (<strong class="jxr_keyword">float</strong>)rowCount);
<a class="jxr_linenumber" name="L3991" href="#L3991">3991</a>         <em class="jxr_comment">//                System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);</em>
<a class="jxr_linenumber" name="L3992" href="#L3992">3992</a>                         <strong class="jxr_keyword">int</strong> verticalLocation = (<strong class="jxr_keyword">int</strong>) (componentHeight * ratio);
<a class="jxr_linenumber" name="L3993" href="#L3993">3993</a> 
<a class="jxr_linenumber" name="L3994" href="#L3994">3994</a>                         <strong class="jxr_keyword">int</strong> startX = 1;
<a class="jxr_linenumber" name="L3995" href="#L3995">3995</a>                         <strong class="jxr_keyword">int</strong> width = getWidth() - (startX * 2);
<a class="jxr_linenumber" name="L3996" href="#L3996">3996</a> 
<a class="jxr_linenumber" name="L3997" href="#L3997">3997</a>                         drawEvent(wrapper.loggingEventWrapper.getColorRuleBackground(), verticalLocation, eventHeight, g, startX, width);
<a class="jxr_linenumber" name="L3998" href="#L3998">3998</a>         <em class="jxr_comment">//                System.out.println("painting error - rownum: " + wrapper.rowNum + ", location: " + verticalLocation + ", height: " + eventHeight + ", component height: " + componentHeight + ", row count: " + rowCount);</em>
<a class="jxr_linenumber" name="L3999" href="#L3999">3999</a>                     }
<a class="jxr_linenumber" name="L4000" href="#L4000">4000</a>                 }
<a class="jxr_linenumber" name="L4001" href="#L4001">4001</a>             }
<a class="jxr_linenumber" name="L4002" href="#L4002">4002</a> 
<a class="jxr_linenumber" name="L4003" href="#L4003">4003</a>             <em class="jxr_comment">//draw warnings, error, fatal &amp; markers last (full width)</em>
<a class="jxr_linenumber" name="L4004" href="#L4004">4004</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4005" href="#L4005">4005</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4006" href="#L4006">4006</a>                 <strong class="jxr_keyword">if</strong> (!wrapper.loggingEventWrapper.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND)) {
<a class="jxr_linenumber" name="L4007" href="#L4007">4007</a>                     <strong class="jxr_keyword">if</strong> (wrapper.loggingEventWrapper.getLoggingEvent().getLevel().toInt() &gt;= Level.WARN.toInt() || wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE) != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4008" href="#L4008">4008</a>                         <strong class="jxr_keyword">float</strong> ratio = (wrapper.rowNum / (<strong class="jxr_keyword">float</strong>)rowCount);
<a class="jxr_linenumber" name="L4009" href="#L4009">4009</a>         <em class="jxr_comment">//                System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);</em>
<a class="jxr_linenumber" name="L4010" href="#L4010">4010</a>                         <strong class="jxr_keyword">int</strong> verticalLocation = (<strong class="jxr_keyword">int</strong>) (componentHeight * ratio);
<a class="jxr_linenumber" name="L4011" href="#L4011">4011</a> 
<a class="jxr_linenumber" name="L4012" href="#L4012">4012</a>                         <strong class="jxr_keyword">int</strong> startX = 1;
<a class="jxr_linenumber" name="L4013" href="#L4013">4013</a>                         <strong class="jxr_keyword">int</strong> width = getWidth() - (startX * 2);
<a class="jxr_linenumber" name="L4014" href="#L4014">4014</a>                         <em class="jxr_comment">//narrow the color a bit if level is less than warn</em>
<a class="jxr_linenumber" name="L4015" href="#L4015">4015</a>                             <em class="jxr_comment">//make warnings, errors a little taller</em>
<a class="jxr_linenumber" name="L4016" href="#L4016">4016</a> 
<a class="jxr_linenumber" name="L4017" href="#L4017">4017</a>                         eventHeight = Math.min(maxEventHeight, eventHeight + 3);
<a class="jxr_linenumber" name="L4018" href="#L4018">4018</a> <em class="jxr_comment">//                            eventHeight = maxEventHeight;</em>
<a class="jxr_linenumber" name="L4019" href="#L4019">4019</a> 
<a class="jxr_linenumber" name="L4020" href="#L4020">4020</a>                         drawEvent(wrapper.loggingEventWrapper.getColorRuleBackground(), (verticalLocation - eventHeight + 1), eventHeight, g, startX, width);
<a class="jxr_linenumber" name="L4021" href="#L4021">4021</a>     <em class="jxr_comment">//                System.out.println("painting error - rownum: " + wrapper.rowNum + ", location: " + verticalLocation + ", height: " + eventHeight + ", component height: " + componentHeight + ", row count: " + rowCount);</em>
<a class="jxr_linenumber" name="L4022" href="#L4022">4022</a>                     }
<a class="jxr_linenumber" name="L4023" href="#L4023">4023</a>                 }
<a class="jxr_linenumber" name="L4024" href="#L4024">4024</a>             }
<a class="jxr_linenumber" name="L4025" href="#L4025">4025</a> 
<a class="jxr_linenumber" name="L4026" href="#L4026">4026</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = secondaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4027" href="#L4027">4027</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4028" href="#L4028">4028</a>                 <strong class="jxr_keyword">float</strong> ratio = (wrapper.rowNum / (<strong class="jxr_keyword">float</strong>)rowCount);
<a class="jxr_linenumber" name="L4029" href="#L4029">4029</a> <em class="jxr_comment">//                System.out.println("warning - ratio: " + ratio + ", component height: " + componentHeight);</em>
<a class="jxr_linenumber" name="L4030" href="#L4030">4030</a>                 <strong class="jxr_keyword">int</strong> verticalLocation = (<strong class="jxr_keyword">int</strong>) (componentHeight * ratio);
<a class="jxr_linenumber" name="L4031" href="#L4031">4031</a> 
<a class="jxr_linenumber" name="L4032" href="#L4032">4032</a>                 <strong class="jxr_keyword">int</strong> startX = 1;
<a class="jxr_linenumber" name="L4033" href="#L4033">4033</a>                 <strong class="jxr_keyword">int</strong> width = getWidth() - (startX * 2);
<a class="jxr_linenumber" name="L4034" href="#L4034">4034</a>                 width = (width / 2);
<a class="jxr_linenumber" name="L4035" href="#L4035">4035</a> 
<a class="jxr_linenumber" name="L4036" href="#L4036">4036</a>                 <em class="jxr_comment">//use black for search indicator in the 'gutter'</em>
<a class="jxr_linenumber" name="L4037" href="#L4037">4037</a>                 drawEvent(Color.BLACK, verticalLocation, eventHeight, g, startX, width);
<a class="jxr_linenumber" name="L4038" href="#L4038">4038</a> <em class="jxr_comment">//                System.out.println("painting warning - rownum: " + wrapper.rowNum + ", location: " + verticalLocation + ", height: " + eventHeight + ", component height: " + componentHeight + ", row count: " + rowCount);</em>
<a class="jxr_linenumber" name="L4039" href="#L4039">4039</a>             }
<a class="jxr_linenumber" name="L4040" href="#L4040">4040</a>         }
<a class="jxr_linenumber" name="L4041" href="#L4041">4041</a>     }
<a class="jxr_linenumber" name="L4042" href="#L4042">4042</a> 
<a class="jxr_linenumber" name="L4043" href="#L4043">4043</a>     <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AbstractEventMatchThumbnail</a> <strong class="jxr_keyword">extends</strong> JPanel {
<a class="jxr_linenumber" name="L4044" href="#L4044">4044</a>         <strong class="jxr_keyword">protected</strong> List primaryList = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L4045" href="#L4045">4045</a>         <strong class="jxr_keyword">protected</strong> List secondaryList = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L4046" href="#L4046">4046</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> maxEventHeight = 6;
<a class="jxr_linenumber" name="L4047" href="#L4047">4047</a> 
<a class="jxr_linenumber" name="L4048" href="#L4048">4048</a>         <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AbstractEventMatchThumbnail</a>() {
<a class="jxr_linenumber" name="L4049" href="#L4049">4049</a>             <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L4050" href="#L4050">4050</a>             addMouseMotionListener(<strong class="jxr_keyword">new</strong> MouseMotionAdapter() {
<a class="jxr_linenumber" name="L4051" href="#L4051">4051</a>               <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseMoved(MouseEvent e) {
<a class="jxr_linenumber" name="L4052" href="#L4052">4052</a>                 <strong class="jxr_keyword">if</strong> (preferenceModel.isThumbnailBarToolTips()) {
<a class="jxr_linenumber" name="L4053" href="#L4053">4053</a>                     <strong class="jxr_keyword">int</strong> yPosition = e.getPoint().y;
<a class="jxr_linenumber" name="L4054" href="#L4054">4054</a>                     <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> event = getEventWrapperAtPosition(yPosition);
<a class="jxr_linenumber" name="L4055" href="#L4055">4055</a>                     <strong class="jxr_keyword">if</strong> (event != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4056" href="#L4056">4056</a>                         setToolTipText(getToolTipTextForEvent(event.loggingEventWrapper));
<a class="jxr_linenumber" name="L4057" href="#L4057">4057</a>                     }
<a class="jxr_linenumber" name="L4058" href="#L4058">4058</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L4059" href="#L4059">4059</a>                     setToolTipText(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L4060" href="#L4060">4060</a>                 }
<a class="jxr_linenumber" name="L4061" href="#L4061">4061</a>               }
<a class="jxr_linenumber" name="L4062" href="#L4062">4062</a>             });
<a class="jxr_linenumber" name="L4063" href="#L4063">4063</a> 
<a class="jxr_linenumber" name="L4064" href="#L4064">4064</a>             addMouseListener(<strong class="jxr_keyword">new</strong> MouseAdapter(){
<a class="jxr_linenumber" name="L4065" href="#L4065">4065</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseClicked(MouseEvent e)
<a class="jxr_linenumber" name="L4066" href="#L4066">4066</a>                 {
<a class="jxr_linenumber" name="L4067" href="#L4067">4067</a>                     <strong class="jxr_keyword">int</strong> yPosition = e.getPoint().y;
<a class="jxr_linenumber" name="L4068" href="#L4068">4068</a>                     <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> event = getEventWrapperAtPosition(yPosition);
<a class="jxr_linenumber" name="L4069" href="#L4069">4069</a> <em class="jxr_comment">//                    System.out.println("rowToSelect: " + rowToSelect + ", closestRow: " + event.loggingEvent.getProperty("log4jid"));</em>
<a class="jxr_linenumber" name="L4070" href="#L4070">4070</a>                     <strong class="jxr_keyword">if</strong> (event != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4071" href="#L4071">4071</a>                         <strong class="jxr_keyword">int</strong> id = Integer.parseInt(event.loggingEventWrapper.getLoggingEvent().getProperty(<span class="jxr_string">"log4jid"</span>));
<a class="jxr_linenumber" name="L4072" href="#L4072">4072</a>                         setSelectedEvent(id);
<a class="jxr_linenumber" name="L4073" href="#L4073">4073</a>                     }
<a class="jxr_linenumber" name="L4074" href="#L4074">4074</a>                 }
<a class="jxr_linenumber" name="L4075" href="#L4075">4075</a>             });
<a class="jxr_linenumber" name="L4076" href="#L4076">4076</a> 
<a class="jxr_linenumber" name="L4077" href="#L4077">4077</a>             tableModel.addTableModelListener(<strong class="jxr_keyword">new</strong> TableModelListener(){
<a class="jxr_linenumber" name="L4078" href="#L4078">4078</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tableChanged(TableModelEvent e) {
<a class="jxr_linenumber" name="L4079" href="#L4079">4079</a>                     <strong class="jxr_keyword">int</strong> firstRow = e.getFirstRow();
<a class="jxr_linenumber" name="L4080" href="#L4080">4080</a>                     <em class="jxr_comment">//lastRow may be Integer.MAX_VALUE..if so, set lastRow to rowcount - 1 (so rowcount may be negative here, which will bypass for loops below)</em>
<a class="jxr_linenumber" name="L4081" href="#L4081">4081</a>                     <strong class="jxr_keyword">int</strong> lastRow = Math.min(e.getLastRow(), table.getRowCount() - 1);
<a class="jxr_linenumber" name="L4082" href="#L4082">4082</a>                     <em class="jxr_comment">//clear everything if we got an event w/-1 for first or last row</em>
<a class="jxr_linenumber" name="L4083" href="#L4083">4083</a>                     <strong class="jxr_keyword">if</strong> (firstRow &lt; 0 || lastRow &lt; 0) {
<a class="jxr_linenumber" name="L4084" href="#L4084">4084</a>                         primaryList.clear();
<a class="jxr_linenumber" name="L4085" href="#L4085">4085</a>                         secondaryList.clear();
<a class="jxr_linenumber" name="L4086" href="#L4086">4086</a>                     }
<a class="jxr_linenumber" name="L4087" href="#L4087">4087</a> 
<a class="jxr_linenumber" name="L4088" href="#L4088">4088</a> <em class="jxr_comment">//                    System.out.println("lastRow: " + lastRow + ", first row: " + firstRow + ", original last row: " + e.getLastRow() + ", type: " + e.getType());</em>
<a class="jxr_linenumber" name="L4089" href="#L4089">4089</a> 
<a class="jxr_linenumber" name="L4090" href="#L4090">4090</a>                     List displayedEvents = tableModel.getFilteredEvents();
<a class="jxr_linenumber" name="L4091" href="#L4091">4091</a>                     <strong class="jxr_keyword">if</strong> (e.getType() == TableModelEvent.INSERT) {
<a class="jxr_linenumber" name="L4092" href="#L4092">4092</a> <em class="jxr_comment">//                        System.out.println("insert - current warnings: " + warnings.size() + ", errors: " + errors.size() + ", first row: " + firstRow + ", last row: " + lastRow);</em>
<a class="jxr_linenumber" name="L4093" href="#L4093">4093</a>                         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=firstRow;i&lt;lastRow;i++) {
<a class="jxr_linenumber" name="L4094" href="#L4094">4094</a>                             <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> event = (LoggingEventWrapper)displayedEvents.get(i);
<a class="jxr_linenumber" name="L4095" href="#L4095">4095</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a>(i, event);
<a class="jxr_linenumber" name="L4096" href="#L4096">4096</a>                             <strong class="jxr_keyword">if</strong> (secondaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L4097" href="#L4097">4097</a>                                 secondaryList.add(wrapper);
<a class="jxr_linenumber" name="L4098" href="#L4098">4098</a> <em class="jxr_comment">//                                System.out.println("added warning: " + i + " - " + event.getLevel());</em>
<a class="jxr_linenumber" name="L4099" href="#L4099">4099</a>                             }
<a class="jxr_linenumber" name="L4100" href="#L4100">4100</a>                             <strong class="jxr_keyword">if</strong> (primaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L4101" href="#L4101">4101</a>                                 <em class="jxr_comment">//add to this one</em>
<a class="jxr_linenumber" name="L4102" href="#L4102">4102</a>                                 primaryList.add(wrapper);
<a class="jxr_linenumber" name="L4103" href="#L4103">4103</a>                             }
<a class="jxr_linenumber" name="L4104" href="#L4104">4104</a> <em class="jxr_comment">//                                System.out.println("added error: " + i + " - " + event.getLevel());</em>
<a class="jxr_linenumber" name="L4105" href="#L4105">4105</a>                         }
<a class="jxr_linenumber" name="L4106" href="#L4106">4106</a> <em class="jxr_comment">//                        System.out.println("insert- new warnings: " + warnings + ", errors: " + errors);</em>
<a class="jxr_linenumber" name="L4107" href="#L4107">4107</a> 
<a class="jxr_linenumber" name="L4108" href="#L4108">4108</a>                         <em class="jxr_comment">//run evaluation on rows &amp; add to list</em>
<a class="jxr_linenumber" name="L4109" href="#L4109">4109</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e.getType() == TableModelEvent.DELETE) {
<a class="jxr_linenumber" name="L4110" href="#L4110">4110</a>                         <em class="jxr_comment">//find each eventwrapper with an id in the deleted range and remove it...</em>
<a class="jxr_linenumber" name="L4111" href="#L4111">4111</a> <em class="jxr_comment">//                        System.out.println("delete- current warnings: " + warnings.size() + ", errors: " + errors.size() + ", first row: " + firstRow + ", last row: " + lastRow + ", displayed event count: " + displayedEvents.size() );</em>
<a class="jxr_linenumber" name="L4112" href="#L4112">4112</a>                         <strong class="jxr_keyword">for</strong> (Iterator iter = secondaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4113" href="#L4113">4113</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4114" href="#L4114">4114</a>                             <strong class="jxr_keyword">if</strong> ((wrapper.rowNum &gt;= firstRow) &amp;&amp; (wrapper.rowNum &lt;= lastRow)) {
<a class="jxr_linenumber" name="L4115" href="#L4115">4115</a> <em class="jxr_comment">//                                System.out.println("deleting find: " + wrapper);</em>
<a class="jxr_linenumber" name="L4116" href="#L4116">4116</a>                                 iter.remove();
<a class="jxr_linenumber" name="L4117" href="#L4117">4117</a>                             }
<a class="jxr_linenumber" name="L4118" href="#L4118">4118</a>                         }
<a class="jxr_linenumber" name="L4119" href="#L4119">4119</a>                         <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4120" href="#L4120">4120</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4121" href="#L4121">4121</a>                             <strong class="jxr_keyword">if</strong> ((wrapper.rowNum &gt;= firstRow) &amp;&amp; (wrapper.rowNum &lt;= lastRow)) {
<a class="jxr_linenumber" name="L4122" href="#L4122">4122</a> <em class="jxr_comment">//                                System.out.println("deleting error: " + wrapper);</em>
<a class="jxr_linenumber" name="L4123" href="#L4123">4123</a>                                 iter.remove();
<a class="jxr_linenumber" name="L4124" href="#L4124">4124</a>                             }
<a class="jxr_linenumber" name="L4125" href="#L4125">4125</a>                         }
<a class="jxr_linenumber" name="L4126" href="#L4126">4126</a> <em class="jxr_comment">//                        System.out.println("delete- new warnings: " + warnings.size() + ", errors: " + errors.size());</em>
<a class="jxr_linenumber" name="L4127" href="#L4127">4127</a> 
<a class="jxr_linenumber" name="L4128" href="#L4128">4128</a>                         <em class="jxr_comment">//remove any matching rows</em>
<a class="jxr_linenumber" name="L4129" href="#L4129">4129</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e.getType() == TableModelEvent.UPDATE) {
<a class="jxr_linenumber" name="L4130" href="#L4130">4130</a> <em class="jxr_comment">//                        System.out.println("update - about to delete old warnings in range: " + firstRow + " to " + lastRow + ", current warnings: " + warnings.size() + ", errors: " + errors.size());</em>
<a class="jxr_linenumber" name="L4131" href="#L4131">4131</a>                         <em class="jxr_comment">//find each eventwrapper with an id in the deleted range and remove it...</em>
<a class="jxr_linenumber" name="L4132" href="#L4132">4132</a>                         <strong class="jxr_keyword">for</strong> (Iterator iter = secondaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4133" href="#L4133">4133</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4134" href="#L4134">4134</a>                             <strong class="jxr_keyword">if</strong> ((wrapper.rowNum &gt;= firstRow) &amp;&amp; (wrapper.rowNum &lt;= lastRow)) {
<a class="jxr_linenumber" name="L4135" href="#L4135">4135</a> <em class="jxr_comment">//                                System.out.println("update - deleting warning: " + wrapper);</em>
<a class="jxr_linenumber" name="L4136" href="#L4136">4136</a>                                 iter.remove();
<a class="jxr_linenumber" name="L4137" href="#L4137">4137</a>                             }
<a class="jxr_linenumber" name="L4138" href="#L4138">4138</a>                         }
<a class="jxr_linenumber" name="L4139" href="#L4139">4139</a>                         <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4140" href="#L4140">4140</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = (ThumbnailLoggingEventWrapper)iter.next();
<a class="jxr_linenumber" name="L4141" href="#L4141">4141</a>                             <strong class="jxr_keyword">if</strong> ((wrapper.rowNum &gt;= firstRow) &amp;&amp; (wrapper.rowNum &lt;= lastRow)) {
<a class="jxr_linenumber" name="L4142" href="#L4142">4142</a> <em class="jxr_comment">//                                System.out.println("update - deleting error: " + wrapper);</em>
<a class="jxr_linenumber" name="L4143" href="#L4143">4143</a>                                 iter.remove();
<a class="jxr_linenumber" name="L4144" href="#L4144">4144</a>                             }
<a class="jxr_linenumber" name="L4145" href="#L4145">4145</a>                         }
<a class="jxr_linenumber" name="L4146" href="#L4146">4146</a> <em class="jxr_comment">//                        System.out.println("update - after deleting old warnings in range: " + firstRow + " to " + lastRow + ", new warnings: " + warnings.size() + ", errors: " + errors.size());</em>
<a class="jxr_linenumber" name="L4147" href="#L4147">4147</a>                         <em class="jxr_comment">//NOTE: for update, we need to do i&lt;= lastRow</em>
<a class="jxr_linenumber" name="L4148" href="#L4148">4148</a>                         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=firstRow;i&lt;=lastRow;i++) {
<a class="jxr_linenumber" name="L4149" href="#L4149">4149</a>                             <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> event = (LoggingEventWrapper)displayedEvents.get(i);
<a class="jxr_linenumber" name="L4150" href="#L4150">4150</a>                             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a>(i, event);
<a class="jxr_linenumber" name="L4151" href="#L4151">4151</a> <em class="jxr_comment">//                                System.out.println("update - adding error: " + i + ", event: " + event.getMessage());</em>
<a class="jxr_linenumber" name="L4152" href="#L4152">4152</a>                             <em class="jxr_comment">//only add event to thumbnail if there is a color</em>
<a class="jxr_linenumber" name="L4153" href="#L4153">4153</a>                             <strong class="jxr_keyword">if</strong> (primaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L4154" href="#L4154">4154</a>                                 <em class="jxr_comment">//!wrapper.loggingEvent.getColorRuleBackground().equals(ChainsawConstants.COLOR_DEFAULT_BACKGROUND)</em>
<a class="jxr_linenumber" name="L4155" href="#L4155">4155</a>                                 primaryList.add(wrapper);
<a class="jxr_linenumber" name="L4156" href="#L4156">4156</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L4157" href="#L4157">4157</a>                                 primaryList.remove(wrapper);
<a class="jxr_linenumber" name="L4158" href="#L4158">4158</a>                             }
<a class="jxr_linenumber" name="L4159" href="#L4159">4159</a> 
<a class="jxr_linenumber" name="L4160" href="#L4160">4160</a>                             <strong class="jxr_keyword">if</strong> (secondaryMatches(wrapper)) {
<a class="jxr_linenumber" name="L4161" href="#L4161">4161</a>                                 <em class="jxr_comment">//event.isSearchMatch())</em>
<a class="jxr_linenumber" name="L4162" href="#L4162">4162</a> <em class="jxr_comment">//                                System.out.println("update - adding marker: " + i + ", event: " + event.getMessage());</em>
<a class="jxr_linenumber" name="L4163" href="#L4163">4163</a>                                 secondaryList.add(wrapper);
<a class="jxr_linenumber" name="L4164" href="#L4164">4164</a>                             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L4165" href="#L4165">4165</a>                                 secondaryList.remove(wrapper);
<a class="jxr_linenumber" name="L4166" href="#L4166">4166</a>                             }
<a class="jxr_linenumber" name="L4167" href="#L4167">4167</a>                         }
<a class="jxr_linenumber" name="L4168" href="#L4168">4168</a> <em class="jxr_comment">//                        System.out.println("update - new warnings: " + warnings.size() + ", errors: " + errors.size());</em>
<a class="jxr_linenumber" name="L4169" href="#L4169">4169</a>                     }
<a class="jxr_linenumber" name="L4170" href="#L4170">4170</a>                     revalidate();
<a class="jxr_linenumber" name="L4171" href="#L4171">4171</a>                     repaint();
<a class="jxr_linenumber" name="L4172" href="#L4172">4172</a>                     <em class="jxr_comment">//run this in an invokeLater block to ensure this action is enqueued to the end of the EDT</em>
<a class="jxr_linenumber" name="L4173" href="#L4173">4173</a>                     EventQueue.invokeLater(<strong class="jxr_keyword">new</strong> Runnable() {
<a class="jxr_linenumber" name="L4174" href="#L4174">4174</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a class="jxr_linenumber" name="L4175" href="#L4175">4175</a>                       <strong class="jxr_keyword">if</strong> (isScrollToBottom()) {
<a class="jxr_linenumber" name="L4176" href="#L4176">4176</a>                           scrollToBottom();
<a class="jxr_linenumber" name="L4177" href="#L4177">4177</a>                       }
<a class="jxr_linenumber" name="L4178" href="#L4178">4178</a>                     }});
<a class="jxr_linenumber" name="L4179" href="#L4179">4179</a>                 }
<a class="jxr_linenumber" name="L4180" href="#L4180">4180</a>             });
<a class="jxr_linenumber" name="L4181" href="#L4181">4181</a>         }
<a class="jxr_linenumber" name="L4182" href="#L4182">4182</a> 
<a class="jxr_linenumber" name="L4183" href="#L4183">4183</a>         <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> primaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper);
<a class="jxr_linenumber" name="L4184" href="#L4184">4184</a> 
<a class="jxr_linenumber" name="L4185" href="#L4185">4185</a>         <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> secondaryMatches(<a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> wrapper);
<a class="jxr_linenumber" name="L4186" href="#L4186">4186</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L4187" href="#L4187">4187</a> <em class="jxr_javadoccomment">         * Get event wrapper - may be null</em>
<a class="jxr_linenumber" name="L4188" href="#L4188">4188</a> <em class="jxr_javadoccomment">         * @param yPosition</em>
<a class="jxr_linenumber" name="L4189" href="#L4189">4189</a> <em class="jxr_javadoccomment">         * @return event wrapper or null</em>
<a class="jxr_linenumber" name="L4190" href="#L4190">4190</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L4191" href="#L4191">4191</a>         <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> getEventWrapperAtPosition(<strong class="jxr_keyword">int</strong> yPosition) {
<a class="jxr_linenumber" name="L4192" href="#L4192">4192</a>             <strong class="jxr_keyword">int</strong> rowCount = table.getRowCount();
<a class="jxr_linenumber" name="L4193" href="#L4193">4193</a> 
<a class="jxr_linenumber" name="L4194" href="#L4194">4194</a>             <em class="jxr_comment">//'effective' height of this component is scrollpane height</em>
<a class="jxr_linenumber" name="L4195" href="#L4195">4195</a>             <strong class="jxr_keyword">int</strong> height = eventsPane.getHeight();
<a class="jxr_linenumber" name="L4196" href="#L4196">4196</a> 
<a class="jxr_linenumber" name="L4197" href="#L4197">4197</a>             yPosition = Math.max(yPosition, 0);
<a class="jxr_linenumber" name="L4198" href="#L4198">4198</a> 
<a class="jxr_linenumber" name="L4199" href="#L4199">4199</a>             <em class="jxr_comment">//don't let clicklocation exceed height</em>
<a class="jxr_linenumber" name="L4200" href="#L4200">4200</a>             <strong class="jxr_keyword">if</strong> (yPosition &gt;= height) {
<a class="jxr_linenumber" name="L4201" href="#L4201">4201</a>                 yPosition = height;
<a class="jxr_linenumber" name="L4202" href="#L4202">4202</a>             }
<a class="jxr_linenumber" name="L4203" href="#L4203">4203</a> 
<a class="jxr_linenumber" name="L4204" href="#L4204">4204</a>     <em class="jxr_comment">//                    System.out.println("clicked y pos: " + e.getPoint().y + ", relative: " + clickLocation);</em>
<a class="jxr_linenumber" name="L4205" href="#L4205">4205</a>             <strong class="jxr_keyword">float</strong> ratio = (<strong class="jxr_keyword">float</strong>) yPosition / height;
<a class="jxr_linenumber" name="L4206" href="#L4206">4206</a>             <strong class="jxr_keyword">int</strong> rowToSelect = Math.round(rowCount * ratio);
<a class="jxr_linenumber" name="L4207" href="#L4207">4207</a>     <em class="jxr_comment">//                    System.out.println("rowCount: " + rowCount + ", height: " + height + ", clickLocation: " + clickLocation + ", ratio: " + ratio + ", rowToSelect: " + rowToSelect);</em>
<a class="jxr_linenumber" name="L4208" href="#L4208">4208</a>             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> event = getClosestRow(rowToSelect);
<a class="jxr_linenumber" name="L4209" href="#L4209">4209</a>             <strong class="jxr_keyword">return</strong> event;
<a class="jxr_linenumber" name="L4210" href="#L4210">4210</a>         }
<a class="jxr_linenumber" name="L4211" href="#L4211">4211</a> 
<a class="jxr_linenumber" name="L4212" href="#L4212">4212</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> getClosestRow(<strong class="jxr_keyword">int</strong> rowToSelect) {
<a class="jxr_linenumber" name="L4213" href="#L4213">4213</a>             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> closestRow = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L4214" href="#L4214">4214</a>             <strong class="jxr_keyword">int</strong> rowDelta = Integer.MAX_VALUE;
<a class="jxr_linenumber" name="L4215" href="#L4215">4215</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = secondaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4216" href="#L4216">4216</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> event = (ThumbnailLoggingEventWrapper) iter.next();
<a class="jxr_linenumber" name="L4217" href="#L4217">4217</a>                 <strong class="jxr_keyword">int</strong> newRowDelta = Math.abs(rowToSelect - event.rowNum);
<a class="jxr_linenumber" name="L4218" href="#L4218">4218</a>                 <strong class="jxr_keyword">if</strong> (newRowDelta &lt; rowDelta) {
<a class="jxr_linenumber" name="L4219" href="#L4219">4219</a>                     closestRow = event;
<a class="jxr_linenumber" name="L4220" href="#L4220">4220</a>                     rowDelta = newRowDelta;
<a class="jxr_linenumber" name="L4221" href="#L4221">4221</a>                 }
<a class="jxr_linenumber" name="L4222" href="#L4222">4222</a>             }
<a class="jxr_linenumber" name="L4223" href="#L4223">4223</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = primaryList.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4224" href="#L4224">4224</a>                 <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> event = (ThumbnailLoggingEventWrapper) iter.next();
<a class="jxr_linenumber" name="L4225" href="#L4225">4225</a>                 <strong class="jxr_keyword">int</strong> newRowDelta = Math.abs(rowToSelect - event.rowNum);
<a class="jxr_linenumber" name="L4226" href="#L4226">4226</a>                 <strong class="jxr_keyword">if</strong> (newRowDelta &lt; rowDelta) {
<a class="jxr_linenumber" name="L4227" href="#L4227">4227</a>                     closestRow = event;
<a class="jxr_linenumber" name="L4228" href="#L4228">4228</a>                     rowDelta = newRowDelta;
<a class="jxr_linenumber" name="L4229" href="#L4229">4229</a>                 }
<a class="jxr_linenumber" name="L4230" href="#L4230">4230</a>             }
<a class="jxr_linenumber" name="L4231" href="#L4231">4231</a>             <strong class="jxr_keyword">return</strong> closestRow;
<a class="jxr_linenumber" name="L4232" href="#L4232">4232</a>         }
<a class="jxr_linenumber" name="L4233" href="#L4233">4233</a> 
<a class="jxr_linenumber" name="L4234" href="#L4234">4234</a>         <strong class="jxr_keyword">public</strong> Point getToolTipLocation(MouseEvent event) {
<a class="jxr_linenumber" name="L4235" href="#L4235">4235</a>             <em class="jxr_comment">//shift tooltip down so the the pointer doesn't cover up events below the current mouse location</em>
<a class="jxr_linenumber" name="L4236" href="#L4236">4236</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Point(event.getX(), event.getY() + 30);
<a class="jxr_linenumber" name="L4237" href="#L4237">4237</a>         }
<a class="jxr_linenumber" name="L4238" href="#L4238">4238</a> 
<a class="jxr_linenumber" name="L4239" href="#L4239">4239</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> drawEvent(Color newColor, <strong class="jxr_keyword">int</strong> verticalLocation, <strong class="jxr_keyword">int</strong> eventHeight, Graphics g, <strong class="jxr_keyword">int</strong> x, <strong class="jxr_keyword">int</strong> width) {
<a class="jxr_linenumber" name="L4240" href="#L4240">4240</a>     <em class="jxr_comment">//            System.out.println("painting: - color: " + newColor + ", verticalLocation: " + verticalLocation + ", eventHeight: " + eventHeight);</em>
<a class="jxr_linenumber" name="L4241" href="#L4241">4241</a>             <em class="jxr_comment">//center drawing at vertical location</em>
<a class="jxr_linenumber" name="L4242" href="#L4242">4242</a>             <strong class="jxr_keyword">int</strong> y = verticalLocation + (eventHeight / 2);
<a class="jxr_linenumber" name="L4243" href="#L4243">4243</a>             Color oldColor = g.getColor();
<a class="jxr_linenumber" name="L4244" href="#L4244">4244</a>             g.setColor(newColor);
<a class="jxr_linenumber" name="L4245" href="#L4245">4245</a>             g.fillRect(x, y, width, eventHeight);
<a class="jxr_linenumber" name="L4246" href="#L4246">4246</a>             <strong class="jxr_keyword">if</strong> (eventHeight &gt;= 3) {
<a class="jxr_linenumber" name="L4247" href="#L4247">4247</a>                 g.setColor(newColor.darker());
<a class="jxr_linenumber" name="L4248" href="#L4248">4248</a>                 g.drawRect(x, y, width, eventHeight);
<a class="jxr_linenumber" name="L4249" href="#L4249">4249</a>             }
<a class="jxr_linenumber" name="L4250" href="#L4250">4250</a>             g.setColor(oldColor);
<a class="jxr_linenumber" name="L4251" href="#L4251">4251</a>         }
<a class="jxr_linenumber" name="L4252" href="#L4252">4252</a>     }
<a class="jxr_linenumber" name="L4253" href="#L4253">4253</a> 
<a class="jxr_linenumber" name="L4254" href="#L4254">4254</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> {
<a class="jxr_linenumber" name="L4255" href="#L4255">4255</a>         <strong class="jxr_keyword">int</strong> rowNum;
<a class="jxr_linenumber" name="L4256" href="#L4256">4256</a>         <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper;
<a class="jxr_linenumber" name="L4257" href="#L4257">4257</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a>(<strong class="jxr_keyword">int</strong> rowNum, <a href="../../../../org/apache/log4j/chainsaw/LoggingEventWrapper.html">LoggingEventWrapper</a> loggingEventWrapper) {
<a class="jxr_linenumber" name="L4258" href="#L4258">4258</a>             <strong class="jxr_keyword">this</strong>.rowNum = rowNum;
<a class="jxr_linenumber" name="L4259" href="#L4259">4259</a>             <strong class="jxr_keyword">this</strong>.loggingEventWrapper = loggingEventWrapper;
<a class="jxr_linenumber" name="L4260" href="#L4260">4260</a>         }
<a class="jxr_linenumber" name="L4261" href="#L4261">4261</a> 
<a class="jxr_linenumber" name="L4262" href="#L4262">4262</a>         <strong class="jxr_keyword">public</strong> String toString() {
<a class="jxr_linenumber" name="L4263" href="#L4263">4263</a>             <strong class="jxr_keyword">return</strong> <span class="jxr_string">"event - rownum: "</span> + rowNum + <span class="jxr_string">", level: "</span> + loggingEventWrapper.getLoggingEvent().getLevel();
<a class="jxr_linenumber" name="L4264" href="#L4264">4264</a>         }
<a class="jxr_linenumber" name="L4265" href="#L4265">4265</a> 
<a class="jxr_linenumber" name="L4266" href="#L4266">4266</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals(Object o) {
<a class="jxr_linenumber" name="L4267" href="#L4267">4267</a>             <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong> == o) {
<a class="jxr_linenumber" name="L4268" href="#L4268">4268</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4269" href="#L4269">4269</a>             }
<a class="jxr_linenumber" name="L4270" href="#L4270">4270</a>             <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong> || getClass() != o.getClass()) {
<a class="jxr_linenumber" name="L4271" href="#L4271">4271</a>                 <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L4272" href="#L4272">4272</a>             }
<a class="jxr_linenumber" name="L4273" href="#L4273">4273</a> 
<a class="jxr_linenumber" name="L4274" href="#L4274">4274</a>             <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ThumbnailLoggingEventWrapper</a> that = (ThumbnailLoggingEventWrapper) o;
<a class="jxr_linenumber" name="L4275" href="#L4275">4275</a> 
<a class="jxr_linenumber" name="L4276" href="#L4276">4276</a>             <strong class="jxr_keyword">if</strong> (loggingEventWrapper != <strong class="jxr_keyword">null</strong> ? !loggingEventWrapper.equals(that.loggingEventWrapper) : that.loggingEventWrapper != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4277" href="#L4277">4277</a>                 <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L4278" href="#L4278">4278</a>             }
<a class="jxr_linenumber" name="L4279" href="#L4279">4279</a> 
<a class="jxr_linenumber" name="L4280" href="#L4280">4280</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4281" href="#L4281">4281</a>         }
<a class="jxr_linenumber" name="L4282" href="#L4282">4282</a> 
<a class="jxr_linenumber" name="L4283" href="#L4283">4283</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode() {
<a class="jxr_linenumber" name="L4284" href="#L4284">4284</a>             <strong class="jxr_keyword">return</strong> loggingEventWrapper != <strong class="jxr_keyword">null</strong> ? loggingEventWrapper.hashCode() : 0;
<a class="jxr_linenumber" name="L4285" href="#L4285">4285</a>         }
<a class="jxr_linenumber" name="L4286" href="#L4286">4286</a>     }
<a class="jxr_linenumber" name="L4287" href="#L4287">4287</a> 
<a class="jxr_linenumber" name="L4288" href="#L4288">4288</a>     <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a> <strong class="jxr_keyword">extends</strong> JComboBox {
<a class="jxr_linenumber" name="L4289" href="#L4289">4289</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> bypassFiltering;
<a class="jxr_linenumber" name="L4290" href="#L4290">4290</a>         <strong class="jxr_keyword">private</strong> List allEntries = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L4291" href="#L4291">4291</a>         <strong class="jxr_keyword">private</strong> List displayedEntries = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L4292" href="#L4292">4292</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBoxModel</a> model = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBoxModel</a>();
<a class="jxr_linenumber" name="L4293" href="#L4293">4293</a>         <em class="jxr_comment">//editor component</em>
<a class="jxr_linenumber" name="L4294" href="#L4294">4294</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> JTextField textField = <strong class="jxr_keyword">new</strong> JTextField();
<a class="jxr_linenumber" name="L4295" href="#L4295">4295</a>         <strong class="jxr_keyword">private</strong> String lastTextToMatch;
<a class="jxr_linenumber" name="L4296" href="#L4296">4296</a> 
<a class="jxr_linenumber" name="L4297" href="#L4297">4297</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBox</a>() {
<a class="jxr_linenumber" name="L4298" href="#L4298">4298</a>             textField.setPreferredSize(getPreferredSize());
<a class="jxr_linenumber" name="L4299" href="#L4299">4299</a>             setModel(model);
<a class="jxr_linenumber" name="L4300" href="#L4300">4300</a>             setEditor(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterEditor</a>());
<a class="jxr_linenumber" name="L4301" href="#L4301">4301</a>             ((JTextField)getEditor().getEditorComponent()).getDocument().addDocumentListener(<strong class="jxr_keyword">new</strong> AutoFilterDocumentListener());
<a class="jxr_linenumber" name="L4302" href="#L4302">4302</a>             setEditable(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L4303" href="#L4303">4303</a>             addPopupMenuListener(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">PopupMenuListenerImpl</a>());
<a class="jxr_linenumber" name="L4304" href="#L4304">4304</a>         }
<a class="jxr_linenumber" name="L4305" href="#L4305">4305</a> 
<a class="jxr_linenumber" name="L4306" href="#L4306">4306</a>         <strong class="jxr_keyword">public</strong> Vector getModelData() {
<a class="jxr_linenumber" name="L4307" href="#L4307">4307</a>             <em class="jxr_comment">//reverse the model order, because it will be un-reversed when we reload it from saved settings</em>
<a class="jxr_linenumber" name="L4308" href="#L4308">4308</a>             Vector vector = <strong class="jxr_keyword">new</strong> Vector();
<a class="jxr_linenumber" name="L4309" href="#L4309">4309</a>             <strong class="jxr_keyword">for</strong> (Iterator iter = allEntries.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4310" href="#L4310">4310</a>                 vector.insertElementAt(iter.next(), 0);
<a class="jxr_linenumber" name="L4311" href="#L4311">4311</a>             }
<a class="jxr_linenumber" name="L4312" href="#L4312">4312</a>             <strong class="jxr_keyword">return</strong> vector;
<a class="jxr_linenumber" name="L4313" href="#L4313">4313</a>         }
<a class="jxr_linenumber" name="L4314" href="#L4314">4314</a> 
<a class="jxr_linenumber" name="L4315" href="#L4315">4315</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> refilter() {
<a class="jxr_linenumber" name="L4316" href="#L4316">4316</a>             <em class="jxr_comment">//only refilter if we're not bypassing filtering AND the text has changed since the last call to refilter</em>
<a class="jxr_linenumber" name="L4317" href="#L4317">4317</a>             String textToMatch = getEditor().getItem().toString();
<a class="jxr_linenumber" name="L4318" href="#L4318">4318</a>             <strong class="jxr_keyword">if</strong> (bypassFiltering || (lastTextToMatch != <strong class="jxr_keyword">null</strong> &amp;&amp; lastTextToMatch.equals(textToMatch))) {
<a class="jxr_linenumber" name="L4319" href="#L4319">4319</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L4320" href="#L4320">4320</a>             }
<a class="jxr_linenumber" name="L4321" href="#L4321">4321</a>             lastTextToMatch = textToMatch;
<a class="jxr_linenumber" name="L4322" href="#L4322">4322</a>             bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4323" href="#L4323">4323</a>                 model.removeAllElements();
<a class="jxr_linenumber" name="L4324" href="#L4324">4324</a>                 List entriesCopy = <strong class="jxr_keyword">new</strong> ArrayList(allEntries);
<a class="jxr_linenumber" name="L4325" href="#L4325">4325</a>                 <strong class="jxr_keyword">for</strong> (Iterator iter = entriesCopy.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L4326" href="#L4326">4326</a>                     String thisEntry = iter.next().toString();
<a class="jxr_linenumber" name="L4327" href="#L4327">4327</a>                     <strong class="jxr_keyword">if</strong> (thisEntry.toLowerCase(Locale.ENGLISH).contains(textToMatch.toLowerCase())) {
<a class="jxr_linenumber" name="L4328" href="#L4328">4328</a>                         model.addElement(thisEntry);
<a class="jxr_linenumber" name="L4329" href="#L4329">4329</a>                     }
<a class="jxr_linenumber" name="L4330" href="#L4330">4330</a>                 }
<a class="jxr_linenumber" name="L4331" href="#L4331">4331</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4332" href="#L4332">4332</a>                 <em class="jxr_comment">//TODO: on no-match, don't filter at all (show the popup?)</em>
<a class="jxr_linenumber" name="L4333" href="#L4333">4333</a>                 <strong class="jxr_keyword">if</strong> (displayedEntries.size() &gt; 0 &amp;&amp; !textToMatch.equals(<span class="jxr_string">""</span>)) {
<a class="jxr_linenumber" name="L4334" href="#L4334">4334</a>                     showPopup();
<a class="jxr_linenumber" name="L4335" href="#L4335">4335</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L4336" href="#L4336">4336</a>                     hidePopup();
<a class="jxr_linenumber" name="L4337" href="#L4337">4337</a>                 }
<a class="jxr_linenumber" name="L4338" href="#L4338">4338</a>         }
<a class="jxr_linenumber" name="L4339" href="#L4339">4339</a> 
<a class="jxr_linenumber" name="L4340" href="#L4340">4340</a>         <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterEditor</a> <strong class="jxr_keyword">implements</strong> ComboBoxEditor {
<a class="jxr_linenumber" name="L4341" href="#L4341">4341</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/Component.html">Component</a> getEditorComponent() {
<a class="jxr_linenumber" name="L4342" href="#L4342">4342</a>                 <strong class="jxr_keyword">return</strong> textField;
<a class="jxr_linenumber" name="L4343" href="#L4343">4343</a>             }
<a class="jxr_linenumber" name="L4344" href="#L4344">4344</a> 
<a class="jxr_linenumber" name="L4345" href="#L4345">4345</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setItem(Object item) {
<a class="jxr_linenumber" name="L4346" href="#L4346">4346</a>                 <strong class="jxr_keyword">if</strong> (bypassFiltering) {
<a class="jxr_linenumber" name="L4347" href="#L4347">4347</a>                     <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L4348" href="#L4348">4348</a>                 }
<a class="jxr_linenumber" name="L4349" href="#L4349">4349</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4350" href="#L4350">4350</a>                 <strong class="jxr_keyword">if</strong> (item == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4351" href="#L4351">4351</a>                     textField.setText(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L4352" href="#L4352">4352</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L4353" href="#L4353">4353</a>                     textField.setText(item.toString());
<a class="jxr_linenumber" name="L4354" href="#L4354">4354</a>                 }
<a class="jxr_linenumber" name="L4355" href="#L4355">4355</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4356" href="#L4356">4356</a>             }
<a class="jxr_linenumber" name="L4357" href="#L4357">4357</a> 
<a class="jxr_linenumber" name="L4358" href="#L4358">4358</a>             <strong class="jxr_keyword">public</strong> Object getItem() {
<a class="jxr_linenumber" name="L4359" href="#L4359">4359</a>                 <strong class="jxr_keyword">return</strong> textField.getText();
<a class="jxr_linenumber" name="L4360" href="#L4360">4360</a>             }
<a class="jxr_linenumber" name="L4361" href="#L4361">4361</a> 
<a class="jxr_linenumber" name="L4362" href="#L4362">4362</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> selectAll() {
<a class="jxr_linenumber" name="L4363" href="#L4363">4363</a>                 textField.selectAll();
<a class="jxr_linenumber" name="L4364" href="#L4364">4364</a>             }
<a class="jxr_linenumber" name="L4365" href="#L4365">4365</a> 
<a class="jxr_linenumber" name="L4366" href="#L4366">4366</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addActionListener(ActionListener listener) {
<a class="jxr_linenumber" name="L4367" href="#L4367">4367</a>                 textField.addActionListener(listener);
<a class="jxr_linenumber" name="L4368" href="#L4368">4368</a>             }
<a class="jxr_linenumber" name="L4369" href="#L4369">4369</a> 
<a class="jxr_linenumber" name="L4370" href="#L4370">4370</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeActionListener(ActionListener listener) {
<a class="jxr_linenumber" name="L4371" href="#L4371">4371</a>                 textField.removeActionListener(listener);
<a class="jxr_linenumber" name="L4372" href="#L4372">4372</a>             }
<a class="jxr_linenumber" name="L4373" href="#L4373">4373</a>         }
<a class="jxr_linenumber" name="L4374" href="#L4374">4374</a> 
<a class="jxr_linenumber" name="L4375" href="#L4375">4375</a>         <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterDocumentListener</a> <strong class="jxr_keyword">implements</strong> DocumentListener {
<a class="jxr_linenumber" name="L4376" href="#L4376">4376</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> insertUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L4377" href="#L4377">4377</a>                 refilter();
<a class="jxr_linenumber" name="L4378" href="#L4378">4378</a>             }
<a class="jxr_linenumber" name="L4379" href="#L4379">4379</a> 
<a class="jxr_linenumber" name="L4380" href="#L4380">4380</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L4381" href="#L4381">4381</a>                 refilter();
<a class="jxr_linenumber" name="L4382" href="#L4382">4382</a>             }
<a class="jxr_linenumber" name="L4383" href="#L4383">4383</a> 
<a class="jxr_linenumber" name="L4384" href="#L4384">4384</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> changedUpdate(DocumentEvent e) {
<a class="jxr_linenumber" name="L4385" href="#L4385">4385</a>                 refilter();
<a class="jxr_linenumber" name="L4386" href="#L4386">4386</a>             }
<a class="jxr_linenumber" name="L4387" href="#L4387">4387</a>         }
<a class="jxr_linenumber" name="L4388" href="#L4388">4388</a> 
<a class="jxr_linenumber" name="L4389" href="#L4389">4389</a>         <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">AutoFilterComboBoxModel</a> <strong class="jxr_keyword">extends</strong> AbstractListModel <strong class="jxr_keyword">implements</strong> MutableComboBoxModel {
<a class="jxr_linenumber" name="L4390" href="#L4390">4390</a>             <strong class="jxr_keyword">private</strong> Object selectedItem;
<a class="jxr_linenumber" name="L4391" href="#L4391">4391</a> 
<a class="jxr_linenumber" name="L4392" href="#L4392">4392</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addElement(Object obj) {
<a class="jxr_linenumber" name="L4393" href="#L4393">4393</a>                 <em class="jxr_comment">//assuming add is to displayed list...add to full list (only if not a dup)</em>
<a class="jxr_linenumber" name="L4394" href="#L4394">4394</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4395" href="#L4395">4395</a> 
<a class="jxr_linenumber" name="L4396" href="#L4396">4396</a>               <strong class="jxr_keyword">boolean</strong> entryExists = !allEntries.contains(obj);
<a class="jxr_linenumber" name="L4397" href="#L4397">4397</a>               <strong class="jxr_keyword">if</strong> (entryExists) {
<a class="jxr_linenumber" name="L4398" href="#L4398">4398</a>                   allEntries.add(obj);
<a class="jxr_linenumber" name="L4399" href="#L4399">4399</a>                 }
<a class="jxr_linenumber" name="L4400" href="#L4400">4400</a>                 displayedEntries.add(obj);
<a class="jxr_linenumber" name="L4401" href="#L4401">4401</a>                 <strong class="jxr_keyword">if</strong> (!entryExists) {
<a class="jxr_linenumber" name="L4402" href="#L4402">4402</a>                   fireIntervalAdded(<strong class="jxr_keyword">this</strong>, displayedEntries.size() - 1, displayedEntries.size());
<a class="jxr_linenumber" name="L4403" href="#L4403">4403</a>                 }
<a class="jxr_linenumber" name="L4404" href="#L4404">4404</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4405" href="#L4405">4405</a>             }
<a class="jxr_linenumber" name="L4406" href="#L4406">4406</a> 
<a class="jxr_linenumber" name="L4407" href="#L4407">4407</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeElement(Object obj) {
<a class="jxr_linenumber" name="L4408" href="#L4408">4408</a>                 <strong class="jxr_keyword">int</strong> index = displayedEntries.indexOf(obj);
<a class="jxr_linenumber" name="L4409" href="#L4409">4409</a>                 <strong class="jxr_keyword">if</strong> (index != -1) {
<a class="jxr_linenumber" name="L4410" href="#L4410">4410</a>                     removeElementAt(index);
<a class="jxr_linenumber" name="L4411" href="#L4411">4411</a>                 }
<a class="jxr_linenumber" name="L4412" href="#L4412">4412</a>             }
<a class="jxr_linenumber" name="L4413" href="#L4413">4413</a> 
<a class="jxr_linenumber" name="L4414" href="#L4414">4414</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> insertElementAt(Object obj, <strong class="jxr_keyword">int</strong> index) {
<a class="jxr_linenumber" name="L4415" href="#L4415">4415</a>                 <em class="jxr_comment">//assuming add is to displayed list...add to full list (only if not a dup)</em>
<a class="jxr_linenumber" name="L4416" href="#L4416">4416</a>                 <strong class="jxr_keyword">if</strong> (allEntries.contains(obj)) {
<a class="jxr_linenumber" name="L4417" href="#L4417">4417</a>                     <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L4418" href="#L4418">4418</a>                 }
<a class="jxr_linenumber" name="L4419" href="#L4419">4419</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4420" href="#L4420">4420</a>                 displayedEntries.add(index, obj);
<a class="jxr_linenumber" name="L4421" href="#L4421">4421</a>                 allEntries.add(index, obj);
<a class="jxr_linenumber" name="L4422" href="#L4422">4422</a>                 fireIntervalAdded(<strong class="jxr_keyword">this</strong>, index, index);
<a class="jxr_linenumber" name="L4423" href="#L4423">4423</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4424" href="#L4424">4424</a>                 refilter();
<a class="jxr_linenumber" name="L4425" href="#L4425">4425</a>             }
<a class="jxr_linenumber" name="L4426" href="#L4426">4426</a> 
<a class="jxr_linenumber" name="L4427" href="#L4427">4427</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeElementAt(<strong class="jxr_keyword">int</strong> index) {
<a class="jxr_linenumber" name="L4428" href="#L4428">4428</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4429" href="#L4429">4429</a>                 <em class="jxr_comment">//assuming removal is from displayed list..remove from full list</em>
<a class="jxr_linenumber" name="L4430" href="#L4430">4430</a>                 Object obj = displayedEntries.get(index);
<a class="jxr_linenumber" name="L4431" href="#L4431">4431</a>                 allEntries.remove(obj);
<a class="jxr_linenumber" name="L4432" href="#L4432">4432</a>                 displayedEntries.remove(obj);
<a class="jxr_linenumber" name="L4433" href="#L4433">4433</a>                 fireIntervalRemoved(<strong class="jxr_keyword">this</strong>, index, index);
<a class="jxr_linenumber" name="L4434" href="#L4434">4434</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4435" href="#L4435">4435</a>                 refilter();
<a class="jxr_linenumber" name="L4436" href="#L4436">4436</a>             }
<a class="jxr_linenumber" name="L4437" href="#L4437">4437</a> 
<a class="jxr_linenumber" name="L4438" href="#L4438">4438</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setSelectedItem(Object item) {
<a class="jxr_linenumber" name="L4439" href="#L4439">4439</a>                 <strong class="jxr_keyword">if</strong> ((selectedItem != <strong class="jxr_keyword">null</strong> &amp;&amp; !selectedItem.equals(item)) || selectedItem == <strong class="jxr_keyword">null</strong> &amp;&amp; item != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L4440" href="#L4440">4440</a>                     selectedItem = item;
<a class="jxr_linenumber" name="L4441" href="#L4441">4441</a>                     fireContentsChanged(<strong class="jxr_keyword">this</strong>, -1, -1);
<a class="jxr_linenumber" name="L4442" href="#L4442">4442</a>                 }
<a class="jxr_linenumber" name="L4443" href="#L4443">4443</a>             }
<a class="jxr_linenumber" name="L4444" href="#L4444">4444</a> 
<a class="jxr_linenumber" name="L4445" href="#L4445">4445</a>             <strong class="jxr_keyword">public</strong> Object getSelectedItem() {
<a class="jxr_linenumber" name="L4446" href="#L4446">4446</a>                 <strong class="jxr_keyword">return</strong> selectedItem;
<a class="jxr_linenumber" name="L4447" href="#L4447">4447</a>             }
<a class="jxr_linenumber" name="L4448" href="#L4448">4448</a> 
<a class="jxr_linenumber" name="L4449" href="#L4449">4449</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getSize() {
<a class="jxr_linenumber" name="L4450" href="#L4450">4450</a>                 <strong class="jxr_keyword">return</strong> displayedEntries.size();
<a class="jxr_linenumber" name="L4451" href="#L4451">4451</a>             }
<a class="jxr_linenumber" name="L4452" href="#L4452">4452</a> 
<a class="jxr_linenumber" name="L4453" href="#L4453">4453</a>             <strong class="jxr_keyword">public</strong> Object getElementAt(<strong class="jxr_keyword">int</strong> index) {
<a class="jxr_linenumber" name="L4454" href="#L4454">4454</a>                 <strong class="jxr_keyword">if</strong> (index &gt;= 0 &amp;&amp; index &lt; displayedEntries.size()) {
<a class="jxr_linenumber" name="L4455" href="#L4455">4455</a>                     <strong class="jxr_keyword">return</strong> displayedEntries.get(index);
<a class="jxr_linenumber" name="L4456" href="#L4456">4456</a>                 }
<a class="jxr_linenumber" name="L4457" href="#L4457">4457</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L4458" href="#L4458">4458</a>             }
<a class="jxr_linenumber" name="L4459" href="#L4459">4459</a> 
<a class="jxr_linenumber" name="L4460" href="#L4460">4460</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeAllElements() {
<a class="jxr_linenumber" name="L4461" href="#L4461">4461</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4462" href="#L4462">4462</a>                 <strong class="jxr_keyword">int</strong> displayedEntrySize = displayedEntries.size();
<a class="jxr_linenumber" name="L4463" href="#L4463">4463</a>                 <strong class="jxr_keyword">if</strong> (displayedEntrySize &gt; 0) {
<a class="jxr_linenumber" name="L4464" href="#L4464">4464</a>                   displayedEntries.clear();
<a class="jxr_linenumber" name="L4465" href="#L4465">4465</a>                   <em class="jxr_comment">//if firecontentschaned is used, the combobox resizes..use fireintervalremoved instead, which doesn't do that..</em>
<a class="jxr_linenumber" name="L4466" href="#L4466">4466</a>                   fireIntervalRemoved(<strong class="jxr_keyword">this</strong>, 0, displayedEntrySize - 1);
<a class="jxr_linenumber" name="L4467" href="#L4467">4467</a>                 }
<a class="jxr_linenumber" name="L4468" href="#L4468">4468</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4469" href="#L4469">4469</a>             }
<a class="jxr_linenumber" name="L4470" href="#L4470">4470</a> 
<a class="jxr_linenumber" name="L4471" href="#L4471">4471</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> showAllElements() {
<a class="jxr_linenumber" name="L4472" href="#L4472">4472</a>               <em class="jxr_comment">//first remove whatever is there and fire necessary events then add events</em>
<a class="jxr_linenumber" name="L4473" href="#L4473">4473</a>                 removeAllElements();
<a class="jxr_linenumber" name="L4474" href="#L4474">4474</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4475" href="#L4475">4475</a>                 displayedEntries.addAll(allEntries);
<a class="jxr_linenumber" name="L4476" href="#L4476">4476</a>                 <strong class="jxr_keyword">if</strong> (displayedEntries.size() &gt; 0) {
<a class="jxr_linenumber" name="L4477" href="#L4477">4477</a>                   fireIntervalAdded(<strong class="jxr_keyword">this</strong>, 0, displayedEntries.size() - 1);
<a class="jxr_linenumber" name="L4478" href="#L4478">4478</a>                 }
<a class="jxr_linenumber" name="L4479" href="#L4479">4479</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4480" href="#L4480">4480</a>             }
<a class="jxr_linenumber" name="L4481" href="#L4481">4481</a>         }
<a class="jxr_linenumber" name="L4482" href="#L4482">4482</a> 
<a class="jxr_linenumber" name="L4483" href="#L4483">4483</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">PopupMenuListenerImpl</a> <strong class="jxr_keyword">implements</strong> PopupMenuListener {
<a class="jxr_linenumber" name="L4484" href="#L4484">4484</a>             <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> willBecomeVisible = false;
<a class="jxr_linenumber" name="L4485" href="#L4485">4485</a> 
<a class="jxr_linenumber" name="L4486" href="#L4486">4486</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> popupMenuWillBecomeVisible(PopupMenuEvent e) {
<a class="jxr_linenumber" name="L4487" href="#L4487">4487</a>                 bypassFiltering = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L4488" href="#L4488">4488</a>                 ((JComboBox)e.getSource()).setSelectedIndex(-1);
<a class="jxr_linenumber" name="L4489" href="#L4489">4489</a>                 bypassFiltering = false;
<a class="jxr_linenumber" name="L4490" href="#L4490">4490</a>                 <strong class="jxr_keyword">if</strong> (!willBecomeVisible) {
<a class="jxr_linenumber" name="L4491" href="#L4491">4491</a>                     <em class="jxr_comment">//we already have a match but we're showing the popup - unfilter</em>
<a class="jxr_linenumber" name="L4492" href="#L4492">4492</a>                     <strong class="jxr_keyword">if</strong> (displayedEntries.contains(textField.getText())) {
<a class="jxr_linenumber" name="L4493" href="#L4493">4493</a>                         model.showAllElements();
<a class="jxr_linenumber" name="L4494" href="#L4494">4494</a>                     }
<a class="jxr_linenumber" name="L4495" href="#L4495">4495</a> 
<a class="jxr_linenumber" name="L4496" href="#L4496">4496</a>                     <em class="jxr_comment">//workaround for bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4743225</em>
<a class="jxr_linenumber" name="L4497" href="#L4497">4497</a>                     <em class="jxr_comment">//the height of the popup after updating entries in this listener was not updated..</em>
<a class="jxr_linenumber" name="L4498" href="#L4498">4498</a>                     JComboBox list = (JComboBox) e.getSource();
<a class="jxr_linenumber" name="L4499" href="#L4499">4499</a>                     willBecomeVisible = <strong class="jxr_keyword">true</strong>; <em class="jxr_comment">// the flag is needed to prevent a loop</em>
<a class="jxr_linenumber" name="L4500" href="#L4500">4500</a>                     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L4501" href="#L4501">4501</a>                         list.getUI().setPopupVisible(list, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L4502" href="#L4502">4502</a>                     } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L4503" href="#L4503">4503</a>                         willBecomeVisible = false;
<a class="jxr_linenumber" name="L4504" href="#L4504">4504</a>                     }
<a class="jxr_linenumber" name="L4505" href="#L4505">4505</a>                 }
<a class="jxr_linenumber" name="L4506" href="#L4506">4506</a>             }
<a class="jxr_linenumber" name="L4507" href="#L4507">4507</a> 
<a class="jxr_linenumber" name="L4508" href="#L4508">4508</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> popupMenuWillBecomeInvisible(PopupMenuEvent e) {
<a class="jxr_linenumber" name="L4509" href="#L4509">4509</a>                 <em class="jxr_comment">//no-op</em>
<a class="jxr_linenumber" name="L4510" href="#L4510">4510</a>             }
<a class="jxr_linenumber" name="L4511" href="#L4511">4511</a> 
<a class="jxr_linenumber" name="L4512" href="#L4512">4512</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> popupMenuCanceled(PopupMenuEvent e) {
<a class="jxr_linenumber" name="L4513" href="#L4513">4513</a>                 <em class="jxr_comment">//no-op</em>
<a class="jxr_linenumber" name="L4514" href="#L4514">4514</a>             }
<a class="jxr_linenumber" name="L4515" href="#L4515">4515</a>         }
<a class="jxr_linenumber" name="L4516" href="#L4516">4516</a>     }
<a class="jxr_linenumber" name="L4517" href="#L4517">4517</a> 
<a class="jxr_linenumber" name="L4518" href="#L4518">4518</a>   <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a> <strong class="jxr_keyword">extends</strong> JCheckBoxMenuItem {
<a class="jxr_linenumber" name="L4519" href="#L4519">4519</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/chainsaw/LogPanel.html">ToggleToolTips</a>() {
<a class="jxr_linenumber" name="L4520" href="#L4520">4520</a>       <strong class="jxr_keyword">super</strong>(<span class="jxr_string">"Show ToolTips"</span>, <strong class="jxr_keyword">new</strong> ImageIcon(ChainsawIcons.TOOL_TIP));
<a class="jxr_linenumber" name="L4521" href="#L4521">4521</a>   addActionListener(
<a class="jxr_linenumber" name="L4522" href="#L4522">4522</a>     <strong class="jxr_keyword">new</strong> ActionListener() {
<a class="jxr_linenumber" name="L4523" href="#L4523">4523</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> actionPerformed(ActionEvent evt) {
<a class="jxr_linenumber" name="L4524" href="#L4524">4524</a>         preferenceModel.setToolTips(isSelected());
<a class="jxr_linenumber" name="L4525" href="#L4525">4525</a>       }
<a class="jxr_linenumber" name="L4526" href="#L4526">4526</a>     });
<a class="jxr_linenumber" name="L4527" href="#L4527">4527</a>     }
<a class="jxr_linenumber" name="L4528" href="#L4528">4528</a>   }
<a class="jxr_linenumber" name="L4529" href="#L4529">4529</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>
