view usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/GBConstraintsConverter.java @ 4:1a15d5aaf794

synchronized with onnv_86 (6202) in onnv-gate
author Koji Uno <koji.uno@sun.com>
date Mon, 31 Aug 2009 14:38:03 +0900
parents c9caec207d52
children
line wrap: on
line source

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * ident	"%Z%%M%	%I%	%E% SMI"
 *
 * Copyright (c) 2000 by Sun Microsystems, Inc.
 * All rights reserved.
 */

/*
 *        Copyright (C) 1996  Active Software, Inc.
 *                  All rights reserved.
 *
 * @(#) GBConstraintsConverter.java 1.21 - last change made 07/25/97
 */

package sunsoft.jws.visual.rt.type;

import sunsoft.jws.visual.rt.base.Global;
import sunsoft.jws.visual.rt.base.Shadow;
import sunsoft.jws.visual.rt.awt.GBConstraints;
import java.util.Hashtable;

/**
 * Converts instances of GBConstraints to strings and back again.
 *
 * @version 1.21, 07/25/97
 */
public class GBConstraintsConverter extends Converter {
    
    private static final GBConstraints constraintsDefault =
	new GBConstraints();
    
    private String constantToString(int c) {
        if (c == GBConstraints.RELATIVE)
            return (/* NOI18N */"relative");
        else if (c == GBConstraints.REMAINDER)
            return (/* NOI18N */"remainder");
        else if (c == GBConstraints.NONE)
            return (/* NOI18N */"none");
        else if (c == GBConstraints.BOTH)
            return (/* NOI18N */"both");
        else if (c == GBConstraints.HORIZONTAL)
            return (/* NOI18N */"horizontal");
        else if (c == GBConstraints.VERTICAL)
            return (/* NOI18N */"vertical");
        else if (c == GBConstraints.CENTER)
            return (/* NOI18N */"center");
        else if (c == GBConstraints.NORTH)
            return (/* NOI18N */"north");
        else if (c == GBConstraints.NORTHEAST)
            return (/* NOI18N */"northeast");
        else if (c == GBConstraints.EAST)
            return (/* NOI18N */"east");
        else if (c == GBConstraints.SOUTHEAST)
            return (/* NOI18N */"southeast");
        else if (c == GBConstraints.SOUTH)
            return (/* NOI18N */"south");
        else if (c == GBConstraints.SOUTHWEST)
            return (/* NOI18N */"southwest");
        else if (c == GBConstraints.WEST)
            return (/* NOI18N */"west");
        else if (c == GBConstraints.NORTHWEST)
            return (/* NOI18N */"northwest");
        else
	    /* BEGIN JSTYLED */
	    throw new Error(Global.fmtMsg(
					  "sunsoft.jws.visual.rt.type.GBConstraintsConverter.FMT.29",
					  Global.getMsg("sunsoft.jws.visual.rt.type.GBConstraintsConverter.unknown__constant"),
					  new Integer(c)));
	/* END JSTYLED */
    }
    
    private int stringToConstant(String s) {
        if (s.equals(/* NOI18N */"relative"))
            return GBConstraints.RELATIVE;
        else if (s.equals(/* NOI18N */"remainder"))
            return GBConstraints.REMAINDER;
        else if (s.equals(/* NOI18N */"none"))
            return GBConstraints.NONE;
        else if (s.equals(/* NOI18N */"both"))
            return GBConstraints.BOTH;
        else if (s.equals(/* NOI18N */"horizontal"))
            return GBConstraints.HORIZONTAL;
        else if (s.equals(/* NOI18N */"vertical"))
            return GBConstraints.VERTICAL;
        else if (s.equals(/* NOI18N */"center"))
            return GBConstraints.CENTER;
        else if (s.equals(/* NOI18N */"north"))
            return GBConstraints.NORTH;
        else if (s.equals(/* NOI18N */"northeast"))
            return GBConstraints.NORTHEAST;
        else if (s.equals(/* NOI18N */"east"))
            return GBConstraints.EAST;
        else if (s.equals(/* NOI18N */"southeast"))
            return GBConstraints.SOUTHEAST;
        else if (s.equals(/* NOI18N */"south"))
            return GBConstraints.SOUTH;
        else if (s.equals(/* NOI18N */"southwest"))
            return GBConstraints.SOUTHWEST;
        else if (s.equals(/* NOI18N */"west"))
            return GBConstraints.WEST;
        else if (s.equals(/* NOI18N */"northwest"))
            return GBConstraints.NORTHWEST;
        else
	    /* BEGIN JSTYLED */
	    throw new Error(Global.fmtMsg(
					  "sunsoft.jws.visual.rt.type.GBConstraintsConverter.FMT.29",
					  Global.getMsg("sunsoft.jws.visual.rt.type.GBConstraintsConverter.unknown__constant"),
					  s));
	/* END JSTYLED */
    }
    
