Coverage Report - net.miginfocom.layout.ResizeConstraint
 
Classes in this File Line Coverage Branch Coverage Complexity
ResizeConstraint
N/A
N/A
1.2
 
 1  
 package net.miginfocom.layout;
 2  
 
 3  
 import java.io.*;
 4  
 /*
 5  
  * License (BSD):
 6  
  * ==============
 7  
  *
 8  
  * Copyright (c) 2004, Mikael Grev, MiG InfoCom AB. (miglayout (at) miginfocom (dot) com)
 9  
  * All rights reserved.
 10  
  *
 11  
  * Redistribution and use in source and binary forms, with or without modification,
 12  
  * are permitted provided that the following conditions are met:
 13  
  * Redistributions of source code must retain the above copyright notice, this list
 14  
  * of conditions and the following disclaimer.
 15  
  * Redistributions in binary form must reproduce the above copyright notice, this
 16  
  * list of conditions and the following disclaimer in the documentation and/or other
 17  
  * materials provided with the distribution.
 18  
  * Neither the name of the MiG InfoCom AB nor the names of its contributors may be
 19  
  * used to endorse or promote products derived from this software without specific
 20  
  * prior written permission.
 21  
  *
 22  
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 23  
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 24  
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 25  
  * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 26  
  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 27  
  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 28  
  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 29  
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 30  
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
 31  
  * OF SUCH DAMAGE.
 32  
  *
 33  
  * @version 1.0
 34  
  * @author Mikael Grev, MiG InfoCom AB
 35  
  *         Date: 2006-sep-08
 36  
  */
 37  
 
 38  
 /** A parsed constraint that specifies how an entity (normally column/row or component) can shrink or
 39  
  * grow compared to other entities.
 40  
  */
 41  
 final class ResizeConstraint implements Externalizable
 42  
 {
 43  
         static final Float WEIGHT_100 = new Float(100);
 44  
 
 45  
         /** How flexilble the entity should be, relative to other entities, when it comes to growing. <code>null</code> or
 46  
          * zero mean it will never grow. An entity that has twise the growWeight compared to another entity will get twice
 47  
          * as much of available space.
 48  
          * <p>
 49  
          * "grow" are only compared within the same "growPrio".
 50  
          */
 51  
         Float grow = null;
 52  
 
 53  
         /** The relative priority used for determining which entities gets the extra space first.
 54  
          */
 55  
         int growPrio = 100;
 56  
 
 57  
         Float shrink = WEIGHT_100;
 58  
 
 59  
         int shrinkPrio = 100;
 60  
 
 61  
         public ResizeConstraint()   // For Externalizable
 62  
         {
 63  
         }
 64  
 
 65  
         ResizeConstraint(int shrinkPrio, Float shrinkWeight, int growPrio, Float growWeight)
 66  
         {
 67  
                 this.shrinkPrio = shrinkPrio;
 68  
                 this.shrink = shrinkWeight;
 69  
                 this.growPrio = growPrio;
 70  
                 this.grow = growWeight;
 71  
         }
 72  
 
 73  
         // ************************************************
 74  
         // Persistence Delegate and Serializable combined.
 75  
         // ************************************************
 76  
 
 77  
         private Object readResolve() throws ObjectStreamException
 78  
         {
 79  
                 return LayoutUtil.getSerializedObject(this);
 80  
         }
 81  
 
 82  
         public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
 83  
         {
 84  
                 LayoutUtil.setSerializedObject(this, LayoutUtil.readAsXML(in));
 85  
         }
 86  
 
 87  
         public void writeExternal(ObjectOutput out) throws IOException
 88  
         {
 89  
                 if (getClass() == ResizeConstraint.class)
 90  
                         LayoutUtil.writeAsXML(out, this);
 91  
         }
 92  
 }