<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>LF5Appender xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/lf5/LF5Appender.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.lf5;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.awt.Toolkit;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.AppenderSkeleton;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.lf5.viewer.LogBrokerMonitor;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LocationInfo;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * &lt;code&gt;LF5Appender&lt;/code&gt; logs events to a swing based logging</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * console. The swing console supports turning categories on and off,</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * multiple detail level views, as well as full text searching and many</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * other capabilties.</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> *</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @author Brent Sprecher</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em class="jxr_comment">// Contributed by ThoughtWorks Inc.</em>
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> LF5Appender <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/AppenderSkeleton.html">AppenderSkeleton</a> {
<a name="39" href="#39">39</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="40" href="#40">40</a>    <em class="jxr_comment">// Constants:</em>
<a name="41" href="#41">41</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="44" href="#44">44</a>    <em class="jxr_comment">// Protected Variables:</em>
<a name="45" href="#45">45</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>    <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a> _logMonitor;
<a name="48" href="#48">48</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a> _defaultLogMonitor;
<a name="49" href="#49">49</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/lf5/AppenderFinalizer.html">AppenderFinalizer</a> _finalizer;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="52" href="#52">52</a>    <em class="jxr_comment">// Private Variables:</em>
<a name="53" href="#53">53</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="56" href="#56">56</a>    <em class="jxr_comment">// Constructors:</em>
<a name="57" href="#57">57</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>    <em class="jxr_javadoccomment">/**</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">   * Constructs a &lt;code&gt;LF5Appender&lt;/code&gt; using the default instance of</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">   * the &lt;code&gt;LogBrokerMonitor&lt;/code&gt;. This constructor should &lt;bold&gt;always</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">   * &lt;/bold&gt; be  preferred over the</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">   * &lt;code&gt;LF5Appender(LogBrokerMonitor monitor)&lt;/code&gt;</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">   * constructor, unless you need to spawn additional log monitoring</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">   * windows.</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">   */</em>
<a name="67" href="#67">67</a>    <strong class="jxr_keyword">public</strong> LF5Appender() {
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">this</strong>(getDefaultInstance());
<a name="69" href="#69">69</a>    }
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>    <em class="jxr_javadoccomment">/**</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">   * Constructs a &lt;code&gt;LF5Appender&lt;code&gt; using an instance of</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">   * a &lt;code&gt;LogBrokerMonitor&lt;code&gt; supplied by the user. This</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">   * constructor should only be used when you need to spawn</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">   * additional log monitoring windows.</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">   *</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">   * @param monitor An instance of a &lt;code&gt;LogBrokerMonitor&lt;code&gt;</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">   * created by the user.</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">   */</em>
<a name="80" href="#80">80</a>    <strong class="jxr_keyword">public</strong> LF5Appender(<a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a> monitor) {
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">if</strong> (monitor != <strong class="jxr_keyword">null</strong>) {
<a name="83" href="#83">83</a>        _logMonitor = monitor;
<a name="84" href="#84">84</a>      }
<a name="85" href="#85">85</a>    }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="88" href="#88">88</a>    <em class="jxr_comment">// Public Methods:</em>
<a name="89" href="#89">89</a>    <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>    <em class="jxr_javadoccomment">/**</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">   * Appends a &lt;code&gt;LoggingEvent&lt;/code&gt; record to the</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">   * &lt;code&gt;LF5Appender&lt;/code&gt;.</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">   * @param event The &lt;code&gt;LoggingEvent&lt;/code&gt;</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">   * to be appended.</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">   */</em>
<a name="97" href="#97">97</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> append(<a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event) {
<a name="98" href="#98">98</a>      <em class="jxr_comment">// Retrieve the information from the log4j LoggingEvent.</em>
<a name="99" href="#99">99</a>      String category = event.getLoggerName();
<a name="100" href="#100">100</a>     String logMessage = event.getRenderedMessage();
<a name="101" href="#101">101</a>     String nestedDiagnosticContext = event.getNDC();
<a name="102" href="#102">102</a>     String threadDescription = event.getThreadName();
<a name="103" href="#103">103</a>     String level = event.getLevel().toString();
<a name="104" href="#104">104</a>     <strong class="jxr_keyword">long</strong> time = event.timeStamp;
<a name="105" href="#105">105</a>     <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a> locationInfo = event.getLocationInformation();
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>     <em class="jxr_comment">// Add the logging event information to a LogRecord</em>
<a name="108" href="#108">108</a>     Log4JLogRecord record = <strong class="jxr_keyword">new</strong> Log4JLogRecord();
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>     record.setCategory(category);
<a name="111" href="#111">111</a>     record.setMessage(logMessage);
<a name="112" href="#112">112</a>     record.setLocation(locationInfo.fullInfo);
<a name="113" href="#113">113</a>     record.setMillis(time);
<a name="114" href="#114">114</a>     record.setThreadDescription(threadDescription);
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>     <strong class="jxr_keyword">if</strong> (nestedDiagnosticContext != <strong class="jxr_keyword">null</strong>) {
<a name="117" href="#117">117</a>       record.setNDC(nestedDiagnosticContext);
<a name="118" href="#118">118</a>     } <strong class="jxr_keyword">else</strong> {
<a name="119" href="#119">119</a>       record.setNDC(<span class="jxr_string">""</span>);
<a name="120" href="#120">120</a>     }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">if</strong> (event.getThrowableInformation() != <strong class="jxr_keyword">null</strong>) {
<a name="123" href="#123">123</a>       record.setThrownStackTrace(event.getThrowableInformation());
<a name="124" href="#124">124</a>     }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">try</strong> {
<a name="127" href="#127">127</a>       record.setLevel(LogLevel.valueOf(level));
<a name="128" href="#128">128</a>     } <strong class="jxr_keyword">catch</strong> (LogLevelFormatException e) {
<a name="129" href="#129">129</a>       <em class="jxr_comment">// If the priority level doesn't match one of the predefined</em>
<a name="130" href="#130">130</a>       <em class="jxr_comment">// log levels, then set the level to warning.</em>
<a name="131" href="#131">131</a>       record.setLevel(LogLevel.WARN);
<a name="132" href="#132">132</a>     }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>     <strong class="jxr_keyword">if</strong> (_logMonitor != <strong class="jxr_keyword">null</strong>) {
<a name="135" href="#135">135</a>       _logMonitor.addMessage(record);
<a name="136" href="#136">136</a>     }
<a name="137" href="#137">137</a>   }
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>   <em class="jxr_javadoccomment">/**</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">   * This method is an empty implementation of the close() method inherited</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">   * from the &lt;code&gt;org.apache.log4j.Appender&lt;/code&gt; interface.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">   */</em>
<a name="143" href="#143">143</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
<a name="144" href="#144">144</a>   }
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>   <em class="jxr_javadoccomment">/**</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">   * Returns a value that indicates whether this appender requires a</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * &lt;code&gt;Layout&lt;/code&gt;. This method always returns false.</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * No layout is required for the &lt;code&gt;LF5Appender&lt;/code&gt;.</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">   */</em>
<a name="151" href="#151">151</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> requiresLayout() {
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">return</strong> false;
<a name="153" href="#153">153</a>   }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>   <em class="jxr_javadoccomment">/**</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">   * This method is used to set the property that controls whether</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">   * the &lt;code&gt;LogBrokerMonitor&lt;/code&gt; is hidden or closed when a user</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">   * exits</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">   * the monitor. By default, the &lt;code&gt;LogBrokerMonitor&lt;/code&gt; will hide</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">   * itself when the log window is exited, and the swing thread will</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">   * continue to run in the background. If this property is</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">   * set to true, the &lt;code&gt;LogBrokerMonitor&lt;/code&gt; will call System.exit(0)</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">   * and will shut down swing thread and the virtual machine.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">   *</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">   * @param callSystemExitOnClose A boolean value indicating whether</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">   * to call System.exit(0) when closing the log window.</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">   */</em>
<a name="168" href="#168">168</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCallSystemExitOnClose(<strong class="jxr_keyword">boolean</strong> callSystemExitOnClose) {
<a name="169" href="#169">169</a>     _logMonitor.setCallSystemExitOnClose(callSystemExitOnClose);
<a name="170" href="#170">170</a>   }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>   <em class="jxr_javadoccomment">/**</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">   * The equals method compares two LF5Appenders and determines whether</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">   * they are equal. Two &lt;code&gt;Appenders&lt;/code&gt; will be considered equal</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">   * if, and only if, they both contain references to the same &lt;code&gt;</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">   * LogBrokerMonitor&lt;/code&gt;.</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">   *</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">   * @param compareTo A boolean value indicating whether</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">   * the two LF5Appenders are equal.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">   */</em>
<a name="181" href="#181">181</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals(LF5Appender compareTo) {
<a name="182" href="#182">182</a>     <em class="jxr_comment">// If both reference the same LogBrokerMonitor, they are equal.</em>
<a name="183" href="#183">183</a>     <strong class="jxr_keyword">return</strong> _logMonitor == compareTo.getLogBrokerMonitor();
<a name="184" href="#184">184</a>   }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a> getLogBrokerMonitor() {
<a name="187" href="#187">187</a>     <strong class="jxr_keyword">return</strong> _logMonitor;
<a name="188" href="#188">188</a>   }
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) {
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">new</strong> LF5Appender();
<a name="192" href="#192">192</a>   }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMaxNumberOfRecords(<strong class="jxr_keyword">int</strong> maxNumberOfRecords) {
<a name="195" href="#195">195</a>     _defaultLogMonitor.setMaxNumberOfLogRecords(maxNumberOfRecords);
<a name="196" href="#196">196</a>   }
<a name="197" href="#197">197</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="198" href="#198">198</a>   <em class="jxr_comment">// Protected Methods:</em>
<a name="199" href="#199">199</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>   <em class="jxr_javadoccomment">/**</em>
<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">   * @return The default instance of the &lt;code&gt;LogBrokerMonitor&lt;/code&gt;.</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">   */</em>
<a name="204" href="#204">204</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">synchronized</strong> <a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a> getDefaultInstance() {
<a name="205" href="#205">205</a>     <strong class="jxr_keyword">if</strong> (_defaultLogMonitor == <strong class="jxr_keyword">null</strong>) {
<a name="206" href="#206">206</a>       <strong class="jxr_keyword">try</strong> {
<a name="207" href="#207">207</a>         _defaultLogMonitor =
<a name="208" href="#208">208</a>             <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/lf5/viewer/LogBrokerMonitor.html">LogBrokerMonitor</a>(LogLevel.getLog4JLevels());
<a name="209" href="#209">209</a>         _finalizer = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/lf5/AppenderFinalizer.html">AppenderFinalizer</a>(_defaultLogMonitor);
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>         _defaultLogMonitor.setFrameSize(getDefaultMonitorWidth(),
<a name="212" href="#212">212</a>             getDefaultMonitorHeight());
<a name="213" href="#213">213</a>         _defaultLogMonitor.setFontSize(12);
<a name="214" href="#214">214</a>         _defaultLogMonitor.show();
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>       } <strong class="jxr_keyword">catch</strong> (SecurityException e) {
<a name="217" href="#217">217</a>         _defaultLogMonitor = <strong class="jxr_keyword">null</strong>;
<a name="218" href="#218">218</a>       }
<a name="219" href="#219">219</a>     }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     <strong class="jxr_keyword">return</strong> _defaultLogMonitor;
<a name="222" href="#222">222</a>   }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>   <em class="jxr_javadoccomment">/**</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">   * @return the screen width from Toolkit.getScreenSize()</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">   * if possible, otherwise returns 800</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">   * @see java.awt.Toolkit</em>
<a name="228" href="#228">228</a> <em class="jxr_javadoccomment">   */</em>
<a name="229" href="#229">229</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getScreenWidth() {
<a name="230" href="#230">230</a>     <strong class="jxr_keyword">try</strong> {
<a name="231" href="#231">231</a>       <strong class="jxr_keyword">return</strong> Toolkit.getDefaultToolkit().getScreenSize().width;
<a name="232" href="#232">232</a>     } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="233" href="#233">233</a>       <strong class="jxr_keyword">return</strong> 800;
<a name="234" href="#234">234</a>     }
<a name="235" href="#235">235</a>   }
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>   <em class="jxr_javadoccomment">/**</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">   * @return the screen height from Toolkit.getScreenSize()</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">   * if possible, otherwise returns 600</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">   * @see java.awt.Toolkit</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">   */</em>
<a name="242" href="#242">242</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getScreenHeight() {
<a name="243" href="#243">243</a>     <strong class="jxr_keyword">try</strong> {
<a name="244" href="#244">244</a>       <strong class="jxr_keyword">return</strong> Toolkit.getDefaultToolkit().getScreenSize().height;
<a name="245" href="#245">245</a>     } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="246" href="#246">246</a>       <strong class="jxr_keyword">return</strong> 600;
<a name="247" href="#247">247</a>     }
<a name="248" href="#248">248</a>   }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getDefaultMonitorWidth() {
<a name="251" href="#251">251</a>     <strong class="jxr_keyword">return</strong> (3 * getScreenWidth()) / 4;
<a name="252" href="#252">252</a>   }
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getDefaultMonitorHeight() {
<a name="255" href="#255">255</a>     <strong class="jxr_keyword">return</strong> (3 * getScreenHeight()) / 4;
<a name="256" href="#256">256</a>   }
<a name="257" href="#257">257</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="258" href="#258">258</a>   <em class="jxr_comment">// Private Methods:</em>
<a name="259" href="#259">259</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="263" href="#263">263</a>   <em class="jxr_comment">// Nested Top-Level Classes or Interfaces:</em>
<a name="264" href="#264">264</a>   <em class="jxr_comment">//--------------------------------------------------------------------------</em>
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

