<!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>ThresholdSlider xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/chainsaw/ThresholdSlider.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.util.Arrays;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Comparator;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> javax.swing.DefaultBoundedRangeModel;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> javax.swing.JLabel;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> javax.swing.JSlider;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> javax.swing.SwingConstants;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> * A Slider implementation that allows a user to</em>
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * choose a particular Threshold</em>
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * .</em>
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * @author Paul Smith &amp;lt;psmith@apache.org&amp;gt;</em>
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/ThresholdSlider.html">ThresholdSlider</a> <strong class="jxr_keyword">extends</strong> JSlider {
<a class="jxr_linenumber" name="L43" href="#L43">43</a>    <strong class="jxr_keyword">final</strong> List priorityList;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  
<a class="jxr_linenumber" name="L45" href="#L45">45</a>    <a href="../../../../org/apache/log4j/chainsaw/ThresholdSlider.html">ThresholdSlider</a>() {
<a class="jxr_linenumber" name="L46" href="#L46">46</a>      Level[] levels =
<a class="jxr_linenumber" name="L47" href="#L47">47</a>        <strong class="jxr_keyword">new</strong> Level[] {
<a class="jxr_linenumber" name="L48" href="#L48">48</a>          Level.OFF, Level.FATAL, Level.ERROR, Level.WARN, Level.INFO,
<a class="jxr_linenumber" name="L49" href="#L49">49</a>          Level.DEBUG, Level.TRACE, Level.ALL
<a class="jxr_linenumber" name="L50" href="#L50">50</a>        };
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  
<a class="jxr_linenumber" name="L52" href="#L52">52</a>      priorityList = Arrays.asList(levels);
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      Collections.sort(
<a class="jxr_linenumber" name="L55" href="#L55">55</a>        priorityList,
<a class="jxr_linenumber" name="L56" href="#L56">56</a>        <strong class="jxr_keyword">new</strong> Comparator() {
<a class="jxr_linenumber" name="L57" href="#L57">57</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compare(Object o1, Object o2) {
<a class="jxr_linenumber" name="L58" href="#L58">58</a>            Level p1 = (Level) o1;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>            Level p2 = (Level) o2;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
<a class="jxr_linenumber" name="L61" href="#L61">61</a>            <strong class="jxr_keyword">if</strong> (p1.toInt() == p2.toInt()) {
<a class="jxr_linenumber" name="L62" href="#L62">62</a>              <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>            } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (p1.toInt() &lt; p2.toInt()) {
<a class="jxr_linenumber" name="L64" href="#L64">64</a>              <strong class="jxr_keyword">return</strong> -1;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>            }
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>            <strong class="jxr_keyword">return</strong> 1;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          }
<a class="jxr_linenumber" name="L69" href="#L69">69</a>        });
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>      setModel(
<a class="jxr_linenumber" name="L72" href="#L72">72</a>        <strong class="jxr_keyword">new</strong> DefaultBoundedRangeModel(
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          priorityList.indexOf(Level.TRACE), 0, 0, priorityList.size() - 1));
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>      Hashtable labelMap = <strong class="jxr_keyword">new</strong> Hashtable();
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      <strong class="jxr_keyword">for</strong> (Iterator iter = priorityList.iterator(); iter.hasNext();) {
<a class="jxr_linenumber" name="L78" href="#L78">78</a>        Level item = (Level) iter.next();
<a class="jxr_linenumber" name="L79" href="#L79">79</a>        labelMap.put(
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          <strong class="jxr_keyword">new</strong> Integer(priorityList.indexOf(item)), <strong class="jxr_keyword">new</strong> JLabel(item.toString()));
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  
<a class="jxr_linenumber" name="L82" href="#L82">82</a>        <em class="jxr_comment">//      System.out.println("creating levels for :: " + item.toInt() + "," + item.toString());</em>
<a class="jxr_linenumber" name="L83" href="#L83">83</a>      }
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>      setOrientation(SwingConstants.VERTICAL);
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      setInverted(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L87" href="#L87">87</a>      setLabelTable(labelMap);
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>      setPaintLabels(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      <em class="jxr_comment">//    setPaintTicks(true);</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      setSnapToTicks(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <em class="jxr_comment">//    setMajorTickSpacing(10000);</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>      <em class="jxr_comment">//    setPaintTrack(true);</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>    }
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  
<a class="jxr_linenumber" name="L98" href="#L98">98</a>    <strong class="jxr_keyword">void</strong> setChosenLevel(Level level) {
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      setValue(priorityList.indexOf(level));
<a class="jxr_linenumber" name="L100" href="#L100">100</a>   }
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment">   * Returns the Log4j Level that is currently selected in this slider</em>
<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment">   * @return</em>
<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L106" href="#L106">106</a>   Level getSelectedLevel() {
<a class="jxr_linenumber" name="L107" href="#L107">107</a>     Level level = (Level) priorityList.get(getValue());
<a class="jxr_linenumber" name="L108" href="#L108">108</a> 
<a class="jxr_linenumber" name="L109" href="#L109">109</a>     <strong class="jxr_keyword">if</strong> (level == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L110" href="#L110">110</a>       level = Level.TRACE;
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     }
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>     <strong class="jxr_keyword">return</strong> level;
<a class="jxr_linenumber" name="L114" href="#L114">114</a>   }
<a class="jxr_linenumber" name="L115" href="#L115">115</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2002&#x2013;2018 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
