<!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>AbstractSpringLoginTab xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</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 class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.workbench;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.awt.Component;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.awt.Container;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.awt.Dimension;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.awt.FlowLayout;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseAdapter;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.awt.event.MouseEvent;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.text.NumberFormat;
<a class="jxr_linenumber" name="28" href="#28">28</a>  
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.swing.Icon;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.swing.JCheckBox;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.swing.JComponent;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.swing.JFormattedTextField;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.swing.JLabel;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPanel;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.swing.JPasswordField;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.swing.JTextField;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.swing.Spring;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.swing.SpringLayout;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.swing.SwingConstants;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.swing.ToolTipManager;
<a class="jxr_linenumber" name="41" href="#41">41</a>  
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.workbench.icons.HelpIcon;
<a class="jxr_linenumber" name="43" href="#43">43</a>  
<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * Convenience methods for spring layout tabs.</em>
<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.html">AbstractSpringLoginTab</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/chemistry/opencmis/workbench/AbstractLoginTab.html">AbstractLoginTab</a> {
<a class="jxr_linenumber" name="48" href="#48">48</a>  
<a class="jxr_linenumber" name="49" href="#49">49</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> serialVersionUID = 1L;
<a class="jxr_linenumber" name="50" href="#50">50</a>  
<a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Icon HELP_ICON = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/chemistry/opencmis/workbench/icons/HelpIcon.html">HelpIcon</a>(WorkbenchScale.scaleInt(12), WorkbenchScale.scaleInt(12));
<a class="jxr_linenumber" name="52" href="#52">52</a>  
<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">protected</strong> JTextField createTextField(Container pane, String label) {
<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">return</strong> createTextField(pane, label, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="55" href="#55">55</a>      }
<a class="jxr_linenumber" name="56" href="#56">56</a>  
<a class="jxr_linenumber" name="57" href="#57">57</a>      <strong class="jxr_keyword">protected</strong> JTextField createTextField(Container pane, String label, String help) {
<a class="jxr_linenumber" name="58" href="#58">58</a>          JTextField textField = <strong class="jxr_keyword">new</strong> JTextField(60);
<a class="jxr_linenumber" name="59" href="#59">59</a>          JLabel textLabel = <strong class="jxr_keyword">new</strong> JLabel(label, SwingConstants.TRAILING);
<a class="jxr_linenumber" name="60" href="#60">60</a>          textLabel.setLabelFor(textField);
<a class="jxr_linenumber" name="61" href="#61">61</a>  
<a class="jxr_linenumber" name="62" href="#62">62</a>          pane.add(textLabel);
<a class="jxr_linenumber" name="63" href="#63">63</a>          pane.add(createHelp(help));
<a class="jxr_linenumber" name="64" href="#64">64</a>          pane.add(textField);
<a class="jxr_linenumber" name="65" href="#65">65</a>  
<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">return</strong> textField;
<a class="jxr_linenumber" name="67" href="#67">67</a>      }
<a class="jxr_linenumber" name="68" href="#68">68</a>  
<a class="jxr_linenumber" name="69" href="#69">69</a>      <strong class="jxr_keyword">protected</strong> JFormattedTextField createIntegerField(Container pane, String label) {
<a class="jxr_linenumber" name="70" href="#70">70</a>          <strong class="jxr_keyword">return</strong> createIntegerField(pane, label, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="71" href="#71">71</a>      }
<a class="jxr_linenumber" name="72" href="#72">72</a>  
<a class="jxr_linenumber" name="73" href="#73">73</a>      <strong class="jxr_keyword">protected</strong> JFormattedTextField createIntegerField(Container pane, String label, String help) {
<a class="jxr_linenumber" name="74" href="#74">74</a>          NumberFormat format = NumberFormat.getIntegerInstance();
<a class="jxr_linenumber" name="75" href="#75">75</a>          JFormattedTextField intField = <strong class="jxr_keyword">new</strong> JFormattedTextField(format);
<a class="jxr_linenumber" name="76" href="#76">76</a>          JLabel intLabel = <strong class="jxr_keyword">new</strong> JLabel(label, SwingConstants.TRAILING);
<a class="jxr_linenumber" name="77" href="#77">77</a>          intLabel.setLabelFor(intField);
<a class="jxr_linenumber" name="78" href="#78">78</a>  
<a class="jxr_linenumber" name="79" href="#79">79</a>          pane.add(intLabel);
<a class="jxr_linenumber" name="80" href="#80">80</a>          pane.add(createHelp(help));
<a class="jxr_linenumber" name="81" href="#81">81</a>          pane.add(intField);
<a class="jxr_linenumber" name="82" href="#82">82</a>  
<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">return</strong> intField;
<a class="jxr_linenumber" name="84" href="#84">84</a>      }
<a class="jxr_linenumber" name="85" href="#85">85</a>  
<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">protected</strong> JPasswordField createPasswordField(Container pane, String label) {
<a class="jxr_linenumber" name="87" href="#87">87</a>          <strong class="jxr_keyword">return</strong> createPasswordField(pane, label, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="88" href="#88">88</a>      }
<a class="jxr_linenumber" name="89" href="#89">89</a>  
<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">protected</strong> JPasswordField createPasswordField(Container pane, String label, String help) {
<a class="jxr_linenumber" name="91" href="#91">91</a>          JPasswordField textField = <strong class="jxr_keyword">new</strong> JPasswordField(60);
<a class="jxr_linenumber" name="92" href="#92">92</a>          JLabel textLabel = <strong class="jxr_keyword">new</strong> JLabel(label, SwingConstants.TRAILING);
<a class="jxr_linenumber" name="93" href="#93">93</a>          textLabel.setLabelFor(textField);
<a class="jxr_linenumber" name="94" href="#94">94</a>  
<a class="jxr_linenumber" name="95" href="#95">95</a>          pane.add(textLabel);
<a class="jxr_linenumber" name="96" href="#96">96</a>          pane.add(createHelp(help));
<a class="jxr_linenumber" name="97" href="#97">97</a>          pane.add(textField);
<a class="jxr_linenumber" name="98" href="#98">98</a>  
<a class="jxr_linenumber" name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> textField;
<a class="jxr_linenumber" name="100" href="#100">100</a>     }
<a class="jxr_linenumber" name="101" href="#101">101</a> 
<a class="jxr_linenumber" name="102" href="#102">102</a>     <strong class="jxr_keyword">protected</strong> JPanel createCheckBoxPanel(Container pane, String label, String help, JCheckBox... buttons) {
<a class="jxr_linenumber" name="103" href="#103">103</a>         JPanel panel = <strong class="jxr_keyword">new</strong> JPanel(<strong class="jxr_keyword">new</strong> FlowLayout(FlowLayout.LEFT, 0, 0));
<a class="jxr_linenumber" name="104" href="#104">104</a>         JLabel panelLabel = <strong class="jxr_keyword">new</strong> JLabel(label, SwingConstants.TRAILING);
<a class="jxr_linenumber" name="105" href="#105">105</a>         panelLabel.setLabelFor(panel);
<a class="jxr_linenumber" name="106" href="#106">106</a> 
<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">for</strong> (JCheckBox button : buttons) {
<a class="jxr_linenumber" name="108" href="#108">108</a>             panel.add(button);
<a class="jxr_linenumber" name="109" href="#109">109</a>             <strong class="jxr_keyword">if</strong> (button != buttons[buttons.length - 1]) {
<a class="jxr_linenumber" name="110" href="#110">110</a>                 panel.add(<strong class="jxr_keyword">new</strong> JPanel()).setMinimumSize(<strong class="jxr_keyword">new</strong> Dimension(10, 10));
<a class="jxr_linenumber" name="111" href="#111">111</a>             }
<a class="jxr_linenumber" name="112" href="#112">112</a>         }
<a class="jxr_linenumber" name="113" href="#113">113</a> 
<a class="jxr_linenumber" name="114" href="#114">114</a>         pane.add(panelLabel);
<a class="jxr_linenumber" name="115" href="#115">115</a>         pane.add(createHelp(help));
<a class="jxr_linenumber" name="116" href="#116">116</a>         pane.add(panel);
<a class="jxr_linenumber" name="117" href="#117">117</a> 
<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">return</strong> panel;
<a class="jxr_linenumber" name="119" href="#119">119</a>     }
<a class="jxr_linenumber" name="120" href="#120">120</a> 
<a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">protected</strong> JComponent createHelp(String help) {
<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">if</strong> (help == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="123" href="#123">123</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> JLabel(<span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="124" href="#124">124</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="125" href="#125">125</a>             JLabel label = <strong class="jxr_keyword">new</strong> JLabel(HELP_ICON);
<a class="jxr_linenumber" name="126" href="#126">126</a>             label.setToolTipText(help);
<a class="jxr_linenumber" name="127" href="#127">127</a> 
<a class="jxr_linenumber" name="128" href="#128">128</a>             label.addMouseListener(<strong class="jxr_keyword">new</strong> MouseAdapter() {
<a class="jxr_linenumber" name="129" href="#129">129</a>                 <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> defaultDismissDelay = ToolTipManager.sharedInstance().getDismissDelay();
<a class="jxr_linenumber" name="130" href="#130">130</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> DISMIASS_DELAY = 120 * 1000;
<a class="jxr_linenumber" name="131" href="#131">131</a> 
<a class="jxr_linenumber" name="132" href="#132">132</a>                 @Override
<a class="jxr_linenumber" name="133" href="#133">133</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseEntered(MouseEvent me) {
<a class="jxr_linenumber" name="134" href="#134">134</a>                     ToolTipManager.sharedInstance().setDismissDelay(DISMIASS_DELAY);
<a class="jxr_linenumber" name="135" href="#135">135</a>                 }
<a class="jxr_linenumber" name="136" href="#136">136</a> 
<a class="jxr_linenumber" name="137" href="#137">137</a>                 @Override
<a class="jxr_linenumber" name="138" href="#138">138</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> mouseExited(MouseEvent me) {
<a class="jxr_linenumber" name="139" href="#139">139</a>                     ToolTipManager.sharedInstance().setDismissDelay(defaultDismissDelay);
<a class="jxr_linenumber" name="140" href="#140">140</a>                 }
<a class="jxr_linenumber" name="141" href="#141">141</a>             });
<a class="jxr_linenumber" name="142" href="#142">142</a> 
<a class="jxr_linenumber" name="143" href="#143">143</a>             <strong class="jxr_keyword">return</strong> label;
<a class="jxr_linenumber" name="144" href="#144">144</a>         }
<a class="jxr_linenumber" name="145" href="#145">145</a>     }
<a class="jxr_linenumber" name="146" href="#146">146</a> 
<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> SpringLayout.Constraints getConstraintsForCell(<strong class="jxr_keyword">int</strong> row, <strong class="jxr_keyword">int</strong> col, Container parent, <strong class="jxr_keyword">int</strong> cols) {
<a class="jxr_linenumber" name="148" href="#148">148</a>         SpringLayout layout = (SpringLayout) parent.getLayout();
<a class="jxr_linenumber" name="149" href="#149">149</a>         Component c = parent.getComponent(row * cols + col);
<a class="jxr_linenumber" name="150" href="#150">150</a>         <strong class="jxr_keyword">return</strong> layout.getConstraints(c);
<a class="jxr_linenumber" name="151" href="#151">151</a>     }
<a class="jxr_linenumber" name="152" href="#152">152</a> 
<a class="jxr_linenumber" name="153" href="#153">153</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> makeCompactGrid(<strong class="jxr_keyword">int</strong> rows) {
<a class="jxr_linenumber" name="154" href="#154">154</a>         makeCompactGrid(<strong class="jxr_keyword">this</strong>, rows, 3, 5, 10, 5, 5);
<a class="jxr_linenumber" name="155" href="#155">155</a>     }
<a class="jxr_linenumber" name="156" href="#156">156</a> 
<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> makeCompactGrid(Container parent, <strong class="jxr_keyword">int</strong> rows, <strong class="jxr_keyword">int</strong> cols, <strong class="jxr_keyword">int</strong> initialX, <strong class="jxr_keyword">int</strong> initialY, <strong class="jxr_keyword">int</strong> xPad, <strong class="jxr_keyword">int</strong> yPad) {
<a class="jxr_linenumber" name="158" href="#158">158</a>         SpringLayout layout = (SpringLayout) parent.getLayout();
<a class="jxr_linenumber" name="159" href="#159">159</a> 
<a class="jxr_linenumber" name="160" href="#160">160</a>         Spring x = Spring.constant(initialX);
<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> c = 0; c &lt; cols; c++) {
<a class="jxr_linenumber" name="162" href="#162">162</a>             Spring width = Spring.constant(0);
<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> r = 0; r &lt; rows; r++) {
<a class="jxr_linenumber" name="164" href="#164">164</a>                 width = Spring.max(width, getConstraintsForCell(r, c, parent, cols).getWidth());
<a class="jxr_linenumber" name="165" href="#165">165</a>             }
<a class="jxr_linenumber" name="166" href="#166">166</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> r = 0; r &lt; rows; r++) {
<a class="jxr_linenumber" name="167" href="#167">167</a>                 SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols);
<a class="jxr_linenumber" name="168" href="#168">168</a>                 constraints.setX(x);
<a class="jxr_linenumber" name="169" href="#169">169</a>                 constraints.setWidth(width);
<a class="jxr_linenumber" name="170" href="#170">170</a>             }
<a class="jxr_linenumber" name="171" href="#171">171</a>             x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad)));
<a class="jxr_linenumber" name="172" href="#172">172</a>         }
<a class="jxr_linenumber" name="173" href="#173">173</a> 
<a class="jxr_linenumber" name="174" href="#174">174</a>         Spring y = Spring.constant(initialY);
<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> r = 0; r &lt; rows; r++) {
<a class="jxr_linenumber" name="176" href="#176">176</a>             Spring height = Spring.constant(0);
<a class="jxr_linenumber" name="177" href="#177">177</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> c = 0; c &lt; cols; c++) {
<a class="jxr_linenumber" name="178" href="#178">178</a>                 height = Spring.max(height, getConstraintsForCell(r, c, parent, cols).getHeight());
<a class="jxr_linenumber" name="179" href="#179">179</a>             }
<a class="jxr_linenumber" name="180" href="#180">180</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> c = 0; c &lt; cols; c++) {
<a class="jxr_linenumber" name="181" href="#181">181</a>                 SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols);
<a class="jxr_linenumber" name="182" href="#182">182</a>                 constraints.setY(y);
<a class="jxr_linenumber" name="183" href="#183">183</a>                 constraints.setHeight(height);
<a class="jxr_linenumber" name="184" href="#184">184</a>             }
<a class="jxr_linenumber" name="185" href="#185">185</a>             y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad)));
<a class="jxr_linenumber" name="186" href="#186">186</a>         }
<a class="jxr_linenumber" name="187" href="#187">187</a> 
<a class="jxr_linenumber" name="188" href="#188">188</a>         layout.getConstraints(parent).setConstraint(SpringLayout.EAST, x);
<a class="jxr_linenumber" name="189" href="#189">189</a>         layout.getConstraints(parent).setConstraint(SpringLayout.NORTH, y);
<a class="jxr_linenumber" name="190" href="#190">190</a>         parent.setPreferredSize(<strong class="jxr_keyword">new</strong> Dimension(x.getPreferredValue(), y.getPreferredValue()));
<a class="jxr_linenumber" name="191" href="#191">191</a>     }
<a class="jxr_linenumber" name="192" href="#192">192</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