    /**
     * Converts an instance of GBConstraints to a string representation.
     */
    public String convertToString(Object obj) {
        if (obj != null) {
            GBConstraints c = (GBConstraints) obj;
            String retval = /* NOI18N */"";
            
            if (c.gridx != constraintsDefault.gridx) {
                retval = retval + /* NOI18N */"x=" + c.gridx
		    + /* NOI18N */";";
            }
            if (c.gridy != constraintsDefault.gridy) {
                retval = retval + /* NOI18N */"y=" + c.gridy
		    + /* NOI18N */";";
            }
            if (c.gridwidth != constraintsDefault.gridwidth) {
                retval = retval + /* NOI18N */"width=" + c.gridwidth
		    + /* NOI18N */";";
            }
            if (c.gridheight != constraintsDefault.gridheight) {
                retval = retval + /* NOI18N */"height="
		    + c.gridheight + /* NOI18N */";";
            }
            if (c.weightx != constraintsDefault.weightx) {
                retval = retval + /* NOI18N */"weightx=" + c.weightx
		    + /* NOI18N */";";
            }
            if (c.weighty != constraintsDefault.weighty) {
                retval = retval + /* NOI18N */"weighty=" + c.weighty
		    + /* NOI18N */";";
            }
            if (c.fill != constraintsDefault.fill) {
                retval = retval + /* NOI18N */"fill="
		    + constantToString(c.fill) + /* NOI18N */";";
            }
            if (c.ipadx != constraintsDefault.ipadx) {
                retval = /* NOI18N */(retval + "ipadx="
				      + c.ipadx + ";");
            }
            if (c.ipady != constraintsDefault.ipady) {
                retval = /* NOI18N */(retval + "ipady="
				      + c.ipady + ";");
            }
            if (c.shrinkx != constraintsDefault.shrinkx) {
                retval = /* NOI18N */(retval + "shrinkx="
				      + c.shrinkx + ";");
            }
            if (c.shrinky != constraintsDefault.shrinky) {
                retval = /* NOI18N */(retval + "shrinky="
				      + c.shrinky + ";");
            }
            
            if (retval.length() > 0 &&
		retval.charAt(retval.length() - 1) == /* NOI18N */ ';')
		return (retval.substring(0, retval.length() - 1));
            else
                return (retval);
        } else {
            return (null);
        }
    }
    
    /**
     * Returns a code for creating a GBConstraints instance 
     * like the one given.
     *
     * @param obj an instance of GBConstraints
     */
    public String convertToCode(Object obj) {
        return (/* NOI18N */("new GBConstraints(\""
			     + convertToString(obj) + "\")"));
    }
    
    private int getIntegerFromTable(Hashtable table, String key) {
        String value = (String) table.get(key);
        if (value != null)
            return (Integer.valueOf(value).intValue());
        else
            return (0);
    }
    
    private boolean getBooleanFromTable(Hashtable table, String key) {
        String value = (String) table.get(key);
        if (value != null)
            return (Boolean.valueOf(value).booleanValue());
        else
            return (false);
    }
    
    private double getDoubleFromTable(Hashtable table, String key) {
        String value = (String) table.get(key);
        if (value != null)
            return (Double.valueOf(value).doubleValue());
        else
            return (0.0);
    }
    
    private int getConstantFromTable(Hashtable table, String key) {
        String value = (String) table.get(key);
        if (value != null)
            return (stringToConstant(value));
        else
            return (0);
    }
    
    /**
     * Converts a string into a new instance of GBConstraints.
     *
     * @exception Error when there is a problem with the string
     */
    public Object convertFromString(String s) {
        if (s != null && s.length() > 0) {
            SubFieldTokenizer sft = new SubFieldTokenizer(s);
            Hashtable table = sft.getHashtable();
            GBConstraints retval = new GBConstraints();
            
            if (table.containsKey(/* NOI18N */"x")) {
                retval.gridx = getIntegerFromTable(table, /* NOI18N */"x");
            }
            if (table.containsKey(/* NOI18N */"y")) {
                retval.gridy = getIntegerFromTable(table, /* NOI18N */"y");
            }
            if (table.containsKey(/* NOI18N */"width")) {
                retval.gridwidth = getIntegerFromTable(
					       table, /* NOI18N */"width");
            }
            if (table.containsKey(/* NOI18N */"height")) {
                retval.gridheight = getIntegerFromTable(
						table, /* NOI18N */"height");
            }
            if (table.containsKey(/* NOI18N */"weightx")) {
                retval.weightx = getDoubleFromTable(
					    table, /* NOI18N */"weightx");
            }
            if (table.containsKey(/* NOI18N */"weighty")) {
                retval.weighty = getDoubleFromTable(
					    table, /* NOI18N */"weighty");
            }
            if (table.containsKey(/* NOI18N */"fill")) {
                retval.fill = getConstantFromTable(
						   table, /* NOI18N */"fill");
            }
            if (table.containsKey(/* NOI18N */"ipadx")) {
                retval.ipadx = getIntegerFromTable(
						   table, /* NOI18N */"ipadx");
            }
            if (table.containsKey(/* NOI18N */"ipady")) {
                retval.ipady = getIntegerFromTable(
						   table, /* NOI18N */"ipady");
            }
            if (table.containsKey(/* NOI18N */"shrinkx")) {
                retval.shrinkx = getBooleanFromTable(
					     table, /* NOI18N */"shrinkx");
            }
            if (table.containsKey(/* NOI18N */"shrinky")) {
                retval.shrinky = getBooleanFromTable(
					     table, /* NOI18N */"shrinky");
            }
            
            return (retval);
        } else {
            return (null);
        }
    }
}