view usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextFieldShadow.java @ 0:c9caec207d52 b86

Initial porting based on b86
author Koji Uno <koji.uno@sun.com>
date Tue, 02 Jun 2009 18:56:50 +0900
parents
children 1a15d5aaf794
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	"@(#)TextFieldShadow.java	1.2	05/06/08 SMI"
 *
 * Copyright (c) 2000 by Sun Microsystems, Inc.
 * All rights reserved.
 */

/*
 *        Copyright (C) 1996  Active Software, Inc.
 *                  All rights reserved.
 *
 * @(#) @(#) TextFieldShadow.java 1.34 - last change made 08/12/97 
 */

package sunsoft.jws.visual.rt.shadow.java.awt;

import sunsoft.jws.visual.rt.base.Global;
import sunsoft.jws.visual.rt.awt.GBConstraints;
import java.awt.TextField;
import java.awt.Insets;
import java.awt.SystemColor;

/**
 * Wraps an AWT widget.  The attributes available for this
 * class are listed below.  In the type column, type names beginning
 * with "sunsoft.jws.visual.rt" have been abbreviated to begin with "rt".
 *
 * <pre>
name            type                      default value
-----------------------------------------------------------------------
numColumns      java.lang.Integer         10
echoCharacter   java.lang.Character       new Character((char) 0)
*  < /pre>
*
* Check the super class for additional attributes.
*
* @see TextField
* @version 	1.34, 08/12/97
*/
public class TextFieldShadow extends TextComponentShadow {
    
    public TextFieldShadow() {
        attributes.add(/* NOI18N */"text",
		       /* NOI18N */"java.lang.String",
		       /* NOI18N */"", NOEDITOR);
        attributes.add(/* NOI18N */"numColumns",
		       /* NOI18N */"java.lang.Integer", new Integer(10),
		       CONSTRUCTOR);
        
        // This is a constructor attribute because the "setEchoCharater"
        // method does not actually update the text on Windows.  Also,
        // the workaround which is to set the text again does not
        // work on Motif!
        attributes.add(/* NOI18N */"echoCharacter",
		       /* NOI18N */"java.lang.Character",
		       new Character((char)0), CONSTRUCTOR);
        GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
        c.fill = GBConstraints.HORIZONTAL;
        attributes.add(/* NOI18N */"GBConstraints",
		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
		    c);
        
        // Workaround for layout problems caused by the fact that
        // textfields on all platforms except WindowsNT have gaps around
        // the border of the textfield.
        if (Global.isWindowsNT()) {
            attributes.add(/* NOI18N */"insets",
			   /* NOI18N */"java.awt.Insets",
			   new Insets(2, 2, 2, 2));
        }
        
        // This is a work around for JDK color bug. The defaults are
        // not correctly set
        if (Global.isWindows())  {
            attributes.add(/* NOI18N */"background",
			   /* NOI18N */"java.awt.Color",
			   SystemColor.window, DONTFETCH);
        }
        if (Global.isMotif())  {
            attributes.add(/* NOI18N */"background",
			   /* NOI18N */"java.awt.Color",
			   SystemColor.text, DONTFETCH);
            attributes.add(/* NOI18N */"foreground",
			   /* NOI18N */"java.awt.Color",
			   SystemColor.textText, DONTFETCH);
        }
        
    }
    
    protected Object getOnBody(String key) {
        if (key.equals(/* NOI18N */"numColumns"))
	    return (new Integer((((TextField) body).getColumns())));
        if (key.equals(/* NOI18N */"echoCharacter")) {
            return (new Character((((TextField) body).getEchoChar())));
        } else
            return (super.getOnBody(key));
    }
    
    protected void setOnBody(String key, Object value) {
        if (key.equals(/* NOI18N */"numColumns")) {
            return;	// can't set this attribute dynamically
        } else if (key.equals(/* NOI18N */"echoCharacter")) {
            if (value != null) {
		    /* JSTYLED */
                ((TextField) body).setEchoCharacter(((Character)value).charValue());
            }
        }
        else
            super.setOnBody(key, value);
    }
    
    public void createBody() {
        boolean initText, initColumns;
        String initTextValue;
        Integer initColumnsValue;
        Character echoChar;
        
        initTextValue = (String) (getFromTable(/* NOI18N */"text"));
        initText = (initTextValue != null);
        
        initColumnsValue = (Integer) (getFromTable(/* NOI18N */"numColumns"));
        initColumns = (initColumnsValue != null);
        
        if (initText & initColumns)
            body = new TextField(initTextValue, initColumnsValue.intValue());
        else if (initColumns)
            body = new TextField(initColumnsValue.intValue());
        else if (initText)
            body = new TextField(initTextValue);
        else
            body = new TextField();
        
        echoChar = (Character) get(/* NOI18N */"echoCharacter");
        if (echoChar != null) {
            ((TextField) body).setEchoCharacter(echoChar.charValue());
        }
    }
}