changeset 14958:ad2c7680efd9

fixes #114 kerberos Java GUI should go away
author Garrett D'Amore <garrett@damore.org>
date Thu, 13 Nov 2014 13:30:26 -0800
parents 5f8ea225e580
children 5db02c42bbb2
files usr/src/cmd/krb5/kadmin/Makefile usr/src/cmd/krb5/kadmin/gui/GuiResource.java usr/src/cmd/krb5/kadmin/gui/HelpData.java usr/src/cmd/krb5/kadmin/gui/HelpIndex.html usr/src/cmd/krb5/kadmin/gui/KdcGui.java usr/src/cmd/krb5/kadmin/gui/KdcGuiMain.java usr/src/cmd/krb5/kadmin/gui/KdcGuiOps.java usr/src/cmd/krb5/kadmin/gui/KdcGuiRoot.java usr/src/cmd/krb5/kadmin/gui/Makefile usr/src/cmd/krb5/kadmin/gui/dataclasses/Defaults.java usr/src/cmd/krb5/kadmin/gui/dataclasses/Filter.java usr/src/cmd/krb5/kadmin/gui/dataclasses/Flags.java usr/src/cmd/krb5/kadmin/gui/dataclasses/Krb5Conf.java usr/src/cmd/krb5/kadmin/gui/dataclasses/Makefile usr/src/cmd/krb5/kadmin/gui/dataclasses/Policy.java usr/src/cmd/krb5/kadmin/gui/dataclasses/PolicyList.java usr/src/cmd/krb5/kadmin/gui/dataclasses/Principal.java usr/src/cmd/krb5/kadmin/gui/dataclasses/PrincipalList.java usr/src/cmd/krb5/kadmin/gui/dataclasses/PrintUtil.java usr/src/cmd/krb5/kadmin/gui/dchanger/DCCircularTextField.java usr/src/cmd/krb5/kadmin/gui/dchanger/DCListener.java usr/src/cmd/krb5/kadmin/gui/dchanger/DCPanel.java usr/src/cmd/krb5/kadmin/gui/dchanger/DCTextField.java usr/src/cmd/krb5/kadmin/gui/dchanger/DateTimeDialog.java usr/src/cmd/krb5/kadmin/gui/dchanger/DurationHelper.java usr/src/cmd/krb5/kadmin/gui/dchanger/EncListDialog.java usr/src/cmd/krb5/kadmin/gui/dchanger/LineSeparator.java usr/src/cmd/krb5/kadmin/gui/dchanger/Makefile usr/src/cmd/krb5/kadmin/gui/gkadmin.template usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c usr/src/cmd/krb5/kadmin/gui/native/Kadmin.java usr/src/cmd/krb5/kadmin/gui/native/Makefile usr/src/cmd/krb5/kadmin/gui/native/Makefile.com usr/src/cmd/krb5/kadmin/gui/native/Test.java usr/src/cmd/krb5/kadmin/gui/native/i386/Makefile usr/src/cmd/krb5/kadmin/gui/native/mapfile-vers usr/src/cmd/krb5/kadmin/gui/native/sparc/Makefile usr/src/cmd/krb5/kadmin/gui/util/ChoiceDialog.java usr/src/cmd/krb5/kadmin/gui/util/ContextHelp.java usr/src/cmd/krb5/kadmin/gui/util/HelpDialog.java usr/src/cmd/krb5/kadmin/gui/util/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/Makefile.com usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLCheckbox.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLChoice.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLComponent.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLIconLabel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CardPanel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxList.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxPanel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnList.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnListCanvas.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnListThread.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/EditLine.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBConstraints.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBContainer.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBLayout.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBPanel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ImageButton.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ImageLabel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/KeyField.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/LabelBar.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/MultiLineLabel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RWHelper.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootDialog.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootFrame.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootWindow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollPanel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/Scrollable.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollableArea.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/StatusBar.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/StringVector.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TabbedFolder.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TextList.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TextView.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJButton.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJCanvas.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJErrorDialog.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJFlowLayout.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJPanel.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJScrollbar.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/WinScrollbar.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AMContainer.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AMContainerHelper.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Attribute.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AttributeList.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AttributeManager.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/BeanSerialization.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/CustomClassLoader.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/DesignerAccess.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/DesignerErrorInterface.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/ExternalCallOut.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Global.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Group.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/MainHelper.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Message.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/NVGroup.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Operations.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/QSortCompare.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Registry.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/RegistryEntry.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Root.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/RootObserver.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Shadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Util.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/VBClassLoader.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/VJException.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/CEStreamExhausted.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/CRC16.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/UCDecoder.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/UCEncoder.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/MessageCatalog.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties_en.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties_en_US.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/BorderPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/CardPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/CheckboxPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ColumnListShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/FlowPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GBPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GenericComponentShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GenericWindowShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ImageButtonShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ImageLabelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/LabelBarShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/MultiLineLabelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ScrollPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ScrollableAreaShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/TabbedFolderShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/TextListShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/VJCanvasShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/VJPanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanComponentShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanableComponent.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ButtonShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/CanvasShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/CheckboxShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ChoiceShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ComponentShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ContainerShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/DialogShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/FileDialogShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/FrameShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/JAShadowAccess.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/LabelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ListShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuBarShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuComponentShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuItemShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/PanelShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ScrollbarShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextAreaShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextComponentShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextFieldShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/WindowShadow.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMRef.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMRefConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AlignmentEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AnchorEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ApplyException.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AttributeConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AttributeListConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnumConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnumHelper.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BooleanConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/CharacterConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorStore.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Converter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DimensionConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DoubleArrayConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DoubleHolder.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/FontConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/GBConstraintsConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ImageRef.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ImageRefConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/InsetsConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntArrayConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntHolder.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntegerConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ListParser.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Makefile usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ModeEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Op.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpAction.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpArrayConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpFilter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OrientationEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ParseException.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/PointConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ReliefEnum.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/StringArrayConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/StringConverter.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/SubFieldTokenizer.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/TypeEditor.java usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/UnknownTypeConverter.java usr/src/pkg/manifests/system-security-kerberos-5.mf
diffstat 209 files changed, 2 insertions(+), 58178 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/krb5/kadmin/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ b/usr/src/cmd/krb5/kadmin/Makefile	Thu Nov 13 13:30:26 2014 -0800
@@ -25,7 +25,7 @@
 
 include ../../Makefile.cmd
 
-SUBDIRS= cli dbutil ktutil kpasswd server kclient kdcmgr gui
+SUBDIRS= cli dbutil ktutil kpasswd server kclient kdcmgr
 
 all :=		TARGET= all
 clean :=	TARGET= clean
--- a/usr/src/cmd/krb5/kadmin/gui/GuiResource.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
- * 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 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-import java.util.ListResourceBundle;
-
-public class GuiResource extends ListResourceBundle {
-    public Object[][] getContents() {
-        return contents;
-    }
-    
-    static final Object[][] contents = {
-        {"Never", "Never"},
-        {"Warning", "Warning"},
-        {"Error", "Error"},
-        {"Confirm Action", "Confirm Action"},
-        {"Principals", "Principals"},
-        {"Policies", "Policies"},
-        {"Defaults", "Defaults"},
-        {"Principal List", "Principal List"},
-        {"Policy List", "Policy List"},
-        {"Principal Basics", "Principal Basics"},
-        {"Principal Details", "Principal Details"},
-        {"Principal Flags", "Principal Flags"},
-        {"Policy Details", "Policy Details" },
-        {"Modify ", "Modify "},
-        {"New ", "New "},
-        {"Duplicate ", "Duplicate "},
-        {"- *CHANGES*", "- *CHANGES*"},
-        {"OK", "OK"},
-        {"Clear", "Clear"},
-        {"New", "New"},
-        {"Please save or cancel first", "Please save or cancel first"},
-        {"Cannot find default realm; check /etc/krb5/krb5.conf",
-	 "Cannot find default realm; check /etc/krb5/krb5.conf"},
-        {"Cannot find default server for realm",
-	 "Cannot find default server for realm"},
-        {"A password must be specified", "A password must be specified"},
-        {"A realm entry must be specified",
-	 "A realm entry must be specified"},
-        {"A master KDC entry must be specified",
-	 "A master KDC entry must be specified"},
-        {"Invalid login, please try again",
-	 "Invalid login, please try again"},
-        {"Please enter a principal name or cancel",
-	 "Please enter a principal name or cancel"},
-        {"Please enter a password or cancel",
-	 "Please enter a password or cancel"},
-	{"If changing the key encryption types then specify a new password"
-	 +" for the principal whose keys are being changed",
-	 "If changing the key encryption types then specify a new password"
-	 +" for the principal whose keys are being changed"},
-        {"Please enter a policy name or cancel",
-	 "Please enter a policy name or cancel"},
-        {"Context-Sensitive Help", "Context-Sensitive Help"},
-        {"Click on GUI items to get help.\n\nClick on button below to dismiss",
-	 "Click on GUI items to get help.\n\nClick on button below to dismiss"},
-        {"Principal Name:", "Principal Name:"},
-        {"Principal", "Principal"},
-        {"Password:", "Password:"},
-        {"Realm:", "Realm:"},
-        {"Master KDC:", "Master KDC:"},
-        {"Exit", "Exit"},
-        {"About", "About"},
-        {"Dismiss", "Dismiss"},
-        {"Start Over", "Start Over"},
-        {"Filter Pattern:", "Filter Pattern:"},
-        {"Clear Filter", "Clear Filter"},
-        {"Clear Name", "Clear Name"},
-        {"Modify", "Modify"},
-        {"Create New", "Create New"},
-        {"Delete", "Delete"},
-        {"Duplicate", "Duplicate"},
-        {"General", "General"},
-        {"Comments:", "Comments:"},
-        {"Policy:", "Policy:"},
-        {"Policy", "Policy"},
-        {"Generate Random Password", "Generate Random Password"},
-        {"Admin History", "Admin History"},
-        {"Last Principal Change:", "Last Principal Change:"},
-        {"Last Changed By:", "Last Changed By:"},
-        {"Account Expires:", "Account Expires:"},
-        {"Encryption Key Types:", "Encryption Key Types:"},
-        {"Save", "Save"},
-        {"Previous", "Previous"},
-        {"Next", "Next"},
-        {"Done", "Done"},
-        {"Cancel", "Cancel"},
-        {"Discard", "Discard"},
-        {"Password", "Password"},
-        {"Last Success:", "Last Success:"},
-        {"Last Failure:", "Last Failure:"},
-        {"Failure Count:", "Failure Count:"},
-        {"Last Password Change:", "Last Password Change:"},
-        {"Password Expires:", "Password Expires:"},
-        {"Key Version:", "Key Version:"},
-        {"Ticket Lifetimes", "Ticket Lifetimes"},
-        {"Ticket", "Ticket"},
-        {"Maximum Lifetime (seconds):",
-	 "Maximum Lifetime (seconds):"},
-        {"Maximum Renewal (seconds):",
-	 "Maximum Renewal (seconds):"},
-        {"Security", "Security"},
-        {"Disable Account", "Disable Account"},
-        {"Force Password Change", "Force Password Change"},
-        {"Allow Postdated Tickets", "Allow Postdated Tickets"},
-        {"Allow Forwardable Tickets", "Allow Forwardable Tickets"},
-        {"Allow Renewable Tickets", "Allow Renewable Tickets"},
-        {"Allow Proxiable Tickets", "Allow Proxiable Tickets"},
-        {"Disallow Service Tickets", "Disallow Service Tickets"},
-        {"Miscellaneous", "Miscellaneous"},
-        {"Enforce Policy", "Enforce Policy"},
-        {"Enable DES MD5", "Enable DES MD5"},
-        {"Enable TGT-Based Authentication",
-	 "Enable TGT-Based Authentication"},
-        {"Enable Duplicate Authentication",
-	 "Enable Duplicate Authentication"},
-        {"Require Preauthentication", "Require Preauthentication"},
-        {"Require Hardware Authentication",
-	 "Require Hardware Authentication"},
-        {"Policy Name:", "Policy Name:"},
-        {"Minimum Password Length:", "Minimum Password Length:"},
-        {"Minimum Password Classes:", "Minimum Password Classes:"},
-        {"Saved Password History:", "Saved Password History:"},
-        {"Minimum Ticket Lifetime (seconds):",
-	 "Minimum Ticket Lifetime (seconds):"},
-        {"Maximum Ticket Lifetime (seconds):",
-	 "Maximum Ticket Lifetime (seconds):"},
-        {"Maximum Ticket Renewal (seconds):",
-	 "Maximum Ticket Renewal (seconds):"},
-        {"Principals Using This Policy:", "Principals Using This Policy:"},
-        {"Account Expiry:", "Account Expiry:"},
-        {"Defaults for New Principals", "Defaults for New Principals"},
-        {"Defaults for Existing Principals",
-	 "Defaults for Existing Principals"},
-        
-        {"SEAM Date/Time Helper", "SEAM Date/Time Helper"},
-        {"Month", "Month"},
-        {"Date", "Date"},
-        {"Year", "Year"},
-        {"Hour", "Hour"},
-        {"Minute", "Minute"},
-        {"Second", "Second"},
-        {"Now", "Now"},
-        {"Midnight", "Midnight"},
-        {"Help", "Help"},
-        {"Help for Date and Time Dialog", "Help for Date and Time Dialog"},
-
-	{"SEAM Encryption Type List Helper",
-	 "SEAM Encryption Type List Helper"},
-	{"Help for Encryption Type Dialog", "Help for Encryption Type Dialog"},
-        
-        {"SEAM Duration Helper", "SEAM Duration Helper"},
-        {"Weeks", "Weeks"},
-        {"Unit", "Unit"},
-        {"Value", "Value"},
-        {"Seconds", "Seconds"},
-        {"Minutes", "Minutes"},
-        {"Hours", "Hours"},
-        {"Days", "Days"},
-        {"Weeks", "Weeks"},
-        {"Months", "Months"},
-        {"Years", "Years"},
-        {"=", "="},
-        {"Help for entering time duration",
-	 "Help for entering time duration"},
-        
-        {"SEAM Print Helper", "SEAM Print Helper"},
-        {"Print Command", "Print Command"},
-        {"File Name", "File Name"},
-        {"Print", "Print"},
-        {"SEAM File Helper", "SEAM File Helper"},
-        
-        {"Reference Count:", "Reference Count:"},
-        {"Minimum Password Lifetime (seconds):",
-	 "Minimum Password Lifetime (seconds):"},
-        {"Maximum Password Lifetime (seconds):",
-	 "Maximum Password Lifetime (seconds):"},
-        {"Password Save Count:", "Password Save Count:"},
-        
-        {"Flags:", "Flags:"},
-        {"None", "None"},
-        {"Allow Service Tickets", "Allow Service Tickets"},
-        {"Allow TGT-Based Authentication",
-	 "Allow TGT-Based Authentication"},
-        {"Allow Duplicate Authentication",
-	 "Allow Duplicate Authentication"},
-        {"Allow Service Tickets", "Allow Service Tickets"},
-        {"Require Preauthentication", "Require Preauthentication"},
-        {"Require Hardware Preauthentication",
-	 "Require Hardware Preauthentication"},
-        {"Require Password Change", "Require Password Change"},
-        {"Disallow Service", "Disallow Service"},
-        {"Support DES MD5", "Support DES MD5"},
-        {"Enforce Policy", "Enforce Policy"},
-        {"(no policy)", "(no policy)"},
-        {"Policy name already exists. Please choose a different",
-	 "policy name or cancel",
-	 "Policy name already exists. Please choose a different",
-	 "policy name or cancel"},
-        {"You are about to destroy data.",
-	 "You are about to destroy data."},
-        {"You are about to lose changes.",
-	 "You are about to lose changes."},
-        {"Click OK to proceed or Cancel to continue editing.",
-	 "Click OK to proceed or Cancel to continue editing."},
-        {"Click Save to commit changes, Discard to discard changes,"
-	 +" or Cancel to continue editing.",
-	 "Click Save to commit changes, Discard to discard changes,"
-	 +" or Cancel to continue editing."},
-        {"Unable to access lists; please use the Name field.",
-	 "Unable to access lists; please use the Name field."},
-        {"About SEAM Adminstration Tool", "About SEAM Adminstration Tool"},
-        {"Sun Enterprise Authentication Mechanism Administration Tool",
-	 "Sun Enterprise Authentication Mechanism Administration Tool"},
-        {"Copyright 2005 Sun Microsystems, Inc.  All rights reserved.",
-	 "Copyright 2005 Sun Microsystems, Inc.  All rights reserved."},
-	{"Use is subject to license terms.", "Use is subject to license terms"},
-        {"Example: ", "Example: "},
-        {"or", "or"},
-        {"Properties", "Properties"},
-        {"List Controls", "List Controls"},
-        {"Show Lists", "Show Lists"},
-        {"Cache Lists Forever", "Cache Lists Forever"},
-        {"List Cache Timeout (seconds):", "List Cache Timeout (seconds):"},
-        {"Apply", "Apply"},
-        {"Loading principal list", "Loading principal list"},
-        {"Loading policy list", "Loading policy list"},
-        {"File", "File"},
-        {"Edit", "Edit"},
-        {"Log Out", "Log Out"},
-        {"Current Principal", "Current Principal"},
-        {"Current Policy", "Current Policy"},
-        {"Properties...", "Properties..."},
-        {"Refresh", "Refresh"},
-        {"Help Contents", "Help Contents"},
-        {"Insufficient privileges to use gkadmin: ",
-	 "Insufficient privileges to use gkadmin: "},
-        {"Please try using another principal.",
-	 "Please try using another principal."},
-        {"Let the KDC control the ticket lifetime values",
-	 "Let the KDC control the ticket lifetime values"},
-        {"SEAM Administration Login", "SEAM Administration Login"},
-        {"SEAM Administration Tool", "SEAM Administration Tool"},
-        {"Can't run /usr/dt/bin/netscape.",
-	 "Can't run /usr/dt/bin/netscape."},
-        {"Invalid URL: ", "Invalid URL: "}
-    };
-}
--- a/usr/src/cmd/krb5/kadmin/gui/HelpData.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1096 +0,0 @@
-/*
- * 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 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-import java.util.ListResourceBundle;
-
-// On-line spot help.  Defined as strings of a "contents" object.
-
-public class HelpData extends ListResourceBundle {
-    public Object [][] getContents() {
-        return contents;
-    }
-    
-    static final Object [][] contents = {
-        
-        //
-        //  Main Login Panel
-        //
-        
-        {"MainLoginPanel",
-	 // Not currently available in GUI
-	 "This window enables you to log in and use the SEAM Administration"
-	 +"Tool. The default information that initially fills in the fields"
-	 +" is read from the system's /etc/krb5/krb5.conf file (except"
-	 +" for the principal name)."},
-        
-        
-        {"LoginName",
-	 "The principal name to log in with (without realm included)."
-	 +"In order to use the SEAM Administration Tool, your principal"
-	 +" must have the appropriate privileges specified in the master"
-	 +" KDC's kadm5.acl"
-	 +" file.\n"
-	 +" \n"
-	 +"The default principal name consists of your user name with the"
-	 +" 'admin' instance appended. For example, 'jdb/admin'."},
-        
-        
-        {"LoginPass",
-	 "The password for the principal."},
-        
-        
-        {"LoginRealm",
-	 "The Kerberos realm, which is similar to a DNS domain."
-	 +"In most cases, the realm name is your domain name, and it should"
-	 +" be upper-case. For example, 'MTN.ACME.COM'.\n"
-	 +" \n"
-	 +"Each realm has one master KDC and may include slave"
-	 +" KDCs that contain read-only copies of the master."
-	 +"The default realm is read from the system's"
-	 +" /etc/krb5/krb5.conf file."},
-        
-        
-        {"LoginServer",
-	 "The master KDC where the Kerberos administration server, kadmind,"
-	 +" is running and where the KDC (Key Distribution Center) is located."
-	 +"You must provide a fully-qualified host name for the master KDC.\n"
-	 +" \n"
-	 +"The default admin server is read from the"
-	 +" system's /etc/krb5/krb5.conf file."},
-        
-        
-        {"LoginOK",
-	 "Checks the information"
-	 +" in this window, and if valid, logs you into the tool."},
-        
-        
-        {"LoginStartOver",
-	 "Resets all fields in this window to their initial"
-	 +" settings (when the tool was started)."},
-        
-        
-        //
-        // Panel Tabs
-        //
-        
-        
-        {"PrincipalTab",
-	 "Sends you to the list of principals. If you are currently"
-	 +" working on a principal or policy and you've made"
-	 +" changes, you'll be prompted to cancel or save"
-	 +" the changes before being sent to Principal List panel."},
-        
-        
-        {"PolicyTab",
-	 "Sends you to the list of policies. If you are currently working on a"
-	 +" principal or policy and you've made changes, you'll be prompted to"
-	 +" cancel or save the changes before being sent to Policy"
-	 +" List panel."},
-        
-        
-        
-        //
-        // Principal List Panel
-        //
-        
-        
-        {"PrinListPanel",
-	 // Not currently available in GUI
-	 "This panel enables you to select a principal from the list to modify,"
-	 +" delete, and duplicate. You can also create a new principal.\n"
-	 +" \n"
-	 +"  principal is an entity to which tickets may be assigned, generally"
-	 +" of the form <primary>/<instance>@<REALM>. For example,"
-	 +" jdb/admin@MTN.ACME.COM.\n"
-	 +" \n"
-	 +" display a specific principal or"
-	 +" sublist of principals, enter a filter string in the Filter Pattern"
-	 +" field and press"
-	 +" return.\n"
-	 +" \n"
-	 +"To perform an operation on a principal, select it from the list and"
-	 +" click the appropriate button. To create a new principal, click"
-	 +" Create New."},
-        
-        
-        {"PrList",
-	 "Displays all the available principals in the specified realm.\n"
-	 +" \n"
-	 +"To select a principal, click on its name in the list;"
-	 +" double-clicking on a principal is equivalent to selecting"
-	 +" the principal and clicking Modify."},
-        
-        
-        {"PrNoList",
-	 "This list panel is blank when you don't have list privileges"
-	 +" or you've chosen not to show lists."},
-        
-        
-        {"PrListPattern",
-	 "Enables you to apply a filter on the available principals to"
-	 +" display a particular principal or sublist of principals."
-	 +"The filter string you enter may consist of one or more"
-	 +" characters. And, because the filter mechanism is case"
-	 +" sensitive, you need to use the appropriate upper-case and"
-	 +" lower-case letters for the filter.\n"
-	 +" \n"
-	 +"For example, entering 'user' for the filter would match"
-	 +" and display principals such as 'enguser', 'user1',"
-	 +" and 'useradmin'.\n"
-	 +" '\n"
-	 +"To display a particular principal or sublist of"
-	 +" principals, enter a filter string and press return.\n"
-	 +" \n"
-	 +"To display the entire list of principals, click Clear"
-	 +" Filter(or clear the Filter Pattern field and press return)."},
-        
-        
-        {"PrNameNoList",
-	 "When the principal list is not displayed,"
-	 +" you must enter principal names in this field to perform"
-	 +" operations on them. Entering a name is equivalent to selecting"
-	 +" an item from the principal list in normal operation.\n"
-	 +" \n"
-	 +"To clear the principal entry, click Clear Name (or clear the"
-	 +" Name field and press return)."},
-        
-        
-        {"PrListClear",
-	 "Clears the filter and displays the full list of available",
-	 " principals."},
-        
-        
-        {"PrNoListClear",
-	 "Clears the Name field."},
-        
-        
-        {"PrListModify",
-	 "Opens a series of panels that enable you to modify the selected"
-	 +" principal, such as the principal's password, expiry date,"
-	 +" and policy."},
-        
-        
-        {"PrListAdd",
-	 "Opens a series of panels that enable you to create a new principal."
-	 +" The panels will have some of the fields already filled in with"
-	 +" default values, which you can set up by choosing Properties from"
-	 +" the Edit menu.\n"
-	 +" \n"
-	 +"The Duplicate button performs the same function; however,"
-	 +" instead of the fields filled in with default values, the fields"
-	 +" are filled in with the same values as the selected principal."},
-        
-        
-        {"PrListDelete",
-	 "Deletes the selected principal from the Kerberos realm.  The deleted"
-	 +" principal can no longer be assigned Kerberos tickets."},
-        
-        
-        {"PrListDuplicate",
-	 "Opens a series of panels that enable you to duplicate the selected"
-	 +" principal. The panels will have the fields already filled in"
-	 +" with the same values as the selected principal,"
-	 +" except for the principal's name and password."
-	 +"You can use this button to quickly create a new principal using "
-	 +" another principal as a template.\n"
-	 +" \n"
-	 +"The Create New button performs the same function; however,"
-	 +" instead of"
-	 +" the fields filled in with the same values as the selected"
-	 +" principal, the fields are filled in with default values."},
-        
-        
-        
-        //
-        //  Principal Basics Panel
-        //
-        
-        
-        {"PrincipalBasicsPanel",
-	 // Not currently available in GUI
-	 "This panel enables you to specify the basic attributes for a"
-	 +" principal."},
-        
-        
-        {"PrName",
-	 "The name of the principal (the <primary>/<instance> part of a"
-	 +" fully-qualified principal name).  A principal is a unique identity"
-	 +" to which the KDC can assign tickets.\n"
-	 +" \n"
-	 +"If you are modifying a principal,"
-	 +" you cannot edit a principal's name.\n"
-	 +" \n"
-	 +"For service (or host) principal names, the <primary> part must be"
-	 +" the name of a service, such as 'host' for telnet and rsh"
-	 +" services,'ftp', or 'nfs'."
-	 +"The < instance > part must be the name of the system"
-	 +" that requires Kerberos authentication for that service."
-	 +"For example, 'host/denver.mtn.acme.com'.\n"
-	 +" \n"
-	 +"For user principal names, the < primary > part must be"
-	 +" the name of the"
-	 +" user."
-	 +"The < instance > part is optional, but it can be a term used to"
-	 +" describe the intended use for the principals, such as 'admin', or"
-	 +" it can be the name of a system, which enables you to create"
-	 +" different"
-	 +" principals for the same user on a per-system basis."
-	 +" For example, 'jdb/admin', 'jdb/denver@acme.com', or 'jdb'."},
-        
-        
-        {"PrComments",
-	 "Comments related to the principal (for example,"
-	 +" 'Temporary Account')."},
-        
-        
-        {"PrPolicy",
-	 "A menu of available policies for the principal."},
-        
-        
-        {"PrPassword",
-	 "The password for the principal."},
-        
-        
-        {"PrBasicRandomPw",
-	 "Creates a random password for the principal and copies it into"
-	 +" the Password field."},
-        
-        
-        {"PrinBasLastPrincipalChange",
-	 "The date on which information for the principal was"
-	 +" last modified."},
-        
-        
-        {"PrinBasLastChangedBy",
-	 "The name of the principal who last modified the account for this"
-	 +" principal."},
-        
-        {"EncList",
-	 "The encryption types that the principal's keys will be created with."
-	 +" Use a white space to separate encryption types."
-	 +" Leave blank if the default set of encryption types is desired."
-	 +" Refer to krb5.conf for the available encryption types supported."
-	 +" The default set of dialog choices can be over-ridden by defining"
-	 +" supported_enctypes with the desired list of encryption types in"
-	 +" the realm's section of krb5.conf."
-	 +" \n"
-	 +"Changing encryption types is only applicable when creating a"
-	 +" principal or when changing a password.  So a password must be"
-	 +" accompanied with any encryption type changes."},
-        
-        {"PrExpiry",
-	 "The date and time on which the principal's account expires. When the"
-	 +" account expires, the principal can no longer"
-	 +" get a ticket-granting ticket (TGT) and may not be able to log in.\n"
-	 +" \n"
-	 +"To set up the account with no expiration date,"
-	 +" enter the word 'never' in the field.\n"
-	 +" \n"
-	 +"To help create a formatted date and time entry, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PrSave",
-	 "Saves any changes you've made to the current principal."},
-        
-        
-        {"PrCancel",
-	 "Discards all the changes you've made to the current principal"
-	 +" and sends you back to the list of principals."},
-        
-        
-        {"PrBasicPrevious",
-	 "Sends you back to the list of principals.\n"
-	 +" \n"
-	 +"Note that you must save or cancel any changes you've made to"
-	 +" the current principal before you can go back to the list."},
-        
-        
-        {"PrBasicNext",
-	 "Sends you to the next Principal Details panel that contains"
-	 +" the password and ticket lifetime attributes for the principal."},
-        
-        
-        
-        //
-        // Principal Detail Panel
-        //
-        
-        
-        {"PrincipalDetailPanel",
-	 // Not currently available in GUI
-	 "This panel enables you to specify the password and"
-	 +" ticket lifetime attributes for the principal principal."},
-        
-        
-        {"PrinDetLastSuccess",
-	 "The date and time when the principal last logged in successfully."},
-        
-        
-        {"PrinDetLastFailure",
-	 "The date and time when the last login failure for the"
-	 +" principal occurred."},
-        
-        
-        {"PrinDetFailureCount",
-	 "The number of times that there has been a login failure"
-	 +" for the principal."},
-        
-        
-        {"PrinDetLastPasswordChange",
-	 "The date and time when the principal's password was "
-	 +" last changed."},
-        
-        
-        {"PrPwExpiry",
-	 "The date and time when the principal's current password"
-	 +" will expire.\n"
-	 +" \n"
-	 +"To set up the password with no expiration date, enter the"
-	 +" word 'never'in the field.\n"
-	 +" \n"
-	 +"To help create a formatted date and time entry, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PrKvno",
-	 "The key version number for the principal; this is normally"
-	 +" changed only when a password has been compromised."},
-        
-        
-        {"PrMaxLifetime",
-	 "The maximum length of time for which a ticket can be"
-	 +" granted for the principal (without renewal).\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PrMaxRenewal",
-	 "The maximum length of time for which an existing"
-	 +" ticket may be renewed for the principal.\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PrDetailPrevious",
-	 "Sends you back to the previous Principal Basics panel."},
-        
-        
-        {"PrDetailNext",
-	 "Sends you to the next Principal Flags panel that contains"
-	 +" security, ticket control, and miscellaneous attributes for"
-	 +" the principal."},
-        
-        
-        
-        //
-        // Principal Flags Panel
-        //
-        
-        
-        
-        {"PrincipalFlagsPanel",
-	 // Not currently available in GUI
-	 "This panel enables you to specify the security, ticket control, and"
-	 +" miscellaneous attributes for the principal."},
-        
-        
-        {"PrLockAcct",
-	 "When checked, prevents the principal from logging in."
-	 +" This is a easy way to temporarily freeze"
-	 +" a principal account for any reason."},
-        
-        
-        {"PrForcePwChange",
-	 "When checked, expires the principal's current password, forcing the"
-	 +" user to use the kpasswd command to create a new password."
-	 +" This is useful if"
-	 +" there is a security breach and you need to make sure that old"
-	 +" passwords are replaced."},
-        
-        
-        {"PrAllowPostdated",
-	 "When checked, allows the principal to obtain postdated tickets.\n"
-	 +" \n"
-	 +"For example, you may need to use postdated tickets for cron jobs"
-	 +" that need to run after hours and can't obtain tickets in"
-	 +" advance because of short ticket lifetimes."},
-        
-        
-        {"PrAllowRenewable",
-	 "When checked, allows the principal to obtain renewable tickets.\n"
-	 +" \n"
-	 +"A principal can automatically extend the expiration date or time of"
-	 +" a ticket that is renewable (rather than having to get a new"
-	 +" ticket after the first one expires). Currently, the NFS service"
-	 +" is the only service that can renew tickets."},
-        
-        
-        {"PrAllowSvr",
-	 "When checked, allows service tickets to be issued for"
-	 +" the principal.\n"
-	 +" \n"
-	 +"You should not allow service tickets to be issued for the"
-	 +" 'kadmin/admin' and 'changepw/admin' principals."
-	 +"  This will ensure that these"
-	 +" principals can only update the KDC database." },
-        
-        
-        {"PrAllowForwardable",
-	 "When checked, allows the principal to obtain forwardable"
-	 +" tickets.\n"
-	 +" \n"
-	 +"Forwardable tickets are tickets that are forwarded to the"
-	 +" remote host to provide a single-sign-on session."
-	 +"For example, if you are using forwardable tickets and you"
-	 +" authenticate yourself through ftp or rsh, other services,"
-	 +" such as NFS, are available without you being prompted"
-	 +" for another password."},
-        
-        
-        {"PrAllowProxiable",
-	 "When checked, allows the principal to obtain proxiable tickets.\n"
-	 +" \n"
-	 +"A proxiable ticket is a ticket that can be used by a service"
-	 +" on behalf  of a client to perform an operation for the client."
-	 +" With a proxiable ticket, a service can take on the identity"
-	 +" of a client and obtain a ticket for another service, but it"
-	 +" cannot obtain a ticket-granting ticket."},
-        
-        
-        {"PrEnforcePolicy",
-	 "When checked, the policy selected for this principal"
-	 +" will be enforced."},
-        
-        
-        {"PrAllowTGT",
-	 "When checked, allows the service principal to provide services"
-	 +" to another principal. More specifically, it allows the KDC to"
-	 +" issue a service ticket for the service principal.\n"
-	 +" \n"
-	 +"This attribute is valid only for service principals."
-	 +"When not checked, service tickets cannot be issued for"
-	 +" the service principal."},
-        
-        
-        {"PrRequirePreAuth",
-	 "When checked, the KDC will not send a requested ticket-granting"
-	 +" ticket(TGT) to the principal until it can"
-	 +" authenticate (through software) that it is really the principal"
-	 +" requesting the TGT. This preauthentication is usually done"
-	 +" through an  extra password, for example, from a DES card.\n"
-	 +" \n"
-	 +"When not checked, the KDC will not need to preauthenticate"
-	 +" the principal before it sends a requested TGT to it."},
-        
-        
-        {"PrAllowDupAuth",
-	 "When checked, allows the user principal to obtain service tickets for"
-	 +" other user principals.\n"
-	 +" \n"
-	 +"This attribute is valid only for user principals. When not checked,"
-	 +" the user principal can still obtain service tickets for"
-	 +" service principals, but not for other user principals."},
-        
-        
-        {"PrRequireHwPreAuth",
-	 "When checked, the KDC will not send a requested ticket-granting"
-	 +" ticket(TGT) to the principal until"
-	 +" it can authenticate (through hardware) that it is really the"
-	 +" principal requesting the TGT. Hardware preauthentication could"
-	 +" be something like a Java ring reader.\n"
-	 +" \n"
-	 +"When not checked, the KDC will not need to preauthenticate"
-	 +" the principal before it sends a requested TGT to it."},
-        
-        
-        {"PrFlagsPrevious",
-	 "Sends you back to the previous Principal Details panel."},
-        
-        //
-        // Done Button
-        //
-        
-        {"PrFlagsNext",
-	 "Saves any changes you've made to the current principal and"
-	 +" sends you back to list of principals."},
-        
-        
-        
-        //
-        // Policies Panel
-        //
-        
-        
-        
-        {"PoliciesPanel",
-	 // Not currently available in GUI
-	 "This panel enables you to select a policy from the list to"
-	 +" modify, delete, or duplicate. You can also create a new policy.\n"
-	 +" \n"
-	 +"A policy is a set of behaviors regarding"
-	 +" passwords and tickets that can be applied to a principal."
-	 +" For example, the principals for system administrators might"
-	 +" all have the same policy."
-	 +" \n"
-	 +"To display a specific policy or sublist of policy,"
-	 +" enter a filter string in the Filter Pattern field and press"
-	 +" return.\n"
-	 +" \n"
-	 +"To perform an operation on a policy, select it from the list and"
-	 +" click the appropriate button. To add a new policy, click New."},
-        
-        
-        {"Pollist",
-	 "Displays the all the available policies in the specified realm.\n"
-	 +" \n"
-	 +"To select a policy, click on its name in the list; double-clicking"
-	 +" on a policy is equivalent to selecting the policy and clicking"
-	 +" Modify"},
-        
-        {"PolNoList",
-	 "This list panel is blank when you don't have list privileges"
-	 +" or you've chosen not to show lists."},
-        
-        {"PoListPattern",
-	 "Enables you to apply a filter on the available policies to display a"
-	 +" particular policy or sublist of policies. The filter string you"
-	 +" enter may consist of one or more characters, And, because"
-	 +" the filter mechanism is case-sensitive, you need to use the"
-	 +" appropriate upper-case and lower-case letters for the filter.\n"
-	 +" \n"
-	 +"For example, entering 'adm' for the filter would match and display,"
-	 +" policies such as 'admpol', 'adm1', and 'poladmin'.\n"
-	 +" \n"
-	 +"To display a particular policy or sublist of"
-	 +" policies, enter a filter string and press"
-	 +" return.\n"
-	 +" \n"
-	 +"To display the entire list of policies, click Clear"
-	 +" Filter (or clear the Filter Pattern field and press return)."},
-        
-        
-        {"PoNameNoList",
-	 "When the policy list is not displayed,"
-	 +" you must enter policy names in this field to perform"
-	 +" operations on them. Entering a name is equivalent to selecting"
-	 +" an item from the list in normal operation.\n"
-	 +" \n"
-	 +"To clear the policy entry, click Clear Name (or clear the"
-	 +" Name field and press return)."},
-        
-        
-        {"PoListClear",
-	 "Clears the filter and displays the full list of available policies."},
-        
-        
-        {"PoNoListClear",
-	 "Clears the Name field."},
-        
-        
-        {"PoListModify",
-	 "Opens the Policy Details panel that enables you to modify the"
-	 +" selected policy attributes, such as the policy's minimum password"
-	 +" length and the minimum ticket lifetime."},
-        
-        
-        
-        {"PoListAdd",
-	 "Opens the Policy Details panel that enables you to create a new"
-	 +" policy.  The panel will have some of the fields already filled"
-	 +" in with default values.\n"
-	 +" \n"
-	 +"The Duplicate button performs the same function; however,"
-	 +" instead of the fields filled in with default values, the"
-	 +" fields are filled in with the same values as the selected policy."},
-        
-        
-        {"PoListDelete",
-	 "Deletes the selected policy from the Kerberos realm."},
-        
-        
-        
-        {"PoListDuplicate",
-	 "Opens the Policy Details panel that enables you to duplicate"
-	 +" the selected policy. The panels will have the fields already"
-	 +" filled in with the same values as the selected policy,"
-	 +" except for the policy's name."
-	 +"You can use this button to quickly create a new policy using"
-	 +" another policy as a template.\n"
-	 +" \n"
-	 +"The Create New button performs the same function; however,"
-	 +" the fields are filled in with default values."},
-        
-        
-        
-        //
-        // Policy.Detail
-        //
-        
-        
-        {"PoName",
-	 "The name of the policy. A policy is set of rules governing a"
-	 +" principal's password and tickets.\n"
-	 +" \n"
-	 +"If you are modifying a policy, you cannot edit a policy's name."},
-        
-        
-        
-        {"PoMinPwLength",
-	 "The minimum length for the principal's password."},
-        
-        
-        {"PoMinPwClass",
-	 "The minimum number of different character types required in the"
-	 +"  principal's    password."
-	 +"For example, a minimum classes value of 2 means that the"
-	 +" password must have at least two different character types,"
-	 +" such as letters and numbers(hi2mom). A value of 3 means that"
-	 +" the password must have at least three different character"
-	 +" types, such as letters, numbers, and punctuation (hi2mom!)."
-	 +"And so on. \n"
-	 +" \n"
-	 +"A value of 1 basically sets no restriction on the number of password"
-	 +" character types."},
-        
-        
-        {"PoSavedPasswords",
-	 "The number of previous passwords that have been used by the principal"
-	 +" and cannot be reused."},
-        
-        
-        {"PoMinTicketLifetime",
-	 "The minimum time that the password must be used before it can be"
-	 +" changed.\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PoMaxTicketLifetime",
-	 "The maximum time that the password can be used before it must be"
-	 +" changed.\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"PolDetPrincipalsUsingThisPolicy",
-	 "The number of principals to which this policy currently applies."},
-        
-        
-        {"PoSave",
-	 "Saves any changes you've made to the current policy."},
-        
-        
-        {"PoCancel",
-	 "Discards all the changes you've made to the current policy and sends"
-	 +" you back to the list of policies."},
-        
-        
-        {"PoDetailPrevious",
-	 "Sends you back to the list of policies.\n"
-	 +" \n"
-	 +"Note that you must save or cancel any changes you've made to the"
-	 +" current policy before you can go back to the list."},
-        
-        
-        {"PoDetailDone",
-	 "Saves any changes you've made to the current policy and sends"
-	 +" you back to list of policies."},
-        
-        
-        
-        //
-        // Defaults Panel
-        //
-        
-        
-        {"DefaultsPanel",
-	 // Not currently available in GUI
-	 "This window enables you to change the default settings for adding new"
-	 +" principals."},
-        
-        
-        {"GlobalLockAcct",
-	 "When checked, prevents the new principal from logging in."
-	 +"This is a easy way to temporarily freeze"
-	 +" new principal accounts for any reason. For example, you may want"
-	 +" to add a number of new principals in the beginning of the week,"
-	 +" but you might not want to activate them until the end of the"
-	 +" week."},
-        
-        
-        {"GlobalAllowPostdated",
-	 "When checked, allows the new principal to obtain postdated tickets.\n"
-	 +" \n"
-	 +"For example, you may need to use postdated tickets for cron jobs"
-	 +" that need to run after hours and can't obtain tickets in advance"
-	 +" because of short ticket lifetimes."},
-        
-        
-        {"GlobalAllowRenewable",
-	 "When checked, allows the new principal to obtain renewable tickets.\n"
-	 +" \n"
-	 +"A principal can automatically extend the expiration date or time of"
-	 +" a ticket that is renewable (rather than having to get a new ticket"
-	 +" after the first one expires). Currently, the NFS service is the"
-	 +" only service that can obtain renewable tickets."},
-        
-        
-        {"GlobalEnforcePolicy",
-	 "When checked, the policy selected for the new principal"
-	 +" will be enforced."},
-        
-        {"GlobalAllowTGT",
-	 "When checked, allows the new service principal to provide services to"
-	 +" another principal. More specifically, it allows the KDC to issue a"
-	 +" service ticket for the new service principal.\n"
-	 +" \n"
-	 +"This attribute is valid only for service principals."
-	 +"When not checked,"
-	 +" service tickets cannot be issued for the new service principal."},
-        
-        
-        {"GlobalForcePwChange",
-	 "When checked, expires the principal's current password, forcing the"
-	 +" user to use the kpasswd command to create a new password. This is"
-	 +" is useful if you want to force users with new principals to set"
-	 +" up their own passwords."},
-        
-        
-        {"GlobalAllowForwardable",
-	 "When checked, allows the new principal to obtain forwardable"
-	 +" tickets.\n"
-	 +" \n"
-	 +"Forwardable tickets are tickets that are forwarded to the remote"
-	 +" host to provide a single-sign-on session. For example, if you"
-	 +" are using forwardable tickets and you authenticate yourself"
-	 +" through ftp or rsh, other services, such as NFS, are available"
-	 +" without you being prompted for another password."},
-        
-        
-        {"GlobalAllowSvr",
-	 "When checked, allows service tickets to be issued for"
-	 +" the new principal.\n"
-	 +" \n"
-	 +"You should not allow service tickets to be issued for the"
-	 +" 'kadmin/admin' and the 'changepw/admin' principals."
-	 +" This will ensure that these"
-	 +" principals can only update the KDC database." },
-        
-        
-        {"GlobalAllowProxiable",
-	 "When checked, allows the new principal to obtain proxiable tickets.\n"
-	 +" \n"
-	 +"A proxiable ticket is a ticket that can be used by a service on"
-	 +" behalf of a client to perform an operation for the client."
-	 +"With a proxiable ticket, a service can take on the identity of"
-	 +" a client and obtain a ticket for another service, but it cannot"
-	 +" obtain a ticket-granting ticket."},
-        
-        
-        
-        {"GlobalAllowDupAuth",
-	 "When checked, allows the new user principal to obtain service"
-	 +" tickets for other user principals.\n"
-	 +" \n"
-	 +"This attribute is valid only for user principals. When not checked,"
-	 +" the new user principal can still obtain service tickets for"
-	 +" service principals, but not for other user principals."},
-        
-        
-        {"GlobalRequirePreAuth",
-	 "When checked, the KDC will not send a requested ticket-granting"
-	 +" ticket(TGT)"
-	 +" for the new principal until"
-	 +" it can authenticate (through software) that it is really the"
-	 +" principal requesting the TGT. This preauthentication is usually"
-	 +" done through an extra password, for example, from a DES card.\n"
-	 +" \n"
-	 +"When not checked, the KDC will not need preauthenticate the new"
-	 +" principal before it sends a requested TGT for it."},
-        
-        
-        {"GlobalRequireHwPreAuth",
-	 "When checked, the KDC will not send a requested ticket-granting"
-	 +" ticket(TGT) for the new principal until it can authenticate"
-	 +" (through hardware) that it is really the principal"
-	 +" requesting the TGT. Hardware preauthentication could be something"
-	 +" like a Java ring reader.\n"
-	 +" \n"
-	 +"When not checked, the KDC will not need to preauthenticate the new"
-	 +" principal with hardware before it sends a requested TGT for it."},
-        
-        {"GlDefServerSide",
-	 "When checked, the ticket lifetime values in the new principal are set"
-	 +" such that "
-	 +"the maximum value is used. When issuing a ticket the KDC uses the"
-	 +" minimum of the value defined in the principal entry, in "
-	 +" /etc/krb5/kdc.conf, or whatever the client requests with kinit."},
-        
-        {"GlDefLife",
-	 "The maximum length of time for which a ticket can be"
-	 +" granted for the new principal (without renewal).\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        {"GlDefRenewableLife",
-	 "The maximum length of time for which an existing"
-	 +" ticket may be renewed for the new principal.\n"
-	 +" \n"
-	 +"To help create a time duration in seconds, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        {"GlDefExpiry",
-	 "The date and time on which the new principal's account expires."
-	 +"When the account expires, the principal can no longer"
-	 +" get a ticket-granting ticket (TGT) and may not be able to log in.\n"
-	 +" \n"
-	 +"To set up the new account with no expiration date, enter the word"
-	 +"  'never' in the field.\n"
-	 +" \n"
-	 +"To help create a formatted date and time entry, click the adjacent"
-	 +" '...' button to bring up a helper."},
-        
-        
-        
-        {"GlDefShowLists",
-	 "When checked, the principal and policy lists will be loaded and"
-	 +" displayed in the list panels. Large lists may produce significant"
-	 +" loading times, so it may be more convenient to work without lists"
-	 +" when they are very large, or you should cache them."
-	 +"The default is on."},
-        
-        
-        {"GlDefStaticLists",
-	 "When checked, the principal and policy lists will be cached"
-	 +" when they are initially loaded, and the lists will not be refreshed"
-	 +" from the server unless you use the Refresh menu. Because large"
-	 +" lists may produce significant loading times, you should cache"
-	 +" large lists and refresh them when necessary. The default"
-	 +" is off."},
-        
-        
-        {"GlDefCacheTime",
-	 "The period of time that the principal and policy lists will be"
-	 +" cached before being considered stale and refreshed from the"
-	 +" server.  The default is 300 seconds (6 minutes)."},
-        
-        
-        {"GlobalSave",
-	 "Makes a permanent change to the default values by writing them"
-	 +" to ~/.gkadmin, updates the tool, and closes the window."},
-        
-        
-        {"GlobalApply",
-	 "Makes a temporary change to the default values in the tool and"
-	 +" closes the window. This does not update ~/.gkadmin."},
-        
-        
-        {"GlobalCancel",
-	 "Discards all the changes you've made to the current defaults and"
-	 +" closes the window."},
-        
-        //
-        // Generic Helper Button Descriptions
-        //
-        
-        {"DateHelperButton",
-	 "Opens the Date and Time Helper window to help you create"
-	 +" a formatted date and time entry for the associated field."},
-        
-        {"DurationHelperButton",
-	 "Opens the Time Duration Helper window to help you create a time"
-	 +" duration in seconds for the associated field."},
-
-        {"EncListHelperButton",
-	 "Opens the Encryption Types Helper window to help you create"
-	 +" the principal's keys from the default set."},
-
-	//
-	// EncryptionTypeDialogHelp
-	//
-
-	{"EncryptionTypeDialogHelp",
-	 "You can select/deselect encryption types for this principal as"
-	 +" needed.  Certain encryption types are similar therefore when"
-	 +" one of these encryption types is selected the other type(s)"
-	 +" will be deselected.  If no encryption types are selected the"
-	 +" default set of types will be used, see krb5.conf(4) for these.\n"
-	 +" \n"
-	 +"Click OK to copy the encryption list that you've selected to the"
-	 +" corresponding field.\n"
-	 +" \n"
-	 +"Click Clear to unselect all encryption types listed."},
-        
-        //
-        // DateTimeDialog
-        //
-        
-        {"DateTimeDialogHelp",
-	 "To change the month, choose from the Month menu.\n "
-	 +" \n"
-	 +"To change the other date and time fields, click in the field and"
-	 +" enter a value, or use the +/- buttons to increment/decrement their"
-	 +" value. (Hint: Keeping the buttons pressed makes the value change"
-	 +" at a faster rate.)\n"
-	 +" \n"
-	 +"Click Midnight to change the time to midnight, and click Now to"
-	 +" change the time to the current time based on the system's clock.\n"
-	 +" \n"
-	 +"Click OK to copy the date and time settings you've changed to"
-	 +" the corresponding field."},
-        
-        
-        //
-        // DurationHelper
-        //
-        
-        {"DurationHelperHelp",
-	 "To help create a time duration in seconds, choose a unit of time"
-	 +" from the Unit menu, enter a number of units under the"
-	 +" Value field, and press return (or click '='). The number of"
-	 +" seconds based on your input will be displayed.\n"
-	 +" \n"
-	 +"Click OK to copy the number of seconds you've specified into the"
-	 +" corresponding field."},
-        
-        //
-        // PrintUtil
-        //
-        
-        {"PrintUtilHelp",
-	 "You can either print to a printer or a file.\n"
-	 +" \n"
-	 +"To print directly to a printer, click the Print Command"
-	 +" radio button, enter a print command (if you don't want the default"
-	 +" print command), and click Print.\n"
-	 +" \n"
-	 +"To print to a file, click the File Name radio button, enter a file"
-	 +" name, and click Print. The file name can be an absolute path."
-	 +" If no path is given, the file will be saved in the directory"
-	 +" where gkadmin was started. Click '...' next to the File Name field"
-	 +" to open the File Helper window to help you specify a"
-	 +" a location and name for the file."},
-        
-        //
-        // Menubar context sensitive help
-        //
-        
-        {"ContextSensitiveHelp",
-	 "Opens the Context-Sensitive Help window and switches the tool into"
-	 +" help mode.  In help mode, you can get help on any part of the"
-	 +" current window just by clicking on it. To dismiss the Help window"
-	 +" and switch back to the normal mode, click Dismiss on the Help"
-	 +" window."},
-        
-        {"PrintCurrentPrincipal",
-	 "Prints the attributes of the currently selected principal in the"
-	 +" list or the currently loaded principal."},
-        
-        {"PrintCurrentPolicy",
-	 "Prints the attributes of the currently selected policy in the"
-	 +" list or the currently loaded policy."},
-        
-        {"PrintPrincipalList",
-	 "Prints the list of all the available principals on the master KDC."},
-        
-        {"PrintPolicyList",
-	 "Prints the list of all the available policies on the master KDC."},
-        
-        {"Logout",
-	 "Quits the current session and sends you back to the Login window, so"
-	 +" you can change the login fields and log in again."},
-        
-        {"EditPreferences",
-	 "Opens the Properties window, which enables you to"
-	 +" specify the default settings for creating new principals"
-	 +" and how the tool should manage the principal"
-	 +" and policy lists."},
-        
-        {"RefreshPrincipals",
-	 "Forces the principal list to be updated from the server."},
-        
-        {"RefreshPolicies",
-	 "Forces the policy list to be updated from the server."},
-        
-        {"Exit",
-	 "Quits the SEAM Administration Tool."},
-        
-        {"HelpBrowser",
-	 "Opens an HTML browser that provides pointers to overview and task"
-	 +" information"
-	 +" for the SEAM Administration Tool. This provides the same"
-	 +" information as the 'Sun Enterprise Authentication Management"
-	 +" Guide'."},
-        
-        {"About",
-	 "Displays the current version of the SEAM Administration Tool."},
-        
-        {"DateTime...",
-	 "Opens the SEAM Date and Time Helper window, which enables you to"
-	 +" set the date and time. After you set the date and time and click"
-	 +" OK, the settings are automatically formatted and copied into the"
-	 +" corresponding field."},
-        
-        {"Duration...",
-	 "Opens the SEAM Duration Helper window, which enables you to specify a"
-	 +" time duration and have it converted into seconds."
-	 +" After you specify the time"
-	 +" and click OK, the time duration is copied into the corresponding"
-	 +" field."},
-
-	{"EncList...",
-	 "Opens the SEAM Encryption Type List Helper window, which enables you"
-	 +" to specify custom encryption types for the principal. "
-	 +" After you select the encryption types and click OK, the encryption"
-	 +" type list is copied into the corresponding field."},
-
-        {"Print...",
-	 "Opens the SEAM Print Dialog window, which enables you to specify a"
-	 +" printer"
-	 +" to print the information or a file name in which to save the"
-	 +" information."},
-        
-        {"Bad Duration",
-	 "Please enter the duration (in seconds) correctly."},
-        
-        {"Bad Date",
-	 "Please enter the date correctly."},
-        
-        {"Bad Number",
-	 "Please enter the number correctly."}
-        
-    }; // end contents object
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/HelpIndex.html	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-<!--
-  -- ident	"%Z%%M%	%I%	%E% SMI"
-  --
-    Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
-    Use is subject to license terms.
-
-    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
-  -->
-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
-
-<CENTER>
-<H1>
-gkadmin General Help Contents</H1></CENTER>
-
-<CENTER></CENTER>
-Will contain:
-<UL>
-<LI>
-Help explaining what the tool does</LI>
-
-<LI>
-Task based help</LI>
-
-<LI>
-Other?</LI>
-</UL>
-
-</BODY>
-</HTML>
--- a/usr/src/cmd/krb5/kadmin/gui/KdcGui.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5624 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (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 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/**
- * GUI interface for Kerberos KDC
- */
-
-// Java Workshop stuff
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.awt.TabbedFolder;
-import sunsoft.jws.visual.rt.awt.TextList;
-import sunsoft.jws.visual.rt.awt.StringVector;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-
-// Regular JDK stuff
-import java.awt.*;
-import java.awt.event.*;
-import java.util.EventListener;
-import java.util.Properties;
-import java.util.Vector;
-import java.util.Random;
-import java.util.StringTokenizer;
-import java.io.IOException;
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-
-// Stuff to support I18N
-import java.util.Date;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.DateFormatSymbols;
-import java.text.NumberFormat;
-import java.util.ResourceBundle;
-import java.util.ListResourceBundle;
-import java.util.MissingResourceException;
-import java.util.Enumeration;
-
-public class KdcGui extends Group {
-    
-    // Basics
-    private KdcGuiRoot gui;
-    private Krb5Conf kc;
-    private Principal prin = null;
-    private Policy pol = null;
-    private Defaults defaults = null;
-    private Defaults olddefaults = null;
-    public Frame defaultsEditingFrame = null; // public since used
-    // by ContextHelp class
-    public Frame realMainFrame = null;
-    public Frame realLoginFrame = null;
-    
-    public Kadmin Kadmin = null;
-    
-    // Privileges stuff: corresponds to ADMCIL set in kdc.conf
-    public int privs = 0;
-    public static final int PRIV_ADD	= 0x02;		// KADM5_PRIV_ADD
-    public static final int PRIV_DELETE	= 0x08;		// KADM5_PRIV_DELETE
-    public static final int PRIV_MODIFY	= 0x04;		// KADM5_PRIV_MODIFY
-    public static final int PRIV_CHANGEPW	= 0x20;	// KADM5_PRIV_CPW
-    public static final int PRIV_INQUIRE	= 0x01;	// KADM5_PRIV_GET
-    public static final int PRIV_LIST	= 0x10;		// KADM5_PRIV_LIST
-    public boolean noLists = false;
-    
-    // For modal warning dialog and context-sensitive help dialog
-    private Dialog dialog;
-    public ContextHelp cHelp = null; // tweaked from ContextHelp when
-    // it is dismissed
-    
-    private static Toolkit toolkit;
-    
-    // For showDataFormatError() to determine what kind of error to show
-    
-    public static final int DURATION_DATA = 1;
-    public static final int DATE_DATA = 2;
-    public static final int NUMBER_DATA = 3;
-    
-    private static String[] durationErrorText = null;
-    private static String[] dateErrorText = null;
-    private static String[] numberErrorText = null;
-    
-    // For date & time helper dialogs
-    private DateTimeDialog dateTimeDialog = null;
-    private DurationHelper durationHelper = null;
-
-    // For the encryption list helper dialog
-    private EncListDialog encListDialog = null;
-    
-    // Important defaults and current settings
-    private String DefName = null;
-    private String DefRealm = null;
-    private String DefServer = null;
-    private String DefPort = "0";
-    private String CurName, CurPass, CurRealm, CurServer;
-    private int CurPort;
-    private String CurPrincipal;
-    private String CurPolicy;
-    private String curPrPattern = "";
-    private String curPoPattern = "";
-    private int curPrListPos = 0;
-    private int curPoListPos = 0;
-    private String[] principalList = null;
-    private Date principalListDate = new Date(0);
-    private String[] policyList = null;
-    private Date policyListDate = new Date(0);
-    private static final long A_LONG_TIME = 1000 * 60 * 60 * 24 * 365;
-    
-    // General state variables
-    private boolean prSelValid = false;
-    private String[] prMulti = null;
-    private boolean prNeedSave = false;
-    private boolean poSelValid = false;
-    private String[] poMulti = null;
-    private boolean poNeedSave = false;
-    private boolean glNeedSave = false;
-    private boolean firsttime = true;
-    private boolean prnameEditable = false;
-    private boolean ponameEditable = false;
-    
-    // Support for context-sensitive help
-    private static final int BUTTON_ACTION = 1;
-    private static final int BUTTON_MOUSE = 2;
-    private static final int TEXTFIELD_ACTION = 3;
-    private static final int TEXTFIELD_MOUSE = 4;
-    private static final int TEXTFIELD_KEY = 5;
-    private static final int CHOICE_ITEM = 6;
-    private static final int CHOICE_MOUSE = 7;
-    private static final int CHECKBOX_ITEM = 8;
-    private static final int CHECKBOX_MOUSE = 9;
-    private static final int LABEL_MOUSE = 10;
-    private static final int WINDOW_LISTENER = 11;
-    
-    private boolean loginListeners = false;
-    private Vector LoginNormal = null;
-    private Vector LoginHelp = null;
-    private Vector LoginFixers = null;
-    private Vector MainNormal = null;
-    private Vector MainHelp = null;
-    private Vector MainFixers = null;
-    private Vector defaultsNormal = null;
-    private Vector defaultsHelp = null;
-    private Vector defaultsFixers = null;
-    public boolean loginHelpMode = false;
-    public boolean mainHelpMode = false;
-    public boolean defaultsHelpMode = false;
-    
-    // For Principal and Policy Keystroke listeners
-    private static final int PRINCIPAL_EDITING = 1;
-    private static final int POLICY_EDITING = 2;
-    private static final int DEFAULTS_EDITING = 3;
-    private static final int PRINCIPAL_LIST = 4;
-    private static final int POLICY_LIST = 5;
-    
-    // For status line
-    private String OpString = "";
-    private String ModeString = "";
-    private String SaveString = "";
-    
-    // For I18N
-    private static ResourceBundle rb;
-    private static ResourceBundle hrb;
-    private static DateFormat df;
-    private static NumberFormat nf;
-    
-    private static String neverString;
-    
-    // For general pupose help
-    Process browserProcess;
-    String helpIndexFile = "file:/usr/lib/krb5/HelpIndex.html";
-    
-    // For performance monitoring
-    boolean perfmon = false;
-    Date pdateFirst;
-    Date pdateAfterKrb5Conf;
-    Date pdateEndGuiRoot;
-    Date pdateBeginStartGroup;
-    Date pdateStringsDone;
-    Date pdateLoginReady;
-    Date pdateLoginDone;
-    Date pdateSessionUp;
-    Date pdatePreMainShow;
-    Date pdatePostMainShow;
-    Date pdateMainActive;
-    Date pdateStartPlist;
-    Date pdateHavePlist;
-    Date pdateEmptyPlist;
-    Date pdateDonePlist;
-    
-    public void reportTime(String s0, Date curr, Date prev) {
-        if (!perfmon)
-            return;
-        String s1 = curr.toString();
-        long curdiff = curr.getTime() - prev.getTime();
-        String s2 = (new Long(curdiff)).toString();
-        long cumdiff = curr.getTime() - pdateFirst.getTime();
-        String s3 = (new Long(cumdiff)).toString();
-        System.out.println(s0+s1+" delta "+s2+" cume "+s3);
-    }
-    
-    public void reportStartTimes() {
-        if (!perfmon)
-            return;
-        System.out.println("");
-        reportTime("First timestamp: ", pdateFirst, pdateFirst);
-        reportTime("After krb5.conf: ", pdateAfterKrb5Conf, pdateFirst);
-        reportTime("KdcGuiRoot done: ", pdateEndGuiRoot, pdateAfterKrb5Conf);
-        reportTime("At startGroup  : ", pdateBeginStartGroup, pdateEndGuiRoot);
-        reportTime("Strings set up : ", pdateStringsDone, pdateBeginStartGroup);
-        reportTime("Login ready    : ", pdateLoginReady, pdateStringsDone);
-        reportTime("Login complete : ", pdateLoginDone, pdateLoginReady);
-        reportTime("Session set up : ", pdateSessionUp, pdateLoginDone);
-        reportTime("Start main win : ", pdatePreMainShow, pdateSessionUp);
-        reportTime("Done main win  : ", pdatePostMainShow, pdatePreMainShow);
-        reportTime("Main win active: ", pdateMainActive, pdatePostMainShow);
-    }
-    
-    /**
-     * Sample method call ordering during a group's lifetime:
-     *
-     * Constructor
-     * initRoot
-     * initGroup
-     * (setOnGroup and getOnGroup may be called at any time in any
-     *  order after initGroup has been called)
-     * createGroup
-     * showGroup/hideGroup + startGroup/stopGroup
-     * destroyGroup
-     */
-    
-    /**
-     * The constructor sets up defaults for login screen
-     *
-     */
-    public KdcGui() {
-        
-        /*
-         * Set up defaults from /etc/krb5/krb5.conf
-         */
-        
-        pdateFirst = new Date();
-        DefName = System.getProperty("user.name" /* NOI18N */)+
-	    "/admin" /* NOI18N */;
-        kc = new Krb5Conf();
-        DefRealm = kc.getDefaultRealm();
-        DefServer = kc.getRealmServer(DefRealm);
-        DefPort = kc.getRealmPort(DefRealm);
-        pdateAfterKrb5Conf = new Date();
-        
-        /*
-         * Take care of Java Workshop attribute plumbing
-         */
-        addForwardedAttributes();
-    }
-    
-    /**
-     * Inherited from the Java Workshop skeleton
-     *
-     */
-    protected Root initRoot() {
-        /*
-         * Initialize the gui components
-         */
-        gui = new KdcGuiRoot(this);
-        pdateEndGuiRoot = new Date();
-        
-        /*
-         * Take care of Java Workshop attribute plumbing.
-         */
-        addAttributeForward(gui.getMainChild());
-        
-        initLoginStrings();
-        initMainStrings();
-        pdateStringsDone = new Date();
-        return gui;
-    }
-    
-    /**
-     * Set up the login screen properly.
-     *
-     */
-    protected void startGroup() {
-        pdateBeginStartGroup = new Date();
-        realLoginFrame = (Frame)gui.loginframe.getBody();
-        realLoginFrame.setTitle(getString("SEAM Administration Login"));
-        setLoginDefaults();
-        pdateLoginReady = new Date();
-    }
-    
-    /**
-     * All cleanup done here.
-     */
-    protected void stopGroup() {
-        killHelpBrowser();
-    }
-    
-    
-    /**
-     * Callbacks from Java workshop to decide whether to take the action
-     * or show appropriate help for it.
-     * 
-     * 1. Actions that are triggered from all three - mainframe,
-     *    loginframe, and defaultsEditingFrame - are: context sensitive help.
-     * 2. Actions that are triggered only from mainframe are: printing,
-     *    logging out, edit preferences.
-     * 3. Actions that are triggered from mainframe and loginframe are:
-     *    exit, general help, context sensitive help, about.
-     */
-    
-    
-    // All three frames
-    
-    public void checkContextSensitiveHelp(Frame frame) {
-        if ((loginHelpMode && frame == realLoginFrame)
-            || (mainHelpMode && frame == realMainFrame)
-	    || (defaultsHelpMode && frame == defaultsEditingFrame))
-	    showHelp("ContextSensitiveHelp");
-        else
-            contextHelp(frame);
-    }
-    
-    // Mainframe only
-    
-    public void checkPrintCurPr() {
-        if (mainHelpMode)
-            showHelp("PrintCurrentPrincipal");
-        else
-            printCurPr();
-    }
-    
-    public void checkPrintCurPol() {
-        if (mainHelpMode)
-            showHelp("PrintCurrentPolicy");
-        else
-            printCurPol();
-    }
-    
-    public void checkPrintPrList() {
-        if (mainHelpMode)
-            showHelp("PrintPrincipalList");
-        else
-            printPrList();
-    }
-    
-    public void checkPrintPoList() {
-        if (mainHelpMode)
-            showHelp("PrintPolicyList");
-        else
-            printPoList();
-    }
-    
-    public void checkLogout() {
-        if (mainHelpMode)
-            showHelp("Logout");
-        else if (okayToLeave(realMainFrame))
-            logout();
-    }
-    
-    public void checkEditPreferences() {
-        if (mainHelpMode)
-            showHelp("EditPreferences");
-        else
-            editPreferences();
-    }
-    
-    public void checkRefreshPrincipals() {
-        if (mainHelpMode)
-            showHelp("RefreshPrincipals");
-        else {
-            principalList = null;
-            fillPrincipalList(curPrPattern);
-        }
-    }
-    
-    public void checkRefreshPolicies() {
-        if (mainHelpMode)
-            showHelp("RefreshPolicies");
-        else {
-            policyList = null;
-            fillPolicyList(curPoPattern);
-        }
-    }
-    
-    // Mainframe and loginframe
-    
-    public void checkExit(Frame frame) {
-        if ((loginHelpMode && frame == realLoginFrame)
-            || (mainHelpMode && frame == realMainFrame))
-	    showHelp("Exit");
-        else if (okayToLeave(frame))
-            exit();
-    }
-    
-    public void checkHelp(Frame frame) {
-        if ((loginHelpMode && frame == realLoginFrame)
-            || (mainHelpMode && frame == realMainFrame))
-	    showHelp("HelpBrowser");
-        else
-            showHelpBrowser(frame);
-    }
-    
-    public void checkAbout(Frame frame) {
-        if ((loginHelpMode && frame == realLoginFrame)
-            || (mainHelpMode && frame == realMainFrame))
-	    showHelp("About");
-        else
-            doAbout(frame);
-    }
-    
-    public boolean okayToLeave(Frame frame) {
-        if (prNeedSave || poNeedSave || glNeedSave) {
-            String text[] = {getString("You are about to lose changes."),
-			     getString("Click Save to commit changes, "
-				       +"Discard to discard changes, "
-				       +"or Cancel to continue editing.")};
-            String resp = confirmSave(frame, text);
-            if (resp.equals(getString("Cancel")))
-                return false;
-            else if (resp.equals(getString("Save"))) {
-                if (prNeedSave)
-                    if (!prDoSave())
-			return false; // found an error so cannot leave
-                if (poNeedSave)
-                    if (!poDoSave())
-			return false; // found an error so cannot leave
-                if (glNeedSave)
-                    glDoSave(true);
-            } else
-                prNeedSave = poNeedSave = glNeedSave = false;
-        }
-        return true;
-    }
-    
-    /**
-     * We use the JDK 1.1 event model for most of our events, but
-     * we do still need to handle old-style events because the
-     * tabbed folder and the card panel(supplied by Java Workshop)
-     * are not compatible with the new event model.  We use the
-     * callouts from Java Workshop to deal with the card panel,
-     * but we need to have some code here to do the right thing
-     * when the user selects a new tab in the tabbed folder.
-     *
-     * It is important that not too many conditions are tested here,
-     * because all events flow through this code path.
-     *
-     */
-    public boolean handleEvent(Message msg, Event evt) {
-        
-        /*
-         * Look for events from the principal and policy list.
-         */
-        
-        if (evt.target == gui.Prlist.getBody()) {
-            if (mainHelpMode) {
-                if (evt.id == Event.ACTION_EVENT
-		    || evt.id == Event.LIST_SELECT) {
-                    restorePrListSelection();
-                    showHelp(((Component)gui.Prlist.getBody()).getName());
-                }
-            } // end of help mode
-            else if (evt.id == Event.ACTION_EVENT)
-                prModify();
-            else if (evt.id == Event.LIST_SELECT)
-                lookAtPrList();
-            return true;
-        } // end of Prlist
-        
-        if (evt.target == gui.Pollist.getBody()) {
-            if (mainHelpMode) {
-                if (evt.id == Event.ACTION_EVENT
-		    || evt.id == Event.LIST_SELECT) {
-                    restorePoListSelection();
-                    showHelp(((Component)gui.Pollist.getBody()).getName());
-                }
-            } // end of help mode
-            else if (evt.id == Event.ACTION_EVENT)
-                poSelected();
-            else if (evt.id == Event.LIST_SELECT)
-                lookAtPoList();
-            return true;
-        } // end of Pollist
-        
-        /*
-         * Look for a unique event from the tabbed folder component;
-         * if I see it, I know I have a chance to disallow a switch.
-         * This makes sure data is saved before leaving a tab.
-         */
-        if (evt.id == TabbedFolder.CONFIRM_SWITCH) {
-            // System.out.println("Got confirm for "+evt.arg);
-            String e = (String)evt.arg;
-            if (!mainHelpMode && okayToLeave(realMainFrame) == false) {
-                // System.out.println("Denying switch");
-                ((TabbedFolder)gui.tabbedfolder1.getBody()).cancelSwitch();
-            }
-            /*
-             * Okay with switch; make sure the data is up to date
-             */
-            else if (e.compareTo(getString("Principals")) == 0) {
-                if (mainHelpMode) {
-                    showHelp("PrincipalTab");
-                    ((TabbedFolder)gui.tabbedfolder1.getBody()).cancelSwitch();
-                } else {
-                    showPrincipalList(curPrPattern);
-                    disablePolicyPrinting();
-                }
-            } else if (e.compareTo(getString("Policies")) == 0) {
-                if (mainHelpMode) {
-                    showHelp("PolicyTab");
-                    ((TabbedFolder)gui.tabbedfolder1.getBody()).cancelSwitch();
-                } else {
-                    showPolicyList(curPoPattern);
-                    disablePrincipalPrinting();
-                }
-            }
-        }
-        return super.handleEvent(msg, evt);
-    }
-    
-    /*
-     * New methods for the admin gui login screen.
-     */
-    
-    /**
-     * Set strings on login screen to their I18N'd values
-     *
-     */
-    public void initLoginStrings() {
-        gui.File2.set("text" /* NOI18N */, getString("File"));
-        gui.Exit2.set("text" /* NOI18N */, getString("Exit"));
-        gui.menu1.set("text" /* NOI18N */, getString("Help"));
-        gui.browserHelp1.set("text" /* NOI18N */, getString("Help Contents"));
-        gui.Context2.set("text" /* NOI18N */,
-			 getString("Context-Sensitive Help"));
-        gui.About2.set("text" /* NOI18N */, getString("About"));
-        gui.LoginNameLabel.set("text" /* NOI18N */,
-			       getString("Principal Name:"));
-        gui.LoginPassLabel.set("text" /* NOI18N */, getString("Password:"));
-        gui.LoginRealmLabel.set("text" /* NOI18N */, getString("Realm:"));
-        gui.LoginServerLabel.set("text" /* NOI18N */, getString("Master KDC:"));
-        gui.LoginOK.set("text" /* NOI18N */, getString("OK"));
-        gui.LoginStartOver.set("text" /* NOI18N */, getString("Start Over"));
-    }
-    
-    /**
-     * Set strings on main screen to their I18N'd values
-     *
-     */
-    public void initMainStrings() {
-        gui.mainframe.set("title" /* NOI18N */,
-			  getString("SEAM Administration Tool"));
-        gui.File.set("text" /* NOI18N */, getString("File"));
-        gui.Print.set("text" /* NOI18N */, getString("Print"));
-        gui.PrintCurPr.set("text" /* NOI18N */, getString("Current Principal"));
-        gui.PrintCurPol.set("text" /* NOI18N */, getString("Current Policy"));
-        gui.PrintPrlist.set("text" /* NOI18N */, getString("Principal List"));
-        gui.PrintPollist.set("text" /* NOI18N */, getString("Policy List"));
-        gui.logout.set("text" /* NOI18N */, getString("Log Out"));
-        gui.Exit.set("text" /* NOI18N */, getString("Exit"));
-        gui.editMenu.set("text" /* NOI18N */, getString("Edit"));
-        gui.editPreferences.set("text" /* NOI18N */,
-				getString("Properties..."));
-        gui.menu2.set("text" /* NOI18N */, getString("Refresh"));
-        gui.refreshPrincipals.set("text" /* NOI18N */,
-				  getString("Principal List"));
-        gui.refreshPolicies.set("text" /* NOI18N */, getString("Policy List"));
-        gui.Help.set("text" /* NOI18N */, getString("Help"));
-        gui.browserHelp2.set("text" /* NOI18N */, getString("Help Contents"));
-        gui.Context.set("text" /* NOI18N */,
-			getString("Context-Sensitive Help"));
-        gui.About.set("text" /* NOI18N */, getString("About"));
-        
-        gui.Prlisttab.set("layoutName", getString("Principals"));
-        gui.Pollisttab.set("layoutName", getString("Policies"));
-        
-        gui.PrListLabel.set("text" /* NOI18N */, getString("Principal List"));
-        gui.PrSearchLab.set("text" /* NOI18N */, getString("Filter Pattern:"));
-        gui.PrListClear.set("text" /* NOI18N */, getString("Clear Filter"));
-        gui.PrListModify.set("text" /* NOI18N */, getString("Modify"));
-        gui.PrListAdd.set("text" /* NOI18N */, getString("Create New"));
-        gui.PrListDelete.set("text" /* NOI18N */, getString("Delete"));
-        gui.PrListDuplicate.set("text" /* NOI18N */, getString("Duplicate"));
-        
-        gui.PrBasicLabel.set("text" /* NOI18N */,
-			     getString("Principal Basics"));
-        gui.PrNameLabel1.set("text" /* NOI18N */, getString("Principal Name:"));
-        gui.LabelBarGeneral.set("text" /* NOI18N */, getString("General"));
-        gui.PrCommentsLabel.set("text" /* NOI18N */, getString("Comments:"));
-        gui.PrPolicyLabel.set("text" /* NOI18N */, getString("Policy:"));
-        gui.PrPasswordLabel.set("text" /* NOI18N */, getString("Password:"));
-        gui.PrBasicRandomPw.set("text" /* NOI18N */,
-				getString("Generate Random Password"));
-        gui.EncListLabel.set("text" /* NOI18N */,
-			getString("Encryption Key Types:"));
-        gui.LabelBarPrincipal.set("text" /* NOI18N */,
-				  getString("Admin History"));
-        gui.PrLastChangedTimeLabel.set("text" /* NOI18N */,
-				       getString("Last Principal Change:"));
-        gui.PrLastChangedByLabel.set("text" /* NOI18N */,
-				     getString("Last Changed By:"));
-        gui.PrExpiryLabel.set("text" /* NOI18N */,
-			      getString("Account Expires:"));
-        gui.PrBasicSave.set("text" /* NOI18N */, getString("Save"));
-        gui.PrBasicPrevious.set("text" /* NOI18N */, getString("Previous"));
-        gui.PrBasicNext.set("text" /* NOI18N */, getString("Next"));
-        gui.PrBasicCancel.set("text" /* NOI18N */, getString("Cancel"));
-        
-        gui.PrDetailLabel.set("text" /* NOI18N */,
-			      getString("Principal Details"));
-        gui.LabelBarPassword.set("text" /* NOI18N */, getString("Password"));
-        gui.PrLastSuccessLabel.set("text" /* NOI18N */,
-				   getString("Last Success:"));
-        gui.PrLastFailureLabel.set("text" /* NOI18N */,
-				   getString("Last Failure:"));
-        gui.PrFailureCountLabel.set("text" /* NOI18N */,
-				    getString("Failure Count:"));
-        gui.PrPwLastChangedLabel.set("text" /* NOI18N */,
-				     getString("Last Password Change:"));
-        gui.PrPwExpiryLabel.set("text" /* NOI18N */,
-				getString("Password Expires:"));
-        gui.PrKvnoLabel.set("text" /* NOI18N */, getString("Key Version:"));
-        gui.LabelBarTicket.set("text" /* NOI18N */,
-			       getString("Ticket Lifetimes"));
-        gui.PrMaxTicketLifetimeLabel.set("text" /* NOI18N */,
-				 getString("Maximum Lifetime (seconds):"));
-        gui.PrMaxTicketRenewalLabel.set("text" /* NOI18N */,
-				getString("Maximum Renewal (seconds):"));
-        gui.PrDetailSave.set("text" /* NOI18N */, getString("Save"));
-        gui.PrDetailPrevious.set("text" /* NOI18N */, getString("Previous"));
-        gui.PrDetailNext.set("text" /* NOI18N */, getString("Next"));
-        gui.PrDetailCancel.set("text" /* NOI18N */, getString("Cancel"));
-        
-        gui.PrFlagLabel.set("text" /* NOI18N */, getString("Principal Flags"));
-        gui.LabelBarSecurity.set("text" /* NOI18N */, getString("Security"));
-        
-        gui.PrLockAcct.set("text" /* NOI18N */,
-			   Flags.getLabel(Flags.DISALLOW_ALL_TIX));
-        gui.PrForcePwChange.set("text" /* NOI18N */,
-				Flags.getLabel(Flags.REQUIRES_PWCHANGE));
-        gui.LabelBarTickets.set("text" /* NOI18N */, getString("Ticket"));
-        gui.PrAllowPostdated.set("text" /* NOI18N */,
-				 Flags.getLabel(Flags.DISALLOW_POSTDATED));
-        gui.PrAllowForwardable.set("text" /* NOI18N */,
-				   Flags.getLabel(Flags.DISALLOW_FORWARDABLE));
-        gui.PrAllowRenewable.set("text" /* NOI18N */,
-				 Flags.getLabel(Flags.DISALLOW_RENEWABLE));
-        gui.PrAllowProxiable.set("text" /* NOI18N */,
-				 Flags.getLabel(Flags.DISALLOW_PROXIABLE));
-        gui.PrAllowSvr.set("text" /* NOI18N */,
-			   Flags.getLabel(Flags.DISALLOW_SVR));
-        gui.LabelBarMiscellany.set("text" /* NOI18N */,
-				   getString("Miscellaneous"));
-        gui.PrAllowTGT.set("text" /* NOI18N */,
-			   Flags.getLabel(Flags.DISALLOW_TGT_BASED));
-        gui.PrAllowDupAuth.set("text" /* NOI18N */,
-			       Flags.getLabel(Flags.DISALLOW_DUP_SKEY));
-        gui.PrRequirePreAuth.set("text" /* NOI18N */,
-				 Flags.getLabel(Flags.REQUIRE_PRE_AUTH));
-        gui.PrRequireHwPreAuth.set("text" /* NOI18N */,
-				   Flags.getLabel(Flags.REQUIRE_HW_AUTH));
-        gui.PrFlagsSave.set("text" /* NOI18N */, getString("Save"));
-        gui.PrFlagsPrevious.set("text" /* NOI18N */, getString("Previous"));
-        gui.PrFlagsNext.set("text" /* NOI18N */, getString("Done"));
-        gui.PrFlagsCancel.set("text" /* NOI18N */, getString("Cancel"));
-        
-        gui.PoListLabel.set("text" /* NOI18N */, getString("Policy List"));
-        gui.PoListPatternLabel.set("text" /* NOI18N */,
-				   getString("Filter Pattern:"));
-        gui.PoListClear.set("text" /* NOI18N */, getString("Clear Filter"));
-        gui.PoListModify.set("text" /* NOI18N */, getString("Modify"));
-        gui.PoListAdd.set("text" /* NOI18N */, getString("Create New"));
-        gui.PoListDelete.set("text" /* NOI18N */, getString("Delete"));
-        gui.PoListDuplicate.set("text" /* NOI18N */, getString("Duplicate"));
-        
-        gui.PoDetailLabel.set("text" /* NOI18N */, getString("Policy Details"));
-        gui.PoNameLabel.set("text" /* NOI18N */, getString("Policy Name:"));
-        gui.PoMinPwLengthLabel.set("text" /* NOI18N */,
-				   getString("Minimum Password Length:"));
-        gui.PoMinPwClassLabel.set("text" /* NOI18N */,
-				  getString("Minimum Password Classes:"));
-        gui.PoSavedPasswordsLabel.set("text" /* NOI18N */,
-				      getString("Saved Password History:"));
-        gui.PoMinTicketLifetimeLabel.set("text" /* NOI18N */,
-			 getString("Minimum Password Lifetime (seconds):"));
-        gui.PoMaxTicketLifetimeLabel.set("text" /* NOI18N */,
-			 getString("Maximum Password Lifetime (seconds):"));
-        gui.PoReferencesLabel.set("text" /* NOI18N */,
-				  getString("Principals Using This Policy:"));
-        gui.PoDetailSave.set("text" /* NOI18N */, getString("Save"));
-        gui.PoDetailPrevious.set("text" /* NOI18N */, getString("Previous"));
-        gui.PoDetailDone.set("text" /* NOI18N */, getString("Done"));
-        gui.PoDetailCancel.set("text" /* NOI18N */, getString("Cancel"));
-    }
-    
-    /**
-     * Allow user to see a fatal error before exiting
-     */
-    public void fatalError(Frame frame, String[] text) {
-        String title = getString("Error");
-        String[] buttons = new String[1];
-        buttons[0] = getString("OK");
-        ChoiceDialog cd = new ChoiceDialog(frame, title, text, buttons);
-        cd.getSelection();
-        exit();
-    }
-    
-    /**
-     * Set the defaults for the login screen.  Called on startup,
-     * when "Start Over" is pressed, or when "Log Out" is chosen
-     * from the main screen's menu.
-     *
-     */
-    public void setLoginDefaults() {
-        CurName = DefName;
-        CurPass = "";
-        if (DefRealm != null)
-            CurRealm = DefRealm;
-        else {
-            CurRealm = "";
-            if (firsttime) {
-                showLoginWarning(getString("Cannot find default realm; "
-					   +"check /etc/krb5/krb5.conf"));
-                firsttime = false;
-            }
-        }
-        if (DefServer != null)
-            CurServer = DefServer;
-        else
-            CurServer = "";
-        CurPort = 0;
-        try {
-            Integer i = new Integer(DefPort);
-            CurPort = i.intValue();
-        } catch (NumberFormatException e) {}
-        gui.LoginName.set("text" /* NOI18N */, CurName);
-        gui.LoginPass.set("text" /* NOI18N */, CurPass);
-        gui.LoginRealm.set("text" /* NOI18N */, CurRealm);
-        gui.LoginServer.set("text" /* NOI18N */, CurServer);
-        if (CurRealm.equals("___default_realm___")) {
-            String[] error = new String[1];
-            error[0] = getString(
-				 "Kerberos /etc/krb5/krb5.conf configuration"
-				 +" file not configured; exiting");
-            fatalError(realLoginFrame, error);
-        }
-        if (!loginListeners)
-            setupLoginNormalListeners();
-        loginListeners = true;
-        TextField name = (TextField)gui.LoginName.getBody();
-        name.selectAll();
-        name.requestFocus();
-    }
-    
-    /**
-     * React after new realm entered
-     *
-     */
-    public void newRealm() {
-        CurRealm = (String)gui.LoginRealm.get("text" /* NOI18N */);
-        String s = kc.getRealmServer(CurRealm);
-        if (s != null) {
-            CurServer = s;
-            gui.LoginServer.set("text" /* NOI18N */, CurServer);
-            
-        } else {
-            showLoginWarning(getString("Cannot find default server for realm"));
-            CurServer = "";
-            gui.LoginServer.set("text" /* NOI18N */, CurServer);
-            ((TextField)gui.LoginServer.getBody()).requestFocus();
-        }
-    }
-    
-    /**
-     * React after new server entered
-     *
-     */
-    public void newServer() {
-        CurServer = (String)gui.LoginServer.get("text" /* NOI18N */);
-        if (CurPass.compareTo("") != 0)
-            loginComplete();
-    }
-    
-    /**
-     * React after username is complete
-     *
-     */
-    public void nameComplete() {
-        ((TextField)gui.LoginName.getBody()).select(0, 0);
-        ((TextField)gui.LoginPass.getBody()).requestFocus();
-    }
-    
-    /**
-     * React after password is complete or "OK" button is pressed.
-     * We insist that the realm and server are set here separately
-     * so that we can permit field-to-field motion if /etc/krb5/krb5.conf
-     * does not exist.
-     *
-     */
-    public void passwordComplete() {
-        CurPass = (String)gui.LoginPass.get("text" /* NOI18N */);
-        if (CurRealm.compareTo("") == 0) {
-            ((TextField)gui.LoginRealm.getBody()).requestFocus();
-            return;
-        }
-        if (CurServer.compareTo("") == 0) {
-            ((TextField)gui.LoginServer.getBody()).requestFocus();
-            return;
-        }
-        loginComplete();
-    }
-    
-    /**
-     * Check to see if we're happy with the login information.
-     * We may want to go to the main screen, principal list tab.
-     *
-     */
-    public void loginComplete() {
-        pdateLoginDone = new Date();
-        CurName   = (String)gui.LoginName.get("text" /* NOI18N */);
-        CurPass   = (String)gui.LoginPass.get("text" /* NOI18N */);
-        CurRealm  = (String)gui.LoginRealm.get("text" /* NOI18N */);
-        CurServer = (String)gui.LoginServer.get("text" /* NOI18N */);
-        if (CurPass.compareTo("") == 0) {
-            showLoginWarning(getString("A password must be specified"));
-            ((TextField)gui.LoginPass.getBody()).requestFocus();
-            return;
-        }
-        if (CurRealm.compareTo("") == 0) {
-            showLoginWarning(getString("A realm entry must be specified"));
-            ((TextField)gui.LoginRealm.getBody()).requestFocus();
-            return;
-        }
-        if (CurServer.compareTo("") == 0) {
-            showLoginWarning(getString("A master KDC entry must be specified"));
-            ((TextField)gui.LoginServer.getBody()).requestFocus();
-            return;
-        }
-        
-        realLoginFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        Kadmin = new Kadmin();
-        boolean b;
-        try {
-            b = Kadmin.sessionInit(CurName, CurPass, CurRealm, CurServer,
-				   CurPort);
-        } catch (Exception e) {
-            b = false;
-            realLoginFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            showLoginError(e.getMessage());
-            return;
-        }
-        realLoginFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        if (b == false) {
-            showLoginError(getString("Invalid login, please try again"));
-            return;
-        }
-        pdateSessionUp = new Date();
-        
-        // Instantiate defaults for this user
-        if (defaults == null)
-            defaults = new Defaults(System.getProperty("user.home" /* NOI18N */)
-				    + "/.gkadmin" /* NOI18N */,
-			    (java.awt.Color)gui.mainframe.get("background"));
-        else
-            defaults.refreshDefaults();
-        
-        // Figure out what privileges we have
-        try {
-            privs = Kadmin.getPrivs();
-        } catch (Exception e) {
-            showLoginError(e.getMessage());
-        }
-        
-        // Check privileges; if bad enough, we'll just give up.
-        if (checkPrivs() == false) {
-            try {
-                Kadmin.sessionExit();
-            } catch (Exception e) {}
-            return;
-        }
-        reactToPrivs();
-        
-        prSetEditable(false);
-        prSetCanSave(false);
-        poSetEditable(false);
-        poSetCanSave(false);
-        prSelValid(false);
-        poSelValid(false);
-        gui.PrListPattern.set("text" /* NOI18N */, "");
-        gui.PoListPattern.set("text" /* NOI18N */, "");
-        
-        // Disable login frame
-        setListeners(LoginNormal, false);
-        loginListeners = false;
-        
-        pdatePreMainShow = new Date();
-        realLoginFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        gui.mainframe.show(true);	/* XXX - done waaay too early, fix */
-        realLoginFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        pdatePostMainShow = new Date();
-        realMainFrame  = (Frame)gui.mainframe.getBody();
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        gui.tabbedfolder1.show(getString("Principals"));
-        gui.cardpanel2.show("List" /* NOI18N */);
-        setupMainNormalListeners();
-        setupDefaultsEditingFrame();
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        pdateMainActive = new Date();
-        reportStartTimes();
-        
-        showPolicyList("");
-        showPrincipalList("");
-        setPolicyChoice();
-        /* XXX - disabled multiple selection until double-click works */
-        gui.Prlist.set("allowMultipleSelections" /* NOI18N */,
-		       new Boolean(false));
-        gui.Pollist.set("allowMultipleSelections" /* NOI18N */,
-			new Boolean(false));
-        if ((privs & PRIV_LIST) == 0) {
-            showWarning(
-	getString("Unable to access lists; please use the Name field."));
-            ((TextField)gui.PrListPattern.getBody()).requestFocus();
-        }
-    }
-    
-    /**
-     * React to main screen's "Log Out" choice by going back to login screen.
-     *
-     */
-    public void logout() {
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        setListeners(MainNormal, false);
-        setListeners(defaultsNormal, false);
-        try {
-            Kadmin.sessionExit();
-            Kadmin = null;
-        } catch (Exception e) {
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            showError(e.getMessage());
-            return;
-        }
-        setLoginDefaults();
-        principalList = null;
-        gui.Prlist.set("items" /* NOI18N */, null);
-        policyList = null;
-        gui.Pollist.set("items" /* NOI18N */, null);
-        gui.mainframe.show(false);
-        curPrListPos = 0;
-        curPrPattern = "";
-        curPoListPos = 0;
-        curPoPattern = "";
-        
-        // Forget this user's print preferences
-        PrintUtil.reinitialize();
-        
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-    }
-    
-    public void exit() {
-        try {
-            if (Kadmin != null)
-                Kadmin.sessionExit();
-        } catch (Exception e) {}
-        super.exit();
-    }
-    
-    /*
-     * Methods for the principal list panel
-     */
-    
-    /**
-     * Update all principal text fields from gui.
-     * Check to see if anyone of them had a parse error.
-     * @param nullPasswdOK true if the password can be null. This is
-     * allowed only when the operation is a modify on an existing
-     * principal or if it is an attempt to print a new principal still
-     * in creation.
-     * @returns true if all is ok,  false if an error occurs
-     */
-    // Quits as soon as the first error is detected. The method that
-    // detects the error also shows a dialog box with a message.
-    public boolean prUpdateFromGui(boolean nullPasswdOK) {
-        return (setPrName1() && setPrPassword(nullPasswdOK) && setPrExpiry() &&
-		setPrComments() && setPrPwExpiry() && setPrKvno() &&
-		setPrMaxlife() && setPrMaxrenew() && setEncType());
-    }
-    
-    /**
-     * Is the principal name field editable?
-     *
-     */
-    public void prSetEditable(boolean editable) {
-        prnameEditable = editable;
-        Boolean b = new Boolean(editable);
-        gui.PrName1.set("editable" /* NOI18N */, b);
-    }
-    
-    /**
-     * React to a change in the principal search pattern
-     *
-     */
-    public void prPatternComplete() {
-        curPrListPos = 0;
-        String pattern = (String)gui.PrListPattern.get("text" /* NOI18N */);
-        if (!noLists)
-            showPrincipalList(pattern);
-        else
-            setCurPrincipal(pattern);
-    }
-    
-    /**
-     * Clear principal search pattern
-     *
-     */
-    public void prPatternClear() {
-        if (noLists) {
-            gui.PrListPattern.set("text" /* NOI18N */, "");
-            ((TextField)gui.PrListPattern.getBody()).requestFocus();
-        } else {
-            String tempName = CurPrincipal;
-            fillPrincipalList("");
-            selectPrincipal(tempName);
-        }
-    }
-    
-    /**
-     * Show the principal list after applying the filter passed in.
-     */
-    public void showPrincipalList(String pattern) {
-        prin = null; // we are not editing a principal
-        fillPrincipalList(pattern);
-        ModeString = "";
-        OpString = "";
-        updateStatus();
-        gui.cardpanel1.show("List" /* NOI18N */);
-        if (noLists)
-            ((TextField)gui.PrListPattern.getBody()).requestFocus();
-    }
-    
-    /**
-     * Generate the principal list for the first time or after a pattern
-     * has been chosen.
-     *
-     */
-    public void fillPrincipalList(String pattern) {
-        if (noLists) {
-            setCurPrincipal((String)gui.PrListPattern.get("text" /* NOI18N */));
-            ((TextField)gui.PrListPattern.getBody()).requestFocus();
-            disablePrincipalPrinting();
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        pdateStartPlist = new Date();
-        // Do we still want to cache the principal list?
-        long cachetime = A_LONG_TIME;
-        if (!defaults.getStaticLists())
-            cachetime = defaults.getCacheTime() * 1000;
-        if (principalList != null
-	    && ((new Date()).getTime() - principalListDate.getTime())
-	    <= cachetime) {
-            
-            // Has the pattern changed?
-            if (pattern.compareTo(curPrPattern) != 0)
-                newPrPattern(pattern);
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            selectPrincipal(curPrListPos);
-            return;
-            
-        }
-        PrincipalList p = new PrincipalList(Kadmin);
-        gui.StatusLine.set("text" /* NOI18N */,
-			   getString("Loading principal list"));
-        try {
-            principalList = p.getPrincipalList(CurRealm);
-            principalListDate = new Date();
-        } catch (Exception e) {
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            showError(e.getMessage());
-            updateStatus();
-            return;
-        }
-        updateStatus();
-        pdateHavePlist = new Date();
-        reportTime("Fetched Plist  : ", pdateHavePlist, pdateStartPlist);
-        newPrPattern(pattern);
-        selectPrincipal(curPrListPos);
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        pdateDonePlist = new Date();
-        reportTime("Completed Plist: ", pdateDonePlist, pdateHavePlist);
-        if (perfmon)
-            System.out.println("Principal list has "
-	       +(new Integer(principalList.length)).toString()+" items");
-    }
-    
-    private void newPrPattern(String pattern) {
-        curPrPattern = pattern;
-        gui.PrListPattern.set("text" /* NOI18N */, pattern);
-        refreshPrincipalList();
-    }
-    
-    private void refreshPrincipalList() {
-        if (noLists)
-            return;
-        Filter f = new Filter(principalList, curPrPattern);
-        gui.Prlist.set("items" /* NOI18N */, f.out);
-    }
-    
-    private void selectPrincipal(int pos) {
-        TextList list = (TextList)gui.Prlist.getBody();
-        if (list.countItems() == 0) {
-            setCurPrincipal("");
-            return;
-        }
-        
-        if (pos < 0)
-            pos = 0;
-        else if (pos >= list.countItems())
-            pos = list.countItems() - 1;
-        
-        list.select(pos);
-        enablePrincipalPrinting();
-        list.makeVisible(pos);
-        setCurPrincipal(list.getItem(pos));
-    }
-    
-    private void selectPrincipal(String name) {
-        String[] list = getItemsFromTextList(((TextList)gui.Prlist.getBody()));
-        selectPrincipal(search(list, name));
-    }
-    
-    private String[] getItemsFromTextList(TextList list) {
-        StringVector v = list.items();
-        String [] ret = new String[v.size()];
-        v.copyInto(ret);
-        return ret;
-    }
-    
-    /**
-     * Find index where "name" might go in a sorted string array;
-     * returns either the element which matches "name" exactly
-     * or the element just lexographically greater than "name".
-     */
-    private int search(String[] array, String name) {
-        int lo = 0;
-        int hi = array.length;
-        int mid = hi;
-        while (lo < hi) {
-            mid = (lo + hi) / 2;
-            int cmp = name.concat("@").compareTo(array[mid].concat("@"));
-            if (hi - lo == 1) {
-                if (cmp > 0)
-                    mid = hi;
-                break;
-            }
-            if (cmp == 0)
-                break;
-            if (cmp < 0)
-                hi = mid;
-            else if (cmp > 0)
-                lo = mid;
-        }
-        return mid;
-    }
-    
-    private String[] addToList(String[] list, String name) {
-        if (list == null)
-            return null;
-        int index = search(list, name);
-        int rem = list.length - index;
-        String[] newlist = new String[list.length+1];
-        if (index > 0)
-            System.arraycopy(list, 0, newlist, 0, index);
-        newlist[index] = name;
-        if (rem > 0)
-            System.arraycopy(list, index, newlist, index+1, rem);
-        return newlist;
-    }
-    
-    private String[] delFromList(String[] list, String name) {
-        if (list == null)
-            return null;
-        int index = search(list, name);
-        int rem = list.length - index;
-        String[] newlist = new String[list.length-1];
-        if (index > 0)
-            System.arraycopy(list, 0, newlist, 0, index);
-        if (rem > 1)
-            System.arraycopy(list, index+1, newlist, index, rem-1);
-        return newlist;
-    }
-    
-    /**
-     * Collect the policy choice entries
-     *
-     */
-    public void setPolicyChoice() {
-        String[] pols = null;
-        if (!noLists) {
-            PolicyList p = new PolicyList(Kadmin);
-            try {
-                pols = p.getPolicyList();
-            } catch (Exception e) {
-                showError(e.getMessage());
-                return;
-            }
-        }
-        Choice c = (Choice)gui.PrPolicy.getBody();
-        c.removeAll();
-        c.add(getString("(no policy)"));
-        for (int i = 0; pols != null && i < pols.length; i++)
-            c.add(pols[i]);
-    }
-    
-    /**
-     * Look at the principal list to see what's selected
-     *
-     */
-    public void lookAtPrList() {
-        if (noLists)
-            return;
-        TextList list = (TextList) gui.Prlist.getBody();
-        prMulti = null;
-        String[] sel = list.getSelectedItems();
-        if (sel.length == 1) {
-            setCurPrincipal(sel[0]);
-            curPrListPos = list.getSelectedIndex();
-        } else {
-            if (sel.length > 0)
-                prMulti = sel;
-            setCurPrincipal("");
-        }
-    }
-    
-    private void restorePrListSelection() {
-        if (noLists)
-            return;
-        TextList list = (TextList) gui.Prlist.getBody();
-        list.select(curPrListPos);
-    }
-    
-    /**
-     * When the principal name choice changes, we want to reflect
-     * the name in the other principal tabs.  We can also use this
-     * opportunity to enable/disable buttons.
-     *
-     */
-    public void setCurPrincipal(String name) {
-        CurPrincipal = name;
-        gui.PrName1.set("text" /* NOI18N */, name);
-        gui.PrName2.set("text" /* NOI18N */, name);
-        gui.PrName3.set("text" /* NOI18N */, name);
-        if (name.compareTo("") == 0) {
-            prSelValid(false);
-            return;
-        }
-        prSelValid(true);
-    }
-    
-    /**
-     * Make Modify, Delete and Duplicate buttons react to what is selected.
-     * Privileges:
-     * If we have neither modify or inquire, we keep Modify disabled;
-     * if we have no modify privileges, we permit Modify to see info,
-     * but the principal panel components are disabled in reactToPrivs().
-     * If we have add and inquire privileges, we can permit Duplicate;
-     * no add also means Create New is permanently disabled in reactToPrivs().
-     * If we have no delete privileges, we keep Delete disabled.
-     */
-    public void prSelValid(boolean selected) {
-        prSelValid = selected;
-        Boolean b = new Boolean(selected && (privs & PRIV_INQUIRE) != 0);
-        gui.PrListModify.set("enabled" /* NOI18N */, b);
-        int want = (PRIV_ADD | PRIV_INQUIRE);
-        b = new Boolean(selected && (privs & want) == want);
-        gui.PrListDuplicate.set("enabled" /* NOI18N */, b);
-        b = new Boolean((selected || prMulti != null)
-			&&(privs & PRIV_DELETE) != 0);
-        gui.PrListDelete.set("enabled" /* NOI18N */, b);
-    }
-    
-    /**
-     * Make the Save button do the right thing.
-     *
-     */
-    public void prSetCanSave(boolean ok) {
-        Boolean b = new Boolean(ok);
-        gui.PrBasicSave.set("enabled" /* NOI18N */, b);
-        gui.PrDetailSave.set("enabled" /* NOI18N */, b);
-        gui.PrFlagsSave.set("enabled" /* NOI18N */, b);
-    }
-    
-    /**
-     * Update status line with current information.
-     *
-     */
-    public void updateStatus() {
-        gui.StatusLine.set("text" /* NOI18N */, ModeString+OpString+SaveString);
-    }
-    
-    /**
-     * This is a way for the data modification actions to note that
-     * the principal has edits outstanding.
-     *
-     */
-    public void prSetNeedSave() {
-        prNeedSave = true;
-        prSetCanSave(true);
-        SaveString = getString("- *CHANGES*");
-        updateStatus();
-    }
-    
-    public boolean prDoSave() {
-        
-        // before attempting to save make sure all text fields are in order
-        if (prUpdateFromGui(!prin.isNew) == false)
-            return false;
-        
-        boolean b = true;
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            b = prin.savePrincipal();
-        } catch (Exception e) {
-            b = false;
-            showError(e.getMessage());
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        if (!b)
-            return false;
-        if (prin.isNew) {
-            principalList = addToList(principalList, prin.PrName);
-            refreshPrincipalList();
-            selectPrincipal(prin.PrName);
-        }
-        prin.isNew = false;
-        gui.PrPassword.set("text" /* NOI18N */, "");
-        prin.setPassword("");
-        prSetEditable(false);
-        prSetCanSave(false);
-        prNeedSave = false;
-        SaveString = "";
-        updateStatus();
-        return true;
-    }
-    
-    /**
-     * React to a choice from the principal list via double-click or
-     * single-click+Modify; we want to go to the next tab in each case.
-     * If we don't have modify privileges, we need to simply show values.
-     */
-    public void prModify() {
-        enablePrincipalPrinting();
-        if (!prNeedSave) {
-            prSetEditable(false);
-            prSetCanSave(false);
-        }
-        if (noLists)
-            CurPrincipal = (String)gui.PrListPattern.get("text" /* NOI18N */);
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        enablePrAttributes(new Boolean((privs & (PRIV_ADD|PRIV_MODIFY)) != 0));
-        Boolean b = new Boolean((privs & PRIV_CHANGEPW) != 0);
-        gui.PrPassword.set("enabled" /* NOI18N */, b);
-        gui.PrBasicRandomPw.set("enabled" /* NOI18N */, b);
-        gui.EncList.set("enabled" /* NOI18N */, b);
-        try {
-            prin = new Principal(Kadmin, CurPrincipal);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        showPrincipal(prin);
-        String policy = (String)gui.PrPolicy.get("selectedItem" /* NOI18N */);
-        if (policy.compareTo(getString("(no policy)")) == 0)
-            policy = "";
-        else
-            setDefaultPolicy(policy);
-        ModeString = getString("Modify")+" ";
-        OpString = getString("Principal");
-        updateStatus();
-        gui.cardpanel1.show("Basics" /* NOI18N */);
-    }
-    
-    /**
-     * React to add principal button
-     * If we got here, we need to enable attributes since we have privs.
-     */
-    public void prAdd() {
-        enablePrincipalPrinting();
-        setCurPrincipal("");
-        prSelValid = true;
-        prSetEditable(true);
-        prSetNeedSave();
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        Boolean b = new Boolean(true);
-        enablePrAttributes(b);
-        gui.PrPassword.set("enabled" /* NOI18N */, b);
-        gui.PrBasicRandomPw.set("enabled" /* NOI18N */, b);
-        gui.EncList.set("enabled" /* NOI18N */, b);
-        try {
-            prin = new Principal(Kadmin, defaults);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        showPrincipal(prin);
-        ModeString = getString("Create New")+" ";
-        OpString = getString("Principal");
-        updateStatus();
-        gui.cardpanel1.show("Basics" /* NOI18N */);
-        ((TextField)gui.PrName1.getBody()).requestFocus();
-    }
-    
-    /**
-     * React to duplicate principal button
-     *
-     */
-    public void prDuplicate() {
-        enablePrincipalPrinting();
-        if (noLists)
-            CurPrincipal = (String)gui.PrListPattern.get("text" /* NOI18N */);
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            prin = new Principal(Kadmin, CurPrincipal);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        setCurPrincipal("");
-        prSelValid = true;
-        prSetEditable(true);
-        prSetNeedSave();
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        Boolean b = new Boolean(true);
-        enablePrAttributes(b);
-        gui.PrPassword.set("enabled" /* NOI18N */, b);
-        gui.PrBasicRandomPw.set("enabled" /* NOI18N */, b);
-        gui.PrBasicRandomPw.set("enabled" /* NOI18N */, b);
-        try {
-            prin = new Principal(Kadmin, prin);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        prin.PrName = "";
-        showPrincipal(prin);
-        ModeString = getString("Duplicate")+" ";
-        OpString = getString("Principal");
-        updateStatus();
-        gui.cardpanel1.show("Basics" /* NOI18N */);
-        ((TextField)gui.PrName1.getBody()).requestFocus();
-    }
-    
-    /**
-     * React to delete principal button
-     */
-    public void prDelete() {
-        String text[] = {getString("You are about to destroy data."),
-			 getString("Click OK to proceed or"
-				   +" Cancel to continue editing.")};
-        String resp = confirmAction(realMainFrame, text);
-        if (resp.equals(getString("Cancel")))
-            return;
-        if (noLists)
-            CurPrincipal = (String)gui.PrListPattern.get("text" /* NOI18N */);
-        boolean b = false;
-        try {
-            b = Kadmin.deletePrincipal(CurPrincipal);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            return;
-        }
-        if (!b)
-            return;
-        principalList = delFromList(principalList, CurPrincipal);
-        refreshPrincipalList();
-        setCurPrincipal("");
-        prSelValid = true;
-        prSetEditable(true);
-        if (curPrListPos == ((TextList)gui.Prlist.getBody()).countItems())
-            curPrListPos--;
-        showPrincipalList(curPrPattern);
-    }
-    
-    /**
-     * React to Previous button on basic screen
-     *
-     */
-    public void prBasicPrevious() {
-        prCancel();
-    }
-    
-    /**
-     * React to Next button on basic screen. If some changes were made
-     * then check to see if they contain a parse error. If so, do
-     * nothing. The method that checks for error messages also displays
-     * the error message.
-     *
-     */
-    public void prBasicNext() {
-        if (prNeedSave)
-            if (!prUpdateFromGui(!prin.isNew))
-		return;
-        
-        updateStatus();
-        gui.cardpanel1.show("Details" /* NOI18N */);
-    }
-    
-    /**
-     * React to Previous button on detail screen. If some changes were made
-     * then check to see if they contain a parse error. If so, do
-     * nothing. The method that checks for error messages also displays
-     * the error message.
-     */
-    public void prDetailPrevious() {
-        if (prNeedSave)
-            if (!prUpdateFromGui(!prin.isNew))
-		return;
-        
-        updateStatus();
-        gui.cardpanel1.show("Basics" /* NOI18N */);
-    }
-    
-    /**
-     * React to Next button on detail screen. If some changes were made
-     * then check to see if they contain a parse error. If so, do
-     * nothing. The method that checks for error messages also displays
-     * the error message.
-     *
-     */
-    public void prDetailNext() {
-        if (prNeedSave)
-            if (!prUpdateFromGui(!prin.isNew))
-		return;
-        
-        updateStatus();
-        gui.cardpanel1.show("Flags" /* NOI18N */);
-    }
-    
-    /**
-     * React to Previous button on flags screen
-     *
-     */
-    public void prFlagsPrevious() {
-        updateStatus();
-        gui.cardpanel1.show("Details" /* NOI18N */);
-    }
-    
-    /**
-     * React to Done button on flags screen. If any changes were made to
-     * the principal, then try to save them. If the save fails for any
-     * reason, do not return to the principal list.
-     *
-     */
-    public void prFlagsDone() {
-        if (prNeedSave && prDoSave() == false)
-            return;
-        showPrincipalList(curPrPattern);
-    }
-    
-    /**
-     * React to save principal button
-     *
-     */
-    public void prSave() {
-        prDoSave();
-    }
-    
-    /**
-     * React to cancel principal button
-     *
-     */
-    public void prCancel() {
-        if (prNeedSave) {
-            String text[] = {getString("You are about to lose changes."),
-			     getString("Click Save to commit changes, "
-				       +"Discard to discard changes, "
-				       +"or Cancel to continue editing.")};
-            String resp = confirmSave(realMainFrame, text);
-            if (resp.equals(getString("Cancel")))
-                return;
-            if (resp.equals(getString("Save")))
-                if (!prDoSave())
-		    return;
-        }
-        prSetEditable(false);
-        prSetCanSave(false);
-        prNeedSave = false;
-        lookAtPrList();
-        SaveString = "";
-        showPrincipalList(curPrPattern);
-    }
-    
-    /*
-     * Methods for the principal attribute panels
-     */
-    
-    public boolean setPrName1() {
-        if (!prnameEditable)
-            return true;
-        
-        String p = ((String)gui.PrName1.get("text" /* NOI18N */)).trim();
-        if (p.compareTo("") == 0) {
-            showError(getString("Please enter a principal name or cancel"));
-            ((TextField)gui.PrName1.getBody()).requestFocus();
-            return false;
-        }
-        // visually delete any white space that was at the start or end
-        // by resetting the field to the trimmmed String.
-        gui.PrName1.set("text" /* NOI18N */, p);
-        setCurPrincipal(p);
-        prin.setName(p);
-        return true;
-    }
-    
-    public boolean setPrComments() {
-        prin.setComments((String)gui.PrComments.get("text" /* NOI18N */));
-        return true;
-    }
-    
-    public boolean setEncType() {
-        if (prin.setEncType((String)gui.EncList.get("text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.EncList.set("text" /* NOI18N */,  prin.getEncType());
-            return true;
-        } else
-            return false;
-    }
-
-    public boolean setPrExpiry() {
-        if (prin.setExpiry((String)gui.PrExpiry.get("text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PrExpiry.set("text" /* NOI18N */,  prin.getExpiry());
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PrExpiry.getBody()),
-				DATE_DATA);
-            return false;
-        }
-    }
-    
-    public boolean setPrPassword(boolean nullOK) {
-        String p = (String)gui.PrPassword.get("text" /* NOI18N */);
-        if (p.compareTo("") == 0) {
-            if (!nullOK) {
-                showError(getString("Please enter a password or cancel"));
-                ((TextField)gui.PrPassword.getBody()).requestFocus();
-                return false;
-            } else return true;
-	}
-        
-        prin.setPassword(p);
-        return true;
-    }
-    
-    public void genRandomPassword() {
-        int n, count = 0;
-        byte[] buf = new byte[20];
-        byte b;
-        Random r = new Random();
-        String passlist = "abcdefghijklmnopqrstuvwxyz1234567890!#$%&*+@"
-	    /* NOI18N */;
-        
-        gui.PrPassword.set("text" /* NOI18N */, "");
-        while (count < 10) {
-            n = r.nextInt() & 0x7F;
-            b = (byte)n;
-            if (passlist.indexOf(b) == -1)
-                continue;
-            buf[count++] = b;
-        }
-        buf[count] = 0;
-        CurPass = new String(buf);
-        gui.PrPassword.set("text" /* NOI18N */, CurPass);
-        prin.setPassword((String)gui.PrPassword.get("text" /* NOI18N */));
-    }
-    
-    public void setPrPolicy() {
-        if (prin == null)
-                return;
-        String policy = (String)gui.PrPolicy.get("selectedItem" /* NOI18N */);
-        if (policy.compareTo(getString("(no policy)")) == 0)
-            policy = "";
-        try {
-                prin.setPolicy(policy);
-        } catch (Exception e) {};
-        setDefaultPolicy(policy);
-    }
-    
-    public boolean setPrMaxlife() {
-        if (prin.setMaxlife((String)gui.PrMaxLifetime.get("text"
-							  /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PrMaxLifetime.set("text" /* NOI18N */, prin.getMaxLife());
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PrMaxLifetime.getBody()),
-				DURATION_DATA);
-            return false;
-        }
-    }
-    
-    public boolean setPrMaxrenew() {
-        if (prin.setMaxrenew((String)gui.PrMaxRenewal.get(
-						  "text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing  by resetting the gui data
-            gui.PrMaxRenewal.set("text" /* NOI18N */, prin.getMaxRenew());
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PrMaxRenewal.getBody()),
-				DURATION_DATA);
-            return false;
-        }
-    }
-    
-    public boolean setPrKvno() {
-        if (prin.setKvno((String)gui.PrKvno.get("text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PrKvno.set("text" /* NOI18N */, nf.format(prin.Kvno));
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PrKvno.getBody()), NUMBER_DATA);
-            return false;
-        }
-    }
-    
-    public boolean setPrPwExpiry() {
-        if (prin.setPwExpiry((String)gui.PrPwExpiry.get("text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PrPwExpiry.set("text" /* NOI18N */, prin.getPwExpireTime());
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PrPwExpiry.getBody()),
-				DATE_DATA);
-            return false;
-        }
-    }
-    
-    public void setPrFlag(int bitmask) {
-        prin.flags.toggleFlags(bitmask);
-    }
-    
-    /**
-     * Update components to reflect data in this principal
-     *
-     */
-    public void showPrincipal(Principal p) {
-        
-        gui.PrName1.set("text" /* NOI18N */, p.PrName);
-        gui.PrName2.set("text" /* NOI18N */, p.PrName);
-        gui.PrName3.set("text" /* NOI18N */, p.PrName);
-        gui.PrComments.set("text" /* NOI18N */, p.Comments);
-        String policy = p.Policy;
-        if (policy.compareTo("") == 0)
-            policy = getString("(no policy)");
-        gui.PrPolicy.set("selectedItem" /* NOI18N */, policy);
-        gui.PrPassword.set("text" /* NOI18N */, "");
-        
-        gui.PrLastChangedTime.set("text" /* NOI18N */, p.getModTime());
-        gui.PrLastChangedBy.set("text" /* NOI18N */,   p.ModName);
-        gui.PrExpiry.set("text" /* NOI18N */,          p.getExpiry());
-        gui.EncList.set("text" /* NOI18N */,           p.getEncType());
-        gui.PrLastSuccess.set("text" /* NOI18N */,     p.getLastSuccess());
-        gui.PrLastFailure.set("text" /* NOI18N */,     p.getLastFailure());
-        gui.PrFailCount.set("text" /* NOI18N */, nf.format(p.NumFailures));
-        gui.PrLastPwChange.set("text" /* NOI18N */,    p.getLastPwChange());
-        gui.PrPwExpiry.set("text" /* NOI18N */,        p.getPwExpireTime());
-        gui.PrKvno.set("text" /* NOI18N */, nf.format(p.Kvno));
-        gui.PrMaxLifetime.set("text" /* NOI18N */, p.getMaxLife());
-        gui.PrMaxRenewal.set("text" /* NOI18N */, p.getMaxRenew());
-        
-        gui.PrLockAcct.set("state" /* NOI18N */,
-		   new Boolean(p.flags.getFlag(Flags.DISALLOW_ALL_TIX)));
-        gui.PrForcePwChange.set("state" /* NOI18N */,
-			new Boolean(p.flags.getFlag(Flags.REQUIRES_PWCHANGE)));
-        gui.PrAllowPostdated.set("state" /* NOI18N */,
-		 new Boolean(!p.flags.getFlag(Flags.DISALLOW_POSTDATED)));
-        gui.PrAllowForwardable.set("state" /* NOI18N */,
-		   new Boolean(!p.flags.getFlag(Flags.DISALLOW_FORWARDABLE)));
-        gui.PrAllowRenewable.set("state" /* NOI18N */,
-		 new Boolean(!p.flags.getFlag(Flags.DISALLOW_RENEWABLE)));
-        gui.PrAllowProxiable.set("state" /* NOI18N */,
-		 new Boolean(!p.flags.getFlag(Flags.DISALLOW_PROXIABLE)));
-        gui.PrAllowSvr.set("state" /* NOI18N */,
-			   new Boolean(!p.flags.getFlag(Flags.DISALLOW_SVR)));
-        gui.PrAllowTGT.set("state" /* NOI18N */,
-		   new Boolean(!p.flags.getFlag(Flags.DISALLOW_TGT_BASED)));
-        gui.PrAllowDupAuth.set("state" /* NOI18N */,
-		       new Boolean(!p.flags.getFlag(Flags.DISALLOW_DUP_SKEY)));
-        gui.PrRequirePreAuth.set("state" /* NOI18N */,
-			 new Boolean(p.flags.getFlag(Flags.REQUIRE_PRE_AUTH)));
-        gui.PrRequireHwPreAuth.set("state" /* NOI18N */,
-			   new Boolean(p.flags.getFlag(Flags.REQUIRE_HW_AUTH)));
-    }
-    
-    /**
-     * Format a time duration for printing, using I18N formats
-     *
-     */
-    public String showDuration(Integer seconds) {
-        return nf.format(seconds.longValue());
-    }
-    
-    /*
-     * Methods for the policy list panel
-     */
-    
-    /**
-     * Update all policy text fields from gui.
-     * Check to see if anyone of them had a parse error.
-     * @returns true if all is ok,  false if an error occurs
-     */
-    // Quits as soon as the first error is detected. The method that
-    // detects the error also shows a dialog box with a message.
-    public boolean poUpdateFromGui() {
-        return (setPolName() && setPolMinlife() && setPolMaxlife());
-    }
-    
-    /**
-     * If we have edited a principal, select their policy by default
-     *
-     */
-    public void setDefaultPolicy(String name) {
-        setCurPolicy(name);
-        fillPolicyList("");
-        TextList l = (TextList)gui.Pollist.getBody();
-        int itemcount = l.countItems();
-        for (int i = 0; i < itemcount; i++)
-            if (l.getItem(i).compareTo(name) == 0) {
-		curPoListPos = i;
-		break;
-	    }
-    }
-    
-    /**
-     * Is the policy name field editable?
-     *
-     */
-    public void poSetEditable(boolean editable) {
-        ponameEditable = editable;
-        Boolean b = new Boolean(editable);
-        gui.PoName.set("editable" /* NOI18N */, b);
-    }
-    
-    /**
-     * React to a change in the policy list pattern
-     *
-     */
-    public void poPatternComplete() {
-        curPoListPos = 0;
-        String pattern = (String)gui.PoListPattern.get("text" /* NOI18N */);
-        if (!noLists)
-            showPolicyList(pattern);
-        else
-            setCurPolicy(pattern);
-    }
-    
-    /**
-     * Clear policy list pattern
-     *
-     */
-    public void poPatternClear() {
-        if (noLists) {
-            gui.PoListPattern.set("text" /* NOI18N */, "");
-            ((TextField)gui.PoListPattern.getBody()).requestFocus();
-        } else {
-            String tempName = CurPolicy;
-            fillPolicyList("");
-            selectPolicy(tempName);
-        }
-    }
-    
-    /**
-     * Show the policy list after applying the filter passed in.
-     */
-    public void showPolicyList(String pattern) {
-        pol = null; // we are not editing a policy
-        fillPolicyList(pattern);
-        ModeString = "";
-        OpString = "";
-        updateStatus();
-        gui.cardpanel2.show("List" /* NOI18N */);
-        if (noLists)
-            ((TextField)gui.PoListPattern.getBody()).requestFocus();
-    }
-    
-    /**
-     * Generate the policy list for the first time or after a pattern
-     * has been chosen.
-     *
-     */
-    public void fillPolicyList(String pattern) {
-        if (noLists) {
-            setCurPolicy((String)gui.PoListPattern.get("text" /* NOI18N */));
-            ((TextField)gui.PoListPattern.getBody()).requestFocus();
-            disablePolicyPrinting();
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        long cachetime = A_LONG_TIME;
-        if (!defaults.getStaticLists())
-            cachetime = defaults.getCacheTime() * 1000;
-        if (policyList != null
-	    && ((new Date()).getTime() - policyListDate.getTime())
-	    <= cachetime) {
-            if (pattern.compareTo(curPoPattern) != 0)
-                newPoPattern(pattern);
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            selectPolicy(curPoListPos);
-            return;
-        }
-        PolicyList p = new PolicyList(Kadmin);
-        gui.StatusLine.set("text" /* NOI18N */,
-			   getString("Loading policy list"));
-        try {
-            policyList = p.getPolicyList();
-            policyListDate = new Date();
-        } catch (Exception e) {
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            showError(e.getMessage());
-            updateStatus();
-            return;
-        }
-        updateStatus();
-        newPoPattern(pattern);
-        selectPolicy(curPoListPos);
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-    }
-    
-    private void newPoPattern(String pattern) {
-        curPoPattern = pattern;
-        gui.PoListPattern.set("text" /* NOI18N */, pattern);
-        refreshPolicyList();
-    }
-    
-    private void refreshPolicyList() {
-        if (noLists)
-            return;
-        Filter f = new Filter(policyList, curPoPattern);
-        gui.Pollist.set("items" /* NOI18N */, f.out);
-    }
-    
-    private void selectPolicy(int pos) {
-        TextList list = (TextList)gui.Pollist.getBody();
-        if (list.countItems() == 0) {
-            setCurPolicy("");
-            return;
-        }
-        
-        if (pos < 0)
-            pos = 0;
-        else if (pos >= list.countItems())
-            pos = list.countItems() - 1;
-        
-        list.select(pos);
-        enablePolicyPrinting();
-        list.makeVisible(pos);
-        setCurPolicy(list.getItem(pos));
-    }
-    
-    private void selectPolicy(String name) {
-        String[] list = getItemsFromTextList((TextList)gui.Pollist.getBody());
-        selectPolicy(search(list, name));
-    }
-    
-    /**
-     * When the policy name choice changes, we want to reflect
-     * the name in the policy detail tab.
-     *
-     */
-    public void setCurPolicy(String name) {
-        CurPolicy = name;
-        gui.PoName.set("text" /* NOI18N */, CurPolicy);
-        if (name.compareTo("") == 0) {
-            poSelValid(false);
-            return;
-        }
-        poSelValid(true);
-    }
-    
-    /**
-     * Look at the policy list to see what's selected
-     *
-     */
-    public void lookAtPoList() {
-        if (noLists)
-            return;
-        TextList list = (TextList) gui.Pollist.getBody();
-        poMulti = null;
-        String[] sel = list.getSelectedItems();
-        if (sel.length == 1) {
-            setCurPolicy(sel[0]);
-            curPoListPos = list.getSelectedIndex();
-        } else {
-            if (sel.length > 0)
-                poMulti = sel;
-            setCurPolicy("");
-        }
-    }
-    
-    private void restorePoListSelection() {
-        if (noLists)
-            return;
-        TextList list = (TextList) gui.Pollist.getBody();
-        list.select(curPoListPos);
-    }
-    
-    /**
-     * Make Modify, Delete and Duplicate buttons react to what is selected.
-     *
-     */
-    public void poSelValid(boolean selected) {
-        poSelValid = selected;
-        Boolean b = new Boolean(selected && (privs & PRIV_INQUIRE) != 0);
-        gui.PoListModify.set("enabled" /* NOI18N */, b);
-        int want = (PRIV_ADD | PRIV_INQUIRE);
-        b = new Boolean(selected && (privs & want) == want);
-        gui.PoListDuplicate.set("enabled" /* NOI18N */, b);
-        b = new Boolean((selected || poMulti != null)
-			&&(privs & PRIV_DELETE) != 0);
-        gui.PoListDelete.set("enabled" /* NOI18N */, b);
-    }
-    
-    /**
-     * Make the Save button do the right thing.
-     *
-     */
-    public void poSetCanSave(boolean ok) {
-        Boolean b = new Boolean(ok);
-        gui.PoDetailSave.set("enabled"  /* NOI18N */, b);
-    }
-    
-    /**
-     * This is a way for the data modification actions to note that
-     * the principal has edits outstanding.
-     *
-     */
-    public void poSetNeedSave() {
-        poNeedSave = true;
-        poSetCanSave(true);
-        SaveString = getString("- *CHANGES*");
-        updateStatus();
-    }
-    
-    public boolean poDoSave() {
-        
-        // before attempting to save make sure all text fields are in order
-        if (poUpdateFromGui() == false)
-            return false;
-        
-        boolean b = true;
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            b = pol.savePolicy();
-        } catch (Exception e) {
-            b = false;
-            showError(e.getMessage());
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        if (!b)
-            return false;
-        if (pol.isNew) {
-            policyList = addToList(policyList, pol.PolicyName);
-            refreshPolicyList();
-            selectPolicy(pol.PolicyName);
-            setPolicyChoice();
-        }
-        pol.isNew = false;
-        poSetEditable(false);
-        poSetCanSave(false);
-        poNeedSave = false;
-        SaveString = "";
-        updateStatus();
-        return true;
-    }
-    
-    /**
-     * React to a choice from the policy list via double-click or
-     * single-click+Modify; we want to go to the next tab in each case.
-     * If we don't have modify privileges, we need to simply show values.
-     */
-    public void poSelected() {
-        enablePolicyPrinting();
-        lookAtPoList();
-        if (!poNeedSave) {
-            poSetEditable(false);
-            poSetCanSave(false);
-        }
-        if (noLists)
-            CurPolicy = (String)gui.PoListPattern.get("text" /* NOI18N */);
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        enablePoAttributes(new Boolean((privs & (PRIV_ADD|PRIV_MODIFY)) != 0));
-        try {
-            pol = new Policy(Kadmin, CurPolicy);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        showPolicy(pol);
-        ModeString = getString("Modify")+" ";
-        OpString = getString("Policy");
-        updateStatus();
-        gui.cardpanel2.show("Details" /* NOI18N */);
-    }
-    
-    /**
-     * React to add policy button
-     * If we got here, we need to enable attributes since we have privs.
-     */
-    public void poAdd() {
-        enablePolicyPrinting();
-        setCurPolicy("");
-        poSelValid = true;
-        poSetEditable(true);
-        poSetNeedSave();
-        enablePoAttributes(new Boolean(true));
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            pol = new Policy(Kadmin);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        showPolicy(pol);
-        ModeString = getString("Create New")+" ";
-        OpString = getString("Policy");
-        updateStatus();
-        gui.cardpanel2.show("Details" /* NOI18N */);
-        ((TextField)gui.PoName.getBody()).requestFocus();
-    }
-    
-    /**
-     * React to duplicate policy button
-     *
-     */
-    public void poDuplicate() {
-        enablePolicyPrinting();
-        if (noLists)
-            CurPolicy = (String)gui.PoListPattern.get("text" /* NOI18N */);
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            pol = new Policy(Kadmin, CurPolicy);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        setCurPolicy("");
-        poSelValid = true;
-        poSetEditable(true);
-        poSetNeedSave();
-        try {
-            pol = new Policy(Kadmin, pol);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            return;
-        }
-        pol.PolicyName = "";
-        showPolicy(pol);
-        ModeString = getString("Duplicate")+" ";
-        OpString = getString("Policy");
-        updateStatus();
-        gui.cardpanel2.show("Details" /* NOI18N */);
-        ((TextField)gui.PoName.getBody()).requestFocus();
-    }
-    
-    /**
-     * React to delete policy button
-     */
-    public void poDelete() {
-        String text[] = {getString("You are about to destroy data."),
-			 getString("Click OK to proceed or"
-				   +" Cancel to continue editing.")};
-        String resp = confirmAction(realMainFrame, text);
-        if (resp.equals(getString("Cancel")))
-            return;
-        boolean b;
-        if (noLists)
-            CurPolicy = (String)gui.PoListPattern.get("text" /* NOI18N */);
-        realMainFrame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-        try {
-            b = Kadmin.deletePolicy(CurPolicy);
-        } catch (Exception e) {
-            showError(e.getMessage());
-            realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-            return;
-        }
-        realMainFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
-        if (!b)
-            return;
-        policyList = delFromList(policyList, CurPolicy);
-        refreshPolicyList();
-        setPolicyChoice();
-        setCurPolicy("");
-        poSelValid = true;
-        poSetEditable(true);
-        if (curPoListPos == ((TextList)gui.Pollist.getBody()).countItems())
-            curPoListPos--;
-        showPolicyList(curPoPattern);
-    }
-    
-    /**
-     * React to save policy button
-     *
-     */
-    public void poSave() {
-        poDoSave();
-    }
-    
-    /**
-     * React to cancel policy button
-     *
-     */
-    public void poCancel() {
-        if (poNeedSave) {
-            String text[] = {getString("You are about to lose changes."),
-			     getString("Click Save to commit changes, "
-				       +"Discard to discard changes, "
-				       +"or Cancel to continue editing.")};
-            String resp = confirmSave(realMainFrame, text);
-            if (resp.equals(getString("Cancel")))
-                return;
-            if (resp.equals(getString("Save")))
-                if (!poDoSave())
-		    return;
-        }
-        poSetEditable(false);
-        poSetCanSave(false);
-        poNeedSave = false;
-        lookAtPoList();
-        SaveString = "";
-        showPolicyList(curPoPattern);
-    }
-    
-    /**
-     * React to previous button on policy detail screen
-     *
-     */
-    public void polPrevious() {
-        poCancel();
-    }
-    
-    /**
-     * React to done button on policy detail screen
-     *
-     */
-    public void polDone() {
-        if (poNeedSave && poDoSave() == false)
-            return;
-        showPolicyList(curPoPattern);
-    }
-    
-    /*
-     * Methods for the policy details panel
-     */
-    
-    public boolean setPolName() {
-        if (!ponameEditable)
-            return true;
-        
-        String p = (String)gui.PoName.get("text" /* NOI18N */);
-        if (p.compareTo(getString("(no policy)")) == 0) {
-            showError(getString("Policy name already exists. Please choose "
-				+"a different policy name or cancel"));
-            gui.PoName.set("text" /* NOI18N */, "");
-            ((TextField)gui.PoName.getBody()).requestFocus();
-            return false;
-        }
-        if (p.compareTo("") == 0) {
-            showError(getString("Please enter a policy name or cancel"));
-            ((TextField)gui.PoName.getBody()).requestFocus();
-            return false;
-        }
-        
-        setCurPolicy(p);
-        pol.setName(p);
-        return true;
-    }
-    
-    public void setPolPwLength() {
-        if (pol == null)
-                return;
-        try {
-            pol.setPolPwLength((String)gui.PoMinPwLength.get("selectedItem"
-							 /* NOI18N */));
-        } catch (Exception e) {};
-    }
-    
-    public void setPolPwClasses() {
-        if (pol == null)
-                return;
-        try {
-            pol.setPolPwClasses((String)gui.PoMinPwClass.get("selectedItem"
-							 /* NOI18N */));
-        } catch (Exception e) {};
-    }
-    
-    public void setPolPwHistory() {
-        if (pol == null)
-                return;
-        try {
-            pol.setPolPwHistory((String)gui.PoSavedPasswords.get("selectedItem"
-							     /* NOI18N */));
-        } catch (Exception e) {};
-    }
-    
-    public boolean setPolMinlife() {
-        if (pol.setPolMinlife((String)gui.PoMinTicketLifetime.get("text"
-							  /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PoMinTicketLifetime.set("text" /* NOI18N */,
-					showDuration(pol.PwMinLife));
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PoMinTicketLifetime.getBody()),
-				DURATION_DATA);
-            return false;
-        }
-    }
-    
-    public boolean setPolMaxlife() {
-        if (pol.setPolMaxlife((String)gui.PoMaxTicketLifetime.get(
-						  "text" /* NOI18N */))) {
-            // visually delete any extraneous data that was ignored in the
-            // parsing by resetting the gui data
-            gui.PoMaxTicketLifetime.set("text" /* NOI18N */,
-					showDuration(pol.PwMaxLife));
-            return true;
-        } else {
-            showDataFormatError(((TextField)gui.PoMaxTicketLifetime.getBody()),
-				DURATION_DATA);
-            return false;
-        }
-    }
-    
-    /**
-     * Update components to reflect data in this policy
-     *
-     */
-    public void showPolicy(Policy p) {
-        gui.PoName.set("text" /* NOI18N */, p.PolicyName);
-        gui.PoMinPwLength.set("selectedItem" /* NOI18N */,
-			      nf.format(p.PwMinLength));
-        gui.PoMinPwClass.set("selectedItem" /* NOI18N */,
-			     nf.format(p.PwMinClasses));
-        gui.PoSavedPasswords.set("selectedItem" /* NOI18N */,
-				 nf.format(p.PwSaveCount));
-        gui.PoMinTicketLifetime.set("text" /* NOI18N */,
-				    showDuration(p.PwMinLife));
-        gui.PoMaxTicketLifetime.set("text" /* NOI18N */,
-				    showDuration(p.PwMaxLife));
-        gui.PoReferences.set("text" /* NOI18N */, nf.format(p.RefCount));
-    }
-    
-    /*
-     * Methods for defaults tab
-     */
-    
-    /**
-     * React to save button
-     *
-     */
-    public void glSave() {
-        if (defaults.updateFromGui()) {
-            glDoSave(true);
-            glUpdate();
-        }
-    }
-    
-    /**
-     * React to apply button
-     *
-     */
-    public void glApply() {
-        if (defaults.updateFromGui()) {
-            glDoSave(false);
-            glUpdate();
-        }
-    }
-    
-    /**
-     * React to cancel button
-     *
-     */
-    public void glCancel() {
-        if (glNeedSave) {
-            String text[] = {getString("You are about to lose changes."),
-			     getString("Click Save to commit changes, "
-				       +"Discard to discard changes, "
-				       +"or Cancel to continue editing.")};
-            String resp = confirmSave(defaultsEditingFrame, text);
-            if (resp.equals(getString("Cancel")))
-                return;
-            if (resp.equals(getString("Discard")))
-                defaults.restoreValues(olddefaults);
-            if (resp.equals(getString("Save"))) {
-                glDoSave(true);
-                glUpdate();
-                return;
-            }
-        }
-        glDoSave(false);
-    }
-    
-    public void glDoSave(boolean save) {
-        defaults.close(save);
-        glSetCanSave(false);
-        glNeedSave = false;
-        SaveString = "";
-        updateStatus();
-    }
-    
-    public void glUpdate() {
-        noLists = ((privs & PRIV_LIST) == 0 || !defaults.getShowLists());
-        fixHelpTags();
-        fixListPanels();
-        // Load principal list if we are in the principal tab and are not
-        // editing a principal
-        if (gui.tabbedfolder1.get("currentCard" /* NO18N */) ==
-	    getString("Principals") && prin == null)
-	    fillPrincipalList(curPrPattern);
-        // Load policy list if we are in the policy tab and are not
-        // editing a policy
-        if (gui.tabbedfolder1.get("currentCard" /* NO18N */) ==
-	    getString("Policies") && pol == null)
-	    fillPolicyList(curPoPattern);
-    }
-    
-    /**
-     * This is a way for the data modification actions to note that
-     * the principal has edits outstanding.
-     *
-     */
-    public void glSetNeedSave() {
-        glNeedSave = true;
-        glSetCanSave(true);
-    }
-    
-    /**
-     * Make the Save button do the right thing.
-     *
-     */
-    public void glSetCanSave(boolean ok) {
-        defaults.saveButton.setEnabled(ok);
-        defaults.applyButton.setEnabled(ok);
-    }
-    
-    public boolean setGlobalMaxrenew() {
-        boolean done = defaults.setMaxTicketRenewableLife();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setGlobalMaxlife() {
-        boolean done = defaults.setMaxTicketLife();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setGlobalExpiry() {
-        boolean done = defaults.setAccountExpiryDate();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setServerSide() {
-        boolean done = defaults.setServerSide();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setShowLists() {
-        boolean done = defaults.setShowLists();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setStaticLists() {
-        boolean done = defaults.setStaticLists();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public boolean setCacheTime() {
-        boolean done = defaults.setCacheTime();
-        glSetNeedSave();
-        return done;
-    }
-    
-    public void setGlobalFlag(int bitfield) {
-        defaults.toggleFlag(bitfield);
-        glSetNeedSave();
-    }
-    
-    /*
-     * Miscellany
-     */
-    public void printPrList() {
-        String title = getString("Principal List");
-        if (curPrPattern.length() > 0)
-            title = title.concat(" (" + getString("Filter Pattern:") + " "
-				 + curPrPattern + ")");
-        if (principalList == null)
-            fillPrincipalList(curPrPattern);
-        printList((TextList)gui.Prlist.getBody(), title);
-    }
-    
-    public void printCurPr() {
-        Principal toPrint;
-        
-        if (prin == null) {
-            // We are viewing the principal list. Instantiate a new
-            // principal using the current name.
-            toPrint =  new Principal(Kadmin, CurPrincipal);
-        } else {
-            // We are in the middle of editing a principal. Update the
-            // current principal object with the current contents of the
-            // gui. It's ok for the password to be null, we are not printing
-            // it anyway.
-            if (!prUpdateFromGui(true))
-                return;
-            toPrint = prin;
-        }
-        
-        PrintUtil.dump(realMainFrame, toPrint);
-    }
-    
-    public void printPoList() {
-        String title = getString("Policy List");
-        if (curPoPattern.length() > 0)
-            title = title.concat(" (" + getString("Filter Pattern:") + " "
-				 + curPoPattern + ")");
-        if (policyList == null)
-            fillPolicyList(curPoPattern);
-        printList((TextList)gui.Pollist.getBody(), title);
-    }
-    
-    public void printCurPol() {
-        Policy toPrint;
-        
-        if (pol == null) {
-            // We are viewing the policy list. Instantiate a new
-            // policy using the current name.
-            toPrint = new Policy(Kadmin, CurPolicy);
-        } else {
-            // We are in the middle of editing a policy. Update the current
-            // policy object with the current contents of the gui.
-            if (!poUpdateFromGui())
-                return;
-            toPrint = pol;
-        }
-        
-        PrintUtil.dump(realMainFrame, toPrint);
-        
-    }
-    
-    private void printList(TextList guiList, String title) {
-        String[] list = getItemsFromTextList(guiList);
-        StringBuffer sb = new StringBuffer(title).append('\n');
-        
-        for (int i = 0; i < list.length; i++) {
-            sb.append(list[i]).append('\n');
-        }
-        
-        PrintUtil.dump(realMainFrame, sb);
-    }
-    
-    public void showHelpBrowser(Frame frame) {
-        try {
-            
-            File file = new File("/usr/dt/bin/sdtwebclient");
-            if (!file.exists()) {
-                showDialog(frame, getString("Error"),
-			   getString("Can't run /usr/dt/bin/sdtwebclient."));
-                return;
-            }
-            String url = kc.getHelpURL();
-            if (url == null)
-                url = helpIndexFile;
-            URL help = new URL(url);
-            InputStream is = null;
-            try {
-                is = help.openStream();
-            } catch (IOException e) {}
-            if (is == null) {
-                showDialog(frame, getString("Error"),
-			   getString("Invalid URL: ")+url);
-                return;
-            }
-            
-            if (browserProcess != null) {
-                // Will throw IllegalThreadStateException if thread not exited
-                // yet
-                int i = browserProcess.exitValue();
-            }
-            
-            // Thread has exited or never existed
-            browserProcess =
-		Runtime.getRuntime().exec("/usr/dt/bin/sdtwebclient" +url);
-            
-        } catch (IOException e) {
-            showDialog(frame, getString("Error"), e.getMessage());
-        } catch (IllegalThreadStateException e) {
-            // Ok. All this mean is that a previous instance of the browser
-            // exists
-        }
-    }
-    
-    private void killHelpBrowser() {
-        if (browserProcess != null) {
-            browserProcess.destroy();
-        }
-    }
-    
-    private void setupDefaultsEditingFrame() {
-        defaultsEditingFrame = defaults.getEditingFrame();
-        glSetCanSave(false);
-        setupDefaultsNormalListeners();
-        defaults.csHelp.addActionListener
-	    (new DefaultsContextSensitiveHelpListener());
-    }
-    
-    public void editPreferences() {
-        olddefaults = new Defaults(defaults);
-        defaults.updateGuiComponents();
-        defaultsEditingFrame.setVisible(true);
-    }
-    
-    static Frame getFrame(Component c) {
-        Frame frame = null;
-        
-        while ((c = c.getParent()) != null)
-            if (c instanceof Frame)
-		frame = (Frame)c;
-        return frame;
-    }
-    
-    /**
-     * General purpose dialog with title and a label settable
-     */
-    public void showDialog(Frame frame, String title, String text) {
-        String[] lines = new String[1];
-        lines[0] = text;
-        String[] buttons = new String[1];
-        buttons[0] = getString("OK");
-        ChoiceDialog cd = new ChoiceDialog(frame, title, lines, buttons);
-    }
-    
-    public void showLoginWarning(String err) {
-        showDialog(realLoginFrame, getString("Warning"), err);
-    }
-    
-    public void showLoginError(String err) {
-        showDialog(realLoginFrame, getString("Error"), err);
-    }
-    
-    public void showWarning(String err) {
-        showDialog(realMainFrame, getString("Warning"), err);
-    }
-    
-    public void showError(String err) {
-        showDialog(realMainFrame, getString("Error"), err);
-    }
-    
-    public static void showDataFormatError(TextField tf, int dataType) {
-        
-        Frame parent = getFrame(tf);
-        
-        tf.selectAll();
-        toolkit.beep();
-        
-        String title = getString("Error");
-        
-        String[] lines = null;
-        String[] buttons = {getString("OK")};
-        
-        switch (dataType) {
-	case DURATION_DATA:
-            lines = durationErrorText;
-            break;
-	case DATE_DATA:
-            lines = dateErrorText;
-            break;
-	case NUMBER_DATA:
-            lines = numberErrorText;
-            break;
-        }
-        
-        Point p = tf.getLocationOnScreen();
-        ChoiceDialog cd = new ChoiceDialog(parent, title, lines,
-					   buttons, p.x, p.y);
-        
-        tf.requestFocus();
-        
-    }
-    
-    /**
-     * Confirm a destructive user action
-     */
-    public String confirmAction(Frame frame, String[] text) {
-        String title = getString("Confirm Action");
-        String[] buttons = new String[2];
-        buttons[0] = getString("OK");
-        buttons[1] = getString("Cancel");
-        ChoiceDialog cd = new ChoiceDialog(frame, title, text, buttons);
-        return (cd.getSelection() == null? getString("Cancel")
-		:cd.getSelection());
-    }
-    
-    /**
-     * Confirm a destructive user action, offering choice of saving
-     */
-    public String confirmSave(Frame frame, String[] text) {
-        String title = getString("Confirm Action");
-        String[] buttons = new String[3];
-        buttons[0] = getString("Save");
-        buttons[1] = getString("Discard");
-        buttons[2] = getString("Cancel");
-        ChoiceDialog cd = new ChoiceDialog(frame, title, text, buttons);
-        return (cd.getSelection() == null? getString("Cancel")
-		: cd.getSelection());
-    }
-    
-    /**
-     * Show version info
-     */
-    public void doAbout(Frame frame) {
-        String title = getString("About SEAM Adminstration Tool");
-        String[] text = new String[7];
-        text[0] = getString("Sun Enterprise Authentication"
-			    +" Mechanism Administration Tool");
-        text[1] = System.getProperty("SEAM_VERS" /* NOI18N */);
-        text[2] = getString("Copyright 2005 Sun Microsystems, Inc.  "
-				+"All rights reserved.");
-        text[3] = getString("Use is subject to license terms.");
-        text[4] = System.getProperty("os.name" /* NOI18N */);
-        text[5] = System.getProperty("os.arch" /* NOI18N */);
-        text[6] = System.getProperty("os.version" /* NOI18N */);
-        String[] button = new String[1];
-        button[0] = getString("Dismiss");
-        ChoiceDialog cd = new ChoiceDialog(frame, title, text, button);
-    }
-    
-    private void getDateTimeFromDialogBox(TextField tf, Frame frame) {
-        tf.select(0, 0);
-        dateTimeDialog = new DateTimeDialog(frame, tf.getBackground(),
-					    tf.getForeground());
-        
-        if (!tf.getText().equalsIgnoreCase(neverString)) {
-            try {
-                Date currVal = df.parse(tf.getText());
-                dateTimeDialog.setDate(currVal);
-                /*
-                 * In case an exception occurs, let the dialog box be
-                 * initialized to its default date (viz current time).
-                 */
-            } catch (ParseException e) {
-            } catch (NullPointerException e) {
-                // gets thrown when parse string begins with text
-                // probable JDK bug
-            }
-            catch (StringIndexOutOfBoundsException e) {
-                // gets thrown when parse string contains only one number
-                // probable JDK bug
-            }
-        }
-        dateTimeDialog.setVisible(true);
-        
-        // Modal dialog box so this is after dialog box disappers
-        if (dateTimeDialog.isSaved()) {
-            tf.setText(dateTimeDialog.toString());
-            tf.dispatchEvent(new ActionEvent(tf, ActionEvent.ACTION_PERFORMED,
-				     "setFromDateTimeDialog" /* NOI18N */));
-        }
-    }
-
-    private void getDurationFromDialogBox(TextField tf, Frame frame) {
-        tf.select(0, 0);
-        durationHelper = new DurationHelper(frame, tf.getBackground(),
-					    tf.getForeground());
-        durationHelper.setVisible(true);
-        
-        // Modal dialog box so this is after dialog box disappers
-        if (durationHelper.isSaved()) {
-            tf.setText(durationHelper.toString());
-            tf.dispatchEvent(new ActionEvent(tf, ActionEvent.ACTION_PERFORMED,
-				     "setFromDurationHelper" /* NOI18N */));
-        }
-    }
-
-    private void getEncListFromDialogBox(TextField tf, Frame frame) {
-	tf.select(0, 0);
-	encListDialog = new EncListDialog(frame, tf.getBackground(),
-	    tf.getForeground(), Kadmin);
-
-	encListDialog.setEncTypes(tf.getText());
-	encListDialog.setVisible(true);
-
-	// Modal dialog box so this is after dialog box disappers
-	if (encListDialog.isSaved()) {
-		String e = encListDialog.toString();
-
-		if (e.compareTo("") != 0) {
-	    	    String p = (String)gui.PrPassword.get("text" /* NOI18N */);
-
-		    // In order to change the key encryption type(s) the admin
-		    // will have to supply a password.
-	    	    if (p.compareTo("") == 0) {
-			showWarning(getString(
-			"If changing the key encryption types then specify a" +
-			" new password for the principal whose keys are" +
-			" being changed"));
-			((TextField)gui.PrPassword.getBody()).requestFocus();
-	    	    }
-		}  
-		tf.setText(e);
-		tf.dispatchEvent(new ActionEvent(tf,
-		    ActionEvent.ACTION_PERFORMED,
-		    "setFromEncListDialog" /* NOI18N */));
-	}
-    }
-    
-    /**
-     * By going into context-sensitive help mode, normal listeners will
-     * be removed and replaced with help listeners, so that help will
-     * be shown for the object.
-     *
-     */
-    public void contextHelp(Frame frame) {
-        
-        if (cHelp == null) {
-            cHelp = new ContextHelp(frame, this);
-            cHelp.setVisible(true);
-        }
-        
-        if (frame == realLoginFrame)
-            setupLoginHelpListeners();
-        else if (frame == realMainFrame)
-            setupMainHelpListeners();
-        else if (frame == defaultsEditingFrame)
-            setupDefaultsHelpListeners();
-        
-        frame.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
-    }
-    
-    
-    /**
-     * Enables the print menu for printing principal related info.
-     */
-    private void enablePrincipalPrinting() {
-        ((MenuItem)gui.PrintCurPr.getBody()).setEnabled(true);
-    }
-    
-    /**
-     * Enables the print menu for printing policy related info.
-     */
-    private void enablePolicyPrinting() {
-        ((MenuItem)gui.PrintCurPol.getBody()).setEnabled(true);
-    }
-    
-    /**
-     * Disables the print menu for printing principal related info.
-     */
-    private void disablePrincipalPrinting() {
-        ((MenuItem)gui.PrintCurPr.getBody()).setEnabled(false);
-    }
-    
-    /**
-     * Disables the print menu for printing policy related info.
-     */
-    private void disablePolicyPrinting() {
-        ((MenuItem)gui.PrintCurPol.getBody()).setEnabled(false);
-    }
-    
-    /**
-     * Set up the listeners for the objects on the login screen in normal mode
-     *
-     */
-    public void setupLoginNormalListeners() {
-        if (LoginNormal == null) {
-            LoginNormal = new Vector(10, 10);
-            ActionListener al;
-            Association a;
-            Object o;
-            
-            al = new LoginNameAction();
-            o = gui.LoginName.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            LoginNormal.addElement(a);
-            
-            al = new LoginPassAction();
-            o = gui.LoginPass.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            LoginNormal.addElement(a);
-            
-            al = new LoginRealmAction();
-            o = gui.LoginRealm.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            LoginNormal.addElement(a);
-            
-            al = new LoginServerAction();
-            o = gui.LoginServer.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            LoginNormal.addElement(a);
-            
-            al = new LoginOKAction();
-            o = gui.LoginOK.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            LoginNormal.addElement(a);
-            
-            al = new LoginStartOverAction();
-            o = gui.LoginStartOver.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            LoginNormal.addElement(a);
-        }
-        setListeners(LoginHelp, false);
-        setListeners(LoginFixers, false);
-        setListeners(LoginNormal, true);
-        loginHelpMode = false;
-    }
-    
-    /**
-     * Set up the listeners for the objects on the login screen in help mode
-     *
-     */
-    public void setupLoginHelpListeners() {
-        if (LoginHelp == null) {
-            LoginHelp = new Vector(10, 10);
-            MouseListener ml = new HelpListener();
-            Association a;
-            Object o;
-            
-            o = gui.LoginName.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            LoginHelp.addElement(a);
-            ((TextField)o).setName("LoginName" /* NOI18N */);
-            
-            o = gui.LoginNameLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            LoginHelp.addElement(a);
-            ((Label)o).setName("LoginName" /* NOI18N */);
-            
-            o = gui.LoginPass.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            LoginHelp.addElement(a);
-            ((TextField)o).setName("LoginPass" /* NOI18N */);
-            
-            o = gui.LoginPassLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            LoginHelp.addElement(a);
-            ((Label)o).setName("LoginPass" /* NOI18N */);
-            
-            o = gui.LoginRealm.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            LoginHelp.addElement(a);
-            ((TextField)o).setName("LoginRealm" /* NOI18N */);
-            
-            o = gui.LoginRealmLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            LoginHelp.addElement(a);
-            ((Label)o).setName("LoginRealm" /* NOI18N */);
-            
-            o = gui.LoginServer.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            LoginHelp.addElement(a);
-            ((TextField)o).setName("LoginServer" /* NOI18N */);
-            
-            o = gui.LoginServerLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            LoginHelp.addElement(a);
-            ((Label)o).setName("LoginServer" /* NOI18N */);
-            
-            o = gui.LoginOK.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            LoginHelp.addElement(a);
-            ((Button)o).setName("LoginOK" /* NOI18N */);
-            
-            o = gui.LoginStartOver.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            LoginHelp.addElement(a);
-            ((Button)o).setName("LoginStartOver" /* NOI18N */);
-        }
-        setListeners(LoginNormal, false);
-        setListeners(LoginHelp, true);
-        setupLoginHelpFixers();
-        loginHelpMode = true;
-    }
-    
-    public void setupLoginHelpFixers() {
-        LoginFixers = new Vector(10, 10);
-        Object o;
-        Association a;
-        TextFixer tf;
-        
-        o = gui.LoginName.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        LoginFixers.addElement(a);
-        
-        o = gui.LoginPass.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        LoginFixers.addElement(a);
-        
-        o = gui.LoginRealm.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        LoginFixers.addElement(a);
-        
-        o = gui.LoginServer.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        LoginFixers.addElement(a);
-        
-        setListeners(LoginFixers, true);
-    }
-    
-    /**
-     * Set up the listeners for the objects on the main screen in normal mode
-     *
-     */
-    public void setupMainNormalListeners() {
-        if (MainNormal == null) {
-            Frame fr = realMainFrame;
-            MainNormal = new Vector(10, 10);
-            ActionListener al;
-            ItemListener il;
-            DateTimeListener dtl;
-            DurationListener dl;
-            EncListListener ell;
-            KeyListener kl1 = new KeystrokeDetector(PRINCIPAL_EDITING);
-            KeyListener kl2 = new KeystrokeDetector(POLICY_EDITING);
-            KeyListener kl3 = new KeystrokeDetector(PRINCIPAL_LIST);
-            KeyListener kl4 = new KeystrokeDetector(POLICY_LIST);
-            Association a;
-            Object o;
-            
-            WindowListener wl = new MainWindowCloseAction();
-            o = realMainFrame;
-            a = new Association(o, wl, WINDOW_LISTENER);
-            MainNormal.addElement(a);
-            
-            al = new PrListPatternAction();
-            o = gui.PrListPattern.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl3, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            al = new PrListClearAction();
-            o = gui.PrListClear.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrListModifyAction();
-            o = gui.PrListModify.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrListAddAction();
-            o = gui.PrListAdd.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrListDeleteAction();
-            o = gui.PrListDelete.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrListDuplicateAction();
-            o = gui.PrListDuplicate.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrSaveAction();
-            o = gui.PrBasicSave.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            o = gui.PrDetailSave.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            o = gui.PrFlagsSave.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrCancelAction();
-            o = gui.PrBasicCancel.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            o = gui.PrDetailCancel.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            o = gui.PrFlagsCancel.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrCommentsAction();
-            o = gui.PrComments.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            il = new PrPolicyAction();
-            o = gui.PrPolicy.getBody();
-            a = new Association(o, il, CHOICE_ITEM);
-            MainNormal.addElement(a);
-            
-            al = new PrPasswordAction();
-            o = gui.PrPassword.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            al = new PrRandomPwAction();
-            o = gui.PrBasicRandomPw.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-
-            al = new EncListAction();
-            o = gui.EncList.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            ell = new EncListListener((TextField)gui.EncList.getBody(), fr);
-            o = gui.EncListMoreButton.getBody();
-            a = new Association(o, ell, BUTTON_ACTION);
-            MainNormal.addElement(a);
-
-            al = new PrExpiryAction();
-            o = gui.PrExpiry.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dtl = new DateTimeListener((TextField)gui.PrExpiry.getBody(), fr);
-            o = gui.PrExpiryMoreButton.getBody();
-            a = new Association(o, dtl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrBasicPreviousAction();
-            o = gui.PrBasicPrevious.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrBasicNextAction();
-            o = gui.PrBasicNext.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrPwExpiryAction();
-            o = gui.PrPwExpiry.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dtl = new DateTimeListener((TextField)gui.PrPwExpiry.getBody(), fr);
-            o = gui.PrPwExpiryMoreButton.getBody();
-            a = new Association(o, dtl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrKvnoAction();
-            o = gui.PrKvno.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            al = new PrMaxLifetimeAction();
-            o = gui.PrMaxLifetime.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dl = new DurationListener((TextField)gui.PrMaxLifetime.getBody(),
-				      fr);
-            o = gui.PrMaxLifetimeMoreButton.getBody();
-            a = new Association(o, dl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrMaxRenewalAction();
-            o = gui.PrMaxRenewal.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl1, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dl = new DurationListener((TextField)gui.PrMaxRenewal.getBody(),
-				      fr);
-            o = gui.PrMaxRenewalMoreButton.getBody();
-            a = new Association(o, dl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrDetailPreviousAction();
-            o = gui.PrDetailPrevious.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrDetailNextAction();
-            o = gui.PrDetailNext.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrFlagsPreviousAction();
-            o = gui.PrFlagsPrevious.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PrFlagsNextAction();
-            o = gui.PrFlagsNext.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            il = new PrLockAcctAction();
-            o = gui.PrLockAcct.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrForcePwChangeAction();
-            o = gui.PrForcePwChange.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowPostdatedAction();
-            o = gui.PrAllowPostdated.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowForwardableAction();
-            o = gui.PrAllowForwardable.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowRenewableAction();
-            o = gui.PrAllowRenewable.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowProxiableAction();
-            o = gui.PrAllowProxiable.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowSvrAction();
-            o = gui.PrAllowSvr.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowTGTAction();
-            o = gui.PrAllowTGT.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrAllowDupAuthAction();
-            o = gui.PrAllowDupAuth.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrRequirePreAuthAction();
-            o = gui.PrRequirePreAuth.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PrRequireHwPreAuthAction();
-            o = gui.PrRequireHwPreAuth.getBody();
-            a = new Association(o, il, CHECKBOX_ITEM);
-            MainNormal.addElement(a);
-            
-            al = new PoListPatternAction();
-            o = gui.PoListPattern.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl4, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            al = new PoListClearAction();
-            o = gui.PoListClear.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoListModifyAction();
-            o = gui.PoListModify.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoListAddAction();
-            o = gui.PoListAdd.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoListDeleteAction();
-            o = gui.PoListDelete.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoListDuplicateAction();
-            o = gui.PoListDuplicate.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            il = new PoMinPwLengthAction();
-            o = gui.PoMinPwLength.getBody();
-            a = new Association(o, il, CHOICE_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PoMinPwClassAction();
-            o = gui.PoMinPwClass.getBody();
-            a = new Association(o, il, CHOICE_ITEM);
-            MainNormal.addElement(a);
-            
-            il = new PoSavedPasswordsAction();
-            o = gui.PoSavedPasswords.getBody();
-            a = new Association(o, il, CHOICE_ITEM);
-            MainNormal.addElement(a);
-            
-            al = new PoMinTicketLifetimeAction();
-            o = gui.PoMinTicketLifetime.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl2, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dl = new DurationListener(
-			      (TextField)gui.PoMinTicketLifetime.getBody(), fr);
-            o = gui.PoMinTicketLifetimeMoreButton.getBody();
-            a = new Association(o, dl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoMaxTicketLifetimeAction();
-            o = gui.PoMaxTicketLifetime.getBody();
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            MainNormal.addElement(a);
-            a = new Association(o, kl2, TEXTFIELD_KEY);
-            MainNormal.addElement(a);
-            
-            dl = new DurationListener(
-			      (TextField)gui.PoMaxTicketLifetime.getBody(), fr);
-            o = gui.PoMaxTicketLifetimeMoreButton.getBody();
-            a = new Association(o, dl, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoSaveAction();
-            o = gui.PoDetailSave.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoCancelAction();
-            o = gui.PoDetailCancel.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoPreviousAction();
-            o = gui.PoDetailPrevious.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-            al = new PoDoneAction();
-            o = gui.PoDetailDone.getBody();
-            a = new Association(o, al, BUTTON_ACTION);
-            MainNormal.addElement(a);
-            
-        }
-        setListeners(MainHelp, false);
-        setListeners(MainFixers, false);
-        setListeners(MainNormal, true);
-        mainHelpMode = false;
-    }
-    
-    /**
-     * Set up the listeners for the objects on the main screen in help mode
-     *
-     */
-    public void setupMainHelpListeners() {
-        if (MainHelp == null) {
-            MainHelp = new Vector(10, 10);
-            MouseListener ml = new HelpListener();
-            Association a;
-            Object o;
-            
-            o = gui.PrListPattern.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrListPattern" /* NOI18N */);
-            
-            o = gui.PrSearchLab.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrListPattern" /* NOI18N */);
-            
-            o = gui.PrListClear.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrListClear" /* NOI18N */);
-            
-            o = gui.PrListModify.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrListModify" /* NOI18N */);
-            
-            o = gui.PrListAdd.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrListAdd" /* NOI18N */);
-            
-            o = gui.PrListDelete.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrListDelete" /* NOI18N */);
-            
-            o = gui.PrListDuplicate.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrListDuplicate" /* NOI18N */);
-            
-            o = gui.PrBasicSave.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrSave" /* NOI18N */);
-            
-            o = gui.PrDetailSave.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrSave" /* NOI18N */);
-            
-            o = gui.PrFlagsSave.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrSave" /* NOI18N */);
-            
-            o = gui.PrBasicCancel.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrCancel" /* NOI18N */);
-            
-            o = gui.PrDetailCancel.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrCancel" /* NOI18N */);
-            
-            o = gui.PrFlagsCancel.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrCancel" /* NOI18N */);
-            
-            o = gui.PrName1.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrName" /* NOI18N */);
-            
-            o = gui.PrNameLabel1.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrName" /* NOI18N */);
-            
-            o = gui.PrComments.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrComments" /* NOI18N */);
-            
-            o = gui.PrCommentsLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrComments" /* NOI18N */);
-            
-            o = gui.PrPolicy.getBody();
-            a = new Association(o, ml, CHOICE_MOUSE);
-            MainHelp.addElement(a);
-            ((Choice)o).setName("PrPolicy" /* NOI18N */);
-            
-            o = gui.PrPolicyLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrPolicy" /* NOI18N */);
-            
-            o = gui.PrPassword.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrPassword" /* NOI18N */);
-            
-            o = gui.PrPasswordLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrPassword" /* NOI18N */);
-            
-            o = gui.PrBasicRandomPw.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrBasicRandomPw" /* NOI18N */);
-
-            o = gui.EncList.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("EncList" /* NOI18N */);
-            
-            o = gui.EncListLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("EncList" /* NOI18N */);
-            
-            o = gui.EncListMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("EncListHelperButton" /* NOI18N */);
-
-            o = gui.PrExpiry.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrExpiry" /* NOI18N */);
-            
-            o = gui.PrExpiryLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrExpiry" /* NOI18N */);
-            
-            o = gui.PrExpiryMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DateHelperButton" /* NOI18N */);
-            
-            o = gui.PrLastChangedTime.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinBasLastPrincipalChange" /* NOI18N */);
-            
-            o = gui.PrLastChangedTimeLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinBasLastPrincipalChange" /* NOI18N */);
-            
-            o = gui.PrLastChangedBy.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinBasLastChangedBy" /* NOI18N */);
-            
-            o = gui.PrLastChangedByLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinBasLastChangedBy" /* NOI18N */);
-            
-            o = gui.PrBasicPrevious.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrBasicPrevious" /* NOI18N */);
-            
-            o = gui.PrBasicNext.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrBasicNext" /* NOI18N */);
-            
-            o = gui.PrLastSuccess.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastSuccess" /* NOI18N */);
-            
-            o = gui.PrLastSuccessLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastSuccess" /* NOI18N */);
-            
-            o = gui.PrLastFailure.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastFailure" /* NOI18N */);
-            
-            o = gui.PrLastFailureLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastFailure" /* NOI18N */);
-            
-            o = gui.PrFailCount.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetFailureCount" /* NOI18N */);
-            
-            o = gui.PrFailureCountLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetFailureCount" /* NOI18N */);
-            
-            o = gui.PrLastPwChange.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastPasswordChange" /* NOI18N */);
-            
-            o = gui.PrPwLastChangedLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrinDetLastPasswordChange" /* NOI18N */);
-            
-            o = gui.PrPwExpiry.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrPwExpiry" /* NOI18N */);
-            
-            o = gui.PrPwExpiryLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrPwExpiry" /* NOI18N */);
-            
-            o = gui.PrPwExpiryMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DateHelperButton" /* NOI18N */);
-            
-            o = gui.PrKvno.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrKvno" /* NOI18N */);
-            
-            o = gui.PrKvnoLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrKvno" /* NOI18N */);
-            
-            o = gui.PrMaxLifetime.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrMaxLifetime" /* NOI18N */);
-            
-            o = gui.PrMaxTicketLifetimeLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrMaxLifetime" /* NOI18N */);
-            
-            o = gui.PrMaxLifetimeMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DurationHelperButton" /* NOI18N */);
-            
-            o = gui.PrMaxRenewal.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PrMaxRenewal" /* NOI18N */);
-            
-            o = gui.PrMaxTicketRenewalLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PrMaxRenewal" /* NOI18N */);
-            
-            o = gui.PrMaxRenewalMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DurationHelperButton" /* NOI18N */);
-            
-            o = gui.PrDetailPrevious.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrDetailPrevious" /* NOI18N */);
-            
-            o = gui.PrDetailNext.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrDetailNext" /* NOI18N */);
-            
-            o = gui.PrFlagsPrevious.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrFlagsPrevious" /* NOI18N */);
-            
-            o = gui.PrFlagsNext.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PrFlagsNext" /* NOI18N */);
-            
-            o = gui.PrLockAcct.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrLockAcct" /* NOI18N */);
-            
-            o = gui.PrForcePwChange.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrForcePwChange" /* NOI18N */);
-            
-            o = gui.PrAllowPostdated.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowPostdated" /* NOI18N */);
-            
-            o = gui.PrAllowForwardable.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowForwardable" /* NOI18N */);
-            
-            o = gui.PrAllowRenewable.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowRenewable" /* NOI18N */);
-            
-            o = gui.PrAllowProxiable.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowProxiable" /* NOI18N */);
-            
-            o = gui.PrAllowSvr.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowSvr" /* NOI18N */);
-            
-            o = gui.PrAllowTGT.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowTGT" /* NOI18N */);
-            
-            o = gui.PrAllowDupAuth.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrAllowDupAuth" /* NOI18N */);
-            
-            o = gui.PrRequirePreAuth.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrRequirePreAuth" /* NOI18N */);
-            
-            o = gui.PrRequireHwPreAuth.getBody();
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            MainHelp.addElement(a);
-            ((Checkbox)o).setName("PrRequireHwPreAuth" /* NOI18N */);
-            
-            o = gui.PoListPattern.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PoListPattern" /* NOI18N */);
-            
-            o = gui.PoListPatternLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoListPattern" /* NOI18N */);
-            
-            o = gui.PoListClear.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoListClear" /* NOI18N */);
-            
-            o = gui.PoListModify.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoListModify" /* NOI18N */);
-            
-            o = gui.PoListAdd.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoListAdd" /* NOI18N */);
-            
-            o = gui.PoListDelete.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoListDelete" /* NOI18N */);
-            
-            o = gui.PoListDuplicate.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoListDuplicate" /* NOI18N */);
-            
-            o = gui.PoName.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PoName" /* NOI18N */);
-            
-            o = gui.PoNameLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoName" /* NOI18N */);
-            
-            o = gui.PoMinPwLength.getBody();
-            a = new Association(o, ml, CHOICE_MOUSE);
-            MainHelp.addElement(a);
-            ((Choice)o).setName("PoMinPwLength" /* NOI18N */);
-            
-            o = gui.PoMinPwLengthLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoMinPwLength" /* NOI18N */);
-            
-            o = gui.PoMinPwClass.getBody();
-            a = new Association(o, ml, CHOICE_MOUSE);
-            MainHelp.addElement(a);
-            ((Choice)o).setName("PoMinPwClass" /* NOI18N */);
-            
-            o = gui.PoMinPwClassLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoMinPwClass" /* NOI18N */);
-            
-            o = gui.PoSavedPasswords.getBody();
-            a = new Association(o, ml, CHOICE_MOUSE);
-            MainHelp.addElement(a);
-            ((Choice)o).setName("PoSavedPasswords" /* NOI18N */);
-            
-            o = gui.PoSavedPasswordsLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoSavedPasswords" /* NOI18N */);
-            
-            o = gui.PoMinTicketLifetime.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PoMinTicketLifetime" /* NOI18N */);
-            
-            o = gui.PoMinTicketLifetimeLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoMinTicketLifetime" /* NOI18N */);
-            
-            o = gui.PoMinTicketLifetimeMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DurationHelperButton" /* NOI18N */);
-            
-            o = gui.PoMaxTicketLifetime.getBody();
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            MainHelp.addElement(a);
-            ((TextField)o).setName("PoMaxTicketLifetime" /* NOI18N */);
-            
-            o = gui.PoMaxTicketLifetimeLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PoMaxTicketLifetime" /* NOI18N */);
-            
-            o = gui.PoMaxTicketLifetimeMoreButton.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("DurationHelperButton" /* NOI18N */);
-            
-            o = gui.PoReferences.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PolDetPrincipalsUsingThisPolicy" /* NOI18N */);
-            
-            o = gui.PoReferencesLabel.getBody();
-            a = new Association(o, ml, LABEL_MOUSE);
-            MainHelp.addElement(a);
-            ((Label)o).setName("PolDetPrincipalsUsingThisPolicy" /* NOI18N */);
-            
-            o = gui.PoDetailSave.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoSave" /* NOI18N */);
-            
-            o = gui.PoDetailCancel.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoCancel" /* NOI18N */);
-            
-            o = gui.PoDetailPrevious.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoDetailPrevious" /* NOI18N */);
-            
-            o = gui.PoDetailDone.getBody();
-            a = new Association(o, ml, BUTTON_MOUSE);
-            MainHelp.addElement(a);
-            ((Button)o).setName("PoDetailDone" /* NOI18N */);
-            
-            setupMainHelpFlagTogglers();
-        }
-        
-        fixHelpTags();
-        setListeners(MainNormal, false);
-        setListeners(MainHelp, true);
-        setupMainHelpFixers();
-        mainHelpMode = true;
-    }
-    
-    public void fixHelpTags() {
-        if (noLists) {
-            ((TextList)gui.Prlist.getBody()).setName("PrNoList" /* NOI18N */);
-            ((TextField)gui.PrListPattern.getBody()).setName("PrNameNoList"
-							     /* NOI18N */);
-            ((Button)gui.PrListClear.getBody()).setName("PrNoListClear"
-							/* NOI18N */);
-            ((TextList)gui.Pollist.getBody()).setName("PolNoList" /* NOI18N */);
-            ((TextField)gui.PoListPattern.getBody()).setName("PoNameNoList"
-							     /* NOI18N */);
-            ((Button)gui.PoListClear.getBody()).setName("PoNoListClear"
-							/* NOI18N */);
-        } else {
-            ((TextList)gui.Prlist.getBody()).setName("PrList" /* NOI18N */);
-            ((TextField)gui.PrListPattern.getBody()).setName("PrListPattern"
-							     /* NOI18N */);
-            ((Button)gui.PrListClear.getBody()).setName("PrListClear"
-							/* NOI18N */);
-            ((TextList)gui.Pollist.getBody()).setName("Pollist" /* NOI18N */);
-            ((TextField)gui.PoListPattern.getBody()).setName("PoListPattern"
-							     /* NOI18N */);
-            ((Button)gui.PoListClear.getBody()).setName("PoListClear"
-							/* NOI18N */);
-        }
-    }
-    
-    /**
-     * Helper method to setupMainHelpListeners. Should be called from
-     * only from there.
-     */
-    private void 	setupMainHelpFlagTogglers() {
-        
-        if (MainHelp == null)
-            return;
-        
-        CheckboxToggler ml = new CheckboxToggler();
-        Object o;
-        Association a;
-        
-        o = gui.PrLockAcct.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrForcePwChange.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowPostdated.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowForwardable.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowRenewable.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowProxiable.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowSvr.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowTGT.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrAllowDupAuth.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrRequirePreAuth.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-        
-        o = gui.PrRequireHwPreAuth.getBody();
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        MainHelp.addElement(a);
-    }
-    
-    public void setupMainHelpFixers() {
-        MainFixers = new Vector(10, 10);
-        Object o;
-        Association a;
-        TextFixer tf;
-        ChoiceFixer cf;
-        
-        o = gui.PrListPattern.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrName1.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrComments.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrPolicy.getBody();
-        cf = new ChoiceFixer((Choice)o);
-        a = new Association(o, cf, CHOICE_ITEM);
-        MainFixers.addElement(a);
-        
-        o = gui.PrPassword.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrExpiry.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-
-        o = gui.EncList.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrPwExpiry.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrKvno.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrMaxLifetime.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PrMaxRenewal.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PoListPattern.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PoName.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PoMinPwLength.getBody();
-        cf = new ChoiceFixer((Choice)o);
-        a = new Association(o, cf, CHOICE_ITEM);
-        MainFixers.addElement(a);
-        
-        o = gui.PoMinPwClass.getBody();
-        cf = new ChoiceFixer((Choice)o);
-        a = new Association(o, cf, CHOICE_ITEM);
-        MainFixers.addElement(a);
-        
-        o = gui.PoSavedPasswords.getBody();
-        cf = new ChoiceFixer((Choice)o);
-        a = new Association(o, cf, CHOICE_ITEM);
-        MainFixers.addElement(a);
-        
-        o = gui.PoMinTicketLifetime.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        o = gui.PoMaxTicketLifetime.getBody();
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        MainFixers.addElement(a);
-        
-        setListeners(MainFixers, true);
-    }
-    
-    public void setupDefaultsNormalListeners() {
-        
-        if (defaultsNormal == null) {
-            defaultsNormal = new Vector(10, 10);
-            ActionListener al;
-            ItemListener il;
-            KeyListener kl = new KeystrokeDetector(DEFAULTS_EDITING);
-            Association a;
-            Object o;
-            
-            // Action listeners for Defaults
-            
-            il = new GlobalLockAcctAction();
-            o = defaults.disableAccount;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalForcePwChangeAction();
-            o = defaults.forcePasswordChange;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowPostdatedAction();
-            o = defaults.allowPostdatedTix;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowForwardableAction();
-            o = defaults.allowForwardableTix;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowRenewableAction();
-            o = defaults.allowRenewableTix;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowProxiableAction();
-            o = defaults.allowProxiableTix;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowSvrAction();
-            o = defaults.allowServiceTix;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowTGTAction();
-            o = defaults.allowTGTAuth;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalAllowDupAuthAction();
-            o = defaults.allowDupAuth;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalRequirePreAuthAction();
-            o = defaults.requirePreauth;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalRequireHwPreAuthAction();
-            o = defaults.requireHWAuth;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalDefaultServerSideAction();
-            o = defaults.serverSide;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalDefaultRenewableLifeAction();
-            o = defaults.maxTicketRenewableLife;
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            defaultsNormal.addElement(a);
-            a = new Association(o, kl, TEXTFIELD_KEY);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalDefaultLifeAction();
-            o = defaults.maxTicketLife;
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            defaultsNormal.addElement(a);
-            a = new Association(o, kl, TEXTFIELD_KEY);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalDefaultExpiryAction();
-            o = defaults.accountExpiryDate;
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            defaultsNormal.addElement(a);
-            a = new Association(o, kl, TEXTFIELD_KEY);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalDefaultShowListsAction();
-            o = defaults.showLists;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            il = new GlobalDefaultStaticListsAction();
-            o = defaults.staticLists;
-            a = new Association(o, il, CHECKBOX_ITEM);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalDefaultCacheTimeAction();
-            o = defaults.cacheTime;
-            a = new Association(o, al, TEXTFIELD_ACTION);
-            defaultsNormal.addElement(a);
-            a = new Association(o, kl, TEXTFIELD_KEY);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalSaveAction();
-            o = defaults.saveButton;
-            a = new Association(o, al, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalApplyAction();
-            o = defaults.applyButton;
-            a = new Association(o, al, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            al = new GlobalCancelAction();
-            o = defaults.cancelButton;
-            a = new Association(o, al, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            DateTimeListener dtl = new DateTimeListener(
-			defaults.accountExpiryDate, defaultsEditingFrame);
-            o = defaults.dateMoreButton;
-            a = new Association(o, dtl, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            DurationListener dl = new DurationListener(
-		       defaults.maxTicketRenewableLife, defaultsEditingFrame);
-            o = defaults.renewalMoreButton;
-            a = new Association(o, dl, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            dl = new DurationListener(defaults.maxTicketLife,
-				      defaultsEditingFrame);
-            o = defaults.lifeMoreButton;
-            a = new Association(o, dl, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-            dl = new DurationListener(defaults.cacheTime, defaultsEditingFrame);
-            o = defaults.cacheMoreButton;
-            a = new Association(o, dl, BUTTON_ACTION);
-            defaultsNormal.addElement(a);
-            
-        }
-        setListeners(defaultsHelp, false);
-        setListeners(defaultsFixers, false);
-        setListeners(defaultsNormal, true);
-        defaultsHelpMode = false;
-    }
-    
-    public void setupDefaultsHelpListeners() {
-        if (defaultsHelp == null) {
-            defaultsHelp = new Vector(10, 10);
-            MouseListener ml = new HelpListener();
-            Association a;
-            Object o;
-            
-            o = defaults.disableAccount;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.disableAccount.setName("GlobalLockAcct" /* NOI18N */);
-            
-            o = defaults.forcePasswordChange;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.forcePasswordChange.setName("GlobalForcePwChange"
-						 /* NOI18N */);
-            
-            o = defaults.allowPostdatedTix;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowPostdatedTix.setName("GlobalAllowPostdated"
-					       /* NOI18N */);
-            
-            o = defaults.allowForwardableTix;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowForwardableTix.setName("GlobalAllowForwardable"
-						 /* NOI18N */);
-            
-            o = defaults.allowRenewableTix;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowRenewableTix.setName("GlobalAllowRenewable"
-					       /* NOI18N */);
-            
-            o = defaults.allowProxiableTix;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowProxiableTix.setName("GlobalAllowProxiable"
-					       /* NOI18N */);
-            
-            o = defaults.allowServiceTix;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowServiceTix.setName("GlobalAllowSvr" /* NOI18N */);
-            
-            o = defaults.allowTGTAuth;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowTGTAuth.setName("GlobalAllowTGT" /* NOI18N */);
-            
-            o = defaults.allowDupAuth;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.allowDupAuth.setName("GlobalAllowDupAuth" /* NOI18N */);
-            
-            o = defaults.requirePreauth;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.requirePreauth.setName("GlobalRequirePreAuth"
-					    /* NOI18N */);
-            
-            o = defaults.requireHWAuth;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.requireHWAuth.setName("GlobalRequireHwPreAuth"
-					   /* NOI18N */);
-            
-            o = defaults.serverSide;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.serverSide.setName("GlDefServerSide" /* NOI18N */);
-            
-            o = defaults.maxTicketRenewableLife;
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.maxTicketRenewableLife.setName("GlDefRenewableLife"
-						    /* NOI18N */);
-            
-            o = defaults.maxTicketRenewableLifeLabel;
-            a = new Association(o, ml, LABEL_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.maxTicketRenewableLifeLabel.setName("GlDefRenewableLife"
-							 /* NOI18N */);
-            
-            o = defaults.maxTicketLife;
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.maxTicketLife.setName("GlDefLife" /* NOI18N */);
-            
-            o = defaults.maxTicketLifeLabel;
-            a = new Association(o, ml, LABEL_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.maxTicketLifeLabel.setName("GlDefLife" /* NOI18N */);
-            
-            o = defaults.accountExpiryDate;
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.accountExpiryDate.setName("GlDefExpiry" /* NOI18N */);
-            
-            o = defaults.accountExpiryDateLabel;
-            a = new Association(o, ml, LABEL_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.accountExpiryDateLabel.setName("GlDefExpiry" /* NOI18N */);
-            
-            o = defaults.showLists;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.showLists.setName("GlDefShowLists" /* NOI18N */);
-            
-            o = defaults.staticLists;
-            a = new Association(o, ml, CHECKBOX_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.staticLists.setName("GlDefStaticLists" /* NOI18N */);
-            
-            o = defaults.cacheTime;
-            a = new Association(o, ml, TEXTFIELD_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.cacheTime.setName("GlDefCacheTime" /* NOI18N */);
-            
-            o = defaults.cacheTimeLabel;
-            a = new Association(o, ml, LABEL_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.cacheTimeLabel.setName("GlDefCacheTime" /* NOI18N */);
-            
-            o = defaults.saveButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.saveButton.setName("GlobalSave" /* NOI18N */);
-            
-            o = defaults.applyButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.applyButton.setName("GlobalApply" /* NOI18N */);
-            
-            o = defaults.cancelButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.cancelButton.setName("GlobalCancel" /* NOI18N */);
-            
-            o = defaults.dateMoreButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.dateMoreButton.setName("DateHelperButton" /* NOI18N */);
-            
-            o = defaults.lifeMoreButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.lifeMoreButton.setName("DurationHelperButton"
-					    /* NOI18N */);
-            
-            o = defaults.renewalMoreButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.renewalMoreButton.setName("DurationHelperButton"
-					       /* NOI18N */);
-            
-            o = defaults.cacheMoreButton;
-            a = new Association(o, ml, BUTTON_MOUSE);
-            defaultsHelp.addElement(a);
-            defaults.cacheMoreButton.setName("DurationHelperButton"
-					     /* NOI18N */);
-            
-            setupDefaultsHelpFlagTogglers();
-        }
-        
-        setListeners(defaultsNormal, false);
-        setListeners(defaultsHelp, true);
-        setupDefaultsHelpFixers();
-        defaultsHelpMode = true;
-    }
-    
-    /**
-     * Helper method to setupDefaultsHelpListeners. Should be called from
-     * only from there.
-     */
-    private void 	setupDefaultsHelpFlagTogglers() {
-        
-        if (defaultsHelp == null)
-            return;
-        
-        CheckboxToggler ml = new CheckboxToggler();
-        Object o;
-        Association a;
-        
-        o = defaults.disableAccount;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.forcePasswordChange;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowPostdatedTix;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowForwardableTix;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowRenewableTix;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowProxiableTix;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowServiceTix;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowTGTAuth;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.allowDupAuth;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.requirePreauth;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.requireHWAuth;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.showLists;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.serverSide;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-        
-        o = defaults.staticLists;
-        a = new Association(o, ml, CHECKBOX_MOUSE);
-        defaultsHelp.addElement(a);
-    }
-    
-    public void setupDefaultsHelpFixers() {
-        defaultsFixers = new Vector(10, 10);
-        Association a;
-        Object o;
-        TextFixer tf;
-        
-        o = defaults.maxTicketRenewableLife;
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        defaultsFixers.addElement(a);
-        
-        o = defaults.maxTicketLife;
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        defaultsFixers.addElement(a);
-        
-        o = defaults.accountExpiryDate;
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        defaultsFixers.addElement(a);
-        
-        o = defaults.cacheTime;
-        tf = new TextFixer((TextField)o);
-        a = new Association(o, tf, TEXTFIELD_KEY);
-        defaultsFixers.addElement(a);
-        
-        setListeners(defaultsFixers, true);
-    }
-    
-    /**
-     * Set up listeners from a vector of Associations objects
-     *
-     */
-    public void setListeners(Vector associations, boolean install) {
-        setListeners(associations, install, false);
-    }
-    
-    public void setListeners(Vector associations, boolean install, boolean loud)
-    {
-        Association a;
-        Button b;
-        TextField t;
-        Choice c;
-        Checkbox x;
-        Label z;
-        Window w;
-        
-        if (associations != null) {
-            for (int i = 0; i < associations.size(); i++) {
-                a = (Association)associations.elementAt(i);
-                int type = a.Type;
-                EventListener el = a.Listener;
-                if (loud) {
-                    Object o = a.Object;
-                    String flag = install ? "install" : "deinstall";
-                    System.out.println(flag+
-				       "ing listener "+el+" on component "+o);
-                }
-                
-                switch (type) {
-		case BUTTON_ACTION:
-                    b = (Button)a.Object;
-                    if (install)
-                        b.addActionListener((ActionListener)el);
-                    else
-                        b.removeActionListener((ActionListener)el);
-                    break;
-                    
-		case BUTTON_MOUSE:
-                    b = (Button)a.Object;
-                    if (install)
-                        b.addMouseListener((MouseListener)el);
-                    else
-                        b.removeMouseListener((MouseListener)el);
-                    break;
-                    
-		case TEXTFIELD_ACTION:
-                    t = (TextField)a.Object;
-                    if (install)
-                        t.addActionListener((ActionListener)el);
-                    else
-                        t.removeActionListener((ActionListener)el);
-                    break;
-                    
-		case TEXTFIELD_MOUSE:
-                    t = (TextField)a.Object;
-                    if (install)
-                        t.addMouseListener((MouseListener)el);
-                    else
-                        t.removeMouseListener((MouseListener)el);
-                    break;
-                    
-		case TEXTFIELD_KEY:
-                    t = (TextField)a.Object;
-                    if (install)
-                        t.addKeyListener((KeyListener)el);
-                    else
-                        t.removeKeyListener((KeyListener)el);
-                    break;
-                    
-		case CHOICE_ITEM:
-                    c = (Choice)a.Object;
-                    if (install)
-                        c.addItemListener((ItemListener)el);
-                    else
-                        c.removeItemListener((ItemListener)el);
-                    break;
-                    
-		case CHOICE_MOUSE:
-                    c = (Choice)a.Object;
-                    if (install)
-                        c.addMouseListener((MouseListener)el);
-                    else
-                        c.removeMouseListener((MouseListener)el);
-                    break;
-                    
-		case CHECKBOX_ITEM:
-                    x = (Checkbox)a.Object;
-                    if (install)
-                        x.addItemListener((ItemListener)el);
-                    else
-                        x.removeItemListener((ItemListener)el);
-                    break;
-                    
-		case CHECKBOX_MOUSE:
-                    x = (Checkbox)a.Object;
-                    if (install)
-                        x.addMouseListener((MouseListener)el);
-                    else
-                        x.removeMouseListener((MouseListener)el);
-                    break;
-                    
-		case LABEL_MOUSE:
-                    z = (Label)a.Object;
-                    if (install)
-                        z.addMouseListener((MouseListener)el);
-                    else
-                        z.removeMouseListener((MouseListener)el);
-                    break;
-                    
-		case WINDOW_LISTENER:
-                    w = (Window)a.Object;
-                    if (install)
-                        w.addWindowListener((WindowListener)el);
-                    else
-                        w.removeWindowListener((WindowListener)el);
-                    break;
-                }
-            }
-        }
-    }
-    
-    /*
-     * About a million actions here ...
-     */
-    private class LoginOKAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            loginComplete();
-        }
-    }
-    
-    private class LoginStartOverAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setLoginDefaults();
-        }
-    }
-    
-    private class LoginNameAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            nameComplete();
-        }
-    }
-    
-    private class LoginPassAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            loginComplete();
-        }
-    }
-    
-    private class LoginRealmAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            newRealm();
-        }
-    }
-    
-    private class LoginServerAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            newServer();
-        }
-    }
-    
-    private class MainWindowCloseAction extends WindowAdapter {
-        public void windowClosing(WindowEvent e) {
-            checkLogout();
-        }
-    };
-    
-    private class PrListPatternAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prPatternComplete();
-        }
-    }
-    
-    private class PrListClearAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prPatternClear();
-        }
-    }
-    
-    private class PrListModifyAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prModify();
-        }
-    }
-    
-    private class PrListAddAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prAdd();
-        }
-    }
-    
-    private class PrListDeleteAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prDelete();
-        }
-    }
-    
-    private class PrListDuplicateAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prDuplicate();
-        }
-    }
-    
-    private class PrCommentsAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrComments();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrPolicyAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrPolicy();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrPasswordAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrPassword(!prin.isNew);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrRandomPwAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            genRandomPassword();
-            prSetNeedSave();
-        }
-    }
-
-    private class EncListAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setEncType();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrExpiryAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrExpiry();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrSaveAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prSave();
-        }
-    }
-    
-    private class PrCancelAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prCancel();
-        }
-    }
-    
-    private class PrBasicPreviousAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prBasicPrevious();
-        }
-    }
-    
-    private class PrBasicNextAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prBasicNext();
-        }
-    }
-    
-    private class PrPwExpiryAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrPwExpiry();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrKvnoAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrKvno();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrMaxLifetimeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrMaxlife();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrMaxRenewalAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPrMaxrenew();
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrDetailPreviousAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prDetailPrevious();
-        }
-    }
-    
-    private class PrDetailNextAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prDetailNext();
-        }
-    }
-    
-    private class PrFlagsPreviousAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prFlagsPrevious();
-        }
-    }
-    
-    private class PrLockAcctAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_ALL_TIX);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrForcePwChangeAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.REQUIRES_PWCHANGE);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowPostdatedAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_POSTDATED);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowForwardableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_FORWARDABLE);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowRenewableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_RENEWABLE);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowProxiableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_PROXIABLE);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowSvrAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_SVR);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowTGTAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_TGT_BASED);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrAllowDupAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.DISALLOW_DUP_SKEY);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrRequirePreAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.REQUIRE_PRE_AUTH);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrRequireHwPreAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPrFlag(Flags.REQUIRE_HW_AUTH);
-            prSetNeedSave();
-        }
-    }
-    
-    private class PrFlagsNextAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            prFlagsDone();
-        }
-    }
-    
-    private class PoListPatternAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poPatternComplete();
-        }
-    }
-    
-    private class PoListClearAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poPatternClear();
-        }
-    }
-    
-    private class PoListModifyAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poSelected();
-        }
-    }
-    
-    private class PoListAddAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poAdd();
-        }
-    }
-    
-    private class PoListDeleteAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poDelete();
-        }
-    }
-    
-    private class PoListDuplicateAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poDuplicate();
-        }
-    }
-    
-    private class PoMinPwLengthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPolPwLength();
-            poSetNeedSave();
-        }
-    }
-    
-    private class PoMinPwClassAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPolPwClasses();
-            poSetNeedSave();
-        }
-    }
-    
-    private class PoSavedPasswordsAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setPolPwHistory();
-            poSetNeedSave();
-        }
-    }
-    
-    private class PoMinTicketLifetimeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPolMinlife();
-            poSetNeedSave();
-        }
-    }
-    
-    private class PoMaxTicketLifetimeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setPolMaxlife();
-            poSetNeedSave();
-        }
-    }
-    
-    private class PoSaveAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poSave();
-        }
-    }
-    
-    private class PoCancelAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            poCancel();
-        }
-    }
-    
-    private class PoPreviousAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            polPrevious();
-        }
-    }
-    
-    private class PoDoneAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            polDone();
-        }
-    }
-    
-    private class GlobalLockAcctAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_ALL_TIX);
-        }
-    }
-    
-    private class GlobalForcePwChangeAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.REQUIRES_PWCHANGE);
-        }
-    }
-    
-    private class GlobalAllowPostdatedAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_POSTDATED);
-        }
-    }
-    
-    private class GlobalAllowForwardableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_FORWARDABLE);
-        }
-    }
-    
-    private class GlobalAllowRenewableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_RENEWABLE);
-        }
-    }
-    
-    private class GlobalAllowProxiableAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_PROXIABLE);
-        }
-    }
-    
-    private class GlobalAllowSvrAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_SVR);
-        }
-    }
-    
-    private class GlobalAllowTGTAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_TGT_BASED);
-        }
-    }
-    
-    private class GlobalAllowDupAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.DISALLOW_DUP_SKEY);
-        }
-    }
-    
-    private class GlobalRequirePreAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.REQUIRE_PRE_AUTH);
-        }
-    }
-    
-    private class GlobalRequireHwPreAuthAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setGlobalFlag(Flags.REQUIRE_HW_AUTH);
-        }
-    }
-    
-    private class GlobalDefaultServerSideAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setServerSide();
-        }
-    }
-    
-    private class GlobalDefaultRenewableLifeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            if (!setGlobalMaxrenew()) {
-                ((TextField)e.getSource()).requestFocus();
-            }
-        }
-    }
-    
-    private class GlobalDefaultLifeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            if (!setGlobalMaxlife()) {
-                ((TextField)e.getSource()).requestFocus();
-            }
-        }
-    }
-    
-    private class GlobalDefaultExpiryAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            if (!setGlobalExpiry())
-                ((TextField)e.getSource()).requestFocus();
-        }
-    }
-    
-    private class GlobalDefaultShowListsAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setShowLists();
-        }
-    }
-    
-    private class GlobalDefaultStaticListsAction implements ItemListener {
-        public void itemStateChanged(ItemEvent e) {
-            setStaticLists();
-        }
-    }
-    
-    private class GlobalDefaultCacheTimeAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            setCacheTime();
-        }
-    }
-    
-    private class GlobalSaveAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            glSave();
-        }
-    }
-    
-    private class GlobalApplyAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            glApply();
-        }
-    }
-    
-    private class GlobalCancelAction implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            glCancel();
-        }
-    }
-    
-    private class HelpListener extends MouseAdapter {
-        public void mouseClicked(MouseEvent e) {
-            showHelp(e.getComponent().getName());
-        }
-    }
-    
-    private class CheckboxToggler extends MouseAdapter {
-        public void mouseClicked(MouseEvent e) {
-            if (e.getComponent() instanceof Checkbox) {
-                Checkbox cb = (Checkbox)e.getComponent();
-                cb.setState(!cb.getState());
-            }
-        }
-    }
-    
-    private class ChoiceFixer implements ItemListener {
-        private Choice c;
-        private String s;
-        
-        ChoiceFixer(Choice c) {
-            this.c = c;
-            s = c.getSelectedItem();
-            // System.out.println("CF: Saving string "+s);
-        }
-        
-        public void itemStateChanged(ItemEvent e) {
-            if (e.getSource() == c && !c.getSelectedItem().equals(s))
-                c.select(s);
-            // System.out.println("CF: Restoring string "+s);
-        }
-    }
-    
-    private class TextFixer extends KeyAdapter {
-        private TextField t;
-        private String s;
-        
-        TextFixer(TextField t) {
-            this.t = t;
-            s = t.getText();
-            // System.out.println("TF: Saving string "+s);
-        }
-        
-        public void keyTyped(KeyEvent e) {
-            if (e.getSource() == t)
-                t.setText(s);
-            // System.out.println("TF: Restoring string "+s);
-        }
-    }
-    
-    /*
-     * End of the million listeners
-     */
-    
-    /**
-     * Call rb.getString(), but catch exception and returns English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-            String res = rb.getString(key);
-            return res;
-        } catch (MissingResourceException e) {
-            System.out.println("Missing resource "+key+", using English.");
-            return key;
-        }
-    }
-    
-    private static final String getHelpString(String key) {
-        String res;
-        try {
-            res = hrb.getString(key);
-        } catch (MissingResourceException e) {
-            res = "Missing help on key "+key;
-        }
-        return res;
-    }
-    
-    
-    /**
-     * Check the privileges this principal has to see what we should not try.
-     */
-    private boolean checkPrivs() {
-        boolean okay = true;
-        String lpriv = (((privs & PRIV_ADD) == 0) ? "A" : "a")
-	    + (((privs & PRIV_DELETE) == 0) ? "D" : "d")
-	    + (((privs & PRIV_MODIFY) == 0) ? "M" : "m")
-	    + (((privs & PRIV_CHANGEPW) == 0) ? "C" : "c")
-	    + (((privs & PRIV_INQUIRE) == 0) ? "I" : "i")
-	    + (((privs & PRIV_LIST) == 0) ? "L" : "l");
-        // System.out.println("Privileges are "+lpriv+" "
-        // 			+(new Integer(privs).toString()));
-        /**
-         * Having modify is not useful if we can't either add or see
-         * old values
-         */
-        if ((privs & (PRIV_MODIFY | PRIV_INQUIRE | PRIV_ADD)) == PRIV_MODIFY)
-            okay = false;
-        /* Having changepw without inquire is not useful */
-        if (privs == PRIV_CHANGEPW)
-            okay = false;
-        if (!okay) {
-            showLoginError(
-		   getString("Insufficient privileges to use gkadmin: ")+lpriv
-			   +getString(" Please try using another principal."));
-            return false;
-        }
-        return true;
-    }
-    
-    /*
-     * Try to cope with the privileges we have.
-     */
-    private void reactToPrivs() {
-        Boolean off = new Boolean(false);
-        
-        /*
-         * If we don't have the Add privilege, we turn off "Create New"
-         * and "Duplicate".  "Duplicate" is also handled in prSelValid/
-         * poSelValid because it's sensitive to selection from the lists.
-         */
-        if ((privs & PRIV_ADD) == 0) {
-            // System.out.println("Disabling Create New buttons");
-            gui.PrListAdd.set("enabled" /* NOI18N */, off);
-            gui.PoListAdd.set("enabled" /* NOI18N */, off);
-            gui.PrListDuplicate.set("enabled" /* NOI18N */, off);
-            gui.PoListDuplicate.set("enabled" /* NOI18N */, off);
-        }
-        
-        /*
-         * If we don't have the Delete privilege, we turn off "Delete".
-         * This is also done in prSelValid/poSelValid because it is
-         * thought about when a list item is selected.
-         */
-        if ((privs & PRIV_DELETE) == 0) {
-            // System.out.println("Disabling Delete buttons");
-            gui.PrListDelete.set("enabled" /* NOI18N */, off);
-            gui.PoListDelete.set("enabled" /* NOI18N */, off);
-        }
-        
-        /*
-         * If we don't have changepw, disable textfield and random button.
-         * Add needs to turn this on again for an add operation only.
-         */
-        if ((privs & PRIV_CHANGEPW) == 0) {
-            // System.out.println("Disabling password components");
-            gui.PrPassword.set("enabled" /* NOI18N */, off);
-            gui.PrBasicRandomPw.set("enabled" /* NOI18N */, off);
-            gui.EncList.set("enabled" /* NOI18N */, off);
-        }
-        
-        /*
-         * If we don't have inquire, we can't get an existing principal
-         * to duplicate, and permitting modification seems a bad idea.
-         * We can still use the panels if we can add.  These will also
-         * get dealt with in prSelValid/poSelValid.
-         */
-        if ((privs & PRIV_INQUIRE) == 0) {
-            // System.out.println("Disabling Modify buttons");
-            gui.PrListModify.set("enabled" /* NOI18N */, off);
-            gui.PoListModify.set("enabled" /* NOI18N */, off);
-            gui.PrListDuplicate.set("enabled" /* NOI18N */, off);
-            gui.PoListDuplicate.set("enabled" /* NOI18N */, off);
-        }
-        
-        /*
-         * If we don't have Modify or Add but do have Inquire, we want to
-         * turn off save and cancel buttons, as well as all principal and
-         * policy components to prevent any changes.
-         */
-        if ((privs & (PRIV_MODIFY | PRIV_ADD)) == 0) {
-            // System.out.println("Disabling attribute components");
-            enablePrAttributes(off);
-            enablePoAttributes(off);
-        }
-        
-        /*
-         * We may have no list privs, or we may have turned off lists.
-         * Set things up accordingly.
-         */
-        noLists = ((privs & PRIV_LIST) == 0 || !defaults.getShowLists());
-        fixListPanels();
-    }
-    
-    private void fixListPanels() {
-        /*
-         * If we can't use lists, we won't fetch lists, which means the
-         * only way to get a principal is to type something into the
-         * list pattern field.  Relabel those so they work better.
-         */
-        String s;
-        Boolean yes = new Boolean(true);
-        Boolean no = new Boolean(false);
-        if (noLists) {
-            // System.out.println("Hijacking list pattern stuff");
-            gui.PrListLabel.set("enabled" /* NOI18N */, no);
-            gui.PoListLabel.set("enabled" /* NOI18N */, no);
-            s = getString("Principal Name:");
-            gui.PrSearchLab.set("text" /* NOI18N */, s);
-            s = getString("Policy Name:");
-            gui.PoListPatternLabel.set("text" /* NOI18N */, s);
-            s = getString("Clear Name");
-            gui.PrListClear.set("text" /* NOI18N */, s);
-            gui.PoListClear.set("text" /* NOI18N */, s);
-            gui.Prlist.set("enabled", no);
-            gui.Pollist.set("enabled", no);
-            gui.refreshPrincipals.set("enabled", no);
-            gui.refreshPolicies.set("enabled", no);
-            gui.Prlist.set("selectedItem" /* NOI18N */, null);
-            gui.Pollist.set("selectedItem" /* NOI18N */, null);
-            gui.PrintPrlist.set("enabled" /* NOI18N */, no);
-            gui.PrintPollist.set("enabled" /* NOI18N */, no);
-        } else {
-            gui.PrListLabel.set("enabled" /* NOI18N */, yes);
-            gui.PoListLabel.set("enabled" /* NOI18N */, yes);
-            s = getString("Filter Pattern:");
-            gui.PrSearchLab.set("text" /* NOI18N */, s);
-            gui.PoListPatternLabel.set("text" /* NOI18N */, s);
-            s = getString("Clear Filter");
-            gui.PrListClear.set("text" /* NOI18N */, s);
-            gui.PoListClear.set("text" /* NOI18N */, s);
-            gui.Prlist.set("enabled", yes);
-            gui.Pollist.set("enabled", yes);
-            gui.refreshPrincipals.set("enabled", yes);
-            gui.refreshPolicies.set("enabled", yes);
-            gui.PrintPrlist.set("enabled", yes);
-            gui.PrintPollist.set("enabled", yes);
-        }
-    }
-    
-    private void enablePrAttributes(Boolean sense) {
-        // Basics
-        gui.PrPolicy.set("enabled" /* NOI18N */, sense);
-        gui.PrExpiry.set("enabled" /* NOI18N */, sense);
-        gui.EncList.set("enabled" /* NOI18N */, sense);
-        gui.PrComments.set("enabled" /* NOI18N */, sense);
-        // Details
-        gui.PrPwExpiry.set("enabled" /* NOI18N */, sense);
-        gui.PrKvno.set("enabled" /* NOI18N */, sense);
-        gui.PrMaxLifetime.set("enabled" /* NOI18N */, sense);
-        gui.PrMaxRenewal.set("enabled" /* NOI18N */, sense);
-        // Flags
-        gui.PrLockAcct.set("enabled" /* NOI18N */, sense);
-        gui.PrForcePwChange.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowPostdated.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowForwardable.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowRenewable.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowProxiable.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowSvr.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowTGT.set("enabled" /* NOI18N */, sense);
-        gui.PrAllowDupAuth.set("enabled" /* NOI18N */, sense);
-        gui.PrRequirePreAuth.set("enabled" /* NOI18N */, sense);
-        gui.PrRequireHwPreAuth.set("enabled" /* NOI18N */, sense);
-    }
-    
-    private void enablePoAttributes(Boolean sense) {
-        // Policy
-        gui.PoMinPwLength.set("enabled" /* NOI18N */, sense);
-        gui.PoMinPwClass.set("enabled" /* NOI18N */, sense);
-        gui.PoSavedPasswords.set("enabled" /* NOI18N */, sense);
-        gui.PoMinTicketLifetime.set("enabled" /* NOI18N */, sense);
-        gui.PoMaxTicketLifetime.set("enabled" /* NOI18N */, sense);
-    }
-    
-    /**
-     * Show context-sensitive help from HelpData class
-     *
-     */
-    public void showHelp(String what) {
-        String res;
-        
-        // System.out.println("Help on "+what);
-        if (cHelp == null) {
-            // System.out.println("showHelp called without context.");
-            return;
-        }
-        res = getHelpString(what);
-        cHelp.setText(res);
-        cHelp.setVisible(true);
-    }
-    
-    /**
-     * Holds an association between an object and a listener, keeping
-     * track of the types so that they can be assigned en masse later
-     *
-     */
-    private class Association extends Object {
-        Object Object;
-        EventListener Listener;
-        int Type;
-        
-        public Association(Object obj, EventListener list, int type) {
-            Object = obj;
-            Listener = list;
-            Type = type;
-        }
-    }
-    
-    /**
-     * Action listeners for the defaults editing frame.
-     */
-    
-    private class DefaultsContextSensitiveHelpListener
-	implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            if (defaultsHelpMode)
-                showHelp("ContextSensitiveHelp");
-            else
-                contextHelp(defaultsEditingFrame);
-        }
-    }
-    
-    /**
-     * This class launches the dateTimeDialog box when the user presses
-     * the "..." button. An instance of this is shared by all the
-     * buttons that are meant to do this.
-     */
-    private class DateTimeListener  implements ActionListener {
-        
-        private TextField tf;
-        private Frame frame;
-        
-        DateTimeListener(TextField tf, Frame frame) {
-            this.tf = tf;
-            this.frame = frame;
-        }
-        
-        public void actionPerformed(ActionEvent e) {
-            if (mainHelpMode && frame == realMainFrame)
-                showHelp("DateTime...");
-            else
-                if (defaultsHelpMode && frame == defaultsEditingFrame)
-		    showHelp("DateTime...");
-		else
-		    getDateTimeFromDialogBox(tf, frame);
-        } // actionPerformed
-    } // class DateTimeListener
-
-    /**
-     * This class launches the EncListDialog box when the user presses
-     * the "..." button. An instance of this is shared by all the
-     * buttons that are meant to do this.
-     */
-    private class EncListListener implements ActionListener {
-        
-        private TextField tf;
-        private Frame frame;
-        
-        EncListListener(TextField tf, Frame frame) {
-            this.tf = tf;
-            this.frame = frame;
-        }
-        
-        public void actionPerformed(ActionEvent e) {
-            if (mainHelpMode && frame == realMainFrame)
-                showHelp("EncList...");
-            else
-                if (defaultsHelpMode && frame == defaultsEditingFrame)
-		    showHelp("EncList...");
-		else
-		    getEncListFromDialogBox(tf, frame);
-        } // actionPerformed
-    } // class EncListListener
-    
-    /**
-     * This class launches the durrationHelper dialog box when the user presses
-     * the "..." button. An instance of this is shared by all the
-     * buttons that are meant to do this.
-     */
-    private class DurationListener implements ActionListener {
-        
-        private TextField tf;
-        private Frame frame;
-        
-        DurationListener(TextField tf, Frame frame) {
-            this.tf = tf;
-            this.frame = frame;
-        }
-        
-        public void actionPerformed(ActionEvent e) {
-            if (mainHelpMode && frame == realMainFrame)
-                showHelp("Duration...");
-            else
-                if (defaultsHelpMode && frame == defaultsEditingFrame)
-		    showHelp("Duration...");
-		else
-		    getDurationFromDialogBox(tf, frame);
-        }
-    }
-    
-    
-    private class KeystrokeDetector extends KeyAdapter {
-        
-        private int changeType; // principal or policy change
-        
-        public KeystrokeDetector(int type) {
-            changeType = type;
-        }
-        
-        public void keyTyped(KeyEvent e) {
-            reactToKey(changeType);
-            ((TextField)e.getComponent()).requestFocus();
-        }
-    }
-    
-    private void reactToKey(int changeType) {
-        switch (changeType) {
-	case PRINCIPAL_EDITING:
-            prSetNeedSave();
-            break;
-            
-	case POLICY_EDITING:
-            poSetNeedSave();
-            break;
-            
-	case DEFAULTS_EDITING:
-            glSetNeedSave();
-            break;
-            
-	case PRINCIPAL_LIST:
-            if (noLists)
-                prSelValid(true);
-            break;
-            
-	case POLICY_LIST:
-            if (noLists)
-                poSelValid(true);
-            break;
-        }
-    }
-    
-    private static String enclose(String value) {
-        return new StringBuffer("\"").append(value).append("\"").toString();
-    }
-    
-    private static String constructDurationExample() {
-        StringBuffer result = new StringBuffer(getString("Example: "));
-        result.append(enclose(nf.format(28800)));
-        return result.toString();
-    }
-    
-    private static String constructDateExample() {
-        StringBuffer result = new StringBuffer(getString("Example: "));
-        result.append(enclose(df.format(new Date())));
-        result.append(' ').append(getString("or")).append(' ');
-        result.append(enclose(neverString));
-        return result.toString();
-    }
-    
-    private static String constructNumberExample() {
-        StringBuffer result =  new StringBuffer(getString("Example: "));
-        result.append(enclose(nf.format(4)));
-        return result.toString();
-    }
-    
-    static {
-        rb = ResourceBundle.getBundle("GuiResource" /* NOI18N */);
-        hrb = ResourceBundle.getBundle("HelpData" /* NOI18N */);
-        df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
-					    DateFormat.MEDIUM);
-        nf = NumberFormat.getInstance();
-        
-        neverString = getString("Never");
-        
-        toolkit = Toolkit.getDefaultToolkit();
-        
-        durationErrorText = new String[] {getHelpString("Bad Duration"),
-					  constructDurationExample()};
-        dateErrorText = new String[] {getHelpString("Bad Date"),
-				      constructDateExample()};
-        numberErrorText = new String[] {getHelpString("Bad Number"),
-					constructNumberExample()};
-    }
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/KdcGuiMain.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * 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) 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- */
-
-/**
- * This file was originally automatically generated by Java WorkShop.
- *
- * Runtime vendor: SunSoft, Inc.
- * Runtime version: 1.0
- *
- * Visual vendor: SunSoft, Inc.
- * Visual version: 1.0
- */
-
-
-
-import sunsoft.jws.visual.rt.base.Group;
-import sunsoft.jws.visual.rt.base.MainHelper;
-import java.applet.Applet;
-
-/**
- * Generated Main class
- *
- * @version 1.20, 05/21/96
- */
-public class KdcGuiMain extends Applet {
-    /**
-     * Helper class for the generated main class.  This variable is only
-     * used when we are running as an applet.
-     */
-    private MainHelper helper;
-    
-    /**
-     * Called when application is run from the command line.
-     */
-    public static void main(String args[]) {
-        MainHelper helper = new MainHelper();
-        helper.checkVersion(1.0);
-        
-        Group group = new KdcGui();
-        helper.main(group, args);
-    }
-    
-    /**
-     * Called when the applet is loaded.
-     */
-    public void init() {
-        helper = new MainHelper();
-        helper.checkVersion(1.0);
-        
-        Group group = new KdcGui();
-        helper.init(this, group);
-    }
-    
-    /**
-     * Called whenever the applet's page is visited.
-     */
-    public void start() {
-        helper.start();
-    }
-    
-    /**
-     * Called by the browser when the user leaves the page.
-     */
-    public void stop() {
-        helper.stop();
-    }
-    
-    /**
-     * Called by the browser when the applet should be destroyed.
-     */
-    public void destroy() {
-        helper.destroy();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/KdcGuiOps.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
- * 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) 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- */
-
-/**
- * This file was originally automatically generated by Java WorkShop.
- *
- * Runtime vendor: SunSoft, Inc.
- * Runtime version: 1.0
- *
- * Visual vendor: SunSoft, Inc.
- * Visual version: 1.0
- */
-
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.type.*;
-import java.awt.Event;
-
-
-public class KdcGuiOps extends Operations {
-    private Op ops[];
-    
-    private KdcGui group;
-    private KdcGuiRoot gui;
-    
-    public void setGroup(Group group) {
-        this.group = (KdcGui)group;
-    }
-    
-    public void setRoot(Root root) {
-        this.gui = (KdcGuiRoot)root;
-        if (ops == null)
-            initializeOps();
-    }
-    
-    public boolean handleMessage(Message msg) {
-        for (int i = 0; i < ops.length; i++) {
-            if (ops[i].hasCode()) {
-                if (ops[i].matchMessage(msg)) {
-                    handleCallback(i, msg,
-				   (msg.isAWT ? (Event)msg.arg : null));
-                }
-            } else {
-                ops[i].handleMessage(msg);
-            }
-        }
-        
-        return false;
-    }
-    
-    private void initializeOps() {
-        ops = new Op[17];
-        
-        ops[0] = new Op(gui);
-        ops[0].name = "Op1";
-        ops[0].filter = new OpFilter();
-        ops[0].filter.filterType = OpFilter.EVENT;
-        ops[0].filter.target = gui.Exit2;
-        ops[0].filter.id = 1001;
-        ops[0].action = new OpAction();
-        ops[0].action.actionType = OpAction.CODE;
-        
-        ops[1] = new Op(gui);
-        ops[1].name = "Op1";
-        ops[1].filter = new OpFilter();
-        ops[1].filter.filterType = OpFilter.EVENT;
-        ops[1].filter.target = gui.browserHelp1;
-        ops[1].filter.id = 1001;
-        ops[1].action = new OpAction();
-        ops[1].action.actionType = OpAction.CODE;
-        
-        ops[2] = new Op(gui);
-        ops[2].name = "Op1";
-        ops[2].filter = new OpFilter();
-        ops[2].filter.filterType = OpFilter.EVENT;
-        ops[2].filter.target = gui.Context2;
-        ops[2].filter.id = 1001;
-        ops[2].action = new OpAction();
-        ops[2].action.actionType = OpAction.CODE;
-        
-        ops[3] = new Op(gui);
-        ops[3].name = "Op1";
-        ops[3].filter = new OpFilter();
-        ops[3].filter.filterType = OpFilter.EVENT;
-        ops[3].filter.target = gui.About2;
-        ops[3].filter.id = 1001;
-        ops[3].action = new OpAction();
-        ops[3].action.actionType = OpAction.CODE;
-        
-        ops[4] = new Op(gui);
-        ops[4].name = "Exit";
-        ops[4].filter = new OpFilter();
-        ops[4].filter.filterType = OpFilter.EVENT;
-        ops[4].filter.target = gui.mainframe;
-        ops[4].filter.id = 1001;
-        ops[4].action = new OpAction();
-        ops[4].action.actionType = OpAction.CODE;
-        
-        ops[5] = new Op(gui);
-        ops[5].name = "Op1";
-        ops[5].filter = new OpFilter();
-        ops[5].filter.filterType = OpFilter.EVENT;
-        ops[5].filter.target = gui.PrintCurPr;
-        ops[5].filter.id = 1001;
-        ops[5].action = new OpAction();
-        ops[5].action.actionType = OpAction.CODE;
-        
-        ops[6] = new Op(gui);
-        ops[6].name = "Op1";
-        ops[6].filter = new OpFilter();
-        ops[6].filter.filterType = OpFilter.EVENT;
-        ops[6].filter.target = gui.PrintCurPol;
-        ops[6].filter.id = 1001;
-        ops[6].action = new OpAction();
-        ops[6].action.actionType = OpAction.CODE;
-        
-        ops[7] = new Op(gui);
-        ops[7].name = "Op1";
-        ops[7].filter = new OpFilter();
-        ops[7].filter.filterType = OpFilter.EVENT;
-        ops[7].filter.target = gui.PrintPrlist;
-        ops[7].filter.id = 1001;
-        ops[7].action = new OpAction();
-        ops[7].action.actionType = OpAction.CODE;
-        
-        ops[8] = new Op(gui);
-        ops[8].name = "Op1";
-        ops[8].filter = new OpFilter();
-        ops[8].filter.filterType = OpFilter.EVENT;
-        ops[8].filter.target = gui.PrintPollist;
-        ops[8].filter.id = 1001;
-        ops[8].action = new OpAction();
-        ops[8].action.actionType = OpAction.CODE;
-        
-        ops[9] = new Op(gui);
-        ops[9].name = "Op1";
-        ops[9].filter = new OpFilter();
-        ops[9].filter.filterType = OpFilter.EVENT;
-        ops[9].filter.target = gui.logout;
-        ops[9].filter.id = 1001;
-        ops[9].action = new OpAction();
-        ops[9].action.actionType = OpAction.CODE;
-        
-        ops[10] = new Op(gui);
-        ops[10].name = "Exit";
-        ops[10].filter = new OpFilter();
-        ops[10].filter.filterType = OpFilter.EVENT;
-        ops[10].filter.target = gui.Exit;
-        ops[10].filter.id = 1001;
-        ops[10].action = new OpAction();
-        ops[10].action.actionType = OpAction.CODE;
-        
-        ops[11] = new Op(gui);
-        ops[11].name = "Op1";
-        ops[11].filter = new OpFilter();
-        ops[11].filter.filterType = OpFilter.EVENT;
-        ops[11].filter.target = gui.editPreferences;
-        ops[11].filter.id = 1001;
-        ops[11].action = new OpAction();
-        ops[11].action.actionType = OpAction.CODE;
-        
-        ops[12] = new Op(gui);
-        ops[12].name = "Op1";
-        ops[12].filter = new OpFilter();
-        ops[12].filter.filterType = OpFilter.EVENT;
-        ops[12].filter.target = gui.refreshPrincipals;
-        ops[12].filter.id = 1001;
-        ops[12].action = new OpAction();
-        ops[12].action.actionType = OpAction.CODE;
-        
-        ops[13] = new Op(gui);
-        ops[13].name = "Op1";
-        ops[13].filter = new OpFilter();
-        ops[13].filter.filterType = OpFilter.EVENT;
-        ops[13].filter.target = gui.refreshPolicies;
-        ops[13].filter.id = 1001;
-        ops[13].action = new OpAction();
-        ops[13].action.actionType = OpAction.CODE;
-        
-        ops[14] = new Op(gui);
-        ops[14].name = "Op1";
-        ops[14].filter = new OpFilter();
-        ops[14].filter.filterType = OpFilter.EVENT;
-        ops[14].filter.target = gui.browserHelp2;
-        ops[14].filter.id = 1001;
-        ops[14].action = new OpAction();
-        ops[14].action.actionType = OpAction.CODE;
-        
-        ops[15] = new Op(gui);
-        ops[15].name = "Op1";
-        ops[15].filter = new OpFilter();
-        ops[15].filter.filterType = OpFilter.EVENT;
-        ops[15].filter.target = gui.Context;
-        ops[15].filter.id = 1001;
-        ops[15].action = new OpAction();
-        ops[15].action.actionType = OpAction.CODE;
-        
-        ops[16] = new Op(gui);
-        ops[16].name = "Op1";
-        ops[16].filter = new OpFilter();
-        ops[16].filter.filterType = OpFilter.EVENT;
-        ops[16].filter.target = gui.About;
-        ops[16].filter.id = 1001;
-        ops[16].action = new OpAction();
-        ops[16].action.actionType = OpAction.CODE;
-    }
-    
-    private void handleCallback(int index, Message msg, Event evt) {
-        switch (index) {
-	case 0:
-            {
-                group.checkExit(
-				(java.awt.Frame)gui.loginframe.getBody());
-            }
-            break;
-	case 1:
-            {
-                group.checkHelp(
-				(java.awt.Frame)gui.loginframe.getBody());
-            }
-            break;
-	case 2:
-            {
-                group.checkContextSensitiveHelp(
-				(java.awt.Frame)gui.loginframe.getBody());
-            }
-            break;
-	case 3:
-            {
-                group.checkAbout(
-				 (java.awt.Frame)gui.loginframe.getBody());
-            }
-            break;
-	case 4:
-            {
-                group.exit();
-            }
-            break;
-	case 5:
-            {
-                group.checkPrintCurPr();
-            }
-            break;
-	case 6:
-            {
-                group.checkPrintCurPol();
-            }
-            break;
-	case 7:
-            {
-                group.checkPrintPrList();
-            }
-            break;
-	case 8:
-            {
-                group.checkPrintPoList();
-            }
-            break;
-	case 9:
-            {
-                group.checkLogout();
-            }
-            break;
-	case 10:
-            {
-                group.checkExit(
-				(java.awt.Frame)gui.mainframe.getBody());
-            }
-            break;
-	case 11:
-            {
-                group.checkEditPreferences();
-            }
-            break;
-	case 12:
-            {
-                group.checkRefreshPrincipals();
-            }
-            break;
-	case 13:
-            {
-                group.checkRefreshPolicies();
-            }
-            break;
-	case 14:
-            {
-                group.checkHelp(
-				(java.awt.Frame)gui.mainframe.getBody());
-            }
-            break;
-	case 15:
-            {
-                group.checkContextSensitiveHelp(
-				(java.awt.Frame)gui.mainframe.getBody());
-            }
-            break;
-	case 16:
-            {
-                group.checkAbout(
-				 (java.awt.Frame)gui.mainframe.getBody());
-            }
-            break;
-	default:
-            throw new Error("Bad callback index: " + index);
-        }
-    }
-    
-    
-    // methods from lib/visual/gen/methods.java
-    
-    /**
-     * Converts a string to the specified type.
-     */
-    private Object convert(String type, String value) {
-        return (Converter.getConverter(type).convertFromString(value));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/KdcGuiRoot.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2369 +0,0 @@
-/*
- * 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 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/**
- * This file was originally automatically generated by Java WorkShop.
- *
- * Runtime vendor: SunSoft, Inc.
- * Runtime version: 1.0
- *
- * Visual vendor: SunSoft, Inc.
- * Visual version: 1.0
- */
-
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.shadow.*;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.type.*;
-
-import sunsoft.jws.visual.rt.base.Root;
-import sunsoft.jws.visual.rt.shadow.java.awt.FrameShadow;
-import sunsoft.jws.visual.rt.shadow.GBPanelShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.LabelShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.TextFieldShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.ButtonShadow;
-import sunsoft.jws.visual.rt.shadow.ImageLabelShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.MenuBarShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.MenuShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.MenuItemShadow;
-import sunsoft.jws.visual.rt.shadow.TabbedFolderShadow;
-import sunsoft.jws.visual.rt.shadow.CardPanelShadow;
-import sunsoft.jws.visual.rt.shadow.BorderPanelShadow;
-import sunsoft.jws.visual.rt.shadow.LabelBarShadow;
-import sunsoft.jws.visual.rt.shadow.TextListShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.ChoiceShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.CheckboxShadow;
-
-public class KdcGuiRoot extends Root {
-    public MenuItemShadow About;
-    public MenuItemShadow About2;
-    public MenuItemShadow Context;
-    public MenuItemShadow Context2;
-    public MenuItemShadow Exit;
-    public MenuItemShadow Exit2;
-    public MenuShadow File;
-    public MenuShadow File2;
-    public MenuShadow Help;
-    public LabelBarShadow LabelBarGeneral;
-    public LabelBarShadow LabelBarMiscellany;
-    public LabelBarShadow LabelBarPassword;
-    public LabelBarShadow LabelBarPrincipal;
-    public LabelBarShadow LabelBarSecurity;
-    public LabelBarShadow LabelBarTicket;
-    public LabelBarShadow LabelBarTickets;
-    public TextFieldShadow LoginName;
-    public LabelShadow LoginNameLabel;
-    public ButtonShadow LoginOK;
-    public TextFieldShadow LoginPass;
-    public LabelShadow LoginPassLabel;
-    public TextFieldShadow LoginRealm;
-    public LabelShadow LoginRealmLabel;
-    public TextFieldShadow LoginServer;
-    public LabelShadow LoginServerLabel;
-    public ButtonShadow LoginStartOver;
-    public ButtonShadow PoDetailCancel;
-    public ButtonShadow PoDetailDone;
-    public LabelShadow PoDetailLabel;
-    public ButtonShadow PoDetailPrevious;
-    public ButtonShadow PoDetailSave;
-    public ButtonShadow PoListAdd;
-    public ButtonShadow PoListClear;
-    public ButtonShadow PoListDelete;
-    public ButtonShadow PoListDuplicate;
-    public LabelShadow PoListLabel;
-    public ButtonShadow PoListModify;
-    public TextFieldShadow PoListPattern;
-    public LabelShadow PoListPatternLabel;
-    public TextFieldShadow PoMaxTicketLifetime;
-    public LabelShadow PoMaxTicketLifetimeLabel;
-    public ButtonShadow PoMaxTicketLifetimeMoreButton;
-    public ChoiceShadow PoMinPwClass;
-    public LabelShadow PoMinPwClassLabel;
-    public ChoiceShadow PoMinPwLength;
-    public LabelShadow PoMinPwLengthLabel;
-    public TextFieldShadow PoMinTicketLifetime;
-    public LabelShadow PoMinTicketLifetimeLabel;
-    public ButtonShadow PoMinTicketLifetimeMoreButton;
-    public TextFieldShadow PoName;
-    public LabelShadow PoNameLabel;
-    public LabelShadow PoReferences;
-    public LabelShadow PoReferencesLabel;
-    public ChoiceShadow PoSavedPasswords;
-    public LabelShadow PoSavedPasswordsLabel;
-    public TextListShadow Pollist;
-    public GBPanelShadow Pollisttab;
-    public CheckboxShadow PrAllowDupAuth;
-    public CheckboxShadow PrAllowForwardable;
-    public CheckboxShadow PrAllowPostdated;
-    public CheckboxShadow PrAllowProxiable;
-    public CheckboxShadow PrAllowRenewable;
-    public CheckboxShadow PrAllowSvr;
-    public CheckboxShadow PrAllowTGT;
-    public ButtonShadow PrBasicCancel;
-    public LabelShadow PrBasicLabel;
-    public ButtonShadow PrBasicNext;
-    public ButtonShadow PrBasicPrevious;
-    public ButtonShadow PrBasicRandomPw;
-    public LabelShadow EncListLabel;
-    public TextFieldShadow EncList;
-    public ButtonShadow EncListMoreButton;
-    public ButtonShadow PrBasicSave;
-    public TextFieldShadow PrComments;
-    public LabelShadow PrCommentsLabel;
-    public ButtonShadow PrDetailCancel;
-    public LabelShadow PrDetailLabel;
-    public ButtonShadow PrDetailNext;
-    public ButtonShadow PrDetailPrevious;
-    public ButtonShadow PrDetailSave;
-    public TextFieldShadow PrExpiry;
-    public LabelShadow PrExpiryLabel;
-    public ButtonShadow PrExpiryMoreButton;
-    public LabelShadow PrFailCount;
-    public LabelShadow PrFailureCountLabel;
-    public LabelShadow PrFlagLabel;
-    public ButtonShadow PrFlagsCancel;
-    public ButtonShadow PrFlagsNext;
-    public ButtonShadow PrFlagsPrevious;
-    public ButtonShadow PrFlagsSave;
-    public CheckboxShadow PrForcePwChange;
-    public TextFieldShadow PrKvno;
-    public LabelShadow PrKvnoLabel;
-    public LabelShadow PrLastChangedBy;
-    public LabelShadow PrLastChangedByLabel;
-    public LabelShadow PrLastChangedTime;
-    public LabelShadow PrLastChangedTimeLabel;
-    public LabelShadow PrLastFailure;
-    public LabelShadow PrLastFailureLabel;
-    public LabelShadow PrLastPwChange;
-    public LabelShadow PrLastSuccess;
-    public LabelShadow PrLastSuccessLabel;
-    public ButtonShadow PrListAdd;
-    public ButtonShadow PrListClear;
-    public ButtonShadow PrListDelete;
-    public ButtonShadow PrListDuplicate;
-    public LabelShadow PrListLabel;
-    public ButtonShadow PrListModify;
-    public TextFieldShadow PrListPattern;
-    public CheckboxShadow PrLockAcct;
-    public TextFieldShadow PrMaxLifetime;
-    public ButtonShadow PrMaxLifetimeMoreButton;
-    public TextFieldShadow PrMaxRenewal;
-    public ButtonShadow PrMaxRenewalMoreButton;
-    public LabelShadow PrMaxTicketLifetimeLabel;
-    public LabelShadow PrMaxTicketRenewalLabel;
-    public TextFieldShadow PrName1;
-    public LabelShadow PrName2;
-    public LabelShadow PrName3;
-    public LabelShadow PrNameLabel1;
-    public TextFieldShadow PrPassword;
-    public LabelShadow PrPasswordLabel;
-    public ChoiceShadow PrPolicy;
-    public LabelShadow PrPolicyLabel;
-    public TextFieldShadow PrPwExpiry;
-    public LabelShadow PrPwExpiryLabel;
-    public ButtonShadow PrPwExpiryMoreButton;
-    public LabelShadow PrPwLastChangedLabel;
-    public CheckboxShadow PrRequireHwPreAuth;
-    public CheckboxShadow PrRequirePreAuth;
-    public LabelShadow PrSearchLab;
-    public MenuShadow Print;
-    public MenuItemShadow PrintCurPol;
-    public MenuItemShadow PrintCurPr;
-    public MenuItemShadow PrintPollist;
-    public MenuItemShadow PrintPrlist;
-    public TextListShadow Prlist;
-    public GBPanelShadow Prlisttab;
-    public LabelShadow StatusLine;
-    public BorderPanelShadow borderpanel1;
-    public BorderPanelShadow borderpanel7;
-    public MenuItemShadow browserHelp1;
-    public MenuItemShadow browserHelp2;
-    public CardPanelShadow cardpanel1;
-    public CardPanelShadow cardpanel2;
-    public MenuShadow editMenu;
-    public MenuItemShadow editPreferences;
-    public GBPanelShadow gbpanel1;
-    public GBPanelShadow gbpanel11;
-    public GBPanelShadow gbpanel17;
-    public GBPanelShadow gbpanel18;
-    public GBPanelShadow gbpanel19;
-    public GBPanelShadow gbpanel2;
-    public GBPanelShadow gbpanel20;
-    public GBPanelShadow gbpanel21;
-    public GBPanelShadow gbpanel22;
-    public GBPanelShadow gbpanel23;
-    public GBPanelShadow gbpanel24;
-    public GBPanelShadow gbpanel25;
-    public GBPanelShadow gbpanel28;
-    public GBPanelShadow gbpanel3;
-    public GBPanelShadow gbpanel36;
-    public GBPanelShadow gbpanel37;
-    public GBPanelShadow gbpanel38;
-    public GBPanelShadow gbpanel4;
-    public GBPanelShadow gbpanel40;
-    public GBPanelShadow gbpanel41;
-    public GBPanelShadow gbpanel42;
-    public GBPanelShadow gbpanel44;
-    public GBPanelShadow gbpanel45;
-    public GBPanelShadow gbpanel5;
-    public GBPanelShadow gbpanel50;
-    public GBPanelShadow gbpanel6;
-    public GBPanelShadow gbpanel67;
-    public GBPanelShadow gbpanel73;
-    public GBPanelShadow gbpanel8;
-    public GBPanelShadow gbpanel9;
-    public GBPanelShadow gbpanel90;
-    public LabelBarShadow labelbar1;
-    public LabelBarShadow labelbar20;
-    public LabelBarShadow labelbar21;
-    public LabelBarShadow labelbar22;
-    public LabelBarShadow labelbar23;
-    public LabelBarShadow labelbar3;
-    public LabelBarShadow labelbar6;
-    public FrameShadow loginframe;
-    public MenuItemShadow logout;
-    public FrameShadow mainframe;
-    public MenuShadow menu1;
-    public MenuShadow menu2;
-    public MenuBarShadow menubar1;
-    public MenuBarShadow menubar2;
-    public MenuItemShadow refreshPolicies;
-    public MenuItemShadow refreshPrincipals;
-    public Root root1;
-    public TabbedFolderShadow tabbedfolder1;
-    
-    public KdcGuiRoot(Group group) {
-        setGroup(group);
-        
-        loginframe = new FrameShadow();
-        loginframe.set("name", "loginframe");
-        add(loginframe);
-        loginframe.set("title", "SEAM Administration Login");
-        loginframe.set("layoutSize", new java.awt.Dimension(676, 676));
-        loginframe.set("layoutLocation", new java.awt.Point(7, 16));
-        
-        gbpanel44 = new GBPanelShadow();
-        gbpanel44.set("name", "gbpanel44");
-        loginframe.add(gbpanel44);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14};
-            gbpanel44.set("rowHeights", _tmp);
-        }
-        gbpanel44.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14};
-            gbpanel44.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0};
-            gbpanel44.set("rowWeights", _tmp);
-        }
-        gbpanel44.set("layoutSize", new java.awt.Dimension(457, 457));
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel44.set("columnWeights", _tmp);
-        }
-        gbpanel44.set("layoutLocation", new java.awt.Point(602, 10));
-        
-        LoginNameLabel = new LabelShadow();
-        LoginNameLabel.set("name", "LoginNameLabel");
-        gbpanel44.add(LoginNameLabel);
-        LoginNameLabel.set("GBConstraints",
-			   new GBConstraints("x=1;y=2;width=6;height=2"));
-        LoginNameLabel.set("text", "Principal Name:");
-        LoginNameLabel.set("anchor",
-			   new sunsoft.jws.visual.rt.type.AnchorEnum
-			   ("east"));
-        
-        LoginPassLabel = new LabelShadow();
-        LoginPassLabel.set("name", "LoginPassLabel");
-        gbpanel44.add(LoginPassLabel);
-        LoginPassLabel.set("GBConstraints",
-			   new GBConstraints("x=1;y=4;width=6;height=2"));
-        LoginPassLabel.set("text", "Password:");
-        LoginPassLabel.set("anchor",
-			   new sunsoft.jws.visual.rt.type.AnchorEnum
-			   ("east"));
-        
-        LoginName = new TextFieldShadow();
-        LoginName.set("name", "LoginName");
-        gbpanel44.add(LoginName);
-        LoginName.set("GBConstraints", new GBConstraints
-		      ("x=7;y=2;width=12;height=2;fill=horizontal"));
-        
-        LoginPass = new TextFieldShadow();
-        LoginPass.set("name", "LoginPass");
-        gbpanel44.add(LoginPass);
-        LoginPass.set("GBConstraints", new GBConstraints
-		      ("x=7;y=4;width=12;height=2;fill=horizontal"));
-        LoginPass.set("echoCharacter", new Character('*'));
-        
-        LoginOK = new ButtonShadow();
-        LoginOK.set("name", "LoginOK");
-        gbpanel44.add(LoginOK);
-        LoginOK.set("GBConstraints", new GBConstraints
-		    ("x=3;y=15;width=4;height=2"));
-        LoginOK.set("text", "OK");
-        
-        LoginStartOver = new ButtonShadow();
-        LoginStartOver.set("name", "LoginStartOver");
-        gbpanel44.add(LoginStartOver);
-        LoginStartOver.set("GBConstraints", new GBConstraints
-			   ("x=15;y=15;width=4;height=2"));
-        LoginStartOver.set("text", "Start Over");
-        
-        LoginRealmLabel = new LabelShadow();
-        LoginRealmLabel.set("name", "LoginRealmLabel");
-        gbpanel44.add(LoginRealmLabel);
-        LoginRealmLabel.set("GBConstraints", new GBConstraints
-			    ("x=1;y=8;width=6;height=2"));
-        LoginRealmLabel.set("text", "Realm:");
-        LoginRealmLabel.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("east"));
-        
-        LoginRealm = new TextFieldShadow();
-        LoginRealm.set("name", "LoginRealm");
-        gbpanel44.add(LoginRealm);
-        LoginRealm.set("GBConstraints", new GBConstraints
-		       ("x=7;y=8;width=12;height=2;fill=horizontal"));
-        
-        LoginServerLabel = new LabelShadow();
-        LoginServerLabel.set("name", "LoginServerLabel");
-        gbpanel44.add(LoginServerLabel);
-        LoginServerLabel.set("GBConstraints", new GBConstraints
-			     ("x=1;y=10;width=6;height=2"));
-        LoginServerLabel.set("text", "Admin Server:");
-        LoginServerLabel.set("anchor",
-			     new sunsoft.jws.visual.rt.type.AnchorEnum
-			     ("east"));
-        
-        LoginServer = new TextFieldShadow();
-        LoginServer.set("name", "LoginServer");
-        gbpanel44.add(LoginServer);
-        LoginServer.set("GBConstraints", new GBConstraints
-			("x=7;y=10;width=12;height=2;fill=horizontal"));
-        
-        menubar2 = new MenuBarShadow();
-        menubar2.set("name", "menubar2");
-        loginframe.add(menubar2);
-        menubar2.set("helpMenu", new AMRef("menu1"));
-        menubar2.set("font", convert
-		     ("java.awt.Font",
-		      "name=Dialog;style=plain;size=12"));
-        
-        File2 = new MenuShadow();
-        File2.set("name", "File2");
-        menubar2.add(File2);
-        File2.set("text", "File");
-        File2.set("canTearOff", Boolean.FALSE);
-        
-        Exit2 = new MenuItemShadow();
-        Exit2.set("name", "Exit2");
-        File2.add(Exit2);
-        Exit2.set("text", "Exit");
-        
-        menu1 = new MenuShadow();
-        menu1.set("name", "menu1");
-        menubar2.add(menu1);
-        menu1.set("text", "Help");
-        menu1.set("canTearOff", Boolean.FALSE);
-        
-        browserHelp1 = new MenuItemShadow();
-        browserHelp1.set("name", "browserHelp1");
-        menu1.add(browserHelp1);
-        browserHelp1.set("text", "Help Contents");
-        
-        Context2 = new MenuItemShadow();
-        Context2.set("name", "Context2");
-        menu1.add(Context2);
-        Context2.set("text", "Context-sensitive help");
-        Context2.set("separator", Boolean.TRUE);
-        
-        About2 = new MenuItemShadow();
-        About2.set("name", "About2");
-        menu1.add(About2);
-        About2.set("text", "About");
-        
-        mainframe = new FrameShadow();
-        mainframe.set("name", "mainframe");
-        add(mainframe);
-        mainframe.set("title", "SEAM Administration Tool");
-        mainframe.set("visible", Boolean.FALSE);
-        mainframe.set("layoutSize", new java.awt.Dimension(885, 900));
-        mainframe.set("size", new java.awt.Dimension(726, 783));
-        mainframe.set("layoutLocation", new java.awt.Point(109, 0));
-        
-        gbpanel1 = new GBPanelShadow();
-        gbpanel1.set("name", "gbpanel1");
-        mainframe.add(gbpanel1);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14};
-            gbpanel1.set("rowHeights", _tmp);
-        }
-        gbpanel1.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14};
-            gbpanel1.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel1.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            gbpanel1.set("columnWeights", _tmp);
-        }
-        
-        StatusLine = new LabelShadow();
-        StatusLine.set("name", "StatusLine");
-        gbpanel1.add(StatusLine);
-        StatusLine.set("GBConstraints", new GBConstraints
-		       ("x=1;y=4;ipadx=332"));
-	/* BEGIN JSTYLED */
-	StatusLine.set("text", "                                                                             ");
-	/* END JSTYLED */
-        StatusLine.set("alignment",
-		       new sunsoft.jws.visual.rt.type.AlignmentEnum
-		       ("left"));
-        StatusLine.set("anchor",
-		       new sunsoft.jws.visual.rt.type.AnchorEnum("west"));
-        
-        tabbedfolder1 = new TabbedFolderShadow();
-        tabbedfolder1.set("name", "tabbedfolder1");
-        gbpanel1.add(tabbedfolder1);
-        tabbedfolder1.set("GBConstraints", new GBConstraints
-			  ("x=1;y=2;fill=both"));
-        tabbedfolder1.set("borderRelief",
-			  new sunsoft.jws.visual.rt.type.ReliefEnum
-			  ("groove"));
-        
-        Prlisttab = new GBPanelShadow();
-        Prlisttab.set("name", "Prlisttab");
-        tabbedfolder1.add(Prlisttab);
-        {
-            int _tmp[] = {14, 14, 14};
-            Prlisttab.set("rowHeights", _tmp);
-        }
-        Prlisttab.set("GBConstraints",
-		      new GBConstraints("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14};
-            Prlisttab.set("columnWidths", _tmp);
-        }
-        Prlisttab.set("layoutName", "Principals");
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            Prlisttab.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            Prlisttab.set("columnWeights", _tmp);
-        }
-        
-        cardpanel1 = new CardPanelShadow();
-        cardpanel1.set("name", "cardpanel1");
-        Prlisttab.add(cardpanel1);
-        cardpanel1.set("GBConstraints",
-		       new GBConstraints("x=1;y=1;fill=both"));
-        
-        gbpanel2 = new GBPanelShadow();
-        gbpanel2.set("name", "gbpanel2");
-        cardpanel1.add(gbpanel2);
-        {
-            int _tmp[] = {14};
-            gbpanel2.set("rowHeights", _tmp);
-        }
-        gbpanel2.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel2.set("columnWidths", _tmp);
-        }
-        gbpanel2.set("layoutName", "List");
-        {
-            double _tmp[] = {0.0};
-            gbpanel2.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel2.set("columnWeights", _tmp);
-        }
-        
-        borderpanel1 = new BorderPanelShadow();
-        borderpanel1.set("name", "borderpanel1");
-        gbpanel2.add(borderpanel1);
-        borderpanel1.set("GBConstraints", new GBConstraints
-			 ("x=0;y=0;fill=both"));
-        borderpanel1.set("borderRelief",
-			 new sunsoft.jws.visual.rt.type.ReliefEnum
-			 ("raised"));
-        
-        gbpanel19 = new GBPanelShadow();
-        gbpanel19.set("name", "gbpanel19");
-        borderpanel1.add(gbpanel19);
-        {
-            int _tmp[] = {14};
-            gbpanel19.set("rowHeights", _tmp);
-        }
-        gbpanel19.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel19.set("columnWidths", _tmp);
-        }
-        gbpanel19.set("layoutName", "West");
-        {
-            double _tmp[] = {1.0};
-            gbpanel19.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel19.set("columnWeights", _tmp);
-        }
-        
-        gbpanel3 = new GBPanelShadow();
-        gbpanel3.set("name", "gbpanel3");
-        borderpanel1.add(gbpanel3);
-        {
-            int _tmp[] = {14, 14, 14};
-            gbpanel3.set("rowHeights", _tmp);
-        }
-        gbpanel3.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel3.set("columnWidths", _tmp);
-        }
-        gbpanel3.set("layoutName", "North");
-        {
-            double _tmp[] = {0.0, 1.0, 0.0};
-            gbpanel3.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel3.set("columnWeights", _tmp);
-        }
-        
-        PrListLabel = new LabelShadow();
-        PrListLabel.set("name", "PrListLabel");
-        gbpanel3.add(PrListLabel);
-        PrListLabel.set("GBConstraints", new GBConstraints("x=0;y=1"));
-        PrListLabel.set("text", "Principal List");
-        PrListLabel.set("font", convert
-			("java.awt.Font",
-			 "name=Dialog;style=plain;size=16"));
-        
-        gbpanel4 = new GBPanelShadow();
-        gbpanel4.set("name", "gbpanel4");
-        borderpanel1.add(gbpanel4);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel4.set("rowHeights", _tmp);
-        }
-        gbpanel4.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14};
-            gbpanel4.set("columnWidths", _tmp);
-        }
-        gbpanel4.set("layoutName", "South");
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel4.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0};
-            gbpanel4.set("columnWeights", _tmp);
-        }
-        
-        gbpanel28 = new GBPanelShadow();
-        gbpanel28.set("name", "gbpanel28");
-        gbpanel4.add(gbpanel28);
-        {
-            int _tmp[] = {14};
-            gbpanel28.set("rowHeights", _tmp);
-        }
-        gbpanel28.set("GBConstraints", new GBConstraints
-		      ("x=0;y=1;width=17;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14};
-            gbpanel28.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel28.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel28.set("columnWeights", _tmp);
-        }
-        
-        PrSearchLab = new LabelShadow();
-        PrSearchLab.set("name", "PrSearchLab");
-        gbpanel28.add(PrSearchLab);
-        PrSearchLab.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PrSearchLab.set("text", "Filter:");
-        PrSearchLab.set("anchor",
-			new sunsoft.jws.visual.rt.type.AnchorEnum
-			("east"));
-        
-        PrListPattern = new TextFieldShadow();
-        PrListPattern.set("name", "PrListPattern");
-        gbpanel28.add(PrListPattern);
-        PrListPattern.set("GBConstraints", new GBConstraints
-			  ("x=1;y=0;width=12;fill=horizontal"));
-        
-        PrListClear = new ButtonShadow();
-        PrListClear.set("name", "PrListClear");
-        gbpanel28.add(PrListClear);
-        PrListClear.set("GBConstraints", new GBConstraints("x=13;y=0"));
-        PrListClear.set("text", "Clear Filter");
-        
-        labelbar1 = new LabelBarShadow();
-        labelbar1.set("name", "labelbar1");
-        gbpanel4.add(labelbar1);
-        labelbar1.set("GBConstraints", new GBConstraints
-		      ("x=0;y=3;width=17;fill=horizontal"));
-        
-        gbpanel20 = new GBPanelShadow();
-        gbpanel20.set("name", "gbpanel20");
-        gbpanel4.add(gbpanel20);
-        {
-            int _tmp[] = {14};
-            gbpanel20.set("rowHeights", _tmp);
-        }
-        gbpanel20.set("GBConstraints", new GBConstraints
-		      ("x=0;y=5;width=17;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel20.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel20.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel20.set("columnWeights", _tmp);
-        }
-        
-        PrListModify = new ButtonShadow();
-        PrListModify.set("name", "PrListModify");
-        gbpanel20.add(PrListModify);
-        PrListModify.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PrListModify.set("text", "Modify");
-        
-        PrListAdd = new ButtonShadow();
-        PrListAdd.set("name", "PrListAdd");
-        gbpanel20.add(PrListAdd);
-        PrListAdd.set("GBConstraints", new GBConstraints("x=2;y=0"));
-        PrListAdd.set("text", "Create New");
-        
-        PrListDelete = new ButtonShadow();
-        PrListDelete.set("name", "PrListDelete");
-        gbpanel20.add(PrListDelete);
-        PrListDelete.set("GBConstraints", new GBConstraints("x=4;y=0"));
-        PrListDelete.set("text", "Delete");
-        
-        PrListDuplicate = new ButtonShadow();
-        PrListDuplicate.set("name", "PrListDuplicate");
-        gbpanel20.add(PrListDuplicate);
-        PrListDuplicate.set("GBConstraints", new GBConstraints
-			    ("x=6;y=0"));
-        PrListDuplicate.set("text", "Duplicate");
-        
-        gbpanel21 = new GBPanelShadow();
-        gbpanel21.set("name", "gbpanel21");
-        borderpanel1.add(gbpanel21);
-        {
-            int _tmp[] = {14};
-            gbpanel21.set("rowHeights", _tmp);
-        }
-        gbpanel21.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel21.set("columnWidths", _tmp);
-        }
-        gbpanel21.set("layoutName", "East");
-        {
-            double _tmp[] = {1.0};
-            gbpanel21.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel21.set("columnWeights", _tmp);
-        }
-        
-        gbpanel22 = new GBPanelShadow();
-        gbpanel22.set("name", "gbpanel22");
-        borderpanel1.add(gbpanel22);
-        {
-            int _tmp[] = {14};
-            gbpanel22.set("rowHeights", _tmp);
-        }
-        gbpanel22.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel22.set("columnWidths", _tmp);
-        }
-        gbpanel22.set("layoutName", "Center");
-        {
-            double _tmp[] = {1.0};
-            gbpanel22.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel22.set("columnWeights", _tmp);
-        }
-        
-        Prlist = new TextListShadow();
-        Prlist.set("name", "Prlist");
-        gbpanel22.add(Prlist);
-        Prlist.set("items", convert("[Ljava.lang.String;", ""));
-        Prlist.set("GBConstraints", new GBConstraints
-		   ("x=0;y=0;fill=both"));
-        Prlist.set("allowMultipleSelections", Boolean.TRUE);
-        Prlist.set("visibleRows", new Integer(15));
-        Prlist.set("selectedItems",
-		   convert("[Ljava.lang.String;", ""));
-        
-        gbpanel5 = new GBPanelShadow();
-        gbpanel5.set("name", "gbpanel5");
-        cardpanel1.add(gbpanel5);
-        {
-            int _tmp[] = {14};
-            gbpanel5.set("rowHeights", _tmp);
-        }
-        gbpanel5.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel5.set("columnWidths", _tmp);
-        }
-        gbpanel5.set("layoutName", "Basics");
-        gbpanel5.set("visible", Boolean.FALSE);
-        {
-            double _tmp[] = {0.0};
-            gbpanel5.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel5.set("columnWeights", _tmp);
-        }
-        
-        gbpanel67 = new GBPanelShadow();
-        gbpanel67.set("name", "gbpanel67");
-        gbpanel5.add(gbpanel67);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14};
-            gbpanel67.set("rowHeights", _tmp);
-        }
-        gbpanel67.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14};
-            gbpanel67.set("columnWidths", _tmp);
-        }
-        gbpanel67.set("borderRelief",
-		      new sunsoft.jws.visual.rt.type.ReliefEnum
-		      ("raised"));
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0};
-            gbpanel67.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            gbpanel67.set("columnWeights", _tmp);
-        }
-        
-        PrBasicLabel = new LabelShadow();
-        PrBasicLabel.set("name", "PrBasicLabel");
-        gbpanel67.add(PrBasicLabel);
-        PrBasicLabel.set("GBConstraints", new GBConstraints
-			 ("x=0;y=1;width=3"));
-        PrBasicLabel.set("text", "Principal Basics");
-        PrBasicLabel.set("font", convert
-			 ("java.awt.Font",
-			  "name=Dialog;style=plain;size=16"));
-        
-        LabelBarGeneral = new LabelBarShadow();
-        LabelBarGeneral.set("name", "LabelBarGeneral");
-        gbpanel67.add(LabelBarGeneral);
-        LabelBarGeneral.set("GBConstraints", new GBConstraints
-			    ("x=0;y=2;width=3;fill=horizontal"));
-        LabelBarGeneral.set("text", "General");
-        LabelBarGeneral.set("font",
-			    convert
-			    ("java.awt.Font",
-			     "name=Dialog;style=italic;size=12"));
-        
-        PrNameLabel1 = new LabelShadow();
-        PrNameLabel1.set("name", "PrNameLabel1");
-        gbpanel67.add(PrNameLabel1);
-        PrNameLabel1.set("GBConstraints", new GBConstraints("x=0;y=4"));
-        PrNameLabel1.set("text", "Principal Name:");
-        PrNameLabel1.set("anchor",
-			 new sunsoft.jws.visual.rt.type.AnchorEnum
-			 ("east"));
-        
-        PrName1 = new TextFieldShadow();
-        PrName1.set("name", "PrName1");
-        gbpanel67.add(PrName1);
-        PrName1.set("GBConstraints", new GBConstraints
-		    ("x=1;y=4;fill=horizontal"));
-        PrName1.set("editable", Boolean.FALSE);
-        
-        PrPasswordLabel = new LabelShadow();
-        PrPasswordLabel.set("name", "PrPasswordLabel");
-        gbpanel67.add(PrPasswordLabel);
-        PrPasswordLabel.set("GBConstraints",
-			    new GBConstraints("x=0;y=6"));
-        PrPasswordLabel.set("text", "Password:");
-        PrPasswordLabel.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("east"));
-        
-        PrPassword = new TextFieldShadow();
-        PrPassword.set("name", "PrPassword");
-        gbpanel67.add(PrPassword);
-        PrPassword.set("GBConstraints", new GBConstraints
-		       ("x=1;y=6;fill=horizontal"));
-        PrPassword.set("echoCharacter", new Character('*'));
-        
-        PrBasicRandomPw = new ButtonShadow();
-        PrBasicRandomPw.set("name", "PrBasicRandomPw");
-        gbpanel67.add(PrBasicRandomPw);
-        PrBasicRandomPw.set("GBConstraints", new GBConstraints
-			    ("x=1;y=8"));
-        PrBasicRandomPw.set("text", "Generate Random Password");
-        PrBasicRandomPw.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("west"));
-        
-	EncListLabel = new LabelShadow();
-	EncListLabel.set("name", "EncListLabel");
-        gbpanel67.add(EncListLabel);
-	EncListLabel.set("GBConstraints", new GBConstraints("x=0;y=10"));
-	EncListLabel.set("text", "Encryption Key Types:");
-	EncListLabel.set("anchor",
-			new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-
-        EncList = new TextFieldShadow();
-        EncList.set("name", "EncList");
-        gbpanel67.add(EncList);
-        EncList.set("GBConstraints", new GBConstraints
-		     ("x=1;y=10;fill=horizontal"));
-
-        EncListMoreButton = new ButtonShadow();
-        EncListMoreButton.set("name", "EncListMoreButton");
-        gbpanel67.add(EncListMoreButton);
-        EncListMoreButton.set("GBConstraints", new GBConstraints
-			       ("x=2;y=10"));
-        EncListMoreButton.set("standard", Boolean.FALSE);
-        EncListMoreButton.set("text", "...");
-	
-        PrPolicyLabel = new LabelShadow();
-        PrPolicyLabel.set("name", "PrPolicyLabel");
-        gbpanel67.add(PrPolicyLabel);
-        PrPolicyLabel.set("GBConstraints", new GBConstraints
-			  ("x=0;y=12"));
-        PrPolicyLabel.set("text", "Policy:");
-        PrPolicyLabel.set("anchor",
-			  new sunsoft.jws.visual.rt.type.AnchorEnum
-			  ("east"));
-        
-        PrPolicy = new ChoiceShadow();
-        PrPolicy.set("name", "PrPolicy");
-        gbpanel67.add(PrPolicy);
-        PrPolicy.set("items", convert("[Ljava.lang.String;",
-				      "(no policy)"));
-        PrPolicy.set("GBConstraints", new GBConstraints("x=1;y=12"));
-        PrPolicy.set("anchor", new sunsoft.jws.visual.rt.type.AnchorEnum
-		     ("west"));
-        PrPolicy.set("selectedItem", "(no policy)");
-        
-        PrExpiryLabel = new LabelShadow();
-        PrExpiryLabel.set("name", "PrExpiryLabel");
-        gbpanel67.add(PrExpiryLabel);
-        PrExpiryLabel.set("GBConstraints", new GBConstraints
-			  ("x=0;y=14"));
-        PrExpiryLabel.set("text", "Account Expires:");
-        PrExpiryLabel.set("anchor",
-			  new sunsoft.jws.visual.rt.type.AnchorEnum
-			  ("east"));
-        
-        PrExpiry = new TextFieldShadow();
-        PrExpiry.set("name", "PrExpiry");
-        gbpanel67.add(PrExpiry);
-        PrExpiry.set("GBConstraints", new GBConstraints
-		     ("x=1;y=14;fill=horizontal"));
-        
-        PrExpiryMoreButton = new ButtonShadow();
-        PrExpiryMoreButton.set("name", "PrExpiryMoreButton");
-        gbpanel67.add(PrExpiryMoreButton);
-        PrExpiryMoreButton.set("GBConstraints", new GBConstraints
-			       ("x=2;y=14"));
-        PrExpiryMoreButton.set("standard", Boolean.FALSE);
-        PrExpiryMoreButton.set("text", "...");
-        
-        LabelBarPrincipal = new LabelBarShadow();
-        LabelBarPrincipal.set("name", "LabelBarPrincipal");
-        gbpanel67.add(LabelBarPrincipal);
-        LabelBarPrincipal.set("GBConstraints", new GBConstraints
-			      ("x=0;y=16;width=3;fill=horizontal"));
-        LabelBarPrincipal.set("text", "Admin History");
-        LabelBarPrincipal.set("font", convert
-			      ("java.awt.Font",
-			       "name=Dialog;style=italic;size=12"));
-        
-        PrLastChangedTimeLabel = new LabelShadow();
-        PrLastChangedTimeLabel.set("name", "PrLastChangedTimeLabel");
-        gbpanel67.add(PrLastChangedTimeLabel);
-        PrLastChangedTimeLabel.set("GBConstraints",
-				   new GBConstraints("x=0;y=18"));
-        PrLastChangedTimeLabel.set("text", "Last Principal Change:");
-        PrLastChangedTimeLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrLastChangedTime = new LabelShadow();
-        PrLastChangedTime.set("name", "PrLastChangedTime");
-        gbpanel67.add(PrLastChangedTime);
-        PrLastChangedTime.set("GBConstraints", new GBConstraints
-			      ("x=1;y=18"));
-        PrLastChangedTime.set("text", "");
-        PrLastChangedTime.set("alignment",
-			      new sunsoft.jws.visual.rt.type.AlignmentEnum
-			      ("left"));
-        PrLastChangedTime.set("anchor",
-			      new sunsoft.jws.visual.rt.type.AnchorEnum
-			      ("west"));
-        
-        PrLastChangedByLabel = new LabelShadow();
-        PrLastChangedByLabel.set("name", "PrLastChangedByLabel");
-        gbpanel67.add(PrLastChangedByLabel);
-        PrLastChangedByLabel.set("GBConstraints",
-				 new GBConstraints("x=0;y=20"));
-        PrLastChangedByLabel.set("text", "Last Changed By:");
-        PrLastChangedByLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrLastChangedBy = new LabelShadow();
-        PrLastChangedBy.set("name", "PrLastChangedBy");
-        gbpanel67.add(PrLastChangedBy);
-        PrLastChangedBy.set("GBConstraints", new GBConstraints
-			    ("x=1;y=20"));
-        PrLastChangedBy.set("text", "");
-        PrLastChangedBy.set
-	    ("alignment",
-	     new sunsoft.jws.visual.rt.type.AlignmentEnum("left"));
-        PrLastChangedBy.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("west"));
-        
-        PrCommentsLabel = new LabelShadow();
-        PrCommentsLabel.set("name", "PrCommentsLabel");
-        gbpanel67.add(PrCommentsLabel);
-        PrCommentsLabel.set("GBConstraints", new GBConstraints
-			    ("x=0;y=22"));
-        PrCommentsLabel.set("text", "Comments:");
-        PrCommentsLabel.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("east"));
-        
-        PrComments = new TextFieldShadow();
-        PrComments.set("name", "PrComments");
-        gbpanel67.add(PrComments);
-        PrComments.set("GBConstraints", new GBConstraints
-		       ("x=1;y=22;fill=horizontal"));
-        
-        labelbar20 = new LabelBarShadow();
-        labelbar20.set("name", "labelbar20");
-        gbpanel67.add(labelbar20);
-        labelbar20.set("GBConstraints", new GBConstraints
-		       ("x=0;y=24;width=3;fill=horizontal"));
-        
-        gbpanel11 = new GBPanelShadow();
-        gbpanel11.set("name", "gbpanel11");
-        gbpanel67.add(gbpanel11);
-        {
-            int _tmp[] = {14};
-            gbpanel11.set("rowHeights", _tmp);
-        }
-        gbpanel11.set("GBConstraints", new GBConstraints
-		      ("x=0;y=26;width=3;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel11.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel11.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel11.set("columnWeights", _tmp);
-        }
-        
-        PrBasicSave = new ButtonShadow();
-        PrBasicSave.set("name", "PrBasicSave");
-        gbpanel11.add(PrBasicSave);
-        PrBasicSave.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PrBasicSave.set("text", "Save");
-        
-        PrBasicPrevious = new ButtonShadow();
-        PrBasicPrevious.set("name", "PrBasicPrevious");
-        gbpanel11.add(PrBasicPrevious);
-        PrBasicPrevious.set("GBConstraints", new GBConstraints
-			    ("x=2;y=0"));
-        PrBasicPrevious.set("text", "Previous");
-        
-        PrBasicNext = new ButtonShadow();
-        PrBasicNext.set("name", "PrBasicNext");
-        gbpanel11.add(PrBasicNext);
-        PrBasicNext.set("GBConstraints", new GBConstraints("x=4;y=0"));
-        PrBasicNext.set("text", "Next");
-        
-        PrBasicCancel = new ButtonShadow();
-        PrBasicCancel.set("name", "PrBasicCancel");
-        gbpanel11.add(PrBasicCancel);
-        PrBasicCancel.set("GBConstraints", new GBConstraints
-			  ("x=6;y=0"));
-        PrBasicCancel.set("text", "Cancel");
-        
-        gbpanel6 = new GBPanelShadow();
-        gbpanel6.set("name", "gbpanel6");
-        cardpanel1.add(gbpanel6);
-        {
-            int _tmp[] = {14};
-            gbpanel6.set("rowHeights", _tmp);
-        }
-        gbpanel6.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel6.set("columnWidths", _tmp);
-        }
-        gbpanel6.set("layoutName", "Details");
-        gbpanel6.set("visible", Boolean.FALSE);
-        {
-            double _tmp[] = {0.0};
-            gbpanel6.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel6.set("columnWeights", _tmp);
-        }
-        
-        gbpanel73 = new GBPanelShadow();
-        gbpanel73.set("name", "gbpanel73");
-        gbpanel6.add(gbpanel73);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14};
-            gbpanel73.set("rowHeights", _tmp);
-        }
-        gbpanel73.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 174, 14};
-            gbpanel73.set("columnWidths", _tmp);
-        }
-        gbpanel73.set("borderRelief",
-		      new sunsoft.jws.visual.rt.type.ReliefEnum
-		      ("raised"));
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0};
-            gbpanel73.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            gbpanel73.set("columnWeights", _tmp);
-        }
-        
-        PrDetailLabel = new LabelShadow();
-        PrDetailLabel.set("name", "PrDetailLabel");
-        gbpanel73.add(PrDetailLabel);
-        PrDetailLabel.set("GBConstraints", new GBConstraints
-			  ("x=0;y=1;width=3"));
-        PrDetailLabel.set("text", "Principal Details");
-        PrDetailLabel.set("font", convert
-			  ("java.awt.Font",
-			   "name=Dialog;style=plain;size=16"));
-        
-        PrName2 = new LabelShadow();
-        PrName2.set("name", "PrName2");
-        gbpanel73.add(PrName2);
-        PrName2.set("GBConstraints", new GBConstraints
-		    ("x=0;y=2;width=3;ipadx=188"));
-        PrName2.set("text", "");
-        PrName2.set("font", convert
-		    ("java.awt.Font",
-		     "name=Dialog;style=plain;size=14"));
-        
-        LabelBarPassword = new LabelBarShadow();
-        LabelBarPassword.set("name", "LabelBarPassword");
-        gbpanel73.add(LabelBarPassword);
-        LabelBarPassword.set("GBConstraints", new GBConstraints
-			     ("x=0;y=3;width=3;fill=horizontal"));
-        LabelBarPassword.set("text", "Password");
-        LabelBarPassword.set("font", convert
-			     ("java.awt.Font",
-			      "name=Dialog;style=italic;size=12"));
-        
-        PrLastSuccessLabel = new LabelShadow();
-        PrLastSuccessLabel.set("name", "PrLastSuccessLabel");
-        gbpanel73.add(PrLastSuccessLabel);
-        PrLastSuccessLabel.set("GBConstraints", new GBConstraints
-			       ("x=0;y=5"));
-        PrLastSuccessLabel.set("text", "Last Success:");
-        PrLastSuccessLabel.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("east"));
-        
-        PrLastSuccess = new LabelShadow();
-        PrLastSuccess.set("name", "PrLastSuccess");
-        gbpanel73.add(PrLastSuccess);
-        PrLastSuccess.set("GBConstraints", new GBConstraints
-			  ("x=1;y=5"));
-        PrLastSuccess.set("text", "");
-        PrLastSuccess.set("alignment",
-			  new sunsoft.jws.visual.rt.type.AlignmentEnum
-			  ("left"));
-        PrLastSuccess.set("anchor",
-			  new sunsoft.jws.visual.rt.type.AnchorEnum
-			  ("west"));
-        
-        PrLastFailureLabel = new LabelShadow();
-        PrLastFailureLabel.set("name", "PrLastFailureLabel");
-        gbpanel73.add(PrLastFailureLabel);
-        PrLastFailureLabel.set("GBConstraints", new GBConstraints
-			       ("x=0;y=7"));
-        PrLastFailureLabel.set("text", "Last Failure:");
-        PrLastFailureLabel.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("east"));
-        
-        PrLastFailure = new LabelShadow();
-        PrLastFailure.set("name", "PrLastFailure");
-        gbpanel73.add(PrLastFailure);
-        PrLastFailure.set("GBConstraints", new GBConstraints
-			  ("x=1;y=7"));
-        PrLastFailure.set("text", "");
-        PrLastFailure.set("alignment",
-			  new sunsoft.jws.visual.rt.type.AlignmentEnum
-			  ("left"));
-        PrLastFailure.set("anchor",
-			  new sunsoft.jws.visual.rt.type.AnchorEnum
-			  ("west"));
-        
-        PrFailureCountLabel = new LabelShadow();
-        PrFailureCountLabel.set("name", "PrFailureCountLabel");
-        gbpanel73.add(PrFailureCountLabel);
-        PrFailureCountLabel.set("GBConstraints", new GBConstraints
-				("x=0;y=9"));
-        PrFailureCountLabel.set("text", "Failure Count:");
-        PrFailureCountLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrFailCount = new LabelShadow();
-        PrFailCount.set("name", "PrFailCount");
-        gbpanel73.add(PrFailCount);
-        PrFailCount.set("GBConstraints", new GBConstraints("x=1;y=9"));
-        PrFailCount.set("text", "");
-        PrFailCount.set("alignment",
-			new sunsoft.jws.visual.rt.type.AlignmentEnum
-			("left"));
-        PrFailCount.set("anchor",
-			new sunsoft.jws.visual.rt.type.AnchorEnum
-			("west"));
-        
-        PrPwLastChangedLabel = new LabelShadow();
-        PrPwLastChangedLabel.set("name", "PrPwLastChangedLabel");
-        gbpanel73.add(PrPwLastChangedLabel);
-        PrPwLastChangedLabel.set("GBConstraints", new GBConstraints
-				 ("x=0;y=11"));
-        PrPwLastChangedLabel.set("text", "Last Password Change:");
-        PrPwLastChangedLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrLastPwChange = new LabelShadow();
-        PrLastPwChange.set("name", "PrLastPwChange");
-        gbpanel73.add(PrLastPwChange);
-        PrLastPwChange.set("GBConstraints", new GBConstraints
-			   ("x=1;y=11"));
-        PrLastPwChange.set("text", "");
-        PrLastPwChange.set("alignment",
-			   new sunsoft.jws.visual.rt.type.AlignmentEnum
-			   ("left"));
-        PrLastPwChange.set("anchor",
-			   new sunsoft.jws.visual.rt.type.AnchorEnum
-			   ("west"));
-        
-        PrPwExpiryLabel = new LabelShadow();
-        PrPwExpiryLabel.set("name", "PrPwExpiryLabel");
-        gbpanel73.add(PrPwExpiryLabel);
-        PrPwExpiryLabel.set("GBConstraints", new GBConstraints
-			    ("x=0;y=13"));
-        PrPwExpiryLabel.set("text", "Password Expires:");
-        PrPwExpiryLabel.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("east"));
-        
-        PrPwExpiry = new TextFieldShadow();
-        PrPwExpiry.set("name", "PrPwExpiry");
-        gbpanel73.add(PrPwExpiry);
-        PrPwExpiry.set("GBConstraints", new GBConstraints
-		       ("x=1;y=13;fill=horizontal"));
-        
-        PrPwExpiryMoreButton = new ButtonShadow();
-        PrPwExpiryMoreButton.set("name", "PrPwExpiryMoreButton");
-        gbpanel73.add(PrPwExpiryMoreButton);
-        PrPwExpiryMoreButton.set("GBConstraints", new GBConstraints
-				 ("x=2;y=13"));
-        PrPwExpiryMoreButton.set("standard", Boolean.FALSE);
-        PrPwExpiryMoreButton.set("text", "...");
-        
-        PrKvnoLabel = new LabelShadow();
-        PrKvnoLabel.set("name", "PrKvnoLabel");
-        gbpanel73.add(PrKvnoLabel);
-        PrKvnoLabel.set("GBConstraints", new GBConstraints("x=0;y=15"));
-        PrKvnoLabel.set("text", "Key Version:");
-        PrKvnoLabel.set("anchor",
-			new sunsoft.jws.visual.rt.type.AnchorEnum
-			("east"));
-        
-        PrKvno = new TextFieldShadow();
-        PrKvno.set("name", "PrKvno");
-        gbpanel73.add(PrKvno);
-        PrKvno.set("GBConstraints",
-		   new GBConstraints("x=1;y=15;fill=horizontal"));
-        
-        LabelBarTicket = new LabelBarShadow();
-        LabelBarTicket.set("name", "LabelBarTicket");
-        gbpanel73.add(LabelBarTicket);
-        LabelBarTicket.set("GBConstraints", new GBConstraints
-			   ("x=0;y=17;width=3;fill=horizontal"));
-        LabelBarTicket.set("text", "Ticket Lifetimes");
-        LabelBarTicket.set("font", convert
-			   ("java.awt.Font",
-			    "name=Dialog;style=italic;size=12"));
-        
-        PrMaxTicketLifetimeLabel = new LabelShadow();
-        PrMaxTicketLifetimeLabel.set("name",
-				     "PrMaxTicketLifetimeLabel");
-        gbpanel73.add(PrMaxTicketLifetimeLabel);
-        PrMaxTicketLifetimeLabel.set("GBConstraints", new GBConstraints
-				     ("x=0;y=19"));
-        PrMaxTicketLifetimeLabel.set("text",
-				     "Maximum Lifetime (seconds):");
-        PrMaxTicketLifetimeLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrMaxLifetime = new TextFieldShadow();
-        PrMaxLifetime.set("name", "PrMaxLifetime");
-        gbpanel73.add(PrMaxLifetime);
-        PrMaxLifetime.set("GBConstraints", new GBConstraints
-			  ("x=1;y=19;fill=horizontal"));
-        
-        PrMaxLifetimeMoreButton = new ButtonShadow();
-        PrMaxLifetimeMoreButton.set("name",
-				    "PrMaxLifetimeMoreButton");
-        gbpanel73.add(PrMaxLifetimeMoreButton);
-        PrMaxLifetimeMoreButton.set("GBConstraints",
-				    new GBConstraints("x=2;y=19"));
-        PrMaxLifetimeMoreButton.set("standard", Boolean.FALSE);
-        PrMaxLifetimeMoreButton.set("text", "...");
-        
-        PrMaxTicketRenewalLabel = new LabelShadow();
-        PrMaxTicketRenewalLabel.set("name", "PrMaxTicketRenewalLabel");
-        gbpanel73.add(PrMaxTicketRenewalLabel);
-        PrMaxTicketRenewalLabel.set("GBConstraints", new GBConstraints
-				    ("x=0;y=21"));
-        PrMaxTicketRenewalLabel.set("text",
-				    "Maximum Renewal (seconds):");
-        PrMaxTicketRenewalLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PrMaxRenewal = new TextFieldShadow();
-        PrMaxRenewal.set("name", "PrMaxRenewal");
-        gbpanel73.add(PrMaxRenewal);
-        PrMaxRenewal.set("GBConstraints", new GBConstraints
-			 ("x=1;y=21;fill=horizontal"));
-        
-        PrMaxRenewalMoreButton = new ButtonShadow();
-        PrMaxRenewalMoreButton.set("name", "PrMaxRenewalMoreButton");
-        gbpanel73.add(PrMaxRenewalMoreButton);
-        PrMaxRenewalMoreButton.set("GBConstraints", new GBConstraints
-				   ("x=2;y=21"));
-        PrMaxRenewalMoreButton.set("standard", Boolean.FALSE);
-        PrMaxRenewalMoreButton.set("text", "...");
-        
-        labelbar21 = new LabelBarShadow();
-        labelbar21.set("name", "labelbar21");
-        gbpanel73.add(labelbar21);
-        labelbar21.set("GBConstraints", new GBConstraints
-		       ("x=0;y=23;width=3;fill=horizontal"));
-        
-        gbpanel17 = new GBPanelShadow();
-        gbpanel17.set("name", "gbpanel17");
-        gbpanel73.add(gbpanel17);
-        {
-            int _tmp[] = {14};
-            gbpanel17.set("rowHeights", _tmp);
-        }
-        gbpanel17.set("GBConstraints", new GBConstraints
-		      ("x=0;y=25;width=3;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel17.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel17.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel17.set("columnWeights", _tmp);
-        }
-        
-        PrDetailSave = new ButtonShadow();
-        PrDetailSave.set("name", "PrDetailSave");
-        gbpanel17.add(PrDetailSave);
-        PrDetailSave.set("GBConstraints", new GBConstraints
-			 ("x=0;y=0"));
-        PrDetailSave.set("text", "Save");
-        
-        PrDetailPrevious = new ButtonShadow();
-        PrDetailPrevious.set("name", "PrDetailPrevious");
-        gbpanel17.add(PrDetailPrevious);
-        PrDetailPrevious.set("GBConstraints", new GBConstraints
-			     ("x=2;y=0"));
-        PrDetailPrevious.set("text", "Previous");
-        
-        PrDetailNext = new ButtonShadow();
-        PrDetailNext.set("name", "PrDetailNext");
-        gbpanel17.add(PrDetailNext);
-        PrDetailNext.set("GBConstraints", new GBConstraints("x=4;y=0"));
-        PrDetailNext.set("text", "Next");
-        
-        PrDetailCancel = new ButtonShadow();
-        PrDetailCancel.set("name", "PrDetailCancel");
-        gbpanel17.add(PrDetailCancel);
-        PrDetailCancel.set("GBConstraints", new GBConstraints
-			   ("x=6;y=0"));
-        PrDetailCancel.set("text", "Cancel");
-        
-        gbpanel8 = new GBPanelShadow();
-        gbpanel8.set("name", "gbpanel8");
-        cardpanel1.add(gbpanel8);
-        {
-            int _tmp[] = {14};
-            gbpanel8.set("rowHeights", _tmp);
-        }
-        gbpanel8.set("GBConstraints", new GBConstraints
-		     ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel8.set("columnWidths", _tmp);
-        }
-        gbpanel8.set("layoutName", "Flags");
-        gbpanel8.set("visible", Boolean.FALSE);
-        {
-            double _tmp[] = {0.0};
-            gbpanel8.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel8.set("columnWeights", _tmp);
-        }
-        
-        gbpanel90 = new GBPanelShadow();
-        gbpanel90.set("name", "gbpanel90");
-        gbpanel8.add(gbpanel90);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14};
-            gbpanel90.set("rowHeights", _tmp);
-        }
-        gbpanel90.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14};
-            gbpanel90.set("columnWidths", _tmp);
-        }
-        gbpanel90.set("borderRelief",
-		      new sunsoft.jws.visual.rt.type.ReliefEnum
-		      ("raised"));
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0};
-            gbpanel90.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0};
-            gbpanel90.set("columnWeights", _tmp);
-        }
-        
-        PrFlagLabel = new LabelShadow();
-        PrFlagLabel.set("name", "PrFlagLabel");
-        gbpanel90.add(PrFlagLabel);
-        PrFlagLabel.set("GBConstraints", new GBConstraints
-			("x=0;y=1;width=2"));
-        PrFlagLabel.set("text", "Principal Flags");
-        PrFlagLabel.set("font",
-			convert
-			("java.awt.Font",
-			 "name=Dialog;style=plain;size=16"));
-        
-        PrName3 = new LabelShadow();
-        PrName3.set("name", "PrName3");
-        gbpanel90.add(PrName3);
-        PrName3.set("GBConstraints", new GBConstraints
-		    ("x=0;y=2;width=2;ipadx=146"));
-        PrName3.set("text", "");
-        PrName3.set("font",
-		    convert
-		    ("java.awt.Font",
-		     "name=Dialog;style=plain;size=14"));
-        
-        LabelBarSecurity = new LabelBarShadow();
-        LabelBarSecurity.set("name", "LabelBarSecurity");
-        gbpanel90.add(LabelBarSecurity);
-        LabelBarSecurity.set("GBConstraints", new GBConstraints
-			     ("x=0;y=3;width=2;fill=horizontal"));
-        LabelBarSecurity.set("text", "Security");
-        LabelBarSecurity.set("font",
-			     convert
-			     ("java.awt.Font",
-			      "name=Dialog;style=italic;size=12"));
-        
-        PrLockAcct = new CheckboxShadow();
-        PrLockAcct.set("name", "PrLockAcct");
-        gbpanel90.add(PrLockAcct);
-        PrLockAcct.set("GBConstraints", new GBConstraints("x=0;y=5"));
-        PrLockAcct.set("text", "Disable Account");
-        PrLockAcct.set("state", Boolean.TRUE);
-        PrLockAcct.set("anchor",
-		       new sunsoft.jws.visual.rt.type.AnchorEnum("west"));
-        
-        PrForcePwChange = new CheckboxShadow();
-        PrForcePwChange.set("name", "PrForcePwChange");
-        gbpanel90.add(PrForcePwChange);
-        PrForcePwChange.set("GBConstraints", new GBConstraints
-			    ("x=1;y=5"));
-        PrForcePwChange.set("text", "Force Password change");
-        PrForcePwChange.set("anchor",
-			    new sunsoft.jws.visual.rt.type.AnchorEnum
-			    ("west"));
-        
-        LabelBarTickets = new LabelBarShadow();
-        LabelBarTickets.set("name", "LabelBarTickets");
-        gbpanel90.add(LabelBarTickets);
-        LabelBarTickets.set("GBConstraints", new GBConstraints
-			    ("x=0;y=7;width=2;fill=horizontal"));
-        LabelBarTickets.set("text", "Tickets");
-        LabelBarTickets.set("font",
-			    convert
-			    ("java.awt.Font",
-			     "name=Dialog;style=italic;size=12"));
-        
-        PrAllowPostdated = new CheckboxShadow();
-        PrAllowPostdated.set("name", "PrAllowPostdated");
-        gbpanel90.add(PrAllowPostdated);
-        PrAllowPostdated.set("GBConstraints", new GBConstraints
-			     ("x=0;y=9"));
-        PrAllowPostdated.set("text", "Allow Postdated Tickets");
-        PrAllowPostdated.set("anchor",
-			     new sunsoft.jws.visual.rt.type.AnchorEnum
-			     ("west"));
-        
-        PrAllowForwardable = new CheckboxShadow();
-        PrAllowForwardable.set("name", "PrAllowForwardable");
-        gbpanel90.add(PrAllowForwardable);
-        PrAllowForwardable.set("GBConstraints", new GBConstraints
-			       ("x=1;y=9"));
-        PrAllowForwardable.set("text", "Allow Forwardable Tickets");
-        PrAllowForwardable.set("state", Boolean.TRUE);
-        PrAllowForwardable.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("west"));
-        
-        PrAllowRenewable = new CheckboxShadow();
-        PrAllowRenewable.set("name", "PrAllowRenewable");
-        gbpanel90.add(PrAllowRenewable);
-        PrAllowRenewable.set("GBConstraints", new GBConstraints
-			     ("x=0;y=11"));
-        PrAllowRenewable.set("text", "Allow Renewable Tickets");
-        PrAllowRenewable.set("anchor",
-			     new sunsoft.jws.visual.rt.type.AnchorEnum
-			     ("west"));
-        
-        PrAllowProxiable = new CheckboxShadow();
-        PrAllowProxiable.set("name", "PrAllowProxiable");
-        gbpanel90.add(PrAllowProxiable);
-        PrAllowProxiable.set("GBConstraints", new GBConstraints
-			     ("x=1;y=11"));
-        PrAllowProxiable.set("text", "Allow Proxiable Tickets");
-        PrAllowProxiable.set("state", Boolean.TRUE);
-        PrAllowProxiable.set("anchor",
-			     new sunsoft.jws.visual.rt.type.AnchorEnum
-			     ("west"));
-        
-        PrAllowSvr = new CheckboxShadow();
-        PrAllowSvr.set("name", "PrAllowSvr");
-        gbpanel90.add(PrAllowSvr);
-        PrAllowSvr.set("GBConstraints", new GBConstraints("x=0;y=13"));
-        PrAllowSvr.set("text", "Allow Service Tickets");
-        PrAllowSvr.set("anchor",
-		       new sunsoft.jws.visual.rt.type.AnchorEnum("west"));
-        
-        LabelBarMiscellany = new LabelBarShadow();
-        LabelBarMiscellany.set("name", "LabelBarMiscellany");
-        gbpanel90.add(LabelBarMiscellany);
-        LabelBarMiscellany.set("GBConstraints", new GBConstraints
-			       ("x=0;y=15;width=2;fill=horizontal"));
-        LabelBarMiscellany.set("text", "Miscellaneous");
-        LabelBarMiscellany.set("font",
-			       convert
-			       ("java.awt.Font",
-				"name=Dialog;style=italic;size=12"));
-        
-        PrAllowTGT = new CheckboxShadow();
-        PrAllowTGT.set("name", "PrAllowTGT");
-        gbpanel90.add(PrAllowTGT);
-        PrAllowTGT.set("GBConstraints", new GBConstraints("x=0;y=17"));
-        PrAllowTGT.set("text", "Allow TGT-Based Authentication");
-        PrAllowTGT.set("state", Boolean.TRUE);
-        PrAllowTGT.set("anchor",
-		       new sunsoft.jws.visual.rt.type.AnchorEnum
-		       ("west"));
-        
-        PrAllowDupAuth = new CheckboxShadow();
-        PrAllowDupAuth.set("name", "PrAllowDupAuth");
-        gbpanel90.add(PrAllowDupAuth);
-        PrAllowDupAuth.set("GBConstraints", new GBConstraints
-			   ("x=1;y=17"));
-        PrAllowDupAuth.set("text", "Allow Duplicate Authentication");
-        PrAllowDupAuth.set("state", Boolean.TRUE);
-        PrAllowDupAuth.set("anchor",
-			   new sunsoft.jws.visual.rt.type.AnchorEnum
-			   ("west"));
-        
-        PrRequirePreAuth = new CheckboxShadow();
-        PrRequirePreAuth.set("name", "PrRequirePreAuth");
-        gbpanel90.add(PrRequirePreAuth);
-        PrRequirePreAuth.set("GBConstraints", new GBConstraints
-			     ("x=0;y=19"));
-        PrRequirePreAuth.set("text", "Require Preauthentication");
-        PrRequirePreAuth.set("anchor",
-			     new sunsoft.jws.visual.rt.type.AnchorEnum
-			     ("west"));
-        
-        PrRequireHwPreAuth = new CheckboxShadow();
-        PrRequireHwPreAuth.set("name", "PrRequireHwPreAuth");
-        gbpanel90.add(PrRequireHwPreAuth);
-        PrRequireHwPreAuth.set("GBConstraints", new GBConstraints
-			       ("x=1;y=19"));
-        PrRequireHwPreAuth.set("text",
-			       "Require Hardware Authentication");
-        PrRequireHwPreAuth.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("west"));
-        
-        labelbar22 = new LabelBarShadow();
-        labelbar22.set("name", "labelbar22");
-        gbpanel90.add(labelbar22);
-        labelbar22.set("GBConstraints", new GBConstraints
-		       ("x=0;y=21;width=2;fill=horizontal"));
-        
-        gbpanel18 = new GBPanelShadow();
-        gbpanel18.set("name", "gbpanel18");
-        gbpanel90.add(gbpanel18);
-        {
-            int _tmp[] = {14};
-            gbpanel18.set("rowHeights", _tmp);
-        }
-        gbpanel18.set("GBConstraints", new GBConstraints
-		      ("x=0;y=23;width=2;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel18.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel18.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel18.set("columnWeights", _tmp);
-        }
-        
-        PrFlagsSave = new ButtonShadow();
-        PrFlagsSave.set("name", "PrFlagsSave");
-        gbpanel18.add(PrFlagsSave);
-        PrFlagsSave.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PrFlagsSave.set("text", "Save");
-        
-        PrFlagsPrevious = new ButtonShadow();
-        PrFlagsPrevious.set("name", "PrFlagsPrevious");
-        gbpanel18.add(PrFlagsPrevious);
-        PrFlagsPrevious.set("GBConstraints", new GBConstraints
-			    ("x=2;y=0"));
-        PrFlagsPrevious.set("text", "Previous");
-        
-        PrFlagsNext = new ButtonShadow();
-        PrFlagsNext.set("name", "PrFlagsNext");
-        gbpanel18.add(PrFlagsNext);
-        PrFlagsNext.set("GBConstraints", new GBConstraints
-			("x=4;y=0"));
-        PrFlagsNext.set("text", "Done");
-        
-        PrFlagsCancel = new ButtonShadow();
-        PrFlagsCancel.set("name", "PrFlagsCancel");
-        gbpanel18.add(PrFlagsCancel);
-        PrFlagsCancel.set("GBConstraints", new GBConstraints
-			  ("x=6;y=0"));
-        PrFlagsCancel.set("text", "Cancel");
-        
-        Pollisttab = new GBPanelShadow();
-        Pollisttab.set("name", "Pollisttab");
-        tabbedfolder1.add(Pollisttab);
-        {
-            int _tmp[] = {14, 14, 14};
-            Pollisttab.set("rowHeights", _tmp);
-        }
-        Pollisttab.set("GBConstraints", new GBConstraints
-		       ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14};
-            Pollisttab.set("columnWidths", _tmp);
-        }
-        Pollisttab.set("layoutName", "Policies");
-        Pollisttab.set("visible", Boolean.FALSE);
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            Pollisttab.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0};
-            Pollisttab.set("columnWeights", _tmp);
-        }
-        
-        cardpanel2 = new CardPanelShadow();
-        cardpanel2.set("name", "cardpanel2");
-        Pollisttab.add(cardpanel2);
-        cardpanel2.set("GBConstraints", new GBConstraints
-		       ("x=1;y=1;fill=both"));
-        
-        gbpanel23 = new GBPanelShadow();
-        gbpanel23.set("name", "gbpanel23");
-        cardpanel2.add(gbpanel23);
-        {
-            int _tmp[] = {14};
-            gbpanel23.set("rowHeights", _tmp);
-        }
-        gbpanel23.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel23.set("columnWidths", _tmp);
-        }
-        gbpanel23.set("layoutName", "List");
-        {
-            double _tmp[] = {0.0};
-            gbpanel23.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel23.set("columnWeights", _tmp);
-        }
-        
-        borderpanel7 = new BorderPanelShadow();
-        borderpanel7.set("name", "borderpanel7");
-        gbpanel23.add(borderpanel7);
-        borderpanel7.set("GBConstraints", new GBConstraints
-			 ("x=0;y=0;fill=both"));
-        borderpanel7.set("borderRelief",
-			 new sunsoft.jws.visual.rt.type.ReliefEnum
-			 ("raised"));
-        
-        gbpanel36 = new GBPanelShadow();
-        gbpanel36.set("name", "gbpanel36");
-        borderpanel7.add(gbpanel36);
-        {
-            int _tmp[] = {14};
-            gbpanel36.set("rowHeights", _tmp);
-        }
-        gbpanel36.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel36.set("columnWidths", _tmp);
-        }
-        gbpanel36.set("layoutName", "West");
-        {
-            double _tmp[] = {1.0};
-            gbpanel36.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel36.set("columnWeights", _tmp);
-        }
-        
-        gbpanel37 = new GBPanelShadow();
-        gbpanel37.set("name", "gbpanel37");
-        borderpanel7.add(gbpanel37);
-        {
-            int _tmp[] = {14, 14, 14};
-            gbpanel37.set("rowHeights", _tmp);
-        }
-        gbpanel37.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel37.set("columnWidths", _tmp);
-        }
-        gbpanel37.set("layoutName", "North");
-        {
-            double _tmp[] = {0.0, 1.0, 0.0};
-            gbpanel37.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel37.set("columnWeights", _tmp);
-        }
-        
-        PoListLabel = new LabelShadow();
-        PoListLabel.set("name", "PoListLabel");
-        gbpanel37.add(PoListLabel);
-        PoListLabel.set("GBConstraints", new GBConstraints("x=0;y=1"));
-        PoListLabel.set("text", "Policy List");
-        PoListLabel.set("font",
-			convert("java.awt.Font",
-				"name=Dialog;style=plain;size=16"));
-        
-        gbpanel38 = new GBPanelShadow();
-        gbpanel38.set("name", "gbpanel38");
-        borderpanel7.add(gbpanel38);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel38.set("rowHeights", _tmp);
-        }
-        gbpanel38.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14};
-            gbpanel38.set("columnWidths", _tmp);
-        }
-        gbpanel38.set("layoutName", "South");
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel38.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel38.set("columnWeights", _tmp);
-        }
-        
-        gbpanel40 = new GBPanelShadow();
-        gbpanel40.set("name", "gbpanel40");
-        gbpanel38.add(gbpanel40);
-        {
-            int _tmp[] = {14};
-            gbpanel40.set("rowHeights", _tmp);
-        }
-        gbpanel40.set("GBConstraints", new GBConstraints
-		      ("x=0;y=1;width=16;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14};
-            gbpanel40.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel40.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel40.set("columnWeights", _tmp);
-        }
-        
-        PoListPatternLabel = new LabelShadow();
-        PoListPatternLabel.set("name", "PoListPatternLabel");
-        gbpanel40.add(PoListPatternLabel);
-        PoListPatternLabel.set("GBConstraints", new GBConstraints
-			       ("x=0;y=0"));
-        PoListPatternLabel.set("text", "Filter:");
-        PoListPatternLabel.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("east"));
-        
-        PoListPattern = new TextFieldShadow();
-        PoListPattern.set("name", "PoListPattern");
-        gbpanel40.add(PoListPattern);
-        PoListPattern.set("GBConstraints", new GBConstraints
-			  ("x=1;y=0;width=12;fill=horizontal"));
-        
-        PoListClear = new ButtonShadow();
-        PoListClear.set("name", "PoListClear");
-        gbpanel40.add(PoListClear);
-        PoListClear.set("GBConstraints", new GBConstraints("x=13;y=0"));
-        PoListClear.set("text", "Clear Filter");
-        
-        labelbar3 = new LabelBarShadow();
-        labelbar3.set("name", "labelbar3");
-        gbpanel38.add(labelbar3);
-        labelbar3.set("GBConstraints", new GBConstraints
-		      ("x=0;y=3;width=16;fill=horizontal"));
-        
-        gbpanel9 = new GBPanelShadow();
-        gbpanel9.set("name", "gbpanel9");
-        gbpanel38.add(gbpanel9);
-        {
-            int _tmp[] = {14};
-            gbpanel9.set("rowHeights", _tmp);
-        }
-        gbpanel9.set("GBConstraints", new GBConstraints
-		     ("x=0;y=5;width=16;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel9.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel9.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel9.set("columnWeights", _tmp);
-        }
-        
-        PoListModify = new ButtonShadow();
-        PoListModify.set("name", "PoListModify");
-        gbpanel9.add(PoListModify);
-        PoListModify.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PoListModify.set("text", "Modify");
-        
-        PoListAdd = new ButtonShadow();
-        PoListAdd.set("name", "PoListAdd");
-        gbpanel9.add(PoListAdd);
-        PoListAdd.set("GBConstraints", new GBConstraints("x=2;y=0"));
-        PoListAdd.set("text", "Create New");
-        
-        PoListDelete = new ButtonShadow();
-        PoListDelete.set("name", "PoListDelete");
-        gbpanel9.add(PoListDelete);
-        PoListDelete.set("GBConstraints", new GBConstraints("x=4;y=0"));
-        PoListDelete.set("text", "Delete");
-        
-        PoListDuplicate = new ButtonShadow();
-        PoListDuplicate.set("name", "PoListDuplicate");
-        gbpanel9.add(PoListDuplicate);
-        PoListDuplicate.set("GBConstraints", new GBConstraints
-			    ("x=6;y=0"));
-        PoListDuplicate.set("text", "Duplicate");
-        
-        gbpanel41 = new GBPanelShadow();
-        gbpanel41.set("name", "gbpanel41");
-        borderpanel7.add(gbpanel41);
-        {
-            int _tmp[] = {14};
-            gbpanel41.set("rowHeights", _tmp);
-        }
-        gbpanel41.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel41.set("columnWidths", _tmp);
-        }
-        gbpanel41.set("layoutName", "East");
-        {
-            double _tmp[] = {1.0};
-            gbpanel41.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel41.set("columnWeights", _tmp);
-        }
-        
-        gbpanel42 = new GBPanelShadow();
-        gbpanel42.set("name", "gbpanel42");
-        borderpanel7.add(gbpanel42);
-        {
-            int _tmp[] = {14};
-            gbpanel42.set("rowHeights", _tmp);
-        }
-        gbpanel42.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel42.set("columnWidths", _tmp);
-        }
-        gbpanel42.set("layoutName", "Center");
-        {
-            double _tmp[] = {1.0};
-            gbpanel42.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {1.0};
-            gbpanel42.set("columnWeights", _tmp);
-        }
-        
-        Pollist = new TextListShadow();
-        Pollist.set("name", "Pollist");
-        gbpanel42.add(Pollist);
-        Pollist.set("items", convert("[Ljava.lang.String;", ""));
-        Pollist.set("GBConstraints", new GBConstraints
-		    ("x=0;y=0;fill=both"));
-        Pollist.set("allowMultipleSelections", Boolean.TRUE);
-        Pollist.set("visibleRows", new Integer(15));
-        Pollist.set("selectedItems", convert
-		    ("[Ljava.lang.String;", ""));
-        
-        gbpanel24 = new GBPanelShadow();
-        gbpanel24.set("name", "gbpanel24");
-        cardpanel2.add(gbpanel24);
-        {
-            int _tmp[] = {14};
-            gbpanel24.set("rowHeights", _tmp);
-        }
-        gbpanel24.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14};
-            gbpanel24.set("columnWidths", _tmp);
-        }
-        gbpanel24.set("layoutName", "Details");
-        gbpanel24.set("visible", Boolean.FALSE);
-        {
-            double _tmp[] = {0.0};
-            gbpanel24.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel24.set("columnWeights", _tmp);
-        }
-        
-        gbpanel50 = new GBPanelShadow();
-        gbpanel50.set("name", "gbpanel50");
-        gbpanel24.add(gbpanel50);
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-			  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14};
-            gbpanel50.set("rowHeights", _tmp);
-        }
-        gbpanel50.set("GBConstraints", new GBConstraints
-		      ("x=0;y=0;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14};
-            gbpanel50.set("columnWidths", _tmp);
-        }
-        gbpanel50.set("borderRelief",
-		      new sunsoft.jws.visual.rt.type.ReliefEnum
-		      ("raised"));
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-			     0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel50.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0};
-            gbpanel50.set("columnWeights", _tmp);
-        }
-        
-        PoDetailLabel = new LabelShadow();
-        PoDetailLabel.set("name", "PoDetailLabel");
-        gbpanel50.add(PoDetailLabel);
-        PoDetailLabel.set("GBConstraints", new GBConstraints
-			  ("x=0;y=1;width=4"));
-        PoDetailLabel.set("text", "Policy Details");
-        PoDetailLabel.set("font",
-			  convert("java.awt.Font",
-				  "name=Dialog;style=plain;size=16"));
-        
-        labelbar6 = new LabelBarShadow();
-        labelbar6.set("name", "labelbar6");
-        gbpanel50.add(labelbar6);
-        labelbar6.set("GBConstraints", new GBConstraints
-		      ("x=0;y=2;width=4;fill=horizontal"));
-        
-        PoNameLabel = new LabelShadow();
-        PoNameLabel.set("name", "PoNameLabel");
-        gbpanel50.add(PoNameLabel);
-        PoNameLabel.set("GBConstraints", new GBConstraints("x=0;y=4"));
-        PoNameLabel.set("text", "Policy Name:");
-        PoNameLabel.set("anchor",
-			new sunsoft.jws.visual.rt.type.AnchorEnum
-			("east"));
-        
-        PoName = new TextFieldShadow();
-        PoName.set("name", "PoName");
-        gbpanel50.add(PoName);
-        PoName.set("GBConstraints", new GBConstraints
-		   ("x=2;y=4;fill=horizontal"));
-        PoName.set("editable", Boolean.FALSE);
-        
-        PoMinPwLengthLabel = new LabelShadow();
-        PoMinPwLengthLabel.set("name", "PoMinPwLengthLabel");
-        gbpanel50.add(PoMinPwLengthLabel);
-        PoMinPwLengthLabel.set("GBConstraints", new GBConstraints
-			       ("x=0;y=6"));
-        PoMinPwLengthLabel.set("text", "Minimum Password Length:");
-        PoMinPwLengthLabel.set("anchor",
-			       new sunsoft.jws.visual.rt.type.AnchorEnum
-			       ("east"));
-        
-        PoMinPwLength = new ChoiceShadow();
-        PoMinPwLength.set("name", "PoMinPwLength");
-        gbpanel50.add(PoMinPwLength);
-        PoMinPwLength.set("items", convert("[Ljava.lang.String;",
-					   "12,11,10,9,8,7,6,5,4"));
-        PoMinPwLength.set("GBConstraints", new GBConstraints
-			  ("x=2;y=6"));
-        PoMinPwLength.set("selectedItem", "8");
-        
-        PoMinPwClassLabel = new LabelShadow();
-        PoMinPwClassLabel.set("name", "PoMinPwClassLabel");
-        gbpanel50.add(PoMinPwClassLabel);
-        PoMinPwClassLabel.set("GBConstraints", new GBConstraints
-			      ("x=0;y=8"));
-        PoMinPwClassLabel.set("text", "Minimum Password Classes:");
-        PoMinPwClassLabel.set("anchor",
-			      new sunsoft.jws.visual.rt.type.AnchorEnum
-			      ("east"));
-        
-        PoMinPwClass = new ChoiceShadow();
-        PoMinPwClass.set("name", "PoMinPwClass");
-        gbpanel50.add(PoMinPwClass);
-        PoMinPwClass.set("items",
-			 convert("[Ljava.lang.String;",
-				 "1,2,3,4,5"));
-        PoMinPwClass.set("GBConstraints", new GBConstraints("x=2;y=8"));
-        PoMinPwClass.set("selectedItem", "2");
-        
-        PoSavedPasswordsLabel = new LabelShadow();
-        PoSavedPasswordsLabel.set("name", "PoSavedPasswordsLabel");
-        gbpanel50.add(PoSavedPasswordsLabel);
-        PoSavedPasswordsLabel.set("GBConstraints", new GBConstraints
-				  ("x=0;y=10"));
-        PoSavedPasswordsLabel.set("text", "Saved Password History:");
-        PoSavedPasswordsLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PoSavedPasswords = new ChoiceShadow();
-        PoSavedPasswords.set("name", "PoSavedPasswords");
-        gbpanel50.add(PoSavedPasswords);
-        PoSavedPasswords.set("items",
-			     convert("[Ljava.lang.String;",
-				     "1,2,3,4,5,6,7,8,9,10"));
-        PoSavedPasswords.set("GBConstraints", new GBConstraints
-			     ("x=2;y=10"));
-        PoSavedPasswords.set("selectedItem", "5");
-        
-        PoMinTicketLifetimeLabel = new LabelShadow();
-        PoMinTicketLifetimeLabel.set("name",
-				     "PoMinTicketLifetimeLabel");
-        gbpanel50.add(PoMinTicketLifetimeLabel);
-        PoMinTicketLifetimeLabel.set("GBConstraints", new GBConstraints
-				     ("x=0;y=12"));
-        PoMinTicketLifetimeLabel.set
-	    ("text", "Minimum Ticket Lifetime (seconds):");
-        PoMinTicketLifetimeLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PoMinTicketLifetime = new TextFieldShadow();
-        PoMinTicketLifetime.set("name", "PoMinTicketLifetime");
-        gbpanel50.add(PoMinTicketLifetime);
-        PoMinTicketLifetime.set("GBConstraints", new GBConstraints
-				("x=2;y=12;fill=horizontal"));
-        
-        PoMinTicketLifetimeMoreButton = new ButtonShadow();
-        PoMinTicketLifetimeMoreButton.set
-	    ("name", "PoMinTicketLifetimeMoreButton");
-        gbpanel50.add(PoMinTicketLifetimeMoreButton);
-        PoMinTicketLifetimeMoreButton.set("GBConstraints",
-					  new GBConstraints("x=3;y=12"));
-        PoMinTicketLifetimeMoreButton.set("standard", Boolean.FALSE);
-        PoMinTicketLifetimeMoreButton.set("text", "...");
-        
-        PoMaxTicketLifetimeLabel = new LabelShadow();
-        PoMaxTicketLifetimeLabel.set
-	    ("name", "PoMaxTicketLifetimeLabel");
-        gbpanel50.add(PoMaxTicketLifetimeLabel);
-        PoMaxTicketLifetimeLabel.set("GBConstraints",
-				     new GBConstraints("x=0;y=14"));
-        PoMaxTicketLifetimeLabel.set
-	    ("text", "Maximum Ticket Lifetime (seconds):");
-        PoMaxTicketLifetimeLabel.set
-	    ("anchor",
-	     new sunsoft.jws.visual.rt.type.AnchorEnum("east"));
-        
-        PoMaxTicketLifetime = new TextFieldShadow();
-        PoMaxTicketLifetime.set("name", "PoMaxTicketLifetime");
-        gbpanel50.add(PoMaxTicketLifetime);
-        PoMaxTicketLifetime.set("GBConstraints", new GBConstraints
-				("x=2;y=14;fill=horizontal"));
-        
-        PoMaxTicketLifetimeMoreButton = new ButtonShadow();
-        PoMaxTicketLifetimeMoreButton.set
-	    ("name", "PoMaxTicketLifetimeMoreButton");
-        gbpanel50.add(PoMaxTicketLifetimeMoreButton);
-        PoMaxTicketLifetimeMoreButton.set
-	    ("GBConstraints", new GBConstraints("x=3;y=14"));
-        PoMaxTicketLifetimeMoreButton.set("standard", Boolean.FALSE);
-        PoMaxTicketLifetimeMoreButton.set("text", "...");
-        
-        PoReferencesLabel = new LabelShadow();
-        PoReferencesLabel.set("name", "PoReferencesLabel");
-        gbpanel50.add(PoReferencesLabel);
-        PoReferencesLabel.set("GBConstraints", new GBConstraints
-			      ("x=0;y=16"));
-        PoReferencesLabel.set("text", "Principals Using This Policy:");
-        PoReferencesLabel.set("anchor",
-			      new sunsoft.jws.visual.rt.type.AnchorEnum
-			      ("east"));
-        
-        PoReferences = new LabelShadow();
-        PoReferences.set("name", "PoReferences");
-        gbpanel50.add(PoReferences);
-        PoReferences.set("GBConstraints", new GBConstraints
-			 ("x=2;y=16"));
-        PoReferences.set("text", "");
-        PoReferences.set("anchor",
-			 new sunsoft.jws.visual.rt.type.AnchorEnum
-			 ("west"));
-        
-        labelbar23 = new LabelBarShadow();
-        labelbar23.set("name", "labelbar23");
-        gbpanel50.add(labelbar23);
-        labelbar23.set("GBConstraints", new GBConstraints
-		       ("x=0;y=18;width=4;fill=horizontal"));
-        
-        gbpanel25 = new GBPanelShadow();
-        gbpanel25.set("name", "gbpanel25");
-        gbpanel50.add(gbpanel25);
-        {
-            int _tmp[] = {14};
-            gbpanel25.set("rowHeights", _tmp);
-        }
-        gbpanel25.set("GBConstraints", new GBConstraints
-		      ("x=0;y=20;width=4;fill=both"));
-        {
-            int _tmp[] = {14, 14, 14, 14, 14, 14, 14};
-            gbpanel25.set("columnWidths", _tmp);
-        }
-        {
-            double _tmp[] = {0.0};
-            gbpanel25.set("rowWeights", _tmp);
-        }
-        {
-            double _tmp[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            gbpanel25.set("columnWeights", _tmp);
-        }
-        
-        PoDetailSave = new ButtonShadow();
-        PoDetailSave.set("name", "PoDetailSave");
-        gbpanel25.add(PoDetailSave);
-        PoDetailSave.set("GBConstraints", new GBConstraints("x=0;y=0"));
-        PoDetailSave.set("text", "Save");
-        
-        PoDetailPrevious = new ButtonShadow();
-        PoDetailPrevious.set("name", "PoDetailPrevious");
-        gbpanel25.add(PoDetailPrevious);
-        PoDetailPrevious.set("GBConstraints", new GBConstraints
-			     ("x=2;y=0"));
-        PoDetailPrevious.set("text", "Previous");
-        
-        PoDetailDone = new ButtonShadow();
-        PoDetailDone.set("name", "PoDetailDone");
-        gbpanel25.add(PoDetailDone);
-        PoDetailDone.set("GBConstraints", new GBConstraints("x=4;y=0"));
-        PoDetailDone.set("text", "Done");
-        
-        PoDetailCancel = new ButtonShadow();
-        PoDetailCancel.set("name", "PoDetailCancel");
-        gbpanel25.add(PoDetailCancel);
-        PoDetailCancel.set("GBConstraints", new GBConstraints
-			   ("x=6;y=0"));
-        PoDetailCancel.set("text", "Cancel");
-        
-        menubar1 = new MenuBarShadow();
-        menubar1.set("name", "menubar1");
-        mainframe.add(menubar1);
-        menubar1.set("helpMenu", new AMRef("Help"));
-        menubar1.set("font",
-		     convert("java.awt.Font",
-			     "name=Dialog;style=plain;size=12"));
-        
-        File = new MenuShadow();
-        File.set("name", "File");
-        menubar1.add(File);
-        File.set("text", "File");
-        File.set("canTearOff", Boolean.FALSE);
-        
-        Print = new MenuShadow();
-        Print.set("name", "Print");
-        File.add(Print);
-        Print.set("text", "Print");
-        Print.set("canTearOff", Boolean.FALSE);
-        
-        PrintCurPr = new MenuItemShadow();
-        PrintCurPr.set("name", "PrintCurPr");
-        Print.add(PrintCurPr);
-        PrintCurPr.set("enabled", Boolean.FALSE);
-        PrintCurPr.set("text", "Current Principal");
-        
-        PrintCurPol = new MenuItemShadow();
-        PrintCurPol.set("name", "PrintCurPol");
-        Print.add(PrintCurPol);
-        PrintCurPol.set("enabled", Boolean.FALSE);
-        PrintCurPol.set("text", "Current Policy");
-        
-        PrintPrlist = new MenuItemShadow();
-        PrintPrlist.set("name", "PrintPrlist");
-        Print.add(PrintPrlist);
-        PrintPrlist.set("text", "Principal List");
-        
-        PrintPollist = new MenuItemShadow();
-        PrintPollist.set("name", "PrintPollist");
-        Print.add(PrintPollist);
-        PrintPollist.set("text", "Policy List");
-        
-        logout = new MenuItemShadow();
-        logout.set("name", "logout");
-        File.add(logout);
-        logout.set("text", "Log Out");
-        
-        Exit = new MenuItemShadow();
-        Exit.set("name", "Exit");
-        File.add(Exit);
-        Exit.set("text", "Exit");
-        
-        editMenu = new MenuShadow();
-        editMenu.set("name", "editMenu");
-        menubar1.add(editMenu);
-        editMenu.set("text", "Edit");
-        editMenu.set("canTearOff", Boolean.FALSE);
-        
-        editPreferences = new MenuItemShadow();
-        editPreferences.set("name", "editPreferences");
-        editMenu.add(editPreferences);
-        editPreferences.set("text", "Properties...");
-        
-        menu2 = new MenuShadow();
-        menu2.set("name", "menu2");
-        menubar1.add(menu2);
-        menu2.set("text", "Refresh");
-        menu2.set("canTearOff", Boolean.FALSE);
-        
-        refreshPrincipals = new MenuItemShadow();
-        refreshPrincipals.set("name", "refreshPrincipals");
-        menu2.add(refreshPrincipals);
-        refreshPrincipals.set("text", "Principal List");
-        
-        refreshPolicies = new MenuItemShadow();
-        refreshPolicies.set("name", "refreshPolicies");
-        menu2.add(refreshPolicies);
-        refreshPolicies.set("text", "Policy List");
-        
-        Help = new MenuShadow();
-        Help.set("name", "Help");
-        menubar1.add(Help);
-        Help.set("text", "Help");
-        Help.set("canTearOff", Boolean.FALSE);
-        
-        browserHelp2 = new MenuItemShadow();
-        browserHelp2.set("name", "browserHelp2");
-        Help.add(browserHelp2);
-        browserHelp2.set("text", "Help Contents");
-        
-        Context = new MenuItemShadow();
-        Context.set("name", "Context");
-        Help.add(Context);
-        Context.set("text", "Context-sensitive help");
-        Context.set("separator", Boolean.TRUE);
-        
-        About = new MenuItemShadow();
-        About.set("name", "About");
-        Help.add(About);
-        About.set("text", "About");
-        
-        group.addOperations(new KdcGuiOps());
-    }
-    
-    // methods from lib/visual/gen/methods.java
-    
-    /**
-     * Converts a string to the specified type.
-     */
-    private Object convert(String type, String value) {
-        return (Converter.getConverter(type).convertFromString(value));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-#
-# 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
-#
-#
-# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-
-JAVAFLAGS= -nowarn -O
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-
-TOGETHER= KdcGui KdcGuiMain KdcGuiOps KdcGuiRoot
-TOGETHERJ=$(TOGETHER:%=%.java)
-TOGETHERC=$(TOGETHER:%=classdir/%.class)
-
-OTHER=GuiResource GuiResource_en_US HelpData HelpData_en_US
-OTHERJ=$(OTHER:%=%.java)
-OTHERC=$(OTHER:%=classdir/%.class)
-
-CLASSES=$(TOGETHER) $(OTHER)
-JFILES=$(CLASSES:%=%.java)
-CLFILES=$(CLASSES:%=%.class)
-
-GKADMIN=gkadmin
-JARFILE=gkadmin.jar
-VISLIB=visualrt.jar
-HTML=HelpIndex.html
-MSGBUNDLEDIR=$(ROOT)/usr/lib/krb5/ListResourceBundle
-
-NONEXFILEMODE=444
-
-#
-# Set $KRB5GUILIB
-#
-KRB5GUILIB=	$(ROOT)/usr/lib/krb5
-
-$(KRB5GUILIB)/$(JARFILE)	:=	FILEMODE= 444
-$(KRB5GUILIB)/$(VISLIB)		:=	FILEMODE= 444
-$(KRB5GUILIB)/$(HTML)		:=	FILEMODE= 444
-
-$(KRB5GUILIB)/%:	%
-		$(INS.file)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-CLASSPATH=$(GUIDIR):$(GUIDIR)/classdir:$(GUIDIR)/util:$(GUIDIR)/dataclasses:$(GUIDIR)/dchanger:$(GUIDIR)/native:$(GUIDIR)/visualrt:$(GUIDIR)/visualrt.jar:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-VISRT_CLASSPATH=$(GUIDIR)/visualrt:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-classdir/%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d classdir -classpath $(CLASSPATH) $<
-
-SUBDIRS= util dataclasses dchanger native
-VISDIR= visualrt
-
-def             :=      TARGET= def
-all             :=      TARGET= all
-install         :=      TARGET= install
-install_h       :=      TARGET= install_h
-clean           :=      TARGET= clean
-clobber         :=      TARGET= clobber
-javadoc         :=      TARGET= javadoc
-lint            :=      TARGET= lint
-clean.lint      :=      TARGET= clean.lint
-check           :=      TARGET= check
-_msg            :=      TARGET= _msg
-
-.KEEP_STATE:
-
-all: $(VISDIR) .WAIT KdcGui.java classdir $(SUBDIRS) all_local
-
-all_local: $(TOGETHERC) $(OTHERC) $(KRB5SBIN)/$(GKADMIN) \
-	$(KRB5GUILIB)/$(JARFILE) $(KRB5GUILIB)/$(VISLIB) \
-	$(KRB5GUILIB)/$(HTML)
-
-$(TOGETHERC): $(TOGETHERJ) $(VISLIB)
-	$(JAVAC) $(JAVAFLAGS) -d classdir -classpath $(CLASSPATH) $(TOGETHERJ)
-
-$(VISLIB):
-	cd $(VISDIR); $(MAKE) CLASSPATH=$(VISRT_CLASSPATH) install
-
-$(GKADMIN): $(GKADMIN).template
-	cat $? | sed -e 's/version_number/$(SEAM_VERS)/' > $@
-
-classdir: FRC
-	mkdir -p classdir
-
-$(VISDIR): FRC
-	cd $@; $(MAKE) CLASSPATH=$(VISRT_CLASSPATH) $(TARGET)
-
-$(SUBDIRS): FRC
-	cd $@; $(MAKE) CLASSPATH=$(CLASSPATH) $(TARGET)
-
-GuiResource_en_US.java: GuiResource.java
-	cat $? | sed -e 's/GuiResource/GuiResource_en_US/' > $@
-
-HelpData_en_US.java: HelpData.java
-	cat $? | sed -e 's/HelpData/HelpData_en_US/' > $@
-
-$(JARFILE): classdir/*.class
-	-$(RM) $(JARFILE)
-	(cd classdir; $(JAR) cf ../$(JARFILE) *.class)
-
-KdcGui.java: KdcGuiMain.java KdcGuiOps.java KdcGuiRoot.java
-
-install: $(VISDIR) .WAIT classdir $(SUBDIRS) install_local
-
-lint:	native
-
-ROOTSBINPROGS=	$(KRB5SBIN)/$(GKADMIN)
-LIBPROGS=	$(JARFILE) $(VISLIB) $(GIF) $(HTML)
-ROOTLIBPROGS=	$(LIBPROGS:%=$(KRB5LIB)/%)
-$(ROOTLIBPROGS):=	FILEMODE = 444
-
-install_local: all_local
-
-_msg: $(MSGBUNDLEDIR) $(MSGBUNDLEDIR)/GuiResource.java $(MSGBUNDLEDIR)/HelpData.java
-
-$(MSGBUNDLEDIR)/GuiResource.java $(MSGBUNDLEDIR)/HelpData.java:= FILEMODE = 444
-
-$(MSGBUNDLEDIR)/%: %
-	$(INS.file)
-
-$(MSGBUNDLEDIR):
-	$(INS.dir)
-
-javadoc:
-	$(RM) -rf javadoc
-	mkdir javadoc
-	$(JAVADOC) -classpath $(CLASSPATH) -d javadoc *.java \
-	dataclasses/*.java dchanger/*.java native/*.java util/*.java
-	cd visualrt ; $(MAKE) CLASSPATH=$(VISRT_CLASSPATH) $@
-
-test: all
-	/bin/env \
-	LD_LIBRARY_PATH=/usr/java/lib:/usr/dt/lib:$(SRC)/cmd/kadmin/gui/native \
-	/usr/bin/java -classpath \
-	.:classdir:native:$(VISLIB):)$(ROOT)/usr/java/lib/rt.jar \
-	KdcGuiMain &
-
-echo:
-	@echo $(CLASSES)
-	@echo $(JFILES)
-	@echo $(CLFILES)
-	@echo $(SUFFIXES)
-
-clobber: $(VISDIR) $(SUBDIRS) clobber_local
-	-$(RM) visualrt.jar
-	-$(RM) -rf javadoc
-
-clean: $(VISDIR) $(SUBDIRS) clean_local
-
-clobber_local: clean_local
-
-clean_local:
-	$(RM) classdir/*.class $(JARFILE) $(GKADMIN) GuiResource_en_US.java HelpData_en_US.java
-
-FRC:
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Defaults.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,838 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.awt.*;
-import java.awt.event.*;
-import java.util.*;
-import java.text.*;
-import java.io.*;
-
-/**
- * Defaults class stores all defaults that are recorded locally on the
- * client side.  It is also resonsible for showing the DefaultsFrame
- * which allows the user to see and change these values.
- */
-public class Defaults {
-  
-  // These gui components are the actual components that go on the editing frame
-  // that  allows the user to change the defaults. The reason they are public is
-  // that they  need to be accessible to KdcGui so that it can set up the
-  // listeners for them in  setupDefaultsNormalListeners() and
-  // setupDefaultsHelpListeners().
-    public Checkbox disableAccount;
-    public Checkbox forcePasswordChange;
-    public Checkbox allowPostdatedTix;
-    public Checkbox allowForwardableTix;
-    public Checkbox allowRenewableTix;
-    public Checkbox allowProxiableTix;
-    public Checkbox allowServiceTix;
-    public Checkbox allowTGTAuth;
-    public Checkbox allowDupAuth;
-    public Checkbox requirePreauth;
-    public Checkbox requireHWAuth;
-
-    public Checkbox serverSide;
-    public TextField maxTicketLife;
-    public TextField maxTicketRenewableLife;
-    public TextField accountExpiryDate;
-
-    public Label maxTicketLifeLabel;
-    public Label maxTicketRenewableLifeLabel;
-    public Label accountExpiryDateLabel;
-
-    public Checkbox showLists;
-    public Checkbox staticLists;
-    public TextField cacheTime;
-
-    public Label cacheTimeLabel;
-
-    public Button lifeMoreButton;
-    public Button renewalMoreButton;
-    public Button dateMoreButton;
-    public Button cacheMoreButton;
-
-    public Button saveButton;
-    public Button applyButton;
-    public Button cancelButton;
-
-    public MenuItem csHelp;
-  
-  // These data items correspond to fields in struct struct
-  // _kadm5_config_params
-    private Flags flags;
-
-    private boolean serverSideValue;
-    private int maxTicketLifeValue;
-    private int maxTicketRenewableLifeValue;
-    private Date accountExpiryDateValue;
-
-    private boolean showListsValue;
-    private boolean staticListsValue;
-    private long cacheTimeValue;
-
-    private String defaultsFile;
-    private Color background;
-
-    private EditingFrame frame = null;
-
-    private boolean helpMode = false;
-
-  // For I18N
-    private static DateFormat df; 
-    private static NumberFormat nf; 
-    private static ResourceBundle rb; 
-  // no help data since help is handled by KdcGui class
-
-    private static String neverString;
-
-  // For debugging the window arrangement
-
-    Color SEPERATOR_COLOR = Color.blue;
-    Color CHECKBOX_COLOR = Color.orange;
-    Color LABEL_COLOR = Color.pink;
-    Color PANEL_COLOR1 = Color.lightGray;
-    Color PANEL_COLOR2 = Color.darkGray;
-  
-    /**
-     * Constructor for Defaults.
-     * @param defaultsFile the file from which to read the defaults.
-     */
-    Defaults(String defaultsFile, Color background) {
-        this.defaultsFile = defaultsFile;
-        this.background = background;
-        flags = new Flags();
-        serverSideValue = true;
-        maxTicketLifeValue = 144000;
-        maxTicketRenewableLifeValue = 144000;
-        // set expiry to now + one year
-        Calendar c = Calendar.getInstance();
-        c.roll(Calendar.YEAR, true);
-        accountExpiryDateValue = c.getTime();
-        showListsValue = true;
-        staticListsValue = false;
-        cacheTimeValue = 300;
-        readFromFile();
-    }
-
-    /**
-     * Constructor for Defaults.
-     * @param old an existing defaults object to clone
-     */
-    Defaults(Defaults old) {
-        defaultsFile = old.defaultsFile;
-        background = old.background;
-        flags = new Flags(old.flags.getBits());
-    
-        maxTicketLifeValue = old.maxTicketLifeValue;
-        maxTicketRenewableLifeValue = old.maxTicketRenewableLifeValue;
-        accountExpiryDateValue = old.accountExpiryDateValue;
-        showListsValue = old.showListsValue;
-        staticListsValue = old.staticListsValue;
-        cacheTimeValue = old.cacheTimeValue;
-    }
-
-    public void restoreValues(Defaults old) {
-        flags = new Flags(old.flags.getBits());
-        maxTicketLifeValue = old.maxTicketLifeValue;
-        maxTicketRenewableLifeValue = old.maxTicketRenewableLifeValue;
-        accountExpiryDateValue = old.accountExpiryDateValue;
-        showListsValue = old.showListsValue;
-        staticListsValue = old.staticListsValue;
-        cacheTimeValue = old.cacheTimeValue;
-        updateGuiComponents();
-    }
-
-    /**
-     * Returns a gui Frame with the defaults on it for editing.
-     */
-    public Frame getEditingFrame() {
-        if (frame == null) {
-       	    frame = new EditingFrame();
-	    updateGuiComponents();
-       	    frame.setSize(500, 680);
-	    frame.setResizable(true);
-	    frame.setBackground(background);
-        }
-        return frame;
-    }
-
-    /**
-     * Reread the defaults file in case it has changed, and refresh view
-     */
-    public void refreshDefaults() {
-        readFromFile();
-        updateGuiComponents();
-    }
-
-
-    /**
-     * Update the duration and date text fields from gui.
-     * Check to see if any one of them had a parse error.
-     * @return true if all is ok, false if an error occurs
-     */
-    // Quits as soon as the first error is detected. The method that
-    // detects the error also shows a dialog box with a message.
-    public final boolean updateFromGui() {
-        return (setMaxTicketLife() && setMaxTicketRenewableLife() 
-	      && setAccountExpiryDate()	&& setCacheTime());
-    }
-  
-    boolean setServerSide() {
-        serverSideValue = serverSide.getState();
-        enableTicketLifeFields(serverSideValue);
-        return true;
-    }
-
-    private void enableTicketLifeFields(boolean fromServer) {
-        maxTicketLifeLabel.setEnabled(!fromServer);
-        maxTicketLife.setEnabled(!fromServer);
-        maxTicketRenewableLifeLabel.setEnabled(!fromServer);
-        maxTicketRenewableLife.setEnabled(!fromServer);
-        lifeMoreButton.setEnabled(!fromServer);
-        renewalMoreButton.setEnabled(!fromServer);
-    }
-    
-    boolean setMaxTicketLife() {
-        try {
-            maxTicketLifeValue = 
-                nf.parse(maxTicketLife.getText().trim()).intValue();
-        } catch (ParseException e) {
-            KdcGui.showDataFormatError(maxTicketLife, KdcGui.DURATION_DATA);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets the maxTicketRenewable field value from the corresponding text 
-     * field.
-     */
-    boolean setMaxTicketRenewableLife() {
-        try {
-            maxTicketRenewableLifeValue = 
-                nf.parse(maxTicketRenewableLife.getText().trim()).intValue();
-        } catch (ParseException e) {
-            KdcGui.showDataFormatError(maxTicketRenewableLife, 
-                                       KdcGui.DURATION_DATA);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets the accountExpiryDate field value from the corresponding text field.
-     */
-    boolean setAccountExpiryDate() {
-        String value = accountExpiryDate.getText().trim();
-        if (value.equalsIgnoreCase(neverString))
-            accountExpiryDateValue = new Date(0);
-        else {    
-            try {
-        	accountExpiryDateValue = df.parse(value);
-            } catch (ParseException e) {
-        	KdcGui.showDataFormatError(accountExpiryDate, KdcGui.DATE_DATA);
-        	return false;
-            } catch (NullPointerException e) {
-        	// gets thrown when parse string begins with text
-        	// probable JDK bug
-        	KdcGui.showDataFormatError(accountExpiryDate, KdcGui.DATE_DATA);
-        	return false;
-            } catch (IndexOutOfBoundsException e) {
-        	// gets thrown when parse string contains only one number
-        	// probable JDK bug
-        	KdcGui.showDataFormatError(accountExpiryDate, KdcGui.DATE_DATA);
-        	return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Sets the cacheTime field value from the corresponding text field.
-     */
-    boolean setCacheTime() {
-        try {
-            cacheTimeValue = nf.parse(cacheTime.getText().trim()).intValue();
-        } catch (ParseException e) {
-            KdcGui.showDataFormatError(cacheTime, KdcGui.DURATION_DATA);
-            return false;
-        }
-        return true;
-    }
-
-    boolean setShowLists() {
-        showListsValue = showLists.getState();
-        return true;
-    }
-
-    boolean setStaticLists() {
-        staticListsValue = staticLists.getState();
-        enableCacheTimeFields(staticListsValue);
-        return true;
-    }
-
-    private void enableCacheTimeFields(boolean staticLists) {
-        cacheTime.setEnabled(!staticLists);
-        cacheTimeLabel.setEnabled(!staticLists);
-        cacheMoreButton.setEnabled(!staticLists);
-    }
-
-    public boolean getServerSide() {
-        return serverSideValue;
-    }
-
-    public Integer getMaxTicketLife() {
-        return new Integer(maxTicketLifeValue);
-    }
-
-    public Integer getMaxTicketRenewableLife() {
-        return new Integer(maxTicketRenewableLifeValue);
-    }
-
-    public Date getAccountExpiryDate() {
-        return new Date(accountExpiryDateValue.getTime());
-    }
-
-    public boolean getShowLists() {
-        return showListsValue;
-    }
-
-    public boolean getStaticLists() {
-        return staticListsValue;
-    }
-
-    public boolean getCacheLists() {
-        return staticListsValue;
-    }
-
-    public long getCacheTime() {
-        return cacheTimeValue;
-    }
-
-    public Flags getFlags() {
-        return flags;
-    }
-   
-    /**
-     * Toggles the value of the  bit specified.
-     */
-    public void toggleFlag(int bitmask) {
-        flags.toggleFlags(bitmask);
-    }
-
-    public void close(boolean save) {
-        if (frame != null)
-            frame.close(save);
-    }
-      
-  
-    /**
-     * Saves the fields onto a file.
-     */    
-    private void saveToFile() {
-        try {
-            PrintWriter outFile = null;
-            outFile = new PrintWriter(
-                      new BufferedWriter(new FileWriter(defaultsFile)));
-            outFile.println(flags.getBits());
-            outFile.println(maxTicketRenewableLifeValue);
-            outFile.println(df.format(accountExpiryDateValue));
-            outFile.println((new Boolean(showListsValue)).toString());
-            outFile.println((new Boolean(staticListsValue)).toString());
-            outFile.println((new Long(cacheTimeValue)).toString());
-            outFile.println(serverSideValue);
-            outFile.println(maxTicketLifeValue);
-            outFile.flush();
-            outFile.close();
-        } catch (IOException e) { /* xxx: warn user */ }
-    }
-
-    /**
-     * Reads the fields from a file.
-     */
-    private void readFromFile() {
-        try {
-            BufferedReader inFile = null;
-            inFile = new BufferedReader(new FileReader(defaultsFile));
-            flags = new Flags(new Integer(inFile.readLine()).intValue());
-            maxTicketRenewableLifeValue = 
-                new Integer(inFile.readLine()).intValue();
-            accountExpiryDateValue = df.parse(inFile.readLine());
-            String s;
-            s = inFile.readLine();
-            if (s == null)
-        	showListsValue = true;
-            else
-        	showListsValue = (new Boolean(s)).booleanValue();
-            s = inFile.readLine();
-            if (s == null)
-        	staticListsValue = false;
-            else
-        	staticListsValue = (new Boolean(s)).booleanValue();
-            s = inFile.readLine();
-            if (s == null)
-        	cacheTimeValue = 300;
-            else try {
-        	cacheTimeValue = nf.parse(s).longValue();
-            } catch (ParseException e) {
-        	cacheTimeValue = 300;
-            }
-            serverSideValue = new Boolean(inFile.readLine()).booleanValue();
-            maxTicketLifeValue = new Integer(inFile.readLine()).intValue();
-        } catch (FileNotFoundException e) { 
-            /* default values. new file will be created automatically. */}
-        catch (IOException e) { /* will create new one */}
-        catch (ParseException e) { /* leave default values in */}
-        catch (NumberFormatException e) { /* leave default values in */}
-        catch (NullPointerException e) { /* leave default values in */}
-        catch (StringIndexOutOfBoundsException e) { 
-            /* leave default values in */}
-    }
-
-    /**
-     * Sets the value of the gui components from the instance variables
-     * that get filled from the defaultsFile.
-     */
-    public void updateGuiComponents() {
-        if (frame == null) 
-            getEditingFrame();
-        else {
-            updateFlags();
-            serverSide.setState(serverSideValue);
-            enableTicketLifeFields(serverSideValue);
-            maxTicketLife.setText(nf.format(maxTicketLifeValue));
-            maxTicketRenewableLife.setText(
-                nf.format(maxTicketRenewableLifeValue));
-            String text = (accountExpiryDateValue.getTime() == 0 ? neverString
-		     : df.format(accountExpiryDateValue));
-            accountExpiryDate.setText(text);
-            showLists.setState(showListsValue);
-            staticLists.setState(staticListsValue);
-            enableCacheTimeFields(staticListsValue);
-            cacheTime.setText((new Long(cacheTimeValue)).toString());
-        }
-    }
-
-    private void updateFlags() {
-        disableAccount.setState(flags.getFlag(Flags.DISALLOW_ALL_TIX));
-        forcePasswordChange.setState(flags.getFlag(Flags.REQUIRES_PWCHANGE));
-        allowPostdatedTix.setState(!flags.getFlag(Flags.DISALLOW_POSTDATED));
-        allowForwardableTix.setState(!flags.getFlag(
-            Flags.DISALLOW_FORWARDABLE));
-        allowRenewableTix.setState(!flags.getFlag(Flags.DISALLOW_RENEWABLE));
-        allowProxiableTix.setState(!flags.getFlag(Flags.DISALLOW_PROXIABLE));
-        allowServiceTix.setState(!flags.getFlag(Flags.DISALLOW_SVR));
-        allowTGTAuth.setState(!flags.getFlag(Flags.DISALLOW_TGT_BASED));
-        allowDupAuth.setState(!flags.getFlag(Flags.DISALLOW_DUP_SKEY));
-        requirePreauth.setState(flags.getFlag(Flags.REQUIRE_PRE_AUTH));
-        requireHWAuth.setState(flags.getFlag(Flags.REQUIRE_HW_AUTH)); 
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-            String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    /*
-     **********************************************
-     *         I N N E R   C L A S S E S
-     **********************************************
-     */
-
-    private class EditingFrame extends Frame {
-        public EditingFrame() {
-            super(getString("Properties"));
-            setLayout(new GridBagLayout());
-            GridBagConstraints gbc = new GridBagConstraints();
-            gbc.weightx = gbc.weighty = 1;
-            gbc.fill = GridBagConstraints.BOTH;
-            gbc.gridwidth = GridBagConstraints.REMAINDER;
-            Label l;
-            l = new Label(getString("Defaults for New Principals"), 
-                                    Label.CENTER);
-            l.setFont(new Font("Dialog", Font.PLAIN, 16));
-            //            l.setBackground(LABEL_COLOR);
-            gbc.insets = new Insets(10, 10, 0, 10);
-            add(l, gbc);
-            addFlags();
-            gbc.insets = new Insets(10, 10, 10, 10);
-            add(new LineSeparator(), gbc);
-            addTextFields(); 
-            add(new LineSeparator(), gbc);
-          
-            gbc.insets = new Insets(0, 10, 10, 10);
-            l = new Label(getString("List Controls"), Label.CENTER);
-            l.setFont(new Font("Dialog", Font.PLAIN, 16));
-      
-            add(l, gbc);
-            gbc.insets = new Insets(0, 10, 10, 10); 
-            add(new LineSeparator(), gbc);
-            addListFields();
-            addButtons();
-            addWindowListener(new WindowCloseListener());
-            addHelpMenu();
-        }
-
-        /**
-         * Helper method for constructor to add checkboxes and labels for
-         * flags.
-         */
-        private void addFlags() {
-            Panel p = new Panel();
-            GridBagConstraints gbc = new GridBagConstraints();
-            gbc.weightx = gbc.weighty = 1;
-            gbc.fill = GridBagConstraints.BOTH;
-            gbc.gridwidth = GridBagConstraints.REMAINDER;
-            gbc.insets = new Insets(0, 10, 0, 10);
-            p.setLayout(new GridBagLayout());
-            add(p, gbc);
-
-            disableAccount = new Checkbox();
-            forcePasswordChange = new Checkbox();
-            allowPostdatedTix = new Checkbox();
-            allowForwardableTix = new Checkbox();
-            allowRenewableTix = new Checkbox();
-            allowProxiableTix = new Checkbox();
-            allowServiceTix = new Checkbox();
-            allowTGTAuth = new Checkbox();
-            allowDupAuth = new Checkbox();
-            requirePreauth = new Checkbox();
-            requireHWAuth = new Checkbox();
-
-            addSeperatorPanel(getString("Security"), p);
-
-            gbc = new GridBagConstraints();
-            gbc.anchor  = GridBagConstraints.WEST;
-
-            addFlag(disableAccount,
-    		    Flags.DISALLOW_ALL_TIX, p, gbc, false);
-            addFlag(forcePasswordChange,
-		    Flags.REQUIRES_PWCHANGE,  p, gbc, true); 
-
-            addSeperatorPanel(getString("Ticket"), p);
-            addFlag(allowPostdatedTix,
-		    Flags.DISALLOW_POSTDATED,  p, gbc, false);
-            addFlag(allowForwardableTix,
-		    Flags.DISALLOW_FORWARDABLE,  p, gbc, true);
-            addFlag(allowRenewableTix,
-		    Flags.DISALLOW_RENEWABLE,  p, gbc, false);
-            addFlag(allowProxiableTix,
-		    Flags.DISALLOW_PROXIABLE,  p, gbc, true);
-            addFlag(allowServiceTix,
-      		    Flags.DISALLOW_SVR,  p, gbc, true);
-
-            addSeperatorPanel(getString("Miscellaneous"), p);
-            addFlag(allowTGTAuth,
-		    Flags.DISALLOW_TGT_BASED,  p, gbc, false);
-            addFlag(allowDupAuth,
-		    Flags.DISALLOW_DUP_SKEY,  p, gbc, true);
-            addFlag(requirePreauth,
-		    Flags.REQUIRE_PRE_AUTH,  p, gbc, false);
-            addFlag(requireHWAuth,
-		    Flags.REQUIRE_HW_AUTH,  p, gbc, true);
-        }
-
-    /**
-     * Helper method for addFlags. It adds a line seperator with text
-     * inside it.
-     * @param text the text to put in the line seperator
-     * @p the panel to which this line seperator must be added
-     */
-    private void addSeperatorPanel(String text, Panel p) {
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.insets = new Insets(7, 0, 7, 0);
-      
-        Panel subP = new Panel();
-        //            subP.setBackground(SEPERATOR_COLOR);
-        subP.setLayout(new GridBagLayout());
-        p.add(subP, gbc);
-
-        gbc = new GridBagConstraints();
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.weightx = gbc.weighty = .02;
-        subP.add(new LineSeparator(), gbc);
-
-        gbc.weightx = gbc.weighty = .001;
-        gbc.fill = GridBagConstraints.NONE;
-        gbc.anchor = GridBagConstraints.EAST;
-        Label l = new Label(text);
-        l.setFont(new Font("Dialog", Font.ITALIC, 12));
-        subP.add(l, gbc);
-
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.weightx = gbc.weighty = 1;
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.anchor = GridBagConstraints.WEST;
-        subP.add(new LineSeparator(), gbc);
-    }
-
-    /**
-     * Helper method for addFlags. It adds the label and the checkbox
-     * corresponding to the flag specified by the single bit that is set
-     * in mask.
-     * @param cb the Checkbox which has to be added corresponding to
-     *     this flag
-     * @param mask the flag
-     * @param p the panel to add this to
-     */
-    private void addFlag(Checkbox cb, int mask, Panel p, 
-			    GridBagConstraints gbc, boolean eol) {
-      //      cb.setBackground(CHECKBOX_COLOR);
-        cb.setState(flags.getFlag(mask));
-        cb.setLabel(Flags.getLabel(mask));
-        if (eol)
-            gbc.gridwidth = GridBagConstraints.REMAINDER;
-        else
-            gbc.gridwidth = 1;
-        p.add(cb, gbc);
-    }
-
-    /**
-     * Helper method for constructor - adds Max ticket time, max renewal and def
-     * account expiry.
-     */
-    private void addTextFields() {
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-
-        Panel p = new Panel();
-        //      p.setBackground(PANEL_COLOR1);
-        p.setLayout(new GridBagLayout());
-        gbc.fill = GridBagConstraints.VERTICAL;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.anchor = GridBagConstraints.WEST;
-        gbc.insets = new Insets(0, 10, 0, 10);
-        add(p, gbc);
-
-        gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-
-        gbc.anchor = GridBagConstraints.EAST;
-        gbc.weightx = 0;
-        gbc.gridx = 0;
-        gbc.gridy = 0;
-        accountExpiryDateLabel = new Label(getString("Account Expiry:"));
-        //      accountExpiryDateLabel.setBackground(LABEL_COLOR);
-        p.add(accountExpiryDateLabel, gbc);
-        gbc.gridy = 2;
-        maxTicketLifeLabel =
-		new Label(getString("Maximum Ticket Lifetime (seconds):"));
-        //      maxTicketLifeLabel.setBackground(LABEL_COLOR);
-        p.add(maxTicketLifeLabel, gbc);
-        gbc.gridy = 3;
-        maxTicketRenewableLifeLabel =
-		new Label(getString("Maximum Ticket Renewal (seconds):"));
-        //      maxTicketRenewableLifeLabel.setBackground(LABEL_COLOR);
-        p.add(maxTicketRenewableLifeLabel, gbc);
-
-        gbc.gridx = 1;
-        gbc.gridy = 0;
-        gbc.fill = GridBagConstraints.NONE;
-        gbc.anchor = GridBagConstraints.WEST;
-        accountExpiryDate = new TextField("1-Jan-70 00:00:00 PM");
-        accountExpiryDate.setColumns(22);
-        p.add(accountExpiryDate, gbc);
-        gbc.gridy = 2;
-        maxTicketLife = new TextField("144000");
-        maxTicketLife.setColumns(22);
-        p.add(maxTicketLife, gbc);
-        gbc.gridy = 3;
-        maxTicketRenewableLife = new TextField("144000");
-        maxTicketRenewableLife.setColumns(22);
-        p.add(maxTicketRenewableLife, gbc);
-
-        gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 0;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.anchor = GridBagConstraints.WEST;
-        gbc.gridx = 2;
-        gbc.gridy = 0;
-        dateMoreButton = new Button("...");
-        p.add(dateMoreButton, gbc);
-        gbc.gridy = 2;
-        lifeMoreButton = new Button("...");
-        p.add(lifeMoreButton, gbc);
-        gbc.gridy = 3;
-        renewalMoreButton = new Button("...");
-        p.add(renewalMoreButton, gbc);
-
-        serverSide = new Checkbox();
-        //      serverSide.setBackground(CHECKBOX_COLOR);
-        serverSide.setLabel(getString(
-            "Let the KDC control the ticket lifetime values"));
-
-        gbc = new GridBagConstraints();
-        gbc.anchor = GridBagConstraints.WEST;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.gridx = 0;
-        gbc.gridy = 1;
-        p.add(serverSide, gbc);
-
-    }
-
-    private void addListFields() {
-        Panel p = new Panel();
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-        gbc.fill = GridBagConstraints.VERTICAL;
-        gbc.anchor = GridBagConstraints.WEST;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        //      p.setBackground(PANEL_COLOR1);
-        gbc.insets = new Insets(0, 10, 0, 10);
-        p.setLayout(new GridBagLayout());
-        add(p, gbc);
-
-        gbc = new GridBagConstraints();
-        gbc.anchor = GridBagConstraints.WEST;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        showLists = new Checkbox();
-        //      showLists.setBackground(CHECKBOX_COLOR);
-        showLists.setLabel(getString("Show Lists"));
-        p.add(showLists, gbc);
-
-        gbc.gridwidth = 1;
-        gbc.anchor = GridBagConstraints.EAST;
-        staticLists = new Checkbox();
-        //      staticLists.setBackground(CHECKBOX_COLOR);
-        staticLists.setLabel(getString("Cache Lists Forever"));
-        p.add(staticLists, gbc);
-
-        gbc.anchor = GridBagConstraints.EAST;
-        cacheTimeLabel = new Label(getString("List Cache Timeout (seconds):"));
-        //      cacheTimeLabel.setBackground(Color.green);
-        p.add(cacheTimeLabel, gbc);
-
-        gbc.anchor = GridBagConstraints.WEST;
-        cacheTime = new TextField("300", 8);
-        //      cacheTime.setBackground(Color.cyan);
-        p.add(cacheTime, gbc);
-
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.weightx = gbc.weighty = 0;
-        cacheMoreButton = new Button("...");
-        p.add(cacheMoreButton, gbc);
-    }
-
-
-    /**
-     * Helper method for constructor - adds Save and Cancel
-     * buttons.
-     */
-    private void addButtons() {
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-
-        Panel p = new Panel();
-        p.setLayout(new GridBagLayout());
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.insets = new Insets(10, 10, 10, 10);
-        add(new LineSeparator(), gbc);
-        gbc.insets = new Insets(0, 0, 10, 0);
-        add(p, gbc);
-
-        gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-
-        saveButton = new Button(getString("Save"));
-        p.add(saveButton, gbc);
-        applyButton = new Button(getString("Apply"));
-        p.add(applyButton, gbc);
-        cancelButton = new Button(getString("Cancel"));
-        p.add(cancelButton, gbc);
-    }
-
-    private void addHelpMenu() {
-        MenuBar mb = new MenuBar();
-        setMenuBar(mb);
-
-        Menu m = new Menu(getString("Help"));
-        mb.setHelpMenu(m);
-  
-        csHelp = new MenuItem(getString("Context-Sensitive Help"));
-        m.add(csHelp);
-    }
-
-        /**
-         * Decides whether to save/discard edits and then closes
-         * window. If errors exist in the values entered in the fields, then
-         * it will not exit.
-         */
-        public void close(boolean save) {
-            if (save) {
-      	        if (!Defaults.this.updateFromGui())
-	            return;
-    	        else
-	            Defaults.this.saveToFile();
-            }
-            setVisible(false);
-        }
-
-        // Listeners for the gui components:
-        private  class WindowCloseListener extends  WindowAdapter {
-            public void windowClosing(WindowEvent e) {
-    	        close(false);
-            }
-        }   
-    
-    } // class EditingFrame
-
-    public static void main(String argv[]) {
-        Defaults d = new Defaults("SomeFile", Color.white);
-        Frame f = d.getEditingFrame();
-        d.showLists.setSize(new Dimension(18, 22));
-        d.staticLists.setSize(new Dimension(18, 22));
-        f.setVisible(true);
-        System.out.println(d.disableAccount.getSize().toString()); // XXX
-        System.out.println(d.showLists.getSize().toString()); // XXX
-    }
-
-    static {
-        df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, 
-                                            DateFormat.MEDIUM);
-        nf = NumberFormat.getInstance();
-        rb = ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-        neverString = getString("Never");
-    }
-  
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Filter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-//
-// Filter according to pattern and sort a string array
-//
-
-import java.util.Vector;
-import java.util.Date;
-
-public class Filter {
-    public String[] out;
-    
-    public Filter(String[] list, String pattern) {
-	if (pattern == "") {
-	    out = list;
-	} else {
-	    // Date pdateBefore = new Date();
-	    Vector v = new Vector(10, 10);
-	    for (int i = 0; i < list.length; i++) {
-		if (list[i].indexOf(pattern) >= 0)
-		    v.addElement(new String(list[i]));
-	    }
-	    String[] plist = new String[v.size()];
-	    for (int i = 0; i < v.size(); i++) {
-		plist[i] = (String)v.elementAt(i);
-		// System.out.println(Plist[i]+" ");
-	    }
-	    out = plist;
-	    // Date pdateAfter = new Date();
-	    // long diff = pdateAfter.getTime() - pdateBefore.getTime();
-	    // String t = (new Long(diff)).toString();
-	    // System.out.println("  Filtered list in "+t+" ms");
-	}
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Flags.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-/**
- * The Flags class stores all flags that might pertain to a
- * Principal.
- */
-
-//XXX: Move this to a java.util.BitSet model later on.
-public class Flags {
-
-    private int flags = 0;
-
-    private static int allOnes = 0xFFFF;
-
-    public static final int DISALLOW_POSTDATED = 1;
-    public static final int DISALLOW_FORWARDABLE = 2;
-    public static final int DISALLOW_TGT_BASED = 4;
-    public static final int DISALLOW_RENEWABLE = 8;
-    public static final int DISALLOW_PROXIABLE = 16;
-    public static final int DISALLOW_DUP_SKEY = 32;
-    public static final int DISALLOW_ALL_TIX = 64;
-    public static final int REQUIRE_PRE_AUTH = 128;
-    public static final int REQUIRE_HW_AUTH = 256;
-    public static final int REQUIRES_PWCHANGE = 512;
-    public static final int DISALLOW_SVR = 4096;
-    // public static final int MASK = 65535 - 1024 - 2048 - 32678;
-
-    private static int bitfields[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512,
-  				      4096};
-
-    private static String flagNames[] = {"Allow Postdated Tickets",
-				         "Allow Forwardable Tickets",
-				         "Allow TGT-Based Authentication", 
-				         "Allow Renewable Tickets", 
-				         "Allow Proxiable Tickets", 
-				         "Allow Duplicate Authentication",
-				         "Disable Account",
-				         "Require Preauthentication",
-				         "Require Hardware Preauthentication",
-				         "Require Password Change", 
-				         "Allow Service Tickets"};
-
-    // For I18N
-    private static ResourceBundle rb = 
-    ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-  
-    /**
-     * Constructor for Flags. Sets all flags to false;
-     */
-    // Required since non-default constructor is used.
-    public Flags() {
-    }
-  
-    /**
-     * Constructor for Flags.
-     * @param flags an integer where the bit positions determined by the
-     * static masks determine the value of that flag.
-     */
-    public Flags(int flags) {
-        this.flags = flags;
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-      	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    /**
-     * Returns a label for the flag corresponding to the given
-     * bitfield.
-     * @param bitfield an integer chosen from the static list of masks
-     *   in this class to indicate a particular flag.
-     * @return a String containing the label for the flag.
-     */
-    public static final String getLabel(int bitfield) {
-        int pos = getIndex(bitfield);
-        if (pos < 0)
-            return null;
-        else
-            return getString(flagNames[pos]);
-    }
-
-    /**
-     * Returns the boolean value of the flag corresponding to the given
-     * bitfield.
-     * @param bitfield an integer chosen from the static list of masks
-     *   in this class to indicate a particular flag.
-     * @return the boolean value that the flag is currently set to.
-     */
-    public boolean getFlag(int bitfield) {
-        return !((flags & bitfield) == 0);
-    }
-
-    /**
-     * Sets the current value of one or more flags.
-     * @param mask an integer mask that has all those bits set that
-     * correspond to flags that need to be set.
-     * @value the boolean value that the flags should be set to.
-     */
-    public void setFlags(int mask, boolean value) {
-        if (!value) {
-            mask ^= allOnes; // invert mask
-            flags &= mask;   // zero out
-        } else {
-            flags |= mask;
-        }
-    }
-
-    /**
-     * Toggles the current value of one or more flags.
-     * @param mask an integermask that has all those bits set that
-     * correspond to flags that need to be toggled.
-     */
-    public void toggleFlags(int mask) {
-        flags ^= mask;
-    }
-
-    /**
-     * Returns a string containing all of the flags labels and their
-     * corresponding boolean values.
-     */
-    public String toString() {
-  
-        StringBuffer sb = new StringBuffer();
-        char ch;
-
-        ch = (!getFlag(DISALLOW_POSTDATED)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[0])).append('\n');
-
-        ch = (!getFlag(DISALLOW_FORWARDABLE)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[1])).append('\n');
-
-        ch = (!getFlag(DISALLOW_TGT_BASED)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[2])).append('\n');
-
-        ch = (!getFlag(DISALLOW_RENEWABLE)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[3])).append('\n');
-
-        ch = (!getFlag(DISALLOW_PROXIABLE)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[4])).append('\n');
-
-        ch = (!getFlag(DISALLOW_DUP_SKEY)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[5])).append('\n');
-
-        ch = (getFlag(DISALLOW_ALL_TIX)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[6])).append('\n');
-
-        ch = (getFlag(REQUIRE_PRE_AUTH)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[7])).append('\n');
-
-        ch = (getFlag(REQUIRE_HW_AUTH)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[8])).append('\n');
-
-        ch = (getFlag(REQUIRES_PWCHANGE)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[9])).append('\n');
-
-        ch = (!getFlag(DISALLOW_SVR)? '+':'-');
-        sb.append('\t').append(ch).append(getString(flagNames[10])).append(
-            '\n');
-
-        return sb.toString();
-    }
-
-    /**
-     * Converts a bitfield with one bit set in it to an index.
-     * The index can be used with bitfields or flagNames.
-     * @flagBitfield an integer that has exactly one bit set in it
-     * @return the index of the first bit that was found set when
-     *  scanning from the lsb.
-     */
-    // This is not always the position of the bit in the integer's
-    // internal representation.
-    private static int getIndex(int flagBitfield) {
-        for (int i = 0; i < flagNames.length; i++) {
-            if (flagBitfield == bitfields[i])
-    	        return i;
-        }
-
-        return -1;
-    }
-
-    /**
-     * Returns an integer with the bits indicating the status of each of
-     * the flags.
-     */
-    public int getBits() {
-        return flags;
-    }
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Krb5Conf.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-//
-// Class representing the info from /etc/krb5/krb5.conf.
-// Currently, the admin tool only needs to access all of the 
-// admin servers for all of the realms enumerated in the file,
-// and the default realm.
-// A sample file looks like this:
-
-/*
-
-[libdefaults]
-	default_realm = SUNSOFT.FOO.SUN.COM
-
-[realms]
-	GENESIS.FOO.SUN.COM = {
-		kdc = xxxxx.eng.sun.com
-		admin_server = xxxxx.eng.sun.com
-	}
-	SUNSOFT.FOO.SUN.COM = {
-		kdc = gandolf.eng.sun.com
-		kdc = ulong.eng.sun.com
-		admin_server = gandolf.eng.sun.com:749
-	}
-
-[domain_realm]
-	.eng.sun.com = SUNSOFT.FOO.SUN.COM
-	.sun.com = SUNSOFT.FOO.SUN.COM
-
-[logging]
-	default = FILE:/var/krb5/kdc.log
-	kdc = FILE:/var/krb5/kdc.log
-
-[appdefaults]
-	gkadmin = {
-                help_url = http:...
-	}
-*/
-
-import java.io.*;
-import java.util.Vector;
-import java.util.StringTokenizer;
-
-public class Krb5Conf {
-
-    private String DefRealm = null;
-    private String HelpURL = null;
-    private Vector RealmVector = new Vector(10, 10);
-
-    public Krb5Conf() {
-    	
-    	FileReader fr = null;
-
-    	try {
-	    fr = new FileReader("/etc/krb5/krb5.conf");
-	} catch (FileNotFoundException e) {
-	    // System.out.println("Error: " + e);
-	    return;
-	}
-	BufferedReader in = new BufferedReader(fr);
-
-	String line = null, Name = null, Server = "", Port = "0";
-	boolean wantdef = false, wantrealm = false;
-	boolean wantadmin = false, skipcurly = false;
-	boolean wantapp = false, wanturl = false;
-	RealmInfo r = null;
-
-	// Read each line of the file
-	do {
-	    try {
-		line = in.readLine();
-	    } catch (IOException e) {
-		// System.out.println("Error: " + e);
-		return;
-	    }
-	    if (line == null)
-		break;
-//	    System.out.println(line);
-
-	    // Get some help with parsing
-	    StringTokenizer t = new StringTokenizer(line);
-	    if (!t.hasMoreTokens())
-		continue;
-	    String s = t.nextToken();
-	    if (s.charAt(0) == '#')
-		continue;
-
-	    // Look for [realm], [libdefaults] or [appdefaults]
-	    if (s.charAt(0) == '[') {
-		wantdef = false;
-		wantrealm = false;
-		wantapp = false;
-		if (s.compareTo("[libdefaults]") == 0)
-		    wantdef = true;
-		if (s.compareTo("[realms]") == 0)
-		    wantrealm = true;
-		if (s.compareTo("[appdefaults]") == 0)
-		    wantapp = true;
-	    } else {
-
-		// Have we seen [libdefaults]?
-		if (wantdef && s.compareTo("default_realm") == 0) {
-		    if (t.hasMoreTokens()) {
-			DefRealm = t.nextToken(" \t\n\r=");
-			wantdef = false;
-		    }
-
-		// Have we seen [realm] instead?
-		} else if (wantrealm) {
-
-		    // We got what we needed; skip until "{" is balanced
-		    if (skipcurly && s.compareTo("}") == 0) {
-			skipcurly = false;
-			continue;
-		    }
-		    // First the realm name, then the admin server
-		    if (!wantadmin) {
-			Name = new String(s);
-			wantadmin = true;
-			Server = "";
-			Port = "0";
-		    } else {
-			if (s.compareTo("admin_server") == 0) {
-			    s = t.nextToken(" \t\n\r=:");
-			    Server = new String(s);
-			    if (t.hasMoreTokens()) {
-				s = t.nextToken(" \t\n\r=:");
-				Port = new String(s);
-			    }
-
-			    // Store result in the vector
-			    r = new RealmInfo(Name, Server, Port);
-			    RealmVector.addElement(r);
-			    wantadmin = false;
-			    skipcurly = true;
-			}
-		    }
-		} else if (wantapp) {
-		    if (wanturl && s.compareTo("help_url") == 0) {
-			if (t.hasMoreTokens()) {
-			    HelpURL = t.nextToken(" \t\n\r=");
-			    wantapp = false;
-			    wanturl = false;
-			}
-		    } else if (s.compareTo("gkadmin") == 0)
-			wanturl = true;
-		}
-	    }	    
-	} while (line != null);
-    }
-
-    public String getDefaultRealm() {
-	return DefRealm;
-    }
-
-    public String getHelpURL() {
-	return HelpURL;
-    }
-
-    public String getAllRealms() {
-	String s = "";
-	for (int i = 0; i < RealmVector.size(); i++) {
-	    RealmInfo r = (RealmInfo)RealmVector.elementAt(i);
-	    s = new String(s + " " + r.RealmName);
-	}
-	return s;
-    }
-
-    public String getRealmServer(String realm) {
-	for (int i = 0; i < RealmVector.size(); i++) {
-	    RealmInfo r = (RealmInfo)RealmVector.elementAt(i);
-	    if (realm.compareTo(r.RealmName) == 0)
-		return r.AdminServer;
-	}
-	return null;
-    }
-    
-    public String getRealmPort(String realm) {
-	for (int i = 0; i < RealmVector.size(); i++) {
-	    RealmInfo r = (RealmInfo)RealmVector.elementAt(i);
-	    if (realm.compareTo(r.RealmName) == 0)
-		return r.ServerPort;
-	}
-	return null;
-    }
-
-    class RealmInfo extends Object {
-	String RealmName;
-	String AdminServer;
-	String ServerPort;
-	
-	public RealmInfo(String name, String server, String port) {
-	    RealmName = new String(name);
-	    AdminServer = new String(server);
-	    ServerPort = new String(port);
-	}
-    }
-
-    public static void main(String[] args) {
-	Krb5Conf c = new Krb5Conf();
-	System.out.println("Default: " + c.getDefaultRealm());
-	System.out.println("Realms: " + c.getAllRealms());
-	StringTokenizer t = new StringTokenizer(c.getAllRealms());
-	while (t.hasMoreTokens()) {
-	    String r = t.nextToken();
-	    String s = c.getRealmServer(r);
-	    String p = c.getRealmPort(r);
-	    System.out.println("For realm " + r + ", server is " + s
-				     + ", port is " + p);
-	}
-	System.out.println("HelpURL: " + c.getHelpURL());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include ../../../../../Makefile.master
-include ../../../../Makefile.cmd
-
-JAVAFLAGS= -nowarn -O
-
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-
-CLASSES= PrintUtil Krb5Conf Filter PrincipalList PolicyList Principal Policy Flags Defaults
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=../classdir/%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-CLASSPATH=$(GUIDIR):$(GUIDIR)/classdir:$(GUIDIR)/util:$(GUIDIR)/dataclasses:$(GUIDIR)/dchanger:$(GUIDIR)/native:$(GUIDIR)/visualrt:$(GUIDIR)/visualrt.jar:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-../classdir/%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d ../classdir -classpath $(CLASSPATH) $<
-
-all:  $(CLFILES)
-
-install: all
-
-echo:
-	@echo $(CLASSES)
-	@echo $(JFILES)
-	@echo $(CLFILES)
-	@echo $(SUFFIXES)
-
-clobber : clobber_local
-
-clean: clean_local
-
-clobber_local: clean_local
-
-clean_local:
-	$(RM) $(CLFILES)
-	$(RM) ./*.class
-FRC:
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Policy.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.util.ResourceBundle;
-import java.text.NumberFormat;
-import java.text.ParseException;
-import java.util.MissingResourceException;
-
-/**
- * Class representing a Kerberos V5 policy
- * Class data items correspond to fields in struct _kadm5_policy_ent_t
- */
-class Policy {
-    String PolicyName;	// char		*policy;
-    Integer PwMinLife;	// long		pw_min_life;
-    Integer PwMaxLife;	// long		pw_max_life;
-    Integer PwMinLength;	// long		pw_min_length;
-    Integer PwMinClasses;	// long		pw_min_classes;
-    Integer PwSaveCount;	// long		pw_history_num;
-    Integer RefCount;	// long		policy_refcnt;
-    Kadmin Kadmin;
-    boolean isNew;
-    boolean dummy;
-
-    // For I18N
-    private static ResourceBundle rb =
-        ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-    private static NumberFormat nf = NumberFormat.getInstance();
-
-    /**
-     * Initialize new policy to defaults - this one is for new creations
-     */
-    public Policy() {
-	dummy = true;
-	isNew = true;
-	PolicyName = new String("");
-	PwMinLife = new Integer(0);
-	PwMaxLife = new Integer(30 * 24 * 60  * 60);   /* 30 days */
-	PwMinLength = new Integer(4);
-	PwMinClasses = new Integer(2);
-	PwSaveCount = new Integer(3);
-	RefCount = new Integer(0);
-    }
-
-    /*
-     * This is used for loading an existing principal
-     */
-    public Policy(String Pname) {
-	/* Get some specific data from somewhere */
-	this();
-	dummy = true;
-	isNew = false;
-	PolicyName = Pname;
-	loadPolicy(Pname);
-    }
-
-    /*
-     * This is used for duplicating a new principal from an old one
-     */
-    public Policy(Policy old) {
-	/* Copy old principal to new one */
-	this();
-	dummy = true;
-	copyPolicy(old, this);
-    }
-
-    /*
-     * For real data, use Kadmin as a first argument
-     */
-    public Policy(Kadmin session) {
-	this();
-	dummy = false;
-	Kadmin = session;
-    }
-
-    public Policy(Kadmin session, String Pname) {
-	this();
-	isNew = false;
-	dummy = false;
-	Kadmin = session;
-	PolicyName = Pname;
-	loadPolicy(Pname);
-    }
-
-    public Policy(Kadmin session, Policy old) {
-	this(old);
-	dummy = false;
-	Kadmin = session;
-    }
-
-    /**
-     * Copy relevant fields from old policy, overriding as necessary
-     */
-    public void copyPolicy(Policy old, Policy curr) {
-	curr.PolicyName = new String("");	/* override */
-	curr.PwMinLife = new Integer(old.PwMinLife.intValue());
-	curr.PwMaxLife = new Integer(old.PwMaxLife.intValue());
-	curr.PwMinLength = new Integer(old.PwMinLength.intValue());
-	curr.PwMinClasses = new Integer(old.PwMinClasses.intValue());
-	curr.PwSaveCount = new Integer(old.PwSaveCount.intValue());
-	curr.RefCount = new Integer(0);		/* override */
-    }
-
-    public boolean loadPolicy(String name) {
-	if (dummy)
-	    return true;
-	boolean b = Kadmin.loadPolicy(name, this);
-	// System.out.println(this.toString());
-	return b;
-    }
-
-    public boolean savePolicy() {
-	// System.out.println(this.toString());
-	if (dummy)
-	    return true;
-	if (this.isNew)
-	    return Kadmin.createPolicy(this);
-	else
-	    return Kadmin.savePolicy(this);
-    }
-
-    public boolean setName(String name) {
-	  // xxx: see where this gets called from to determine if a new Policy
-	  // just added can have a duplicate name or whether that would have 
-	  // been screened out earlier.
-	  PolicyName = name;
-	  return true;
-    }
-
-    /**
-     * @param val Contains one number representing the length.
-     */
-    public boolean setPolPwLength(String val) {
-	  try {
-		PwMinLength = new Integer(nf.parse(val).intValue());
-	  } catch (ParseException e) {
-		return false;
-	  }
-	  return true;
-    }
-
-    /**
-     * @param val Contains one number representing the number of classes
-     */
-    public boolean setPolPwClasses(String val) {
-        try {
-	    PwMinClasses = new Integer(nf.parse(val).intValue());
-        } catch (ParseException e) {
-    	    return false;
-        }
-        return true;
-    }
-
-    /**
-     * @param val Contains one number representing the save count.
-     */
-    public boolean setPolPwHistory(String val) {
-      // xxx: Is pwHistory the same as pwSaveCount?
-        try {
-	    PwSaveCount = new Integer(nf.parse(val).intValue());
-        } catch (ParseException e) {
-	  return false;
-        }      
-        return true;
-    }
-
-    /**
-     * @param val Contains one number representing the lifetime in seconds.
-     */
-    public boolean setPolMinlife(String val) {
-        try {
-  	    PwMinLife =  new Integer(nf.parse(val.trim()).intValue());
-        } catch (ParseException e) {
-	    return false;
-        }
-        return true;
-    }
-
-    /**
-     * @param val Contains one number representing the lifetime in seconds.
-     */
-    public boolean setPolMaxlife(String val) {
-        try {
-	    PwMaxLife = new Integer(nf.parse(val.trim()).intValue());
-        } catch (ParseException e) {
-	    return false;
-        }
-	    return true;
-    }
-
-    /*
-     * Obtain a string representation of this policy.
-     * @return a String containing the following information about this policy:
-     * <br><ul>
-     * <li>policy name
-     * <li>password minimum life
-     * <li>password maximum life
-     * <li>password minimum length
-     * <li>password minimum classes
-     * <li>password save count
-     * <li>reference count
-     *</ul>
-     */
-    public String toString() {
-
-        StringBuffer sb = new StringBuffer();
-
-        sb.append(getString("Policy Name:") + "  " + PolicyName).append('\n');
-        sb.append(getString("Reference Count:") + "  " 
-              +  RefCount).append("\n");
-        sb.append(getString("Minimum Password Lifetime (seconds):") 
-	      + "  " +  PwMinLife).append("\t");
-        sb.append(getString("Maximum Password Lifetime (seconds):") 
-	      + "  " + PwMaxLife).append("\n");
-        sb.append(getString("Minimum Password Length:") + "  " 
-              + PwMinLength).append("\t");
-        sb.append(getString("Minimum Password Classes:") + "  "
-	      + PwMinClasses).append("\n");
-        sb.append(getString("Password Save Count:") + "  "
-	      + PwSaveCount).append("\n");
-
-        return sb.toString();
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-    	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/PolicyList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-//
-// Class to hold a policy list
-//
-
-import java.util.Vector;
-
-public class PolicyList {
-    Kadmin Kadmin = null;
-    boolean dummy;
-    /*
-     * Dummy data for testing
-     */
-    String [] dummyPL = { "first", "default", "admins", "engineers",
-   			    "managers", "markerters", "temps", "contractors",
-			    "hourly", "remote1", "remote2", "chelmsford" };
-
-    public PolicyList() {
-	dummy = true;
-    }
-
-    public PolicyList(Kadmin session) {
-        dummy = false;
-        Kadmin = session;
-    }
-
-    public String[] getPolicyList() {
-	    String[] in;
-
-	    if (dummy) {
-		in = new String[dummyPL.length];
-		System.arraycopy(dummyPL, 0, in, 0, dummyPL.length);
-	    } else {
-		in = Kadmin.getPolicyList();
-	    }
-	    return in;
-    }
-
-
-    public static void main(String[] args) {
-        PolicyList p = new PolicyList();
-        String[] pl = p.getPolicyList();
-        System.out.println("Policy List:");
-        for (int i = 0; i < pl.length; i++)
-	    System.out.println("  "+pl[i]);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/Principal.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,483 +0,0 @@
-/*
- * 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 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-import java.util.Date;
-import java.text.DateFormat;
-import java.text.NumberFormat;
-import java.text.ParseException;
-import java.util.Calendar;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-/**
- * Class representing a Kerberos V5 principal
- * Class data items correspond to fields in struct _kadm5_principal_ent_t_v2
- */
-class Principal {
-
-    private static DateFormat df;
-    private static NumberFormat nf;
-    private static String neverString;
-
-    private static Integer INFINITE_LIFE = new Integer(Integer.MAX_VALUE);
-
-    Flags flags;
-
-    // For I18N
-    private static ResourceBundle rb;
-  
-    String PrName;		// krb5_principal principal;
-    Date PrExpireTime;		// krb5_timestamp princ_expire_time;
-    String Policy;		// char *policy;
-    Date LastPwChange;		// krb5_timestamp last_pwd_change;
-    Date PwExpireTime;		// krb5_timestamp pw_expiration;
-    Integer MaxLife;	        // krb5_deltat max_life;
-    Integer MaxRenew;		// krb5_deltat max_renewable_life;
-    Date ModTime;		// krb5_timestamp mod_date;
-    String ModName;		// krb5_principal mod_name;
-    Date LastSuccess;		// krb5_timestamp last_success;
-    Date LastFailure;		// krb5_timestamp last_failed;
-    Integer NumFailures;	// krb5_kvno fail_auth_count;
-    String Comments;		// ==> entry in tl_data array
-    Integer Kvno;		// krb5_kvno kvno;
-    Integer Mkvno;		// krb5_kvno mkvno;
-
-    String PrPasswd;		// standalone field in Kadmin API
-    Kadmin Kadmin;
-    boolean isNew;		// newly created principal?
-    boolean dummy;		// use dummy data?
-    boolean newComments;	// are comments new or changed?
-    String EncTypes;		// enc type list to be used for key gen
-  
-    /**
-     * Initialize new principal to defaults - this one is for new creations
-     */
-    public Principal() {
-        isNew = true;
-        dummy = true;
-        newComments = false;
-        PrName = new String("");
-        PrPasswd = new String("");
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(new Date());	    /* start with now ... */
-        cal.add(Calendar.YEAR, 1);	    /* ... add a year ... XXX */
-        PrExpireTime = cal.getTime();  /* ... to get expiry */
-        Policy = new String("");
-        LastPwChange = new Date(0);    /* never */
-        PwExpireTime = null; // may be server side default
-        MaxLife = null; // may be server side default
-        MaxRenew = null; // may be server side default
-        ModTime = new Date();	    /* now */
-        ModName = System.getProperty("user.name");
-        LastSuccess = new Date(0);	    /* never */
-        LastFailure = new Date(0);	    /* never */
-        NumFailures = new Integer(0);
-        Comments = new String("");
-        Kvno = new Integer(0);
-        Mkvno = new Integer(0);
-        flags = new Flags();
-	EncTypes = new String("");
-    }
-
-    /*
-     * This is used for loading an existing principal
-     */
-    public Principal(String Pname) {
-	/* Get some specific data from somewhere */
-	this();
-	isNew = false;
-	PrName = Pname;
-	PwExpireTime = new Date(0);
-	loadPrincipal(Pname);
-    }
-
-    /*
-     * This is used for duplicating a new principal from an old one
-     */
-    public Principal(Principal old) {
-	/* Copy old principal to new one */
-	this();
-	copyPrincipal(old, this);
-    }
-
-    /*
-     * For real data, use Kadmin as a first argument
-     */
-    public Principal(Kadmin session, Defaults defaults) {
-	this();
-	dummy = false;
-	Kadmin = session;
-	setDefaults(defaults);
-    }
-
-    public Principal(Kadmin session, String Pname) {
-	this();
-	isNew = false;
-	dummy = false;
-	Kadmin = session;
-	PrName = Pname;
-	PwExpireTime = new Date(0);
-	loadPrincipal(Pname);
-    }
-
-    public Principal(Kadmin session, Principal old) {
-	this(old);
-	dummy = false;
-	Kadmin = session;
-    }
-
-    public void setDefaults(Defaults defaults) {
-        flags = new Flags(defaults.getFlags().getBits());
-        if (!defaults.getServerSide()) {
-            MaxLife  = defaults.getMaxTicketLife();
-            MaxRenew = defaults.getMaxTicketRenewableLife();
-        }
-        PrExpireTime = defaults.getAccountExpiryDate();
-    }
-
-    /**
-     * Copy relevant fields from old principal, overriding as necessary
-     */
-    public static void copyPrincipal(Principal old, Principal curr) {
-	curr.PrName = new String("");	    /* override */
-	curr.PrPasswd = new String("");	    /* override */
-	curr.PrExpireTime = new Date(old.PrExpireTime.getTime());
-	curr.Policy = new String(old.Policy);
-	curr.EncTypes = new String(old.EncTypes);
-	curr.LastPwChange = new Date(0);    /* override: never */
-	if (old.PwExpireTime == null)
-	    curr.PwExpireTime = null;
-	else
-	    curr.PwExpireTime = new Date(old.PwExpireTime.getTime());
-	curr.MaxLife = new Integer(old.MaxLife.intValue());
-	curr.MaxRenew = new Integer(old.MaxRenew.intValue());
-	curr.ModTime = new Date();	    /* override: now */
-	curr.ModName = System.getProperty("user.name");	    /* override */
-	curr.LastSuccess = new Date(0);	    /* override: never */
-	curr.LastFailure = new Date(0);	    /* override: never */
-	curr.NumFailures = new Integer(0);  /* override: none */
-	curr.Comments = new String(old.Comments);
-	curr.Kvno = new Integer(old.Kvno.intValue());
-	curr.Mkvno = new Integer(old.Mkvno.intValue());
-	curr.flags = new Flags(old.flags.getBits());
-    }
-
-    public boolean loadPrincipal(String name) {
-	if (dummy)
-		return true;
-	boolean b = Kadmin.loadPrincipal(name, this);
-	// System.out.println(this.toString());
-	return b;
-    }
-
-    public boolean savePrincipal() {
-	// System.out.println(this.toString());
-	if (dummy)
-		return true;
-	if (MaxLife == null)
-	  MaxLife = INFINITE_LIFE;
-	if (MaxRenew == null)
-	  MaxRenew = INFINITE_LIFE;
-	if (this.isNew)
-	    return Kadmin.createPrincipal(this);
-	else
-	    return Kadmin.savePrincipal(this);
-    }
-
-
-    public boolean setName(String name) {
-	// xxx: see where this gets called from to determine if a new Principal
-	// just added can have a duplicate name or whether that would have been
-	// screened out earlier.
-
-	PrName = name;
-	return true;
-    }
-
-    public boolean setComments(String comments) {
-	  // xxx: check to see if all characters are in the allowable list of
-	  // characters. The list needs to be I18N. No length restrictions on
-	  // Java side but what about the c side?
-        Comments = comments;
-        newComments = true;
-        return true;
-    }
-    
-    public boolean setPolicy(String pol) {
-	  // xxx: is this a valid policy name? Should we assume that error is
-	  // already trapped before this point?
-	Policy = pol;
-	return true;
-    }
-
-    public boolean setPassword(String pw) {
-	  // xxx: check to see if the passwd follows the rules laid down by
-	  // the policy
-	PrPasswd = pw;
-	return true;
-    }
-
-    public boolean setEncType(String enctype) {
-	EncTypes = enctype;
-	// Don't have to check enc type list provided given that list was
-	// populated from the checkbox list
-	return true;
-    }
-     
-    /**
-     * @param exp Contains a date formatted by the default locale,
-     * representing the expiry time for the principal's expiration.
-     */
-    public boolean setExpiry(String exp) {
-        exp = exp.trim();
-        if (exp.equalsIgnoreCase(neverString))
-           PrExpireTime = new Date(0);
-        else {
-            try {
-   	        PrExpireTime = df.parse(exp);
-            } catch (ParseException e) {
-	        return false;
-            } catch (NullPointerException e) {
-	        // gets thrown when parse string begins with text
-	        // probable JDK bug
-	        return false;
-            } catch (StringIndexOutOfBoundsException e) {
-	        // gets thrown when parse string contains only one number
-	        // probable JDK bug
-	        return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * @param exp Contains a date formatted by the default locale,
-     * representing the expiry time for the password expiration.
-     */
-    public boolean setPwExpiry(String exp) {
-        exp = exp.trim();
-        if (exp.equals(""))
-            PwExpireTime = null;
-        else if (exp.equalsIgnoreCase(neverString))
-            PwExpireTime = new Date(0);
-        else {
-            try {
-    	        PwExpireTime = df.parse(exp);
-            } catch (ParseException e) {
-	        return false;
-            } catch (NullPointerException e) {
-	        // gets thrown when parse string begins with text
-	        // probable JDK bug
-	        return false;
-            }  catch (StringIndexOutOfBoundsException e) {
-	        // gets thrown when parse string contains only one number
-	        // probable JDK bug
-	        return false;
-            }
-        }
-        return true;
-    }
-  
-    public String getModTime() {
-        if (ModTime.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(ModTime);
-    }
-
-    public String getEncType() {
-            return EncTypes;
-    }
-
-    public String getExpiry() {
-        if (PrExpireTime.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(PrExpireTime);
-    }
-  
-    public String getLastSuccess() {
-        if (LastSuccess.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(LastSuccess);
-    }
-  
-    public String getLastFailure() {
-        if (LastFailure.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(LastFailure);
-    }
-  
-    public String getLastPwChange() {
-        if (LastPwChange.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(LastPwChange);
-    }
-  
-    public String getPwExpireTime() {
-        if (PwExpireTime == null)
-            return new String("");
-        else if (PwExpireTime.getTime() == 0)
-            return neverString;
-        else 
-            return df.format(PwExpireTime);
-    }
-
-    public String getMaxLife() {
-        if (MaxLife != null)
-            return nf.format(MaxLife.longValue());
-        else
-            return "";
-    }
-  
-    public String getMaxRenew() {
-        if (MaxRenew != null)
-            return nf.format(MaxRenew.longValue());
-        else
-            return "";
-    }
-  
-    /**
-     * @param vers Contains a number representing the key version.
-     */
-    public boolean setKvno(String vers) {
-	try {
-	    Kvno = new Integer(nf.parse(vers.trim()).intValue());
-	}catch (ParseException e) {
-	    return false;
-	}
-	return true;
-    }
-
-    /**
-     * @param val Contains a number representing the maximum lifetime, in
-     * seconds, of a ticket for this principal.
-     */
-    public boolean setMaxlife(String val) {
-	try {
-	    String noSpace = val.trim(); 
-	    if (noSpace.length() == 0) 
-	        return true; 
-	    MaxLife = new Integer(nf.parse(noSpace).intValue());
-	}catch (ParseException e) {
-	    return false;
-	}
-	return true;
-    }
-
-    /**
-     * @param val Contains a number representing the maximum renewable lifetime,
-     * in seconds, of a ticket for this principal.
-     */
-    public boolean setMaxrenew(String val) {
-	try {
-	    String noSpace = val.trim(); 
-	    if (noSpace.length() == 0) 
-	        return true; 
-	    MaxRenew = new Integer(nf.parse(noSpace).intValue());		
-	}catch (ParseException e) {
-	    return false;
-	}
-	return true;
-    }
-
-    /**
-     * Toggles a particular flag.
-     * @param mask one of the statically defined masks indicating which flag to
-     * toggle.
-     */
-    public boolean setFlag(int mask) {
-        flags.toggleFlags(mask);
-        return true;
-    }
-
-    /**
-     * Obtain a string representation of this principal.
-     * @return a String containing the following information about this 
-     * principal:<br>
-     * <ul>
-     * <li>principal name
-     *<li>policy being applied
-     *<li>expiry date
-     *<li>comments
-     *<li>key version number
-     *<li>password expire time
-     *<li>maximum lifetime
-     *<li>maximum renewable lifetime
-     * <li> flags
-     *</ul>
-     */
-    public String toString() {
-
-        StringBuffer sb = new StringBuffer();
-
-        sb.append(getString("Principal Name:") + "  " + PrName).append('\n');
-        sb.append(getString("Account Expires:") + "  "
-              + getExpiry()).append('\n');
-        sb.append(getString("Policy:") + "  " + Policy).append('\n');
-        sb.append(getString("Enc Types:") + "  " + EncTypes).append('\n');
-        sb.append(getString("Comments:") + "  " + Comments).append('\n');
-        sb.append(getString("Key Version:") + "	" + Kvno).append('\t');
-        sb.append(getString("Password Expires:") + "  "
-              + getPwExpireTime()).append('\n');
-        sb.append(getString("Maximum Lifetime (seconds):")
-	      + "	 " + getMaxLife()).append('\t'); 
-        sb.append(getString("Maximum Renewal (seconds):") 
-	      + "	 " + getMaxRenew()).append('\n'); 
-        sb.append(getString("Flags:")).append('\n').append(flags.toString());
-
-        return sb.toString();
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-    	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    static {
-        rb = ResourceBundle.getBundle("GuiResource" /* NOI18N */);     
-        df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
-                                            DateFormat.MEDIUM);
-        nf = NumberFormat.getInstance();
-        neverString = getString("Never");
-    }
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/PrincipalList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-//
-// Class to hold a principal list
-//
-
-import java.util.Vector;
-import java.util.StringTokenizer;
-import java.util.Date;
-
-public class PrincipalList {
-    Kadmin Kadmin = null;
-    boolean dummy;
-    /*
-     * Dummy data for testing
-     */
-    String [] dummyPL = { "first", "eisler", "hooshang", "lin", "msaltz",
-			"rammarti", "thurlow", "traj", "seemam",
-			"eisler/admin", "lin/admin", "msaltz/admin",
-			"thurlow/admin", "george", "scott", "steve",
-			"carrie", "jennifer", "penny", "lisa",
-			"lobby1", "lobby2", "janitor", "rentacop1",
-			"rentacop2" };
-
-    public PrincipalList() {
-	dummy = true;
-    }
-
-    public PrincipalList(Kadmin session) {
-        dummy = false;
-        Kadmin = session;
-    }
-
-    public String[] getPrincipalList() {
-	String[] in;
-
-	// Date pdateBefore = new Date();
-	if (dummy) {
-	    in = new String[dummyPL.length];
-	    System.arraycopy(dummyPL, 0, in, 0, dummyPL.length);
-	} else {
-	    // in = Kadmin.getPrincipalList();
-	    String prs = Kadmin.getPrincipalList2();
-	    StringTokenizer t = new StringTokenizer(prs);
-	    in = new String[t.countTokens()];
-	    for (int i = 0; t.hasMoreTokens(); i++)
-		in[i] = t.nextToken();
-	}
-	// Date pdateAfter = new Date();
-	// long diff = pdateAfter.getTime() - pdateBefore.getTime();
-	// String s = (new Long(diff)).toString();
-	// System.out.println("  Fetched list from server in "+s+" ms");
-	return in;
-    }
-
-    public String[] getPrincipalList(String realm) {
-	String[] in = getPrincipalList();
-	for (int i = 0; i < in.length; i++) {
-	    String s = in[i];
-	    int x = s.lastIndexOf("@"+realm);
-	    if (x > 0)
-		in[i] = new String(s.substring(0, x));
-	}
-	return in;
-    }
-
-
-    public static void main(String[] args) {
-	PrincipalList p = new PrincipalList();
-	String[] pl = p.getPrincipalList("");
-	System.out.println("Principal List:");
-	for (int i = 0; i < pl.length; i++)
-	    System.out.println("  "+pl[i]);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dataclasses/PrintUtil.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-import java.awt.*;
-import java.awt.event.*;
-import java.io.*;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-public class PrintUtil {
-
-    // For I18N
-    private static ResourceBundle rb =
-    ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-    private static ResourceBundle hrb =
-    ResourceBundle.getBundle("HelpData" /* NOI18N */); 
-    /**
-     * Prints an object to either file or printer. Uses the toString()
-     * method of the object to obtain a string representation for it.
-     * @param obj the Object that is to be printed
-     */
-    public static void dump(Frame parent, Object obj) {
-
-        boolean usePrinter;
-        String stringRep = obj.toString();
-
-        Frame printFrame = new PrintFrame(parent, stringRep);
-        printFrame.setVisible(true);
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        return (getString(rb, key));
-    }
-
-    private static final String getString(ResourceBundle rb, String key) {
-        try {
-    	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    /**
-     * Forgets the command and filename that was last entered.
-     */
-    public static final void reinitialize() {
-        PrintFrame.command = PrintFrame.fileName = null;
-    }
-
-    /*
-     ************************************************************
-     *   I N N E R    C L A S S E S   F O L L O W
-     ************************************************************
-     */
-  
-    /**
-     * This class will show a Frame to determine whether the user wants
-     * to print to  a file and which file, if so, or to the printer
-     * directly. Finally it will print to the appropriate destinaition.
-     */
-    private static class PrintFrame extends Frame {
-    
-        private String text;
-
-        static TextField command = null;
-        static TextField fileName = null;
-
-        private CheckboxGroup options;
-        private Checkbox printer;
-        private Checkbox file;
-
-        private Frame parent;
-
-        private static String defaultFileName = 
-            "/tmp/.SEAM_temp.txt" /* NO18N */;
-
-        /**
-         * Constructor for PrintFrame.
-         */
-        public PrintFrame(Frame parent, String text) {
-            super(rb.getString("SEAM Print Helper"));
-            this.text = text;
-            this.parent = parent;
-            setLayout(new GridBagLayout());
-
-            addLabelsAndFields();
-            addCheckboxGroup();
-            addButtons();
-
-            setBackground(parent.getBackground());
-            setForeground(parent.getForeground());
-            setSize(340, 160);
-            setResizable(false);
-
-            printer.setState(true);
-            command.setEditable(true);
-            fileName.setEditable(false);
-        }
-
-        private void addLabelsAndFields() {
-            GridBagConstraints gbc = new GridBagConstraints();
-            gbc.weightx = gbc.weighty = 1;
-            gbc.gridwidth = 2;
-            gbc.fill = GridBagConstraints.HORIZONTAL;
-
-            gbc.gridx = 1;
-            gbc.gridy = 0;
-            add(new Label(getString("Print Command")), gbc);
-            if (command == null) 
-	        command = new TextField("lp" /* NO18N */, 10);
-            gbc.gridx = 3;
-            add(command, gbc);
-
-            gbc.gridx = 1;
-            gbc.gridy = 1;
-            add(new Label(getString("File Name")), gbc);
-            if (fileName == null) 
-	        fileName = new TextField("" /* NO18N */, 10);
-            gbc.gridx = 3;
-            add(fileName, gbc);
-
-            ActionListener al = new StartPrintingListener();
-            command.addActionListener(al);
-            fileName.addActionListener(al);
-        }
-
-        private void addCheckboxGroup() {
-
-            GridBagConstraints gbc = new GridBagConstraints();
-            gbc.weightx = gbc.weighty = 1;
-
-            options = new CheckboxGroup();
-              printer = new Checkbox();
-            file = new Checkbox();
-            printer.setCheckboxGroup(options);
-            file.setCheckboxGroup(options);
-            options.setSelectedCheckbox(printer);
-
-            printer.addItemListener(new PrintSelectedListener());
-            file.addItemListener(new FileSelectedListener());
-
-            gbc.gridx = 0;
-
-            gbc.gridy = 0;
-            add(printer, gbc);
-            gbc.gridy = 1;
-            add(file, gbc);
-        }
-
-        private void addButtons() {
-
-            Button fileMore = new Button("..." /* NO18N */);
-            Button print = new Button(getString("Print"));
-            Button cancel = new Button(getString("Cancel"));
-            Button help = new Button(getString("Help"));
-
-            GridBagConstraints gbc = new GridBagConstraints();
-            gbc.weightx = gbc.weighty = 1;
-
-            gbc.gridx = 5;
-            gbc.gridy = 1;
-            add(fileMore, gbc);
-
-
-            gbc.gridx = 0;
-      //      gbc.gridy = 2;
-            gbc.gridwidth = GridBagConstraints.REMAINDER;
-            gbc.fill = GridBagConstraints.BOTH;
-      //      gbc.insets = new Insets(0, 10, 0, 10);
-      //      gbc.weighty = .1;
-      //   add(new LineSeparator(), gbc);
-      //      gbc.weighty = 1;
-
-            Panel p = new Panel();
-            gbc.insets = new Insets(0, 10, 0, 10);
-            gbc.gridy = 2;
-            add(p, gbc);
-
-            p.setLayout(new GridBagLayout());
-            gbc = new GridBagConstraints();
-            gbc.fill = GridBagConstraints.HORIZONTAL;
-            gbc.weightx = gbc.weighty = 1;
-
-            p.add(print, gbc);
-            p.add(cancel, gbc);
-            p.add(help, gbc);
-
-            print.addActionListener(new StartPrintingListener());
-            cancel.addActionListener(new CancelButtonListener());
-            help.addActionListener(new HelpButtonListener());
-            fileMore.addActionListener(new FileMoreButtonListener());
-            addWindowListener(new WindowCloseListener());
-
-        }
-
-        /**
-         * Called when the print frame has to be closed. IT may be closed
-         * as a result of the user choosing any one of "print", "cancel" or
-         * just the window close (which also cancels the printing). 
-         * @param doIt true if the printing should be carried out, false
-         * if it is to be cancelled.
-         */
-        private void close(boolean doIt) {
-            if (doIt) {
-
-	        Checkbox cb = options.getSelectedCheckbox();
-	        String dest = null;
-
-	        try {
-	            if (cb == printer) {
-	                dest = command.getText().trim();
-	                if (dest.length() == 0)
-	                    return;
-	                else
-	                    print(dest);
-	            } else {
-	                dest = fileName.getText().trim();
-	                if (dest.length() == 0)
-	                    return;
-	                else
-	                    saveToFile(dest);
-	            }
-	        } catch (IOException e) {
-	            // System.out.println(e); XXX
-	        }
-            } // end of doIt
-      
-            dispose();
-        }// end of close
-
-        /**
-         * Prints the string to a file and then send the file's contents
-         * to the printer. It then deletes the file.
-         * @param command the print comman to be used
-         */
-        private void print(String command) throws IOException {
-            Thread printThread = new PrintThread(command);
-            printThread.start();
-            saveToFile(defaultFileName);
-        }
-    
-        /**
-         * Saves the string onto the file.
-         * @param fileName the file to which the string must be written
-         */    
-        private void saveToFile(String fileName) throws IOException {
-            PrintWriter outFile = null;
-            outFile = new PrintWriter(new BufferedWriter(new 
-                      FileWriter(fileName)));
-            outFile.print(text);
-            outFile.flush();
-            outFile.close();
-        }
-    
-        // Listeners for the gui components:
-        // javac in current makefile will not compile if these are anonymous.
-
-        private class PrintSelectedListener implements ItemListener {
-            public void itemStateChanged(ItemEvent e) {
-	        command.setEditable(true);
-	        fileName.setEditable(false);
-            }
-        }
-
-        private class FileSelectedListener implements ItemListener {
-            public void itemStateChanged(ItemEvent e) {
-	        command.setEditable(false);
-	        fileName.setEditable(true);
-            }
-        }
-    
-        private class StartPrintingListener implements ActionListener {
-            public void actionPerformed(ActionEvent e) {
-	        close(true);
-            }
-        }
-    
-        private  class CancelButtonListener implements ActionListener {
-            public void actionPerformed(ActionEvent e) {
-	        close(false);
-            }
-        }
-    
-        private  class HelpButtonListener implements ActionListener {
-            public void actionPerformed(ActionEvent e) {
-	        HelpDialog hd = new HelpDialog(PrintFrame.this,
-		getString("Help for Date/Time Helper"), false); 
-	        hd.setVisible(true);
-	        hd.setText(getString(hrb, "PrintUtilHelp"));
-            }
-        }
-    
-        private  class FileMoreButtonListener implements
-        ActionListener {
-      
-            public void actionPerformed(ActionEvent e) {
-	
-	        // Turn off print "command" and enable output "file name"
-	        options.setSelectedCheckbox(file);
-	        command.setEditable(false);
-	        fileName.setEditable(true);
-	
-	        FileDialog fd = new FileDialog(PrintFrame.this, 
-				       getString("SEAM File Helper"),
-				       FileDialog.SAVE);
-	        fd.setDirectory(System.getProperty("user.dir" /* NO18N */));
-
-	        // Use what's in the fileName field already to initialize the
-	        // FileDialog
-	        String fileNameText = fileName.getText();
-	        if (fileNameText != null) {
-	            File file = new File(fileNameText);
-	            if (file.isDirectory())
-	                fd.setDirectory(fileNameText);
-	            else {
-	                fd.setFile(fileNameText);
-	                String parent = file.getParent();
-	                if (parent != null)
-	                    fd.setDirectory(parent);
-	            }
-	        }
-
-	        fd.setVisible(true);
-	        if (fd.getFile() != null && fd.getFile().length() > 0)
-	            fileName.setText(fd.getDirectory() + fd.getFile());
-            }
-        }
-    
-        /**
-         * This class prints out to a temporary file defaultFileName, send
-         * that to the printer, and then deletes the file after TIME_OUT
-         * milliseconds.
-         */
-        private class PrintThread extends Thread {
-            private String command;
-            private long TIME_OUT = 30000; // milliseconds
-
-            public PrintThread(String command) {
-	        this.command = command;
-            }
-
-            public void run() {
-	        try {
-	            Process printProcess = Runtime.getRuntime()
-	            .exec(command + " " /* NO18N */ + defaultFileName);
-	            try {
-	                sleep(TIME_OUT);
-	            } catch (InterruptedException e) {}
-	            printProcess.destroy();
-	            File tempFile = new File(PrintFrame.this.defaultFileName);
-	            tempFile.delete();
-	        } catch (IOException e) {
-	            // System.err.println(e); XXX
-	        }
-            }
-        }
-    
-        private  class WindowCloseListener extends  WindowAdapter {
-            public void windowClosing(WindowEvent e) {
-	        close(false);
-            }
-        }   
-    }  // class PrintFrame
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DCCircularTextField.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-    import java.awt.TextField;
-
-    /**
-     * This class is a DCTextField that allows values to wrap around over
-     * a maximum and a minimum value.
-     */
-    public class DCCircularTextField extends DCTextField {
-    private int maximum = 59;
-    private int minimum = 0;
- 
-    /**
-     * Constructor for DCCircularTextField.
-     * @param text the text to initilize the text field with
-     * @param columns the width of the text field in number of columns
-     */
-    public DCCircularTextField(String text, int columns) {
-	super(text, columns);
-    }
-
-    /**
-     * Sets the maximum allowable value for this field. If the current
-     * value is greater than this maximum value, then the current value is
-     * set to the maximum value.
-     * @param maxValue the maximum integer value for this text field.
-     */
-    public void setMaximum(int maxValue) {
-	maximum = maxValue;
-	if (getValue() > maxValue)
-	    super.setValue(maxValue);
-    }
-    
-    /**
-     * Sets the minimum allowable value for this field. If the current
-     * value is less than this minimum value, then the current value is
-     * set to the minimum value.
-     * @param minValue the minimum integer value for this text field.
-     */
-    public void setMinimum(int minValue) {
-	minimum = minValue;
-	if (getValue() < minValue)
-	    super.setValue(minValue);
-    }
-    
-    /**
-     * Increments the value of the textfield. It does a wrap around on
-     * the max value and min value.
-     * @param value how much to increment by. It can be negative if one
-     * desires to decrement.
-     */
-    protected final void increment(int value) {
-    
-    int current = getValue();
-    int next = (current + value);
-    
-    /*
-     * Now wrap it around this way:
-     */
-    
-    /*
-     *
-     * (1) Translate coordinates by 'minimum' to get the minimum to 0
-     *     eg. the legal range -1..5   to   0..6
-     *                      or  1..5   to   0..4
-     */
-    int transMax   = maximum - minimum;
-    int transValue = next    - minimum;
-    
-    /*
-     * (2) Now do circular math
-     */
-    transValue %= (transMax + 1); // modulo max+1 since max is permissible
-    transValue = (transValue < 0)? (transValue + (transMax+1)) : transValue;
-    
-    /*
-     * (3) Translate back to old coordinates
-     */
-    next = transValue + minimum;
-    
-    setValue(next);
-    }
-
-    /**
-     * Checks to see if the given value would be 
-     * valid for this text
-     * field. The check looks to see if the value is less than the
-     * minimum value or greater than the maximum value.
-     * @param newValue
-     * @return true if it will be valid, false otherwise.
-     */
-    public boolean checkValue(int value) {
-    if (value > maximum || value < minimum)
-        return false;
-    else
-        return true;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DCListener.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * This interface is implemented by any class that wants to be
- * notified to increment/decrement an associated value. (It is up to
- * the class to determine what this value is and how much to
- * increment/decrement it.)
- */
-    public interface DCListener {
-    public void increment();
-    public void decrement();
-
-    public void bigIncrement();
-    public void bigDecrement();
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DCPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-    import java.awt.*;
-    import java.awt.event.*;
-
-    /**
-     * Creates a panel with two buttons (+ and - side by side on it). The
-     * panel registers a DCListener with it that gets notified whenever
-     * these butons are clicked. <bold>The buttons may also be kept continously
-     * pressed for faster increments/decrements.</bold>
-     * <para>
-     * On a single click of the button, the listener is notified to
-     * increment/decrement itself by a small amount. When the button is kept
-     * pressed the following notifications are sent out for larger
-     * increments/decrements. (It is up to the listener to decide the
-     * increment/decrement corresponding to large/small.) Moreover, these
-     * notifications will be sent out much faster if the button is kept
-     * pressed. 
-     */
-
-    // The panel waits for a period of BIG_SLEEP_TIME before the faster
-    // increments are sent out. They, in turn, are sent out after
-    // intervals of SMALL_SLEEP_TIME. Therfore, an instance of this class
-    // is associated with 2 timers - a longer one that starts off and then
-    // schedules the shorter one. The shorter one keeps scheduling itself
-    // every time it wakes up.
-
-    public class DCPanel extends Panel {
-  
-    private Button plusButton;
-    private Button minusButton;
-  
-    private DCListener listener = null;
-
-    private Timer bigTimer;
-    private Timer smallTimer;
-
-    private static int BIG_SLEEP_TIME   = 1000;
-    private static int SMALL_SLEEP_TIME = 100;
-  
-    private boolean incrementFlag;
-
-    public DCPanel() {
-
-    setLayout(new GridLayout(1, 2));
-    
-    bigTimer     = new BigTimer();
-    smallTimer   = new SmallTimer();
-    
-    bigTimer.start();
-    smallTimer.start();
-    
-    plusButton = new DCButton("+");
-    minusButton = new DCButton("-");
-
-    add(plusButton);
-    add(minusButton);
-
-    }
-
-    /**
-     * Ensures that this component is not brought into focus by
-     * tabbing. This prevents the tab focus from moving in here instead
-     * of going to a text field.
-     * @return false always.
-     */
-    public boolean isFocusTraversable() {
-    return false;
-    }
-
-    /**
-     * Sets the listener for this tab.
-     * @param listener the DCListener that needs to be notified when the
-     * buttons on this panel are pressed.
-     * @return the old listener
-     */
-    public DCListener setListener(DCListener listener) {
-    DCListener oldListener = this.listener;
-    this.listener = listener;
-    return oldListener;
-    }
-
-    /**
-     * Removes the listener when it no longer need to be notified.
-     * @return the old listener
-     */
-    public DCListener removeListener() {
-    return setListener(null);
-    }
-
-    /**
-     * Kicks the times into action. Is called when a button is pressed.
-     */
-    private void startAction() {
-    bigTimer.request();
-    }
-
-    /**
-     * Stops the timers. Is called when a button is released.
-     */
-    private void stopAction() {
-    smallTimer.cancel();
-    bigTimer.cancel();
-    }
-
-    /**
-     * Notifies the listener about whether to increment or decrement and
-     * by how much.
-     * @param bigFlag true if the listener needs to increment/decrement
-     * by a large amount, false otherwise.
-     */
-    private void informListener(boolean bigFlag) {
-    // System.out.println("DCPanel.informListener: " + bigFlag);
-
-        if (listener != null) {
-
-            if (bigFlag) {
-	    // request a big change
-	    if (incrementFlag)
-	        listener.bigIncrement();
-	    else 
-	        listener.bigDecrement();
-            } else {
-	    // request a small change
-	    if (incrementFlag)
-	        listener.increment();
-	    else 
-	        listener.decrement();
-            }
-
-        }
-      
-    } // informListener
-
-
-    // ***********************************************
-    // 	 I N N E R    C L A S S E S   F O L L O W
-    // ***********************************************
-
-    /**
-     * A timer class since java does not have one.
-     */
-    private abstract class Timer extends Thread {
-    private boolean running = false;
-
-    /**
-     * Sleeps till the timer's services are requested using wait() and
-     * notify(). Then it does its task and goes back to sleep. And
-     * loops forever like this.
-     */
-    public void run() {
-        while (true) {
-	try {
-	  synchronized (this) {
-	    running = false;
-	    // Wait till the timer is required
-	    wait();
-	    running = true;
-	  }
-	  doTask();
-	} catch (InterruptedException e) {}
-        } // while loop
-    } // run method
-
-    protected void doTask() {} // bug in java workshop
-
-    /**
-     * Wakes up the timer.
-     */
-    public synchronized void request() {
-        notify();
-    }
-
-    /**
-     * Cancels the timer if it is running.
-     */
-    public void cancel() {
-        if (running) {
-	interrupt();
-        }
-    }
-
-    }// class Timer
-
-    /**
-     * The first stage of timer - is a longer timer. Wait to see if the
-     * user really wants to amek the increments/decrements go by fast.
-     */
-    private class BigTimer extends Timer {
-
-    /**
-     * Sleep for the long amount of time. Then inform the listener
-     * to have a bigIncrement/bigDecrement. After that, your job is
-     * done, schedule the smaller (faster) timer from this point on.
-     */
-    protected void doTask() {
-        try {
-	sleep(BIG_SLEEP_TIME);
-	informListener(true);
-	smallTimer.request();
-        } catch (InterruptedException e) {
-	informListener(false);
-        }
-    }
-
-    } // class BigTimer
-
-
-    /**
-     * The second stage of timers. This timer keeps rescheduling itself
-     * everytime it wakes up. In between this, it sends a notification
-     * to the listener to do a big Increment/Decrement.
-     */
-    private class SmallTimer extends Timer {
-
-    protected void doTask() {
-        try {
-	// loop forever and keep rescheduling yourself
-	while (true) {
-	  sleep(SMALL_SLEEP_TIME);
-	  informListener(true);
-	    }
-        } catch (InterruptedException e) {}
-    } // doTask method
-
-    } // class SmallTimer
-
-    /**
-     * A mouse listener to detect when a button has been
-     * pressed/released. One instance of this is bound to the plus
-     * button and the other instance to the minus button.
-     */
-    private class DCMouseListener extends MouseAdapter {
-    private boolean plusOrMinus;
-
-    /**
-     * Constructor for DCMouseListener.
-     * @param plusOrMinus true if this is a listener for the plus
-     *     button, false if it is for the minus button.
-     */
-    public DCMouseListener(boolean plusOrMinus) {
-        this.plusOrMinus = plusOrMinus;
-    }
-
-    /**
-     * Kicks in when the mouse is pressed.
-     */
-    public void mousePressed(MouseEvent e) {
-        incrementFlag = plusOrMinus;
-        DCPanel.this.startAction();
-    }
-
-    /**
-     * Kicks in when the mouse is released.
-     */
-    public void mouseReleased(MouseEvent e) {
-        incrementFlag = plusOrMinus;
-        DCPanel.this.stopAction();
-        }
-    } 
-
-    /**
-     * The button used by this DCPanel.
-     */  
-    private class DCButton extends Button {
-    public DCButton(String text) {
-        super(text);
-        if (text.equals("+"))
-           addMouseListener(new DCMouseListener(true));
-        else
-        addMouseListener(new DCMouseListener(false));
-    }
-
-    /**
-     * Make the button non-focus traversable so that it cannot be
-     * tabbed in to.
-     */
-    public boolean isFocusTraversable() {
-        return false;
-    }
-
-    } // DCButton
-
-
-    /**
-     * Test method for DCPanel class to see appearance.
-     */
-    public static void main(String args[]) {
-    Frame f = new Frame("Testing DCPanel");
-    f.add(new DCPanel());
-    f.setBounds(new Rectangle(100, 100, 100, 100));
-    f.setVisible(true);
-    }
-  
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DCTextField.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import java.awt.*;
-
-/**
- * This creates a text field for storing integers that implements the
- *  DCListener interface so that it can be notified to
- * increment/decrement its value. 
- */
-public class DCTextField extends TextField implements DCListener {
-
-	private int value;
-
-	private int bigIncrementValue = 1;
-
-    /**
-     * Constructor for DCTextField.
-     * @param text the text to initialize the text field with
-     * @param columns the width of the text field in number of columns
-     */
-    public DCTextField(String text, int columns) {
-	super(columns);
-	setValueFromText(text);
-    }
-
-    /**
-     * Sets the value of the big increment for this text field.
-     */
-    public void setBigIncrement(int value) {
-	bigIncrementValue = value;
-    }
-
-    /**
-     * Method from interface DCListener.
-     */
-    public void increment() {
-   	increment(1);
-    }
-
-    /**
-     * Method from interface DCListener.
-     */
-    public void decrement() {
-	increment(-1);
-    }
-
-    /**
-     * Method from interface DCListener.
-     */
-    public void bigIncrement() {
-	increment(bigIncrementValue);
-    }
-
-    /**
-     * Method from interface DCListener.
-     */
-    public void bigDecrement() {
-	increment(-1*bigIncrementValue);
-    }
-
-    /**
-     * Increments the value of the textfield. It does not increment it
-     * if this will lead to an invalid value.
-     * @param value how much to increment by.  It can be negative if one
-     * desires to decrement.
-     */
-    protected void increment(int value) {
-	setValue(getValue() + value);
-    }
-
-    /**
-     * The current integer value associated with this text field.
-     * @return the int value.
-     */
-    public int getValue() {
-	return value;
-    }
-
-    /**
-     * Sets the current integer value associated with this text
-     * field. The text field will display this value. If the value is not
-     * valid then the old value will remain in effect. 
-     */
-	public void setValue(int newValue) {
-		if (checkValue(newValue)) {
-			value = newValue;
-			setText(Integer.toString(newValue));
-		}
-	}
-
-    /**
-     * Sets the value for this text field from the given text.
-     * @param text the text that this text field shoudl contain.
-     * @exception NumberFormatException Thrown when the supplied text
-     * cannot be parsed in to an interger value.
-     */
-	public void setValueFromText(String text) throws NumberFormatException {
-		Integer i = Integer.valueOf(text);
-		setValue(i.intValue());
-	}
-
-    /**
-     * Checks to see if the given value
-     * would be valid for this text
-     * field. Classes deriving form this class should override this to
-     * provide whatever checks they desire.
-     * @param newValue
-     * @return true if it will be valid,
-     * false otherwise. This class
-     * returns true always for all integer values.
-     */
-    public boolean checkValue(int newValue) {
-	return true;
-    }
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DateTimeDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,564 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.awt.*;
-import java.awt.event.*;
-import java.text.*;
-import java.util.*;
-
-/**
- * This class creates a dialog box that helps the user enter date and
- * time with mouse clicks.  The dialog box need only be created
- * once. The Ok and Cancel buttons merely call setVisible with an
- *  argument of false.
- */
-
-// The layout will consist of 3 panels: topPanel contains the
-// different labels and fields. middlePanel contains the buttons
-// midnight and now. bottomPanel contains the buttons ok, cancel and
-// help. The last two panels are separated by a LineSeparator.
-
-public class DateTimeDialog extends Dialog {
-  
-    private boolean save;
-
-    private Frame parent;
-  
-    private DCPanel dateDCPanel;
-    private DCPanel yearDCPanel;
-    private DCPanel hourDCPanel;
-    private DCPanel minuteDCPanel;
-    private DCPanel secondDCPanel;
-  
-    private Choice month;
-  
-    private DCCircularTextField date;
-    private DCCircularTextField hour;
-    private DCCircularTextField second;
-    private DCCircularTextField minute;
-    private DCTextField year;
-  
-    private Button ok;
-    private Button cancel;
-    private Button help;
-    private Button now;
-    private Button midnight;
-
-    private HelpDialog hd = null;
-  
-    private Panel topPanel;
-    private Panel middlePanel;
-    private Panel bottomPanel;
-  
-    private GregorianCalendar calendar = null;
-    private static int MONTH_LEN[] = {31, 28, 31, 30, 31, 30, 31,
-                                      31, 30, 31, 30, 31};
-    private static DateFormat df =
-    DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
-				 DateFormat.MEDIUM);
-    private static Toolkit toolkit = Toolkit.getDefaultToolkit();
-  
-  // For I18N
-    private static ResourceBundle rb =
-    ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-    private static ResourceBundle hrb =
-    ResourceBundle.getBundle("HelpData" /* NOI18N */); 
-
-    /**
-     * Constructor that lays out the componeents and sets the different
-     * event handlers. 
-     */
-    public DateTimeDialog(Frame parent, Color background, Color foreground) {
-    super(parent, getString("SEAM Date/Time Helper"), true);
-    
-    this.parent = parent;
-
-    setLayout(new GridBagLayout());
-    addLabels();
-    addFields(background, foreground);
-    addDCPanels();
-    addButtons();
-    addFocusListeners();
-    setCurrentTime();
-    setSize(250, 300);
-    setResizable(false);
-    
-    addWindowListener(new DCWindowListener());
-    //      initializeFocusOnTextField();
-    }
-
-    /**
-     * Adds the labels only
-     */
-    private void addLabels() {
-    
-    GridBagConstraints gbc = new GridBagConstraints();
-    gbc.weighty = 1;
-    
-    topPanel = new Panel();
-    topPanel.setLayout(new GridBagLayout());
-    gbc.gridwidth = GridBagConstraints.REMAINDER;    
-    gbc.fill = GridBagConstraints.BOTH;
-    gbc.anchor = GridBagConstraints.CENTER;
-    gbc.gridx = 0;
-    gbc.gridy = 0;
-    add(topPanel, gbc);
-    
-    gbc.fill = GridBagConstraints.NONE;
-    gbc.anchor = GridBagConstraints.EAST;
-    gbc.gridx = 0;
-    gbc.gridwidth = 1;
-    
-    gbc.gridy = 0;
-    topPanel.add(new Label(getString("Month")), gbc);
-    
-    gbc.gridy = 1;
-    topPanel.add(new Label(getString("Date")), gbc);
-    
-    gbc.gridy = 2;
-    topPanel.add(new Label(getString("Year")), gbc);
-    
-    gbc.gridy = 3;
-    topPanel.add(new Label(getString("Hour")), gbc);
-    
-    gbc.gridy = 4;
-    topPanel.add(new Label(getString("Minute")), gbc);
-    
-    gbc.gridy = 5;
-    topPanel.add(new Label(getString("Second")), gbc);
-    }
-  
-    /**
-     * Adds the fields that will store the month, year, date, hour,
-     * minute and second.
-     */
-    private void addFields(Color background, Color foreground) {
-    
-    GridBagConstraints gbc = new GridBagConstraints();
-    gbc.weighty = 1;
-    
-    month = new Choice();
-    initializeMonth();
-    
-    date = new DCCircularTextField("1", 2);
-    date.setMinimum(1);
-    date.setBackground(background);
-    date.setForeground(foreground);
-
-    hour = new DCCircularTextField("00", 2);
-    hour.setMaximum(23);
-    hour.setBackground(background);
-    hour.setForeground(foreground);
-    minute = new DCCircularTextField("00", 2);
-    minute.setBackground(background);
-    minute.setForeground(foreground);
-    second = new DCCircularTextField("00", 2);
-    second.setBackground(background);
-    second.setForeground(foreground);
-    
-    year  = new DCTextField("2000", 4);
-    year.setBackground(background);
-    year.setForeground(foreground);
-    
-    Panel tempPanel = new Panel();
-    tempPanel.add(month);
-    gbc.gridwidth = GridBagConstraints.REMAINDER;
-    gbc.fill = GridBagConstraints.HORIZONTAL;
-    gbc.anchor = GridBagConstraints.WEST;
-    gbc.gridx = 1;
-    gbc.gridy = 0;
-    topPanel.add(tempPanel, gbc);
-    
-    
-    // Remaining fields are in topPanel
-    gbc.gridwidth = 1;
-    gbc.fill = GridBagConstraints.NONE;
-    gbc.gridx = 1;
-    
-    gbc.gridy = 1;
-    topPanel.add(date, gbc);
-    
-    gbc.gridy = 2;
-    topPanel.add(year, gbc);
-    
-    gbc.gridy = 3;
-    topPanel.add(hour, gbc);
-    
-    gbc.gridy = 4;
-    topPanel.add(minute, gbc);
-    
-    gbc.gridy = 5;
-    topPanel.add(second, gbc);
-    
-    }
-
-  // Adds the panels with the +/- buttons for each DCField
-    private void addDCPanels() {
-    
-    GridBagConstraints gbc = new GridBagConstraints();
-    gbc.weighty = 1;
-    
-    gbc.gridx = 2;
-    gbc.gridwidth = GridBagConstraints.REMAINDER;
-    gbc.gridheight = 1;
-    gbc.fill = GridBagConstraints.NONE;
-    
-    dateDCPanel = new DCPanel();
-    yearDCPanel = new DCPanel();
-    hourDCPanel = new DCPanel();
-    minuteDCPanel = new DCPanel();
-    secondDCPanel = new DCPanel();
-    
-    gbc.gridy = 1;
-    topPanel.add(dateDCPanel, gbc);
-    
-    gbc.gridy = GridBagConstraints.RELATIVE;
-    topPanel.add(yearDCPanel, gbc);
-    topPanel.add(hourDCPanel, gbc);
-    topPanel.add(minuteDCPanel, gbc);
-    topPanel.add(secondDCPanel, gbc);
-    
-    dateDCPanel.setListener(date);
-    yearDCPanel.setListener(year);
-    hourDCPanel.setListener(hour);
-    minuteDCPanel.setListener(minute);
-    secondDCPanel.setListener(second);
-    
-    }
-
-
-    /**
-     * Sets the strings in the month pull-down menu. Also adds a listener
-     * that will modify the maximum date allowed depending on the month.
-     */
-    private void initializeMonth() {
-    DateFormatSymbols dfSymbols = new DateFormatSymbols();
-    String[] monthStrings = dfSymbols.getMonths();
-    
-        month.removeAll();
-    
-        for (int i = 0; i < monthStrings.length; i++) {
-	month.add(monthStrings[i]);
-        }
-
-        month.addItemListener(new DCMonthChangeListener());
-    }
-
-  // Adds all the buttons
-    private void addButtons() {
-
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weighty = 1;
-
-
-        middlePanel = new Panel();
-        now  = new Button(getString("Now"));
-        midnight	= new Button(getString("Midnight"));
-        middlePanel.add(midnight);
-        middlePanel.add(now);
-        gbc.fill = GridBagConstraints.HORIZONTAL;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.gridx = 0;
-        gbc.gridy = 1;
-        add(middlePanel, gbc);
-
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.gridheight = 1;
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.gridx = 0;
-        gbc.gridy = 2;
-        add(new LineSeparator(), gbc);
-
-        bottomPanel = new Panel();
-        ok = new Button(getString("OK"));
-        cancel =	new Button(getString("Cancel"));
-        help = new Button(getString("Help"));
-        bottomPanel.add(ok);
-        bottomPanel.add(cancel);
-        bottomPanel.add(help);
-        gbc.fill = GridBagConstraints.HORIZONTAL;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        gbc.gridx = 0;
-        gbc.gridy = 3;
-        add(bottomPanel, gbc);
-
-        DCButtonListener bl = new DCButtonListener();
-        ok.addActionListener(bl);
-        cancel.addActionListener(bl);
-        help.addActionListener(bl);
-        now.addActionListener(bl);
-        midnight.addActionListener(bl);
-
-    }
-
-    /**
-     * Adds a listener to all the text fields so that when they go out
-     * of focus (by tab or clicking), their values are checked for
-     * errors.
-     */
-    private void addFocusListeners() {
-    FocusListener fl = new DCFocusListener();
-    date.addFocusListener(fl);
-    year.addFocusListener(fl);
-    hour.addFocusListener(fl);
-    minute.addFocusListener(fl);
-    second.addFocusListener(fl);
-    }
-
-    /**
-     * Closes (hides) the dialog box when the user is done
-     * @param save true if the box is being dismissed by clicking on
-     * "ok" and the user wants to retain the modified value, false
-     * otherwise. 
-     */
-    private void dateTimeDialogClose(boolean save) {
-        if (save == true) {
-	if (!updateFromGui())
-	   return;
-    }
-    this.save = save;
-    setVisible(false);
-    }
-
-    /**
-     * Checks to see is all text fields contain valid values.
-     * @return true if all are valid, false otherwise.
-     */
-    private boolean updateFromGui() {
-        return (checkErrorAndSet(date) && checkErrorAndSet(year) &&
-	        checkErrorAndSet(hour) && checkErrorAndSet(minute) &&
-	        checkErrorAndSet(second));
-    }
-
-    /**
-     * Checks the value stored as text in the field and sets its numeric
-     * value to that if it is legitimate.
-     * @return true if the value was legitimate and got set, false
-     * otherwise.
-     */
-    private boolean checkErrorAndSet(DCTextField tf) {
-        int i = 0;
-        boolean errorState = false;
-        try {
-	i = new Integer(tf.getText().trim()).intValue();
-	errorState = !tf.checkValue(i);
-        } catch (NumberFormatException e2) {
-	errorState =  true;
-        }	
-        if (errorState) {
-	tf.selectAll();
-	toolkit.beep();
-        }
-        else
-	tf.setValue(i);
-        return !errorState;
-    }
-
-    /**
-     * Checks if the user requested that the value in this
-     * DateTimeDialog be used e.g., by clicking on "Ok" instead of
-     * "Cancel."
-     * @return true if the user wants to save the value in the
-     * DateTimeDialog, false otherwise.
-     */
-
-    public boolean isSaved() {
-        return save;
-    }
-
-    /**
-     * Sets the date and time in fields to the current date and time.
-     */
-    public void setCurrentTime() {
-        setDate(new Date());
-    }
-
-    /**
-     * Sets the current date of the DateTimeDialog and updates the gui
-     *   components to reflect that.
-     * @param date the Date to set it to.
-     */
-    public void setDate(Date newDate) {
-        calendar = new GregorianCalendar();
-        calendar.setTime(newDate);
-
-    // update gui components now
-
-    year.setValue(calendar.get(Calendar.YEAR));
-    month.select(calendar.get(Calendar.MONTH));
-    date.setValue(calendar.get(Calendar.DATE));
-    
-    // Make sure the date is in the valid range for the given month
-    fixDateField();
-    
-    hour.setValue(calendar.get(Calendar.HOUR_OF_DAY));
-    minute.setValue(calendar.get(Calendar.MINUTE));
-    second.setValue(calendar.get(Calendar.SECOND));
-
-    }
-
-    /**
-     * Set the time fields to midnight, i.e., clears them.
-     */
-    private void setMidnight() {
-	    hour.setValue(0);
-	    minute.setValue(0);
-	    second.setValue(0);
-    }
-
-    /**
-     * Make sure the date does not exceed the maximum allowable value
-     * for the currently selected month.
-     */
-    private void fixDateField() {
-        int monthIndex = month.getSelectedIndex();
-        int max = MONTH_LEN[monthIndex];
-        date.setMaximum(calendar.isLeapYear(year.getValue()) &&
-	        monthIndex == 1 ? max + 1 : max);
-    }
-    
-  // * **********************************************
-  // 	 I N N E R    C L A S S E S   F O L L O W
-  // ***********************************************
-    
-    /**
-     * Listener for closing the dialog box through the window close
-     * menu.
-     */
-    private class DCWindowListener extends WindowAdapter {
-    public  void windowClosing(WindowEvent e) {
-        dateTimeDialogClose(false);
-        }
-    }
-  
-    /**
-     * Listener for any change in the month selected through the
-     * pull down menu
-     */
-    private class DCMonthChangeListener implements ItemListener {
-    public void itemStateChanged(ItemEvent e) {
-        fixDateField();
-    }
-    }
-
-    /**
-     * Listener for all the buttons. The listener is shared for the sake
-     * of reducing the number of overall listeners.
-     * TBD: I18N the help
-     */
-    private class DCButtonListener implements ActionListener {
-    public void actionPerformed(ActionEvent e) {
-        if (e.getSource() == ok) {
-	DateTimeDialog.this.dateTimeDialogClose(true);
-        }
-        else
-	if (e.getSource() == cancel) {
-    	  DateTimeDialog.this.dateTimeDialogClose(false);
-	}
-	else
-	  if (e.getSource() == now) {
-	    DateTimeDialog.this.setCurrentTime();
-	  }
-	  else
-	    if (e.getSource() == midnight) {
-		DateTimeDialog.this.setMidnight();
-	    }
-	    else
-               if (e.getSource() == help) {
-		if (hd != null)
-		  hd.show();
-		else {
-		  hd = new
-		    HelpDialog(DateTimeDialog.this.parent,
-			getString("Help for Date and Time Dialog"), false);
-		  hd.setVisible(true);
-		  hd.setText(getString(hrb, "DateTimeDialogHelp"));
-		   }
-	        }
-        } // actionPerformed
-    }
-
-    /**
-     * Listener for any change in focus with respect to the text
-     * fields. When a text field is going out of focus, it detemines if the
-     * text value in it is valid. If not, it returns focus to that text
-     * field.
-     */
-    private class DCFocusListener extends FocusAdapter {
-
-        public void focusLost(FocusEvent e) {
-	if (!checkErrorAndSet((DCTextField)e.getSource()))
-	  ((DCTextField)e.getSource()).requestFocus();
-        }
-    }
-
-    /**
-     * The string representation of the dialog box.
-     * @return a String which contians the date and time in locale
-     * default format, but to MEDIUM length formatting style.
-     */
-    public String toString() {
-        calendar = new GregorianCalendar(year.getValue(),
-				       month.getSelectedIndex(),
-				       date.getValue(),
-				       hour.getValue(),
-				       minute.getValue(),
-				       second.getValue());
-        return df.format(calendar.getTime());
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-    return (getString(rb, key));
-    }
-
-    private static final String getString(ResourceBundle rb, String key) {
-    try {
-	String res = rb.getString(key);
-	return res;
-    } catch (MissingResourceException e) {
-	System.out.println("Missing resource "+key+", using English.");
-	return key;
-        }
-    }
-
-    /*
-    public static final void main(String args[]) {
-    Frame f = new Frame();
-    //  while (true){
-        DateTimeDialog d = new DateTimeDialog(f, Color.white, Color.black);
-        d.setVisible(true);
-        System.out.println(d.toString());
-      //    }
-    }
-    */
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/DurationHelper.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,331 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-    import java.awt.*;
-    import java.awt.event.*;
-    import java.text.NumberFormat;
-    import java.util.ResourceBundle;
-    import java.util.MissingResourceException;
-
-    /**
-     * This creates a modal dialog box that lets the user enter a duration of
-     * time in seconds/minutes/hours/days/weeks/months/years.
-     */
-    public class DurationHelper extends Dialog {
-
-	private boolean save;
-
-	private Frame parent;
-
-	private Choice unit;
-	private TextField value;
-	private Label  total;
-
-	private Button ok;
-	private Button cancel;
-	private Button help;
-	private Button compute;
-
-        private HelpDialog hd = null;
-
-	// For I18N
-	    private static ResourceBundle rb =
-	    ResourceBundle.getBundle("GuiResource" /* NOI18N */);
-            private static ResourceBundle hrb =
-	    ResourceBundle.getBundle("HelpData" /* NOI18N */);
-
-	private static String[] units = { getString("Seconds"),
-	            			getString("Minutes"),
-		    			getString("Hours"),
-		    			getString("Days"),
-		    			getString("Weeks"),
-		    			getString("Months"),
-		    			getString("Years")	};
-	private static int[] unitMultipliers = {1, 60, 60*60, 60*60*24,
-                                                60*60*24*7, 60*60*24*30,
-                                                60*60*24*365	};
-        private static NumberFormat nf = NumberFormat.getInstance();
-	private static Toolkit toolkit = Toolkit.getDefaultToolkit();
-
-        /**
-         * Constructor for DurationHelper.
-         * @param parent the parent Frame to whom input will be blocked
-         * while this dialog box is begin shown(modal behaviour).
-         */
-    public DurationHelper(Frame parent,  Color background, Color foreground) {
-		super(parent, getString("SEAM Duration Helper"), true);
-
-		this.parent = parent;
-
-		setLayout(new GridBagLayout());
-		addLabels();
-		addFields(background, foreground);
-		addButtons();
-		setSize(350, 150);
-		setResizable(false);
-		addWindowListener(new DHWindowListener());
-    }
-
-    /**
-     * Adds all the labels.
-     */
-    private void addLabels() {
-        GridBagConstraints gbc = new GridBagConstraints();
-	gbc.weightx = gbc.weighty = 1;
-	add(new Label(getString("Unit")), gbc);
-	add(new Label(getString("Value")), gbc);
-
-	gbc.gridx = 3;
-	gbc.gridy = 0;
-	add(new Label(getString("Seconds")), gbc);
-    }
-
-    /**
-     * Initializes the strings for the units.
-     */
-    private void initUnits() {
-        unit = new Choice();
-	for (int i = 0; i < units.length; i++)
-	    unit.add(units[i]);
-	unit.select(getString("Hours"));
-	unit.addItemListener(new ItemListener() {
-		public void itemStateChanged(ItemEvent e) {
-			DurationHelper.this.checkErrorAndSetTotal();
-		}
-	});
-    }
-
-    /**
-     * Adds all the fields
-     */
-    private void addFields(Color background, Color foreground) {
-        GridBagConstraints gbc = new GridBagConstraints();
-	gbc.weightx =  gbc.weighty = 1;
-	initUnits();
-	value = new TextField();
-	value.setBackground(background);
-	value.setForeground(foreground);
-	value.setColumns(10);
-
-        // TBD: make total large enough to hold the largest int
-        total = new Label("             " /* NO18N */,
-                            Label.RIGHT);
-	gbc.gridx = 0;
-	gbc.gridy = 1;
-	add(unit, gbc);
-	gbc.gridx = 1;
-	add(value, gbc);
-	gbc.gridx = 3;
-	add(total, gbc);
-
-	value.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-			DurationHelper.this.durationHelperClose(true);
-		}
-	});
-    }
-
-    /**
-     * Adds all the buttons.
-     */
-    private void addButtons() {
-
-        GridBagConstraints gbc = new GridBagConstraints();
-	gbc.weightx =  gbc.weighty = 1;
-
-	gbc.gridwidth = GridBagConstraints.REMAINDER;
-	gbc.fill = GridBagConstraints.BOTH;
-	gbc.gridx = 0;
-	gbc.gridy = 2;
-	gbc.insets = new Insets(0, 10, 0, 10);
-	add(new LineSeparator(), gbc);
-	gbc.insets = new Insets(0, 0, 0, 0);
-
-	Panel p = new Panel();
-	p.setLayout(new GridBagLayout());
-	ok = new Button(getString("OK"));
-	cancel =  new Button(getString("Cancel"));
-	help = new Button(getString("Help"));
-	gbc = new GridBagConstraints();
-        gbc.weightx =  gbc.weighty = 1;
-	p.add(ok, gbc);
-	p.add(cancel, gbc);
-	p.add(help, gbc);
-
-	ActionListener bl = new ButtonListener();
-	ok.addActionListener(bl);
-	cancel.addActionListener(bl);
-	help.addActionListener(bl);
-
-	gbc.gridy = 3;
-	gbc.gridwidth = GridBagConstraints.REMAINDER;
-	gbc.fill = GridBagConstraints.HORIZONTAL;
-	add(p, gbc);
-
-	gbc = new GridBagConstraints();
-	gbc.gridx = 2;
-	gbc.gridy = 1;
-	compute = new Button(getString("="));
-	add(compute, gbc);
-	compute.addActionListener(bl);
-
-    }
-
-    /**
-     * Updates the label called total.
-     * @return false if the text entry in the value
-     * field is not parseable, true otherwise.
-     */
-    private boolean checkErrorAndSetTotal() {
-        try {
-            String noSpaces = value.getText().trim();
-	    value.setText(noSpaces);
-	    Long l = Long.valueOf(noSpaces);
-	    total.setText(nf.format(l.longValue() *
-                unitMultipliers[unit.getSelectedIndex()]));
-        } catch (NumberFormatException e) {
-          value.requestFocus();
-          value.selectAll();
-          toolkit.beep();
-	  return false;
-        }
-
-	return true;
-    }
-
-    /**
-     * Hides the duration helper.
-     * @param save true if the user wants to save the current value in
-     * the dialog box, false if it is to be discarded. This is decided
-     * based on whether the user clicked on the "Ok" button or the
-     * "Cancel" button. Choosing the window close menu is equivalent to
-     *  clicking on "Cancel."
-     */
-    private void durationHelperClose(boolean save) {
-        if (save == true) {
-	    if (!checkErrorAndSetTotal())
-		return;
-	}
-	this.save = save;
-	setVisible(false);
-    }
-
-    /**
-     * Determine whether or not the user wanted to save the value in
-     * this Dialog box. The user indicates this by clicking on the Ok
-     * button to save it and on the Cancel button to discard it. Using the
-     * window close menu responds the same way as cancel. 
-     * @return true if the user wanted to use this value,
-     * false if it is to be discarded.
-     */
-    public boolean isSaved() {
-	return save;
-    }
-
-    /**
-     * The string representation of the contents of this dialog box.
-     * @return a String with the total number of seconds entered.
-     */
-    public String toString() {
-	return total.getText();
-    }
-
-    // * **********************************************
-    // 	 I N N E R    C L A S S E S   F O L L O W
-    // * **********************************************
-
-    /**
-     * Listener for closing the dialog box through the window close
-     * menu.
-     */
-    private class DHWindowListener extends WindowAdapter {
-	public  void windowClosing(WindowEvent e) {
-		durationHelperClose(false);
-	}
-    }
-
-    /**
-     * Listener for all the buttons.
-     * The listener is shared for the sake
-     * of reducing the number of overall listeners.
-     */
-    private class ButtonListener implements ActionListener {
-        public void actionPerformed(ActionEvent e) {
-            if (e.getSource() == ok) {
-                DurationHelper.this.durationHelperClose(true);
-	    } else if (e.getSource() == cancel) {
-                DurationHelper.this.durationHelperClose(false);
-	    } else if (e.getSource() == help) {
-                if (hd != null)
-                    hd.show();
-                else {
-                    hd = new HelpDialog(DurationHelper. this.parent,
-                        getString("Help for entering time duration"),
-                                    false, 5, 45);
-                    hd.setVisible(true);
-                    hd.setText(getString(hrb, "DurationHelperHelp"));
-                }
-            } else if (e.getSource() == compute) {
-                checkErrorAndSetTotal();
-            }
-        }
-    }
-
-    /**
-     * Call rb.getString(), but catch exception
-     * and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-	return (getString(rb, key));
-    }
-
-    private static final String getString(ResourceBundle rb, String key) {
-        try {
-	    String res = rb.getString(key);
-            return res;
-	} catch (MissingResourceException e) {
-		System.out.println("Missing resource "+key+", using English.");
-		return key;
-	}
-    }
-
-    /*
-     * A main method to test this class.
-     */
-    /*
-    public static void main(String args[]) {
-        Frame f = new Frame("Test DurationHelper");
-        f.setVisible(true); // for help dialog to use this as parent
-        DurationHelper dh = new DurationHelper(f, Color.white, Color.black);
-        dh.setVisible(true);
-        System.out.println("Save is " + dh.save);
-    }
-	  */
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/EncListDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,306 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- *
- * ident	"%Z%%M%	%I%	%E% SMI"
- */
-
-import java.awt.*;
-import java.awt.event.*;
-import java.text.*;
-import java.util.*;
-
-/*
- * This class creates a dialog box that helps the user select encryption types
- * with some mouse clicks.  The dialog box need only be created
- * once. The Ok and Cancel buttons merely call setVisible with an
- * argument of false.
- */
-
-// The layout will consist of 2 panels:
-// topPanel contains the dynamic list of encryption type check boxes.
-// bottomPanel contains the buttons ok, clear, cancel, and help.
-// The two panels are separated by a LineSeparator.
-
-public class EncListDialog extends Dialog {
-
-	private boolean save;
-
-	private int i;
-
-	private Frame parent;
-
-	private Button ok;
-	private Button clear;
-	private Button cancel;
-	private Button help;
-
-	private HelpDialog hd = null;
-
-	private Panel topPanel;
-	private Panel bottomPanel;
-
-	private static Toolkit toolkit = Toolkit.getDefaultToolkit();
-
-	private Kadmin kadmin;
-	private Checkbox cb[];
-	private Integer grp_num[];
-	private String encList = "";
-
-	// For I18N
-	private static ResourceBundle rb =
-	    ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-	private static ResourceBundle hrb =
-	    ResourceBundle.getBundle("HelpData" /* NOI18N */); 
-
-	/*
-	 * Constructor that lays out the components and sets the different
-	 * event handlers. 
-	 */
-	public EncListDialog(Frame parent, Color background, Color foreground,
-	    Kadmin session) {
-		super(parent, getString("SEAM Encryption Type List Helper"),
-		    true);
-
-		this.parent = parent;
-
-		this.kadmin = session;
-
-		setLayout(new GridBagLayout());
-		addCheckboxes();
-
-		addButtons();
-		setSize(250, 300);
-		setResizable(true);
-
-		addWindowListener(new DCWindowListener());
-	}
-
-	/*
-	 * Adds the check boxes only
-	 */
-	private void addCheckboxes() {
-
-		GridBagConstraints gbc = new GridBagConstraints();
-
-		gbc.weighty = 1;
-
-		topPanel = new Panel();
-		topPanel.setLayout(new GridBagLayout());
-		gbc.gridwidth = GridBagConstraints.REMAINDER;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.anchor = GridBagConstraints.CENTER;
-		gbc.gridx = 0;
-		gbc.gridy = 0;
-		add(topPanel, gbc);
-
-		gbc.fill = GridBagConstraints.NONE;
-		gbc.anchor = GridBagConstraints.WEST;
-		gbc.gridx = 0;
-		gbc.gridwidth = 1;
-
-		String et[] = kadmin.getEncList();
-
-		cb = new Checkbox[et.length];
-		grp_num = new Integer[et.length];
-
-		for (int i = 0; i < et.length; i++) {
-			String[] grp_enc = et[i].split(" ");
-			cb[i] = new Checkbox(grp_enc[1]);
-			CBListener cbl = new CBListener();
-			cb[i].addItemListener(cbl);
-			grp_num[i] = new Integer(grp_enc[0]);
-			gbc.gridy = i;
-			topPanel.add(cb[i], gbc);
-		}
-	}
-
-	// Adds all the buttons
-	private void addButtons() {
-
-		GridBagConstraints gbc = new GridBagConstraints();
-		gbc.weighty = 1;
-
-		gbc.gridwidth = GridBagConstraints.REMAINDER;
-		gbc.gridheight = 1;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.gridx = 0;
-		gbc.gridy = 2;
-		add(new LineSeparator(), gbc);
-
-		bottomPanel = new Panel();
-		ok = new Button(getString("OK"));
-		clear = new Button(getString("Clear"));
-		cancel = new Button(getString("Cancel"));
-		help = new Button(getString("Help"));
-		bottomPanel.add(ok);
-		bottomPanel.add(clear);
-		bottomPanel.add(cancel);
-		bottomPanel.add(help);
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.gridwidth = GridBagConstraints.REMAINDER;
-		gbc.gridx = 0;
-		gbc.gridy = 3;
-		add(bottomPanel, gbc);
-
-		DCButtonListener bl = new DCButtonListener();
-		ok.addActionListener(bl);
-		clear.addActionListener(bl);
-		cancel.addActionListener(bl);
-		help.addActionListener(bl);
-	}
-
-	/*
-	 * Closes (hides) the dialog box when the user is done
-	 * @param save true if the box is being dismissed by clicking on
-	 * "ok" and the user wants to retain the modified value, false
-	 * otherwise. 
-	 */
-	private void encListDialogClose(boolean save) {
-		this.save = save;
-		setVisible(false);
-	}
-
-	/*
-	 * Checks if the user requested that the value in this
-	 * EncListDialog be used e.g., by clicking on "Ok" instead of
-	 * "Cancel."
-	 * @return true if the user wants to save the value in the
-	 * EncListDialog, false otherwise.
-	 */
-
-	public boolean isSaved() {
-		return save;
-	}
-	/*
-	 * Sets the current enc list for the principal during modification.
-	 * @param enc types of current principal.
-	 */
-	public void setEncTypes(String e_str) {
-
-		if (e_str.compareTo("") == 0)
-			return;
-
-		String[] e_list = e_str.split(" ");
-
-		for (int i = 0; i < e_list.length; i++) {
-			for (int j = 0; j < cb.length; j++) {
-				if (cb[j].getLabel().compareTo(e_list[i])
-				    == 0) {
-					cb[j].setState(true);
-					break;
-				}
-			}
-		}
-	}
-
-	// ***********************************************
-	// 	 I N N E R    C L A S S E S   F O L L O W
-	// ***********************************************
-
-	/*
-	 * Listener for an annoying work around in deselection of a check box
-	 * in case the user doesn't want any items in a grouped list.
-	 */
-	private class CBListener implements ItemListener {
-
-		public void itemStateChanged(ItemEvent e) {
-			Checkbox c = (Checkbox) e.getItemSelectable();
-
-			if (e.getStateChange() == e.DESELECTED) {
-				c.setState(false);
-			} else if (e.getStateChange() == e.SELECTED) {
-				for (int i = 0; i < cb.length; i++) {
-				    if (c == cb[i]) {
-					for (int j = 0; j < cb.length; j++) {
-					    if (grp_num[j].equals(grp_num[i])
-						== true) {
-						cb[j].setState(false);
-					    }
-					}
-					break;
-				    }
-				}
-				c.setState(true);
-			// else what else is there
-			}
-		}
-	}
-
-	/*
-	 * Listener for closing the dialog box through the window close
-	 * menu.
-	 */
-	private class DCWindowListener extends WindowAdapter {
-
-		public void windowClosing(WindowEvent e) {
-			encListDialogClose(false);
-		}
-	}
-
-	/*
-	 * Listener for all the buttons. The listener is shared for the sake
-	 * of reducing the number of overall listeners.
-	 * TBD: I18N the help
-	 */
-	private class DCButtonListener implements ActionListener {
-
-		public void actionPerformed(ActionEvent e) {
-			if (e.getSource() == ok) {
-				EncListDialog.this.encListDialogClose(true);
-			} else if (e.getSource() == cancel) {
-				EncListDialog.this.encListDialogClose(false);
-			} else if (e.getSource() == clear) {
-				for (int i = 0; i < cb.length; i++) {
-					cb[i].setState(false);
-				}
-			} else if (e.getSource() == help) {
-				if (hd != null)
-					hd.show();
-				else {
-					hd = new HelpDialog(
-					    EncListDialog.this.parent,
-				   	    getString(
-					    "Help for Encryption Type Dialog"),
-				   	    false);
-					hd.setVisible(true);
-					hd.setText(getString(hrb,
-					     "EncryptionTypeDialogHelp"));
-				}
-			}
-		} // actionPerformed
-	}
-
-	/*
-	 * The string representation of the dialog box.
-	 * @return a String which contians the encryption type list
-	 */
-	public String toString() {
-
-		for (int i = 0; i < cb.length; i++) {
-			if (cb[i].getState() == true)
-				encList = encList.concat(cb[i].getLabel() +
-				    " ");
-		}
-		return encList;
-	}
-
-	/*
-	 * Call rb.getString(), but catch exception and return English
-	 * key so that small spelling errors don't cripple the GUI
-	 */
-	private static final String getString(String key) {
-		return (getString(rb, key));
-	}
-
-	private static final String getString(ResourceBundle rb, String key) {
-		try {
-			String res = rb.getString(key);
-			return res;
-		} catch (MissingResourceException e) {
-			System.out.println("Missing resource "+key+
-			    ", using English.");
-			return key;
-		}
-	}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/LineSeparator.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-import java.awt.*;
-
-/**
- * This class creates a line separator by drawing a 3D rectangle.
- */
-public class LineSeparator extends Canvas {
-
-	/**
-         * Paints the 3D rectangle
-         * @param g The graphics context to use for painting.
-         */
-	public void paint(Graphics g) {
-		Dimension d = getSize();
-		g.setColor(getBackground());
-		g.fill3DRect(0, (int)(d.height/2), d.width, 2, true);
-	}
-
-	/**
-         * Main method to test the class.
-         */
-	public static void main(String args[]) {
-		Frame f = new Frame("Test LineSeparator");
-		f.setBounds(10, 10, 50, 50);
-		f.add(new LineSeparator());
-		f.setVisible(true);
-	}
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/dchanger/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-#
-# 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
-#
-# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
-include ../../../../../Makefile.master
-include ../../../../Makefile.cmd
-
-JAVAFLAGS= -nowarn -O
-
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-
-CLASSES=DCPanel DCListener DCTextField DCCircularTextField DateTimeDialog \
-	DurationHelper LineSeparator EncListDialog
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=../classdir/%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-CLASSPATH=$(GUIDIR):$(GUIDIR)/classdir:$(GUIDIR)/util:$(GUIDIR)/dataclasses:$(GUIDIR)/dchanger:$(GUIDIR)/native:$(GUIDIR)/visualrt:$(GUIDIR)/visualrt.jar:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-../classdir/%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d ../classdir -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-echo:
-	@echo $(CLASSES)
-	@echo $(JFILES)
-	@echo $(CLFILES)
-	@echo $(SUFFIXES)
-
-clobber : clobber_local
-
-clean: clean_local
-
-clobber_local: clean_local
-
-clean_local:
-	$(RM) $(CLFILES)
-	$(RM) ./*.class
-
-FRC:
--- a/usr/src/cmd/krb5/kadmin/gui/gkadmin.template	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#!/bin/sh
-#
-# 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
-#
-#
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Launch script for krb5 admin GUI
-#
-
-JAVA=/usr/java
-
-/bin/env LD_LIBRARY_PATH=$JAVA/lib:/usr/dt/lib:/usr/lib/krb5 \
-\
-$JAVA/bin/java -classpath \
-\
-/usr/lib/krb5/ListResourceBundle:/usr/lib/krb5:/usr/lib/krb5/gkadmin.jar:/usr/lib/krb5/visualrt.jar:$JAVA/lib/rt.jar:$JAVA/lib/i18n.jar \
-\
-KdcGuiMain &
--- a/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.c	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1793 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (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
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <jni.h>
-#include <kadm5/admin.h>
-#include <adm_err.h>
-#include <sys/signal.h>
-#include <netdb.h>
-#include <iconv.h>
-#include <langinfo.h>
-#include <clnt/client_internal.h>
-#include <etypes.h>
-
-static int Principal_to_kadmin(JNIEnv *, jobject, int, krb5_principal *,
-	kadm5_principal_ent_rec *, long *, char **, char **,
-	kadm5_config_params *);
-static int kadmin_to_Principal(kadm5_principal_ent_rec *, JNIEnv *, jobject,
-	const char *, char *);
-static int Policy_to_kadmin(JNIEnv *, jobject, int, kadm5_policy_ent_rec *,
-	long *);
-static int kadmin_to_Policy(kadm5_policy_ent_rec *, JNIEnv *, jobject);
-static int edit_comments(kadm5_principal_ent_rec *, krb5_principal, char *);
-static int format_comments(kadm5_principal_ent_rec *, long *, char *);
-static int extract_comments(kadm5_principal_ent_rec *, char **);
-static int set_password(krb5_principal, char *, kadm5_config_params *);
-static void handle_error(JNIEnv *, int);
-static char *qualify(char *name);
-
-static void *server_handle = NULL;
-static char *cur_realm = NULL;
-
-static iconv_t cd = (iconv_t)-1;
-
-static char *
-qualify(char *name)
-{
-	char *fullname;
-	int len;
-
-	if (strchr(name, '@') != NULL)
-		return (strdup(name));
-	len = strlen(name) + strlen(cur_realm) + 2;
-	fullname = malloc(len);
-	if (fullname)
-		snprintf(fullname, len, "%s@%s", name, cur_realm);
-	return (fullname);
-}
-
-
-/*
- * Class:     Kadmin
- * Method:    sessionInit
- * Signature:
- * (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_sessionInit(JNIEnv *env, jobject obj, jstring name,
-	jstring passwd, jstring realm, jstring server, jint port)
-{
-	const char *cname = NULL, *cpasswd = NULL;
-	const char *crealm = NULL, *cserver = NULL;
-	int cport = 749;
-	kadm5_config_params params;
-	kadm5_ret_t ret;
-	char *ka_service = NULL;
-	char *ka_name = NULL;
-	char *codeset;
-	int len;
-
-	if (server_handle != NULL)
-		kadm5_destroy(server_handle);
-
-	if (cd == (iconv_t)-1) {
-		codeset = nl_langinfo(CODESET);
-		/* fprintf(stderr, "codeset returned %s\n", codeset);  XXX */
-		if (strcmp("UTF-8", codeset) != 0)
-			cd = iconv_open("UTF-8", codeset);
-	}
-
-	/* Get hold of string arguments */
-	cname = (*env)->GetStringUTFChars(env, name, NULL);
-	if (!cname) {
-		ret = KADM_JNI_STRING;
-		goto err;
-	}
-	cpasswd = (*env)->GetStringUTFChars(env, passwd, NULL);
-	if (!cpasswd) {
-		ret = KADM_JNI_STRING;
-		goto err;
-	}
-	crealm = (*env)->GetStringUTFChars(env, realm, NULL);
-	if (!crealm) {
-		ret = KADM_JNI_STRING;
-		goto err;
-	}
-	if (cur_realm)
-		free(cur_realm);
-	cur_realm = strdup(crealm);
-	cserver = (*env)->GetStringUTFChars(env, server, NULL);
-	if (!cserver) {
-		ret = KADM_JNI_STRING;
-		goto err;
-	}
-	if (port != 0)
-		cport = port;
-	else {
-		/*
-		 * Look for a services map entry
-		 * Note that this will be in network byte order,
-		 * and that the API requires native byte order.
-		 */
-		struct servent *rec = getservbyname("kerberos-adm", NULL);
-		if (rec)
-			cport = (int)ntohs((uint16_t)rec->s_port);
-	}
-
-	/*
-	 * Build kadm5_config_params with realm name and server name
-	 */
-	memset((char *)&params, 0, sizeof (params));
-	params.realm = (char *)crealm;
-	params.admin_server = (char *)cserver;
-	params.mask = KADM5_CONFIG_REALM | KADM5_CONFIG_ADMIN_SERVER;
-	params.kadmind_port = cport;
-	params.mask |= KADM5_CONFIG_KADMIND_PORT;
-	len = strlen("kadmin") + strlen(cserver) + 2;
-	ka_service = malloc(len);
-	if (!ka_service) {
-		ret = KADM_ENOMEM;
-		goto err;
-	}
-	snprintf(ka_service, len, "%s@%s", "kadmin", cserver);
-	ka_name = qualify((char *)cname);
-	if (!ka_name) {
-		ret = KADM_ENOMEM;
-		goto err;
-	}
-
-	ret = kadm5_init_with_password(ka_name, (char *)cpasswd,
-	    ka_service, &params, KADM5_STRUCT_VERSION, KADM5_API_VERSION_2,
-	    NULL, &server_handle);
-
-	/* Release string arguments and variables */
-	if (cname)
-		(*env)->ReleaseStringUTFChars(env, name, cname);
-	if (cpasswd)
-		(*env)->ReleaseStringUTFChars(env, passwd, cpasswd);
-	if (crealm)
-		(*env)->ReleaseStringUTFChars(env, realm, crealm);
-	if (cserver)
-		(*env)->ReleaseStringUTFChars(env, server, cserver);
-	if (ka_name)
-		free(ka_name);
-	if (ka_service)
-		free(ka_service);
-
-err:
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    sessionExit
- * Signature: ()V
- */
-/*ARGSUSED*/
-JNIEXPORT void JNICALL
-Java_Kadmin_sessionExit(JNIEnv *env, jobject obj)
-{
-	kadm5_ret_t ret;
-
-	/*
-	 * Use persistant handle to close
-	 */
-	ret = kadm5_destroy(server_handle);
-	if (ret)
-		handle_error(env, ret);
-	server_handle = NULL;
-	if (cur_realm) {
-		free(cur_realm);
-		cur_realm = NULL;
-	}
-}
-
-/*
- * Class:     Kadmin
- * Method:    getPrivs
- * Signature: ()I
- */
-/*ARGSUSED*/
-JNIEXPORT jint JNICALL
-Java_Kadmin_getPrivs(JNIEnv *env, jobject obj)
-{
-	long privs = 0;
-	kadm5_ret_t ret;
-
-	/*
-	 * Get ACL for this user
-	 */
-	ret = kadm5_get_privs(server_handle, &privs);
-	if (ret)
-		handle_error(env, ret);
-	return (privs);
-}
-
-static int
-charcmp(const void *a, const void *b)
-{
-	char    **sa = (char **)a;
-	char    **sb = (char **)b;
-
-	return (strcmp(*sa, *sb));
-}
-
-/*
- * Class:     Kadmin
- * Method:    getEncList
- * Signature: ()[Ljava/lang/String;
- */
-
-/*ARGSUSED*/
-JNIEXPORT jobjectArray JNICALL
-Java_Kadmin_getEncList(JNIEnv *env,
-	jobject obj)
-{
-	jclass stringclass;
-	jobjectArray elist;
-	jstring s;
-	kadm5_ret_t ret;
-	int i, j, k, *grp = NULL;
-	krb5_int32 num_keysalts;
-	krb5_key_salt_tuple *keysalts;
-	krb5_enctype e_type;
-	kadm5_server_handle_t handle;
-	char *e_str, e_buf[BUFSIZ];
-	krb5_error_code kret;
-	krb5_boolean similar;
-	krb5_context context;
-
-	if (kret = krb5_init_context(&context)) {
-		handle_error(env, kret);
-		return (NULL);
-	}
-
-	/*
-	 * Create and populate a Java String array
-	 */
-	stringclass = (*env)->FindClass(env, "java/lang/String");
-	if (!stringclass) {
-		handle_error(env, KADM_JNI_CLASS);
-		return (NULL);
-	}
-
-	handle = server_handle;
-	num_keysalts = handle->params.num_keysalts;
-	keysalts = handle->params.keysalts;
-	elist = (*env)->NewObjectArray(env, num_keysalts, stringclass, NULL);
-	if (!elist) {
-		handle_error(env, KADM_JNI_ARRAY);
-		return (NULL);
-	}
-
-	/*
-	 * Populate groupings for encryption types that are similar.
-	 */
-	grp = malloc(sizeof (int) * num_keysalts);
-	if (grp == NULL) {
-		handle_error(env, errno);
-		return (NULL);
-	}
-	for (i = 0; i < num_keysalts; i++)
-		grp[i] = i;
-
-	for (i = 0; i < num_keysalts; i++) {
-		if (grp[i] != i)
-			continue;
-		for (j = i + 1; j < num_keysalts; j++) {
-			if (kret = krb5_c_enctype_compare(context,
-			    keysalts[i].ks_enctype, keysalts[j].ks_enctype,
-			    &similar)) {
-				free(grp);
-				handle_error(env, kret);
-				return (NULL);
-			}
-			if (similar)
-				grp[j] = grp[i];
-		}
-	}
-
-	/*
-	 * Populate from params' supported enc type list from the initial kadmin
-	 * session, this is documented default that the client can handle.
-	 */
-	for (i = 0; i < num_keysalts; i++) {
-		e_type = keysalts[i].ks_enctype;
-
-		for (j = 0; j < krb5_enctypes_length; j++) {
-			if (e_type == krb5_enctypes_list[j].etype) {
-				e_str = krb5_enctypes_list[j].in_string;
-				(void) snprintf(e_buf, sizeof (e_buf),
-				    "%d %s:normal", grp[i], e_str);
-				s = (*env)->NewStringUTF(env, e_buf);
-				if (!s) {
-					free(grp);
-					handle_error(env, KADM_JNI_NEWSTRING);
-					return (NULL);
-				}
-				(*env)->SetObjectArrayElement(env, elist, i, s);
-				break;
-			}
-		}
-	}
-
-	free(grp);
-	return (elist);
-}
-
-/*
- * Class:     Kadmin
- * Method:    getPrincipalList
- * Signature: ()[Ljava/lang/String;
- */
-/*ARGSUSED*/
-JNIEXPORT jobjectArray JNICALL
-Java_Kadmin_getPrincipalList(JNIEnv *env,
-	jobject obj)
-{
-	jclass stringclass;
-	jobjectArray plist;
-	jstring s;
-	char **princs;
-	int i, count;
-	kadm5_ret_t ret;
-
-	/*
-	 * Get the list
-	 */
-	ret = kadm5_get_principals(server_handle, NULL, &princs, &count);
-	if (ret) {
-		handle_error(env, ret);
-		return (NULL);
-	}
-	qsort(princs, count, sizeof (princs[0]), charcmp);
-
-	/*
-	 * Create and populate a Java String array
-	 */
-	stringclass = (*env)->FindClass(env, "java/lang/String");
-	if (!stringclass) {
-		handle_error(env, KADM_JNI_CLASS);
-		return (NULL);
-	}
-	plist = (*env)->NewObjectArray(env, count, stringclass, NULL);
-	if (!plist) {
-		handle_error(env, KADM_JNI_ARRAY);
-		return (NULL);
-	}
-	for (i = 0; i < count; i++) {
-		s = (*env)->NewStringUTF(env, princs[i]);
-		if (!s) {
-			handle_error(env, KADM_JNI_NEWSTRING);
-			return (NULL);
-		}
-		(*env)->SetObjectArrayElement(env, plist, i, s);
-	}
-	kadm5_free_name_list(server_handle, princs, count);
-	return (plist);
-}
-
-/*
- * Class:     Kadmin
- * Method:    getPrincipalList2
- * Signature: ()Ljava/lang/String;
- */
-/*ARGSUSED*/
-JNIEXPORT jstring JNICALL
-Java_Kadmin_getPrincipalList2(JNIEnv *env, jobject obj)
-{
-	jstring plist;
-	char **princs;
-	char *princlist = NULL;
-	int i, count, n, used = 0, size = 0;
-	kadm5_ret_t ret;
-
-	/*
-	 * Get the list
-	 */
-	ret = kadm5_get_principals(server_handle, NULL, &princs, &count);
-	if (ret) {
-		handle_error(env, ret);
-		return (NULL);
-	}
-	qsort(princs, count, sizeof (princs[0]), charcmp);
-
-	/*
-	 * Build one large C string to hold list
-	 */
-	used = 0;
-	princlist = malloc(size += 2048);
-	if (!princlist)
-		return (NULL);
-	for (i = 0; i < count; i++) {
-		n = strlen(princs[i]);
-		if (used + n + 2 > size) {
-			princlist = realloc(princlist, size += 2048);
-			if (!princlist)
-				return (NULL);
-		}
-		strncpy(&princlist[used], princs[i], n);
-		used += n + 1;
-		princlist[used-1] = ' ';
-		princlist[used] = '\0';
-	}
-
-	/*
-	 * Create a Java String
-	 */
-	plist = (*env)->NewStringUTF(env, princlist);
-	free(princlist);
-	kadm5_free_name_list(server_handle, princs, count);
-	return (plist);
-}
-
-
-/*
- * Class:     Kadmin
- * Method:    loadPrincipal
- * Signature: (Ljava/lang/String;LPrincipal;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_loadPrincipal(JNIEnv *env, jobject obj, jstring name, jobject prin)
-{
-	const char *cname;
-	char *fullname;
-	char *comments = NULL;
-	kadm5_principal_ent_rec pr_rec;
-	kadm5_ret_t ret;
-	long mask = KADM5_PRINCIPAL_NORMAL_MASK | KADM5_TL_DATA |
-	    KADM5_KEY_DATA;
-	krb5_principal kprin = NULL;
-	krb5_context context;
-
-	cname = (*env)->GetStringUTFChars(env, name, NULL);
-	if (!cname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-	fullname = qualify((char *)cname);
-	if (!fullname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-
-	/*
-	 * Get the principal
-	 */
-	ret = krb5_init_context(&context);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	ret = krb5_parse_name(context, fullname, &kprin);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	memset((char *)&pr_rec, 0, sizeof (pr_rec));
-	ret = kadm5_get_principal(server_handle, kprin, &pr_rec, mask);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	/*
-	 * Pull the comments out of the tl_data array
-	 */
-	ret = extract_comments(&pr_rec, &comments);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	/*
-	 * Fill in our Principal object
-	 */
-	ret = kadmin_to_Principal(&pr_rec, env, prin, cname, comments);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	kadm5_free_principal_ent(server_handle, &pr_rec);
-	krb5_free_principal(context, kprin);
-	(*env)->ReleaseStringUTFChars(env, name, cname);
-	free(fullname);
-
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    savePrincipal
- * Signature: (LPrincipal;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_savePrincipal(JNIEnv *env, jobject obj, jobject prin)
-{
-	kadm5_principal_ent_rec pr_rec;
-	long mask;
-	char *pw = NULL;
-	char *comments = NULL;
-	kadm5_ret_t ret;
-	krb5_principal kprin = NULL;
-	kadm5_config_params params;
-
-	/*
-	 * Convert principal object to the kadmin API structure
-	 */
-	memset((char *)&pr_rec, 0, sizeof (pr_rec));
-	memset((char *)&params, 0, sizeof (params));
-	ret = Principal_to_kadmin(env, prin, 0, &kprin, &pr_rec, &mask,
-	    &pw, &comments, &params);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	/*
-	 * Save the principal
-	 */
-	ret = kadm5_modify_principal(server_handle, &pr_rec, mask);
-	if (ret) {
-		handle_error(env, ret);
-		ret = JNI_FALSE;
-		goto out;
-	}
-
-	/*
-	 * Handle any comments with read-modify-write
-	 */
-	ret = edit_comments(&pr_rec, kprin, comments);
-	if (ret) {
-		handle_error(env, ret);
-		ret = JNI_FALSE;
-		goto out;
-	}
-
-	/*
-	 * Set the password if changed
-	 */
-	ret = set_password(kprin, pw, &params);
-	if (params.keysalts != NULL)
-		free(params.keysalts);
-	if (ret) {
-		handle_error(env, ret);
-		ret = JNI_FALSE;
-		goto out;
-	}
-	ret = JNI_TRUE;
-
-out:
-	kadm5_free_principal_ent(server_handle, &pr_rec);
-	return (ret);
-}
-
-/*
- * Class:     Kadmin
- * Method:    createPrincipal
- * Signature: (LPrincipal;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_createPrincipal(JNIEnv *env, jobject obj, jobject prin)
-{
-	kadm5_principal_ent_rec pr_rec;
-	long mask;
-	char *pw = NULL;
-	char *comments = NULL;
-	kadm5_ret_t ret;
-	krb5_principal kprin = NULL;
-	kadm5_config_params params;
-
-	/*
-	 * Convert principal object to the kadmin API structure
-	 */
-	memset((char *)&pr_rec, 0, sizeof (pr_rec));
-	memset((char *)&params, 0, sizeof (params));
-	ret = Principal_to_kadmin(env, prin, 1, &kprin, &pr_rec, &mask,
-	    &pw, &comments, &params);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	/*
-	 * Create the new principal
-	 */
-	if (params.mask & KADM5_CONFIG_ENCTYPES) {
-		ret = kadm5_create_principal_3(server_handle, &pr_rec, mask,
-		    params.num_keysalts, params.keysalts, pw);
-		if (params.keysalts != NULL)
-			free(params.keysalts);
-	} else
-		ret = kadm5_create_principal(server_handle, &pr_rec, mask, pw);
-	if (ret) {
-		handle_error(env, ret);
-		ret = JNI_FALSE;
-		goto out;
-	}
-
-	/*
-	 * Handle any comments with read-modify-write
-	 */
-	ret = edit_comments(&pr_rec, kprin, comments);
-	if (ret) {
-		handle_error(env, ret);
-		ret = JNI_FALSE;
-		goto out;
-	}
-
-	ret = JNI_TRUE;
-out:
-	kadm5_free_principal_ent(server_handle, &pr_rec);
-	return (ret);
-}
-
-/*
- * Class:     Kadmin
- * Method:    deletePrincipal
- * Signature: (Ljava/lang/String;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_deletePrincipal(JNIEnv *env, jobject obj, jstring name)
-{
-	kadm5_ret_t ret;
-	const char *cname;
-	char *fullname;
-	krb5_principal kprin = NULL;
-	krb5_context context;
-
-	/*
-	 * Get name and call the delete function
-	 */
-	cname = (*env)->GetStringUTFChars(env, name, NULL);
-	if (!cname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-	fullname = qualify((char *)cname);
-	if (!fullname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-
-	ret = krb5_init_context(&context);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	ret = krb5_parse_name(context, fullname, &kprin);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	ret = kadm5_delete_principal(server_handle, kprin);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	krb5_free_principal(context, kprin);
-	(*env)->ReleaseStringUTFChars(env, name, cname);
-	free(fullname);
-
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    getPolicyList
- * Signature: ()[Ljava/lang/String;
- */
-/*ARGSUSED*/
-JNIEXPORT jobjectArray JNICALL
-Java_Kadmin_getPolicyList(JNIEnv *env, jobject obj)
-{
-	jclass stringclass;
-	jobjectArray plist;
-	jstring s;
-	char **pols;
-	int i, count;
-	kadm5_ret_t ret;
-
-	/*
-	 * Get the list
-	 */
-	ret = kadm5_get_policies(server_handle, NULL, &pols, &count);
-	if (ret) {
-		handle_error(env, ret);
-		return (NULL);
-	}
-	qsort(pols, count, sizeof (pols[0]), charcmp);
-
-	/*
-	 * Create and populate a Java String array
-	 */
-	stringclass = (*env)->FindClass(env, "java/lang/String");
-	if (!stringclass) {
-		handle_error(env, KADM_JNI_CLASS);
-		return (NULL);
-	}
-	plist = (*env)->NewObjectArray(env, count, stringclass, NULL);
-	if (!plist) {
-		handle_error(env, KADM_JNI_ARRAY);
-		return (NULL);
-	}
-	for (i = 0; i < count; i++) {
-		s = (*env)->NewStringUTF(env, pols[i]);
-		if (!s) {
-			handle_error(env, KADM_JNI_NEWSTRING);
-			return (NULL);
-		}
-		(*env)->SetObjectArrayElement(env, plist, i, s);
-	}
-	kadm5_free_name_list(server_handle, pols, count);
-	return (plist);
-}
-
-/*
- * Class:     Kadmin
- * Method:    loadPolicy
- * Signature: (Ljava/lang/String;LPolicy;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_loadPolicy(JNIEnv *env, jobject obj, jstring name, jobject pol)
-{
-	const char *cname;
-	kadm5_policy_ent_rec po_rec;
-	kadm5_ret_t ret;
-
-	cname = (*env)->GetStringUTFChars(env, name, NULL);
-	if (!cname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-
-	ret = kadm5_get_policy(server_handle, (char *)cname, &po_rec);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	ret = kadmin_to_Policy(&po_rec, env, pol);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	kadm5_free_policy_ent(server_handle, &po_rec);
-	(*env)->ReleaseStringUTFChars(env, name, cname);
-
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    savePolicy
- * Signature: (LPolicy;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_savePolicy(JNIEnv *env, jobject obj, jobject pol)
-{
-	kadm5_policy_ent_rec po_rec;
-	kadm5_ret_t ret;
-	long mask;
-
-	ret = Policy_to_kadmin(env, pol, 0, &po_rec, &mask);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	ret = kadm5_modify_policy(server_handle, &po_rec, mask);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    createPolicy
- * Signature: (LPolicy;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_createPolicy(JNIEnv * env, jobject obj, jobject pol)
-{
-	kadm5_policy_ent_rec po_rec;
-	kadm5_ret_t ret;
-	long mask;
-
-	ret = Policy_to_kadmin(env, pol, 1, &po_rec, &mask);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	ret = kadm5_create_policy(server_handle, &po_rec, mask);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    deletePolicy
- * Signature: (Ljava/lang/String;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_deletePolicy(JNIEnv * env, jobject obj, jstring name)
-{
-	const char *cname;
-	kadm5_ret_t ret;
-
-	cname = (*env)->GetStringUTFChars(env, name, NULL);
-	if (!cname) {
-		handle_error(env, KADM_JNI_STRING);
-		return (JNI_FALSE);
-	}
-
-	ret = kadm5_delete_policy(server_handle, (char *)cname);
-	if (ret) {
-		handle_error(env, ret);
-		return (JNI_FALSE);
-	}
-	return (JNI_TRUE);
-}
-
-#ifdef needtoknowmore
-/*
- * Class:     Kadmin
- * Method:    loadDefaults
- * Signature: (LConfig;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_loadDefaults(JNIEnv *env, jobject obj, jobject config)
-{
-	/*
-	 *
-	 */
-	return (JNI_TRUE);
-}
-
-/*
- * Class:     Kadmin
- * Method:    saveDefaults
- * Signature: (LConfig;)Z
- */
-/*ARGSUSED*/
-JNIEXPORT jboolean JNICALL
-Java_Kadmin_saveDefaults(JNIEnv *env, jobject obj, jobject config)
-{
-	/*
-	 *
-	 */
-	return (JNI_TRUE);
-}
-#endif
-
-static int
-Principal_to_kadmin(JNIEnv *env, jobject prin, int new, krb5_principal *kprin,
-	kadm5_principal_ent_rec *p, long *mask, char **pw, char **comments,
-	kadm5_config_params *pparams)
-{
-	jstring s;
-	jclass prcl, dateclass, intclass;
-	jfieldID f;
-	jmethodID mid;
-	jobject obj;
-	const char *str;
-	jlong l;
-	jint i;
-	jboolean b;
-	kadm5_ret_t ret;
-	krb5_context context;
-	jfieldID flagsID;
-	jobject flagsObj;
-	jclass flagsClass;
-	char *fullname;
-
-	*mask = 0;
-
-	prcl = (*env)->GetObjectClass(env, prin);
-	if (!prcl)
-		return (KADM_JNI_CLASS);
-	dateclass = (*env)->FindClass(env, "java/util/Date");
-	if (!dateclass)
-		return (KADM_JNI_CLASS);
-	intclass = (*env)->FindClass(env, "java/lang/Integer");
-	if (!intclass)
-		return (KADM_JNI_CLASS);
-
-	f = (*env)->GetFieldID(env, prcl, "PrName", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	s = (jstring)obj;
-	str = (*env)->GetStringUTFChars(env, s, NULL);
-	if (!str)
-		return (KADM_JNI_STRING);
-	fullname = qualify((char *)str);
-	if (!fullname)
-		return (KADM_ENOMEM);
-	ret = krb5_init_context(&context);
-	if (ret)
-		return (ret);
-	ret = krb5_parse_name(context, fullname, kprin);
-	if (ret)
-		return (ret);
-	p->principal = *kprin;
-	(*env)->ReleaseStringUTFChars(env, s, str);
-	if (new)
-		*mask |= KADM5_PRINCIPAL;
-
-	f = (*env)->GetFieldID(env, prcl, "PrExpireTime", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "getTime", "()J");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	l = (*env)->CallLongMethod(env, obj, mid);
-	p->princ_expire_time = (long)(l / 1000LL);
-	*mask |= KADM5_PRINC_EXPIRE_TIME;
-
-	f = (*env)->GetFieldID(env, prcl, "EncTypes", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	s = (jstring)obj;
-	str = (*env)->GetStringUTFChars(env, s, NULL);
-	if (!str)
-		return (KADM_JNI_STRING);
-	if (strlen(str)) {
-		ret = krb5_string_to_keysalts((char *)str, ", \t", ":.-", 0,
-		    &(pparams->keysalts), &(pparams->num_keysalts));
-		if (ret) {
-			(*env)->ReleaseStringUTFChars(env, s, str);
-			return (ret);
-		}
-		pparams->mask |= KADM5_CONFIG_ENCTYPES;
-	}
-	(*env)->ReleaseStringUTFChars(env, s, str);
-
-	f = (*env)->GetFieldID(env, prcl, "Policy", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	s = (jstring)obj;
-	str = (*env)->GetStringUTFChars(env, s, NULL);
-	if (!str)
-		return (KADM_JNI_STRING);
-	p->policy = strdup(str);
-	if (!p->policy)
-		return (KADM_ENOMEM);
-	(*env)->ReleaseStringUTFChars(env, s, str);
-	if (strlen(p->policy))
-		*mask |= KADM5_POLICY;
-	else if (!new)
-		*mask |= KADM5_POLICY_CLR;
-
-	f = (*env)->GetFieldID(env, prcl, "PwExpireTime", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (obj) {
-		mid = (*env)->GetMethodID(env, dateclass, "getTime", "()J");
-		if (!mid)
-			return (KADM_JNI_METHOD);
-		l = (*env)->CallLongMethod(env, obj, mid);
-		p->pw_expiration = (long)(l / 1000LL);
-		*mask |= KADM5_PW_EXPIRATION;
-	}
-
-	f = (*env)->GetFieldID(env, prcl, "MaxLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->max_life = i;
-	*mask |= KADM5_MAX_LIFE;
-
-	f = (*env)->GetFieldID(env, prcl, "MaxRenew", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->max_renewable_life = i;
-	*mask |= KADM5_MAX_RLIFE;
-
-	/*
-	 * Comments: because of API rules on the TL_DATA entries,
-	 * which say that a load-modify-write is always necessary,
-	 * we will only deal with comments if they are newly changed.
-	 */
-	f = (*env)->GetFieldID(env, prcl, "newComments", "Z");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	b = (*env)->GetBooleanField(env, prin, f);
-	if (b == JNI_TRUE) {
-
-		f = (*env)->GetFieldID(env, prcl, "Comments",
-		    "Ljava/lang/String;");
-		if (!f)
-			return (KADM_JNI_FIELD);
-		obj = (*env)->GetObjectField(env, prin, f);
-		if (!obj)
-			return (KADM_JNI_OFIELD);
-		s = (jstring)obj;
-		str = (*env)->GetStringUTFChars(env, s, NULL);
-		if (!str)
-			return (KADM_JNI_STRING);
-		*comments = strdup(str);
-		if (!*comments)
-			return (KADM_ENOMEM);
-		(*env)->ReleaseStringUTFChars(env, s, str);
-	}
-
-	f = (*env)->GetFieldID(env, prcl, "Kvno", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->kvno = i;
-	*mask |= KADM5_KVNO;
-
-	/*
-	 * Get the Principal.flags field id
-	 */
-	flagsID = (*env)->GetFieldID(env, prcl, "flags",
-	    "LFlags;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-
-	/*
-	 * Get the Principal.Flags object
-	 */
-	flagsObj = (*env)->GetObjectField(env, prin, flagsID);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-
-	/*
-	 * Get the Flags object's class
-	 */
-	flagsClass = (*env)->GetObjectClass(env, flagsObj);
-	if (!flagsClass)
-		return (KADM_JNI_CLASS);
-
-	/*
-	 * Now get the Flags.flags field's value
-	 */
-	f = (*env)->GetFieldID(env, flagsClass, "flags", "I");
-	if (!f)
-		return (KADM_JNI_FIELD);
-
-	i = (*env)->GetIntField(env, flagsObj, f);
-	p->attributes = i & ~65536;
-
-	*mask |= KADM5_ATTRIBUTES;
-
-	f = (*env)->GetFieldID(env, prcl, "PrPasswd", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	s = (jstring)obj;
-	str = (*env)->GetStringUTFChars(env, s, NULL);
-	if (!str)
-		return (KADM_JNI_STRING);
-	*pw = strdup(str);
-	if (!*pw)
-		return (KADM_ENOMEM);
-	(*env)->ReleaseStringUTFChars(env, s, str);
-
-	free(fullname);
-	return (0);
-}
-
-static int
-kadmin_to_Principal(kadm5_principal_ent_rec *p, JNIEnv *env, jobject prin,
-		const char *prname, char *comments)
-{
-	jstring s;
-	jclass prcl, dateclass, intclass;
-	jfieldID f;
-	jmethodID mid;
-	jobject obj;
-	int i, j, n, used = 0, size = 0;
-	kadm5_ret_t ret;
-	krb5_context context;
-	char *ptr, *enclist = NULL, *e_str = NULL, *i_str;
-	char *cstr;
-
-	jfieldID flagsID;
-	jobject flagsObj;
-	jclass flagsClass;
-
-	prcl = (*env)->GetObjectClass(env, prin);
-	if (!prcl)
-		return (KADM_JNI_CLASS);
-	dateclass = (*env)->FindClass(env, "java/util/Date");
-	if (!dateclass)
-		return (KADM_JNI_CLASS);
-	intclass = (*env)->FindClass(env, "java/lang/Integer");
-	if (!intclass)
-		return (KADM_JNI_CLASS);
-
-	f = (*env)->GetFieldID(env, prcl, "PrName", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	s = (*env)->NewStringUTF(env, prname);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, prin, f, s);
-
-	f = (*env)->GetFieldID(env, prcl, "PrExpireTime", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->princ_expire_time * 1000LL));
-
-	f = (*env)->GetFieldID(env, prcl, "EncTypes", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	used = 0;
-	enclist = malloc(size += 2048);
-	if (enclist == NULL)
-		return (errno);
-	for (i = 0; i < p->n_key_data; i++) {
-		krb5_key_data *key_data = &p->key_data[i];
-		for (j = 0; j < krb5_enctypes_length; j++) {
-			if (key_data->key_data_type[0] ==
-			    krb5_enctypes_list[j].etype) {
-				i_str = krb5_enctypes_list[j].in_string;
-				n = strlen(i_str) + strlen(":normal");
-				e_str = malloc(n);
-				if (e_str == NULL) {
-					free(enclist);
-					return (errno);
-				}
-				(void) snprintf(e_str, n + 1, "%s:normal",
-				    i_str);
-				/*
-				 * We reallocate if existing + what we need +
-				 * 2 (the null byte and a space for the list).
-				 */
-				if (used + n + 2 > size) {
-					enclist = realloc(enclist,
-					    size += 2048);
-					if (enclist == NULL) {
-						free(e_str);
-						return (errno);
-					}
-				}
-				(void) strncpy(&enclist[used], e_str, n);
-				free(e_str);
-				e_str = NULL;
-				used += n + 1;
-				enclist[used-1] = ' ';
-				enclist[used] = '\0';
-				break;
-			}
-		}
-	}
-	s = (*env)->NewStringUTF(env, enclist);
-	free(enclist);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, prin, f, s);
-
-	f = (*env)->GetFieldID(env, prcl, "Policy", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	cstr = strdup(p->policy ? p->policy : "");
-	if (!cstr)
-		return (KADM_ENOMEM);
-	s = (*env)->NewStringUTF(env, cstr);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, prin, f, s);
-	free(cstr);
-
-	f = (*env)->GetFieldID(env, prcl, "LastPwChange", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->last_pwd_change * 1000LL));
-
-	f = (*env)->GetFieldID(env, prcl, "PwExpireTime", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->pw_expiration * 1000LL));
-
-	f = (*env)->GetFieldID(env, prcl, "MaxLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, (jint) p->max_life);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, prin, f, obj);
-
-	f = (*env)->GetFieldID(env, prcl, "MaxRenew", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid,
-	    (jint) p->max_renewable_life);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, prin, f, obj);
-
-	f = (*env)->GetFieldID(env, prcl, "ModTime", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->mod_date * 1000LL));
-
-	ret = krb5_init_context(&context);
-	if (ret)
-		return (ret);
-	ret = krb5_unparse_name(context, p->mod_name, &ptr);
-	if (ret)
-		return (ret);
-	f = (*env)->GetFieldID(env, prcl, "ModName", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	s = (*env)->NewStringUTF(env, ptr);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, prin, f, s);
-	krb5_xfree(ptr);
-
-	f = (*env)->GetFieldID(env, prcl, "LastSuccess", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->last_success * 1000LL));
-
-	f = (*env)->GetFieldID(env, prcl, "LastFailure", "Ljava/util/Date;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, dateclass, "setTime", "(J)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->GetObjectField(env, prin, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	(*env)->CallVoidMethod(env, obj, mid,
-	    (jlong) (p->last_failed * 1000LL));
-
-	f = (*env)->GetFieldID(env, prcl, "NumFailures", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid,
-	    (jint) p->fail_auth_count);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, prin, f, obj);
-
-	f = (*env)->GetFieldID(env, prcl, "Comments", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	cstr = strdup(comments ? comments : "");
-	if (!cstr)
-		return (KADM_ENOMEM);
-	s = (*env)->NewStringUTF(env, cstr);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, prin, f, s);
-	free(cstr);
-
-	f = (*env)->GetFieldID(env, prcl, "Kvno", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->kvno);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, prin, f, obj);
-
-	f = (*env)->GetFieldID(env, prcl, "Mkvno", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->mkvno);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, prin, f, obj);
-
-	i = p->attributes;
-
-	/*
-	 * Get the Principal.flags field id
-	 */
-	flagsID = (*env)->GetFieldID(env, prcl, "flags",
-	    "LFlags;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-
-	/*
-	 * Get the Principal.Flags object
-	 */
-	flagsObj = (*env)->GetObjectField(env, prin, flagsID);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-
-	/*
-	 * Get the Flags object's class
-	 */
-	flagsClass = (*env)->GetObjectClass(env, flagsObj);
-
-	/*
-	 * Now set the Flags.flags field's value
-	 */
-	f = (*env)->GetFieldID(env, flagsClass, "flags", "I");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	(*env)->SetIntField(env, flagsObj, f, i);
-
-	return (0);
-}
-
-static int
-Policy_to_kadmin(JNIEnv *env, jobject pol, int new,
-	kadm5_policy_ent_rec *p, long *mask)
-{
-	jstring s;
-	jclass pocl, intclass;
-	jfieldID f;
-	jmethodID mid;
-	jobject obj;
-	const char *str;
-	int i;
-
-	*mask = 0;
-
-	pocl = (*env)->GetObjectClass(env, pol);
-	if (!pocl)
-		return (KADM_JNI_CLASS);
-	intclass = (*env)->FindClass(env, "java/lang/Integer");
-	if (!intclass)
-		return (KADM_JNI_CLASS);
-
-	f = (*env)->GetFieldID(env, pocl, "PolicyName", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	s = (jstring)obj;
-	str = (*env)->GetStringUTFChars(env, s, NULL);
-	if (!str)
-		return (KADM_JNI_STRING);
-	p->policy = strdup(str);
-	if (!p->policy)
-		return (KADM_ENOMEM);
-	if (new)
-		*mask |= KADM5_POLICY;
-	(*env)->ReleaseStringUTFChars(env, s, str);
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->pw_min_life = i;
-	*mask |= KADM5_PW_MIN_LIFE;
-
-	f = (*env)->GetFieldID(env, pocl, "PwMaxLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->pw_max_life = i;
-	*mask |= KADM5_PW_MAX_LIFE;
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinLength", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->pw_min_length = i;
-	*mask |= KADM5_PW_MIN_LENGTH;
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinClasses",
-	    "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->pw_min_classes = i;
-	*mask |= KADM5_PW_MIN_CLASSES;
-
-	f = (*env)->GetFieldID(env, pocl, "PwSaveCount", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	obj = (*env)->GetObjectField(env, pol, f);
-	if (!obj)
-		return (KADM_JNI_OFIELD);
-	mid = (*env)->GetMethodID(env, intclass, "intValue", "()I");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	i = (*env)->CallIntMethod(env, obj, mid);
-	p->pw_history_num = i;
-	*mask |= KADM5_PW_HISTORY_NUM;
-
-	return (0);
-}
-
-static int
-kadmin_to_Policy(kadm5_policy_ent_rec *p, JNIEnv *env, jobject pol)
-{
-	jstring s;
-	jclass pocl, intclass;
-	jfieldID f;
-	jmethodID mid;
-	jobject obj;
-
-	pocl = (*env)->GetObjectClass(env, pol);
-	if (!pocl)
-		return (KADM_JNI_CLASS);
-	intclass = (*env)->FindClass(env, "java/lang/Integer");
-	if (!intclass)
-		return (KADM_JNI_CLASS);
-
-	f = (*env)->GetFieldID(env, pocl, "PolicyName", "Ljava/lang/String;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	s = (*env)->NewStringUTF(env, p->policy);
-	if (!s)
-		return (KADM_JNI_NEWSTRING);
-	(*env)->SetObjectField(env, pol, f, s);
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->pw_min_life);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	f = (*env)->GetFieldID(env, pocl, "PwMaxLife", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->pw_max_life);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinLength", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->pw_min_length);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	f = (*env)->GetFieldID(env, pocl, "PwMinClasses",
-	    "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->pw_min_classes);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	f = (*env)->GetFieldID(env, pocl, "PwSaveCount", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->pw_history_num);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	f = (*env)->GetFieldID(env, pocl, "RefCount", "Ljava/lang/Integer;");
-	if (!f)
-		return (KADM_JNI_FIELD);
-	mid = (*env)->GetMethodID(env, intclass, "<init>", "(I)V");
-	if (!mid)
-		return (KADM_JNI_METHOD);
-	obj = (*env)->NewObject(env, intclass, mid, p->policy_refcnt);
-	if (!obj)
-		return (KADM_JNI_OBJECT);
-	(*env)->SetObjectField(env, pol, f, obj);
-
-	return (0);
-}
-
-#define	SUNSOFT_COMMENTS	256
-
-/*
- * The new principal has been saved; now we do a load-modify-store
- * to get the comments into the TL_DATA array.
- */
-static int
-edit_comments(kadm5_principal_ent_rec *p, krb5_principal kprin, char *comments)
-{
-	long mask = KADM5_PRINCIPAL | KADM5_TL_DATA;
-	kadm5_ret_t ret;
-
-	if (!comments || !strlen(comments))
-		return (0);
-
-	ret = kadm5_get_principal(server_handle, kprin, p, mask);
-	if (ret)
-		return (ret);
-
-	mask = 0;
-	ret = format_comments(p, &mask, comments);
-	if (ret)
-		return (ret);
-
-	if (mask) {
-		ret = kadm5_modify_principal(server_handle, p, mask);
-		if (ret)
-			return (ret);
-	}
-
-	return (0);
-}
-
-/*
- * Put the comments into TL_DATA.
- */
-static int
-format_comments(kadm5_principal_ent_rec *p, long *mask, char *comments)
-{
-	krb5_tl_data *t, *t1, *tdp;
-	char *s;
-
-	if (!comments || !strlen(comments))
-		return (0);
-	tdp = malloc(sizeof (krb5_tl_data));
-	if (!tdp)
-		return (KADM_ENOMEM);
-	s = strdup(comments);
-	if (!s)
-		return (KADM_ENOMEM);
-
-	/*
-	 * Search for existing comments field, or find next-to-last
-	 */
-	for (t = t1 = p->tl_data; t; t1 = t, t = t->tl_data_next)
-		if (t->tl_data_type == SUNSOFT_COMMENTS)
-			break;
-	if (t) {
-		t->tl_data_length = strlen(comments);
-		free(t->tl_data_contents);
-		t->tl_data_contents = (krb5_octet *)s;
-	} else {
-		tdp->tl_data_next = NULL;
-		tdp->tl_data_type = SUNSOFT_COMMENTS;
-		tdp->tl_data_length = strlen(comments)+1;
-		tdp->tl_data_contents = (krb5_octet *)s;
-		if (t1)
-			t1->tl_data_next = tdp;
-		else
-			p->tl_data = tdp;
-		p->n_tl_data++;
-	}
-	*mask |= KADM5_TL_DATA;
-	return (0);
-}
-
-/*
- * The principal has been loaded, so we pluck the comments out of TL_DATA.
- */
-static int
-extract_comments(kadm5_principal_ent_rec *p, char **comments)
-{
-	krb5_tl_data *t;
-	char *s;
-
-	/*
-	 * Search for existing comments field, or find next-to-last
-	 */
-	if (!p->n_tl_data)
-		return (0);
-	for (t = p->tl_data; t; t = t->tl_data_next)
-		if (t->tl_data_type == SUNSOFT_COMMENTS)
-			break;
-	if (t && t->tl_data_length) {
-		s = strdup((char *)t->tl_data_contents);
-		if (!s)
-			return (KADM_ENOMEM);
-		s[t->tl_data_length] = 0;
-		*comments = s;
-	}
-	return (0);
-}
-
-/*
- * Set password for the modified principal
- */
-static int
-set_password(krb5_principal kprin, char *pw, kadm5_config_params *pparams)
-{
-	kadm5_ret_t ret;
-	int keepold = 0;
-
-	if (!pw || !strlen(pw))
-		return (0);
-
-	if (pparams->mask & KADM5_CONFIG_ENCTYPES)
-		ret = kadm5_chpass_principal_3(server_handle, kprin, keepold,
-		    pparams->num_keysalts, pparams->keysalts, pw);
-	else
-		ret = kadm5_chpass_principal(server_handle, kprin, pw);
-
-	if (ret)
-		return (ret);
-	return (0);
-}
-
-static void
-handle_error(JNIEnv *env, int error)
-{
-	char *s;
-	char    from[BUFSIZ], to[BUFSIZ];
-	char    *tptr;
-	const char  *fptr;
-	size_t  ileft, oleft, ret;
-
-	s = (char *)error_message(error);
-	/* fprintf(stderr, "Kadmin: %s (%d)\n", s, error); XXX */
-	if (cd != (iconv_t)-1) {
-		ileft = strlen(s);
-		strncpy(from, s, ileft);
-		fptr = from;
-		oleft = BUFSIZ;
-		tptr = to;
-		ret = iconv(cd, &fptr, &ileft, &tptr, &oleft);
-		if (ret != (size_t)-1) {
-			to[BUFSIZ-oleft] = '\0';
-			s = to;
-		/* fprintf(stderr, "Kadmin: %s (%d)\n", s, error); XXX */
-		}
-	}
-	(*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/Exception"),
-	    (const char *)s);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/native/Kadmin.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * 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 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-public class Kadmin {
-
-	/**
-	 * Static block to load "libkadmin.so"
-	 */
-	static { System.loadLibrary("kadmin"); }
-
-	/**
-	 * Initialize the kadmin session with the passed arguments
-	 */
-	public native boolean sessionInit(String name, String password,
-		String realm, String server, int port);
-
-	/**
-	 * Terminate the kadmin session gracefully
-	 */
-	public native void sessionExit();
-
-	/**
-	 * Get the ACL setting for the logged in principal
-	 */
-	public native int getPrivs();
-
-	/**
-	 * Get the complete enc type list
-	 */
-	public native String[] getEncList();
-
-	/**
-	 * Get the complete principal list
-	 */
-	public native String[] getPrincipalList();
-
-	/**
-	 * Get the complete principal list in one string
-	 */
-	public native String getPrincipalList2();
-
-	/**
-	 * Load the selected principal
-	 */
-	public native boolean loadPrincipal(String name, Principal p);
-
-	/**
-	 * Save the selected principal
-	 */
-	public native boolean savePrincipal(Principal p);
-
-	/**
-	 * Create a new principal
-	 */
-	public native boolean createPrincipal(Principal p);
-
-	/**
-	 * Delete the selected principal
-	 */
-	public native boolean deletePrincipal(String name);
-
-	/**
-	 * Get the complete policy list
-	 */
-	public native String[] getPolicyList();
-
-	/**
-	 * Load the selected policy
-	 */
-	public native boolean loadPolicy(String name, Policy p);
-
-	/**
-	 * Save the selected policy
-	 */
-	public native boolean savePolicy(Policy p);
-
-	/**
-	 * Create a new policy
-	 */
-	public native boolean createPolicy(Policy p);
-
-	/**
-	 * Delete the selected policy
-	 */
-	public native boolean deletePolicy(String name);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/native/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-# usr/src/cmd/krb5/kadmin/gui/native/Makefile
-#
-
-include		$(SRC)/lib/Makefile.lib
-
-SUBDIRS=	$(MACH)
-
-all :=		TARGET= all
-clean :=	TARGET= clean
-clobber :=	TARGET= clobber
-install :=	TARGET= install
-lint :=		TARGET= lint
-
-JAVAFLAGS= -nowarn -O
-
-CLASSES=Kadmin
-
-JFILES=$(CLASSES:%=%.java)
-CLFILES=$(CLASSES:%=../classdir/%.class)
-
-CLOBBERFILES +=	$(CLFILES) $(HFILES)
-
-GUI=$(SRC)/cmd/krb5/kadmin/gui
-JARFILES=$(GUI)/visualrt.jar:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-GUISUBDIRS=$(GUI)/classdir:$(GUI)/util:$(GUI)/dataclasses:$(GUI)/dchanger:$(GUI)/native:$(GUI)/visualrt
-
-CLASSPATH=$(GUI):$(GUISUBDIRS):$(JARFILES)
-
-.KEEP_STATE:
-
-all lint install: $(HFILES) $(CLFILES) $(SUBDIRS)
-
-../classdir/%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d ../classdir -classpath $(CLASSPATH) $<
-
-test: Test.class
-	/bin/env LD_LIBRARY_PATH=$(MACH):$(ROOT)/usr/lib/krb5 $(JAVA_ROOT)/bin/java \
-	-classpath $(CLASSPATH) Test
-
-clean clobber: $(SUBDIRS)
-
-$(MACH): FRC
-	@cd $@; pwd; $(MAKE) $(TARGET)
-
-FRC:
--- a/usr/src/cmd/krb5/kadmin/gui/native/Makefile.com	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (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
-#
-#
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-
-LIBRARY=	libkadmin.a
-VERS=		.1
-
-CLASSES=	Kadmin
-OBJECTS=	$(CLASSES:%=%.o)
-
-include $(SRC)/lib/Makefile.lib
-#
-# Need this makefile to find the KRUNPATH, KERBRUNPATH and KMECHLIB definitions
-#
-include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
-
-ROOTLIBDIR=	$(ROOT)/usr/lib/krb5
-LIBS =		$(DYNLIB)
-
-CPPFLAGS += -I../ -I$(SRC)/lib/krb5 \
-	-I$(SRC)/lib/krb5/kadm5 \
-	-I$(SRC)/lib/gss_mechs/mech_krb5/include \
-	-I$(SRC)/lib/gss_mechs/mech_krb5/krb5/error_tables \
-	-I$(SRC)/uts/common/gssapi/mechs/krb5/include \
-	-I$(JAVA_ROOT)/include -I$(JAVA_ROOT)/include/solaris
-
-CERRWARN += -_gcc=-Wno-parentheses
-CERRWARN += -_gcc=-Wno-unused-variable
-CERRWARN += -_gcc=-Wno-unused-function
-
-LDLIBS += $(KMECHLIB) -L$(ROOT)/$(KERBLIBDIR) -lkadm5clnt -lsocket -lc
-DYNFLAGS += $(KRUNPATH) $(KERBRUNPATH)
-
-#
-# This library is not directly linked against by any C applications
-# (only by Java code), so we do not build a lint library.
-#
-
-.KEEP_STATE:
-
-all:	$(LIBS)
-
-LINTFLAGS	= -mxus
-
-lint: lintcheck
-
-include $(SRC)/lib/Makefile.targ
-
--- a/usr/src/cmd/krb5/kadmin/gui/native/Test.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.awt.*;
-
-import Principal;
-import Policy;
-import Defaults;
-
-public class Test {
-
-	/**
-	 * main method for easier debugging
-	 */
-	public static void main(String[] args) {
-	    System.out.println("\nThese are unit tests for the JNI code.");
-	    System.out.println("They assume the existence of a jnitest/admin");
-	    System.out.println("user principal, with the password 'test123',");
-	    System.out.println("and the existance of a 'default' policy.\n");
-
-	    Kadmin k = new Kadmin();
-	    String [] p;
-	    Defaults d = new Defaults("$HOME/.gkadmin", Color.white);
-
-	    System.out.println("==> Set up a session for jnitest/admin.\n");
-	    boolean b = false;
-
-	    System.out.println("*** First, one with a bogus port number.");
-	    try {
-		b = k.sessionInit("jnitest/admin", "test123",
-		    "SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 333);
-		b = false;
-		k.sessionExit();
-		System.out.println("Unexpected success!\n");
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("Expected failure "+e.getMessage()+"\n");
-	    }
-
-	    System.out.println("*** Next, one with the correct port number.");
-	    try {
-		b = k.sessionInit("jnitest/admin", "test123",
-		    "SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 749);
-		b = false;
-		k.sessionExit();
-		System.out.println("sessionInit was successful.\n");
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("Unexpected exception!"+e.getMessage()+"\n");
-	    }
-
-	    System.out.println("*** Finally, try one with a zero port number.");
-	    try {
-		b = k.sessionInit("jnitest/admin", "test123",
-		    "SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 0);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("Unexpected exception!"+e.getMessage()+"\n");
-	    }
-	    if (!b) {
-		System.out.println("sessionInit failed\n");
-		return;
-	    }
-	    System.out.println("sessionInit was successful!\n");
-
-
-	    System.out.println("==> Get the lists\n");
-	    System.out.println("*** Principal list");
-	    try {
-		p = k.getPrincipalList();
-		System.out.println("Called getPrincipalList()");
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPrincipalList exception"+e.getMessage());
-	    }
-	    for (int i = 0; p != null && i < p.length; i++)
-		System.out.println(p[i]);
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Principal list done\n");
-
-
-	    System.out.println("*** Policy list");
-	    try {
-		p = k.getPolicyList();
-		System.out.println("Called getPolicyList()");
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPolicyList exception "+e.getMessage());
-	    }
-	    for (int i = 0; p != null && i < p.length; i++)
-		System.out.println(p[i]);
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Policy list done\n");
-
-
-	    System.out.println("==> Get privileges\n");
-	    System.out.println("Calling getPrivs()");
-	    int privs = 0;
-	    try {
-		privs = k.getPrivs();
-		System.out.println("Privs are "
-		    +(new Integer(privs)).toHexString(privs)+"\n");
-	    } catch (Exception e) {
-		System.out.println("getPrivs exception "+e.getMessage()+"\n");
-	    }
-
-
-	    System.out.println("==> Database tests\n");
-	    System.out.println("*** load a principal");
-	    System.out.println("Calling Principal(k)");
-	    Principal pr = new Principal(k, d);
-	    System.out.println("Calling loadPrincipal(jnitest/admin)");
-	    try {
-		b = k.loadPrincipal("jnitest/admin", pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPrincipal exception "+e.getMessage());
-	    }
-	    if (!b)
-		System.out.println("loadPrincipal failed\n");
-	    else {
-		System.out.println("loadPrincipal succeeded, details:");
-		System.out.println(pr.toString());
-	    }
-
-
-	    System.out.println("*** load a policy");
-	    Policy po = new Policy(k);
-	    try {
-		b = k.loadPolicy("default", po);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPolicy exception "+e.getMessage());
-	    }
-	    if (!b)
-		System.out.println("loadPolicy failed\n");
-	    else {
-		System.out.println("loadPolicy succeeded");
-		System.out.println("RefCount for "+po.PolicyName+" is "
-		    +po.RefCount.toString());
-		System.out.println("PwMinLife for "+po.PolicyName+" is "
-		    +po.PwMinLife.toString()+"\n");
-	    }
-
-
-	    System.out.println("*** load and store a policy");
-	    try {
-		b = k.loadPolicy("default", po);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPolicy exception "+e.getMessage());
-	    }
-	    if (b) {
-		po.setPolMinlife("555");
-		try {
-		    b = k.savePolicy(po);
-		} catch (Exception e) {
-		    b = false;
-		    System.out.println("savePolicy exception "+e.getMessage());
-		}
-		if (!b)
-		    System.out.println("savePolicy failed\n");
-		else
-		    System.out.println("savePolicy succeeded\n");
-	    }
-
-
-	    System.out.println("*** create a policy");
-	    po = new Policy("aliens");
-	    try {
-		b = k.createPolicy(po);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("createPolicy exception "+e.getMessage());
-	    }
-	    if (!b)
-		System.out.println("createPolicy failed\n");
-	    else
-		System.out.println("createPolicy succeeded\n");
-
-	    System.out.println("*** verify creation");
-	    try {
-		p = k.getPolicyList();
-		System.out.println("Called getPolicyList()");
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPolicyList exception "+e.getMessage());
-	    }
-	    for (int i = 0; p != null && i < p.length; i++)
-		if (p[i].equals("aliens"))
-		    System.out.println("Found 'aliens' as expected");
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Policy list done\n");
-
-
-	    System.out.println("*** delete a policy");
-	    try {
-		b = k.deletePolicy("aliens");
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("deletePolicy exception "+e.getMessage());
-	    }
-	    if (!b)
-		System.out.println("deletePolicy failed\n");
-	    else
-		System.out.println("deletePolicy succeeded\n");
-
-	    System.out.println("*** verify deletion");
-	    try {
-		p = k.getPolicyList();
-		System.out.println("Called getPolicyList()");
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPolicyList exception "+e.getMessage());
-	    }
-	    for (int i = 0; p != null && i < p.length; i++)
-		if (p[i].equals("aliens"))
-		    System.out.println("Found 'aliens' - oops!");
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Policy list done\n");
-
-
-	    System.out.println("*** load and store a principal");
-	    try {
-		b = k.loadPrincipal("jnitest/admin", pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPrincipal exception "+e);
-	    }
-	    if (b) {
-		System.out.println("Loaded "+pr.toString());
-		pr.setPolicy("default");
-		System.out.println("Expiry "+pr.PrExpireTime.toString());
-		System.out.println("PwExpiry "+pr.PwExpireTime.toString());
-		try {
-		    b = k.savePrincipal(pr);
-		} catch (Exception e) {
-		    b = false;
-		    System.out.println("savePrincipal exception "+e);
-		}
-		if (!b)
-		    System.out.println("savePrincipal failed\n");
-		else
-		    System.out.println("savePrincipal succeeded\n");
-	    }
-
-
-	    System.out.println("*** ensure a principal is absent");
-	    try {
-		b = k.deletePrincipal("harriet");
-	        System.out.println("deleted principal\n");
-	    } catch (Exception e) {
-	        System.out.println("Expected exception"+e+"\n");
-	    }
-
-
-	    System.out.println("*** create a principal");
-	    pr = new Principal("harriet");
-	    pr.setPassword("test123");
-	    System.out.println("Built "+pr.toString());
-	    try {
-		b = k.createPrincipal(pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("createPrincipal exception "+e);
-	    }
-	    if (!b)
-		System.out.println("createPrincipal failed");
-	    else
-		System.out.println("createPrincipal succeeded");
-
-	    System.out.println("*** verify creation");
-	    try {
-		p = k.getPrincipalList();
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPrincipalList exception "+e);
-	    }
-	    System.out.println("Called getPrincipalList()");
-	    for (int i = 0; p != null && i < p.length; i++)
-		if (p[i].equals("harriet"))
-		    System.out.println("Found 'harriet' as expected");
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Principal list done\n");
-
-
-	    System.out.println("*** set comments");
-	    pr = new Principal(k, d);
-	    try {
-		b = k.loadPrincipal("harriet", pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPrincipal exception "+e);
-	    }
-	    if (b) {
-		pr.setComments("Who knows this user?");
-		try {
-		    b = k.savePrincipal(pr);
-		} catch (Exception e) {
-		    b = false;
-		    System.out.println("savePrincipal exception "+e);
-		}
-		if (b) {
-		    try {
-			b = k.loadPrincipal("harriet", pr);
-		    } catch (Exception e) {
-			b = false;
-			System.out.println("loadPrincipal exception "+e);
-		    }
-		    System.out.println("Loaded "+pr.toString());
-		    System.out.println("Comments are "+pr.Comments+"\n");
-		} else
-		    System.out.println("savePrincipal failed");
-	    }
-
-
-	    System.out.println("*** set password");
-	    pr = new Principal(k, d);
-	    try {
-		b = k.loadPrincipal("harriet", pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPrincipal exception "+e);
-	    }
-	    if (b) {
-		pr.setPassword("test234");
-		try {
-		    b = k.savePrincipal(pr);
-		} catch (Exception e) {
-		    b = false;
-		    System.out.println("savePrincipal exception "+e);
-		}
-		if (!b)
-		    System.out.println("savePrincipal failed\n");
-		else
-		    System.out.println("savePrincipal succeeded\n");
-	    }
-
-
-	    System.out.println("*** delete principal");
-	    try {
-		b = k.deletePrincipal("harriet");
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("deletePrincipal exception "+e);
-	    }
-	    if (!b)
-		System.out.println("deletePrincipal failed\n");
-	    else
-		System.out.println("deletePrincipal succeeded\n");
-
-	    System.out.println("*** verify deletion");
-	    try {
-		p = k.getPrincipalList();
-		System.out.println("Called getPrincipalList()");
-	    } catch (Exception e) {
-		p = null;
-		System.out.println("getPrincipalList exception "+e);
-	    }
-	    for (int i = 0; p != null && i < p.length; i++)
-		if (p[i].equals("harriet"))
-		    System.out.println("Found 'harriet' - oops!");
-	    System.out.println(new Integer(p.length).toString()+" entries.");
-	    System.out.println("Principal list done\n");
-
-
-	    System.out.println("*** create a principal with comments");
-	    pr = new Principal("harriet");
-	    pr.setPassword("test123");
-	    pr.setComments("Room 1229");
-	    System.out.println("Built "+pr.toString());
-	    try {
-		b = k.createPrincipal(pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("createPrincipal exception "+e);
-	    }
-	    if (!b)
-		System.out.println("createPrincipal failed\n");
-	    else
-		System.out.println("createPrincipal succeeded\n");
-
-	    System.out.println("*** verify comments");
-	    try {
-		b = k.loadPrincipal("harriet", pr);
-	    } catch (Exception e) {
-		b = false;
-		System.out.println("loadPrincipal exception "+e);
-	    }
-	    if (b) {
-		System.out.println("Loaded "+pr.toString());
-		System.out.println("Comments "+pr.Comments+"\n");
-		try {
-		    b = k.deletePrincipal("harriet");
-		} catch (Exception e) {
-		    b = false;
-		    System.out.println("deletePrincipal exception "+e);
-		}
-	    }
-
-	    System.out.println("All tests completed.\n");
-	    k.sessionExit();
-	}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/native/i386/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include ../Makefile.com
-
-install: all $(ROOTLIBDIR) $(ROOTLIBS) $(ROOTLINKS)
--- a/usr/src/cmd/krb5/kadmin/gui/native/mapfile-vers	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (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
-#
-# Interface definition for /usr/lib/krb5/libkadmin.so.1
-
-#
-# MAPFILE HEADER START
-#
-# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
-# Object versioning must comply with the rules detailed in
-#
-#	usr/src/lib/README.mapfiles
-#
-# You should not be making modifications here until you've read the most current
-# copy of that file. If you need help, contact a gatekeeper for guidance.
-#
-# MAPFILE HEADER END
-#
-
-$mapfile_version 2
-
-SYMBOL_VERSION SUNWprivate_1.1 {
-	global:
-		Java_Kadmin_sessionInit;
-		Java_Kadmin_sessionExit;
-		Java_Kadmin_getPrivs;
-		Java_Kadmin_getEncList;
-		Java_Kadmin_getPrincipalList;
-		Java_Kadmin_getPrincipalList2;
-		Java_Kadmin_loadPrincipal;
-		Java_Kadmin_savePrincipal;
-		Java_Kadmin_createPrincipal;
-		Java_Kadmin_deletePrincipal;
-		Java_Kadmin_getPolicyList;
-		Java_Kadmin_loadPolicy;
-		Java_Kadmin_savePolicy;
-		Java_Kadmin_createPolicy;
-		Java_Kadmin_deletePolicy;
-	local:
-		*;
-};
-
--- a/usr/src/cmd/krb5/kadmin/gui/native/sparc/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include ../Makefile.com
-
-install: all $(ROOTLIBDIR) $(ROOTLIBS) $(ROOTLINKS)
--- a/usr/src/cmd/krb5/kadmin/gui/util/ChoiceDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-import java.awt.*;
-import java.awt.event.*;
-
-/**
- * Returns null when the dialog box is closed through the window closing menu.
- */
-public class ChoiceDialog extends java.awt.Dialog {
-
-    private String result = null;
-  
-    public ChoiceDialog(Frame parent, String title,
-  		        String[] messageLines, String[] buttonText,
-		        int bottomLeftX, int bottomLeftY) {
-        super(parent, title, true);
-        addLinesAndButtons(messageLines, buttonText);
-        positionDialog(bottomLeftX, bottomLeftY);
-        finishDialog();
-    }
-
-    public ChoiceDialog(Frame parent, String title,
-    String[] messageLines, String[] buttonText) {
-
-        super(parent, title, true);
-        addLinesAndButtons(messageLines, buttonText);
-        positionDialog(parent);
-        finishDialog();
-    }
-
-    public void addLinesAndButtons(String[] messageLines, String[] buttonText) {
-
-	Panel panel = new Panel();
-
-	panel.setLayout(new GridBagLayout());
-	GridBagConstraints gbc = new GridBagConstraints();
-	gbc.gridwidth = GridBagConstraints.REMAINDER;
-	gbc.weightx = gbc.weighty = 1;
-	gbc.gridx = gbc.gridy = 1;
-
-	for (int i = 0; i < messageLines.length; i++) {
-	    Label t = new Label(" "+messageLines[i]);
-	    panel.add(t, gbc);
-	    gbc.gridy++;
-	}
-
-	add(panel, "Center" /* NOI18N */);
-
-	panel = new Panel();
-	panel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 5));
-
-	for (int i = 0; i < buttonText.length; i++) {
-	    Button b = new Button(buttonText[i]);
-	    b.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-		    result = e.getActionCommand();
-		    dispose();
-		}
-	    });
-	    panel.add(b);
-	}
-
-	add(panel, "South" /* NOI18N */);
-    }
-
-    public void finishDialog() {
-
-        Frame parent = (Frame)getParent();
-
-	setResizable(false);
-
-	setBackground(parent.getBackground());
-	setForeground(parent.getForeground());
-	addWindowListener(new WindowCloseListener());
-	setVisible(true);
-    }
-
-    public void positionDialog(Frame frame) {
-        Point p = frame.getLocationOnScreen();
-        Dimension s1 = frame.getSize();
-        pack();
-        Dimension s2 = getSize();
-        p.x += s1.width/2 - s2.width/2;
-        p.y += s1.height/2 - s2.height/2;
-        setLocation(p.x, p.y);
-    }
-
-    public void positionDialog(int bottomLeftX, int bottomLeftY) {
-        Point p = new Point(bottomLeftX, bottomLeftY);
-        pack();
-        Dimension s = getSize();
-        p.y -= s.height;
-        setLocation(p.x, p.y);
-    }
-  
-    // return the name of the selected button.
-    public String getSelection() {
-	return result;
-    }	
-
-    private  class WindowCloseListener extends  WindowAdapter {
-        public void windowClosing(WindowEvent e) {
-	    dispose();
-        }
-    }   
-
-    public static void main(String[] args) {
-
-	Frame frame = new Frame();
-	frame.setVisible(true);
-
-	String[] lines = {"line one", "line two"};
-	String[] buttons = {"button one", "button two"};
-	ChoiceDialog c1 = new ChoiceDialog(frame, "Hi", lines, buttons,
-                                           100, 100);
-	String s = c1.getSelection();
-	System.out.println("Returned "+s);
-
-	String[] warnlines = {"You are about to lose changes",
-		 "Press OK to discard changes or"
-		+" Cancel to continue editing."};
-	String[] warnbuttons = {"OK", "Cancel"};
-	c1 = new ChoiceDialog(frame, "Confirm Action",
-				warnlines, warnbuttons);
-	s = c1.getSelection();
-	System.out.println("Returned "+s);
-
-	System.exit(0);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/util/ContextHelp.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.awt.event.*;
-import java.awt.*;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-/**
- * Dialog box for displaying context sensitive help.
- * It is shared amongst the different frames when some frame is
- * already in context help mode. When all the frames return to
- * normal mode by dismissing the dialog box, this object is
- * destroyed.
- */
-// The approach of simply hiding the context dialog box till the next
-// time it is needed will not work too well. The problem arises
-// because the dialog box is associated with a parent frame. Whenever
-// the dialog box goes from invisible to visible this parent frame
-// also pops to the top. This might be a little counter-intuitive to a
-// user when he/she asks for help on frame A and has frame B popping
-// up for no apparent reason.
-public class ContextHelp extends HelpDialog {
-  
-    private KdcGui kdcGui;
-
-    private static Cursor c = new Cursor(Cursor.DEFAULT_CURSOR);
-
-    // For I18N
-    private static ResourceBundle rb =
-    ResourceBundle.getBundle("GuiResource" /* NOI18N */);
-
-    public ContextHelp(Frame parent, KdcGui kdcGui) {
-        super(parent, getString("Context-Sensitive Help"), false);
-        this.kdcGui = kdcGui;
-        setText(getString(
-        "Click on GUI items to get help.\n\nClick on button below to dismiss"));
-    }
-
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-  	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    protected void quit() {
-        if (kdcGui.loginHelpMode) {
-            kdcGui.setupLoginNormalListeners();
-            kdcGui.realLoginFrame.setCursor(c);
-        }
-    
-        if (kdcGui.mainHelpMode) {
-            kdcGui.setupMainNormalListeners();
-            kdcGui.realMainFrame.setCursor(c);
-        }
- 
-        if (kdcGui.defaultsHelpMode) {
-            kdcGui.setupDefaultsNormalListeners();
-            kdcGui.defaultsEditingFrame.setCursor(c);
-        }
-      
-        // Set the reference to this to null to indicate to kdcGui that it
-        // has to create a new ContextHelp object the next time one is
-        // needed 
-        kdcGui.cHelp = null;
-
-        super.quit();
-    }
-
-}
--- a/usr/src/cmd/krb5/kadmin/gui/util/HelpDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-import java.awt.*;
-import java.awt.event.*;
-import java.util.StringTokenizer;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-
-/**
- *  Dialog box for diaplaying Help
- *
- */
-public class HelpDialog extends Dialog {
-
-    protected Button b;
-    protected TextArea t;
-    private Frame parent;
-
-    public static int NUM_ROWS = 10;
-    public static int NUM_COLS = 45;
-
-    // For I18N
-    private static ResourceBundle rb =
-    ResourceBundle.getBundle("GuiResource" /* NOI18N */); 
-    
-    public HelpDialog(Frame parent, String title, boolean mode) {
-        this(parent, title, mode, NUM_ROWS, NUM_COLS);
-    }
-
-    public HelpDialog(Frame parent, String title, boolean mode, int numRows,
-                      int numCols) {
-        super(parent, title, mode);
-        this.parent = parent;
-        setBackground(parent.getBackground());
-        setForeground(parent.getForeground());
-        addButtonAndTextArea(numRows, numCols);
-        addWindowListener(new WindowAdapter() {
-	    public void windowClosing(WindowEvent e) {
-	        quit(); 
-	    }
-        });
-    }
-
-    protected void quit() {
-        dispose();
-    }
-
-    private void addButtonAndTextArea(int numRows, int numCols) {
-        t = new TextArea(null, numRows, numCols,
-                         TextArea.SCROLLBARS_VERTICAL_ONLY);
-        t.setEditable(false);
-        b = new Button(getString("Dismiss"));
-
-        setLayout(new GridBagLayout());
-        GridBagConstraints gbc = new GridBagConstraints();
-        gbc.weightx = gbc.weighty = 1;
-        gbc.fill = GridBagConstraints.BOTH;
-        gbc.gridwidth = GridBagConstraints.REMAINDER;
-        add(t, gbc);
-        gbc.fill = GridBagConstraints.NONE;
-        add(b, gbc);
-
-        pack();
-        setResizable(false);
-        setLocationBesideParent(parent);
-      
-        b.addActionListener(new ActionListener() {
-	    public void actionPerformed(ActionEvent e) {
-	        quit();
-	    }
-        });
-    }
-    
-    private void setLocationBesideParent(Frame parent) {
-        Point p = parent.getLocationOnScreen();
-        Dimension parentSize = parent.getSize();
-        Dimension mySize = getSize();
-        p.x += parentSize.width;
-        p.y += parentSize.height/2 - mySize.height/2;
-        setLocation(p.x, p.y);
-    }
-
-
-    public void setText(String text) {
-        t.setText(text);
-    }
-   
-    /**
-     * Call rb.getString(), but catch exception and return English
-     * key so that small spelling errors don't cripple the GUI
-     *
-     */
-    private static final String getString(String key) {
-        try {
-	    String res = rb.getString(key);
-	    return res;
-        } catch (MissingResourceException e) {
-	    System.out.println("Missing resource "+key+", using English.");
-	    return key;
-        }
-    }
-
-    /*
-    public static void main(String args[]) {
-        Frame f = new Frame();
-        f.setVisible(true);
-        HelpDialog hd = new HelpDialog(f, "Test HelpDialog", false);
-        hd.setVisible(true);
-    }
-    */
-}
--- a/usr/src/cmd/krb5/kadmin/gui/util/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include ../../../../../Makefile.master
-include ../../../../Makefile.cmd
-
-JAVAFLAGS= -nowarn -O
-
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-
-CLASSES=HelpDialog ContextHelp ChoiceDialog
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=../classdir/%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-CLASSPATH=$(GUIDIR):$(GUIDIR)/classdir:$(GUIDIR)/util:$(GUIDIR)/dataclasses:$(GUIDIR)/dchanger:$(GUIDIR)/native:$(GUIDIR)/visualrt:$(GUIDIR)/visualrt.jar:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-../classdir/%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d ../classdir -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-echo:
-	@echo $(CLASSES)
-	@echo $(JFILES)
-	@echo $(CLFILES)
-	@echo $(SUFFIXES)
-
-clobber : clobber_local
-
-clean: clean_local
-
-clobber_local: clean_local
-
-clean_local:
-	$(RM) $(CLFILES)
-
-FRC:
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#
-# 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
-#
-#
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-
-def             :=      TARGET= def
-all             :=      TARGET= all
-install         :=      TARGET= install
-install_h       :=      TARGET= install_h
-clean           :=      TARGET= clean
-clobber         :=      TARGET= clobber
-check           :=      TARGET= check
-
-.KEEP_STATE:
-
-JAVAFLAGS= -nowarn -O
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-CLASSPATH=$(GUIDIR)/visualrt:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-all clean clobber javadoc _msg:
-	( cd sunsoft/jws/visual/rt ; $(MAKE) CLASSPATH=$(CLASSPATH) $@ )
-
-install: all
-	$(JAR) cvf ../visualrt.jar ./sunsoft/jws/visual/rt/*/*.class ./sunsoft/jws/visual/rt/shadow/java/awt/*.class
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-JAVAFLAGS= -nowarn -O
-GUIDIR=$(SRC)/cmd/krb5/kadmin/gui
-
-def             :=      TARGET= def
-all             :=      TARGET= all
-install         :=      TARGET= install
-install_h       :=      TARGET= install_h
-clean           :=      TARGET= clean
-clobber         :=      TARGET= clobber
-lint            :=      TARGET= lint
-javadoc         :=      TARGET= javadoc
-clean.lint      :=      TARGET= clean.lint
-check           :=      TARGET= check
-_msg            :=      TARGET= _msg
-
-CLASSPATH=$(GUIDIR)/visualrt:$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
-
-SUBDIRS=props base type shadow awt encoding
-
-$(SUBDIRS):
-	cd $@; $(MAKE) CLASSPATH=$(CLASSPATH) $(TARGET)
-
-.KEEP_STATE:
-
-all: $(SUBDIRS)
-
-clean: $(SUBDIRS)
-
-clobber: $(SUBDIRS)
-
-install: all
-
-javadoc: $(SUBDIRS)
-
-_msg: $(SUBDIRS)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/Makefile.com	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-JAVAFLAGS= -nowarn -O
-JRE=$(JAVA_ROOT)/jre/lib
-VRT=$(SRC)/cmd/krb5/kadmin/gui/visualrt
-
-CLASSPATH=$(VRT):$(JAVA_ROOT)/jre/lib/rt.jar:$(JAVA_ROOT)/jre/lib/i18n.jar
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLCheckbox.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * CLCheckbox.java
- *
- * Copyright 1995-1996 Active Software Inc.
- *
- * @version @(#)CLCheckbox.java 1.9 96/12/11
- * @author  Tilman Sporkert
- */
-
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-/* BEGIN JSTYLED */
-
-/**
-         * A CLCheckbox is a special Object that the ColumnList 
-	 * draws like a flat
-         * checkbox. This has two advantages over putting 
-	 * java.awt.Checkboxes into
-         * the ColumnList:
-         * - under Motif, the java.awt.Checkbox has some 
-	 * extra space around it, 
-         *   making the rows very high.
-         * - highlighting a row with a java.awt.Checkbox in it looks ugly
-         * - significant performance improvements (measured 10x 
-	 * in one application)
-         * - the Checkbox is always drawn flat, not in 3D look. 
-	 * Flat is the correct
-         *   look in a scrollable area with a white background.
-         *
-         * Notes on usage:
-         * - if the state of a CLCheckbox gets changed, 
-	 * needsRepaint() should be
-         *   called on the ColumnList to make the change visible
-         * - If a CLCheckbox is in a column list, clicking 
-	 * on the box changes the
-         *   state and sends out an ACTION_EVENT. The row 
-	 * will not get selected.
-         *   Unlike AWT Checkboxes, clicking on the label does not change the
-         *   status. It just selects the row in the 
-	 * ColumnList (which triggers a
-         *   LIST_EVENT).
-         *
-         * @author  Tilman Sporkert
-         */
-            /* END JSTYLED */
-public class CLCheckbox extends CLComponent
-{
-    private boolean state = false;
-    
-    public CLCheckbox(String text, boolean state) {
-        super(text);
-        this.state = state;
-    }
-    
-    public boolean getState() {
-        return state;
-    }
-    
-    public void setState(boolean state) {
-        this.state = state;
-    }
-    
-    public void paint(Graphics g, int x, int y, int colWidth,
-		      int rowHeight, int ascent, int alignment)
-    {
-        if (canvas == null)
-            return;
-        
-        if (colWidth >= (rowHeight+4)) {
-            g.drawRect(x + 5, y + 2, rowHeight - 6, rowHeight - 6);
-            if (state) {
-                g.drawLine(x + 8, y + rowHeight / 2 - 1,
-			   x + rowHeight / 2 + 2, y + rowHeight - 7);
-                g.drawLine(x + rowHeight / 2 + 2, y + rowHeight - 7,
-			   x + rowHeight - 3, y + 4);
-                g.drawLine(x + 7, y + rowHeight / 2 - 1,
-			   x + rowHeight / 2 + 2, y + rowHeight - 6);
-                g.drawLine(x + rowHeight / 2 + 2, y + rowHeight - 6,
-			   x + rowHeight - 3, y + 5);
-            }
-        }
-        if (text != null) {
-            canvas.drawString(g, text, x + rowHeight + 4, y + ascent,
-			      colWidth - rowHeight - 8, alignment);
-        }
-    }
-    
-    public int textX() {
-        if (canvas == null)
-            return -1;
-        else
-            return canvas.rowHeight + 4;
-    }
-    
-    public int textY() {
-        if (canvas == null)
-            return -1;
-        else
-            return canvas.rowAscent;
-    }
-    
-    public Dimension size() {
-        if (canvas == null)
-            return null;
-        
-        FontMetrics metrics = canvas.getFontMetrics();
-        Dimension size = new Dimension(0, 0);
-        
-        if (text != null)
-            size.width += metrics.stringWidth(text) + 8;
-        size.width += canvas.rowHeight;
-        size.height = canvas.rowHeight;
-        
-        return size;
-    }
-    
-    public boolean mouseDown(Event evt) {
-        if (canvas == null)
-            return false;
-        
-        if (evt.x <= canvas.rowHeight) {
-            state = !state;
-            canvas.postEvent(new Event(this, Event.ACTION_EVENT,
-				       new Boolean(state)));
-            canvas.repaint();
-            return true;
-        }
-        
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLChoice.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,526 +0,0 @@
-/*
- * 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 1996 Active Software Inc.
- *
- * @version @(#)CLChoice.java 1.13 97/06/18
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-import java.util.*;
-
-public class CLChoice extends CLIconLabel
-{
-    public static final int APPLY = EditLine.APPLY;
-    
-    private Vector items = new Vector();
-    private int selectedIndex = -1;
-    private int itemsVisible = 12;
-    private boolean allowSuffix;
-    
-    private boolean dragging;
-    private int dragX, dragY;
-    private Window menuWindow;
-    private int menuWindowX, menuWindowY;
-    private TextList menu;
-    private boolean forwarding;
-    
-    public CLChoice() {
-        this(null, -1, null);
-    }
-    
-    public CLChoice(String[] items) {
-        this(items, 0, null);
-    }
-    
-    public CLChoice(String[] items, int selectedIndex) {
-        this(items, selectedIndex, null);
-    }
-    
-    public CLChoice(String[] items, String selectedItem) {
-        this(items, selectedItem, null);
-    }
-    
-    public CLChoice(String[] items, int selectedIndex, Image icon) {
-        super(null, icon);
-        
-        if (items == null) {
-            super.setText(/* NOI18N */"");
-            this.selectedIndex = 0;
-        } else {
-            setItems(items);
-            select(selectedIndex);
-        }
-    }
-    
-    public CLChoice(String[] items, String selectedItem, Image icon) {
-        super(null, icon);
-        
-        if (items == null) {
-            super.setText(/* NOI18N */"");
-            this.selectedIndex = 0;
-        } else {
-            setItems(items);
-            select(selectedItem);
-        }
-    }
-    
-    public CLChoice(String[] items, String selectedItem, Image icon,
-		    boolean allowSuffix) {
-        super(null, icon);
-        
-        this.allowSuffix = allowSuffix;
-        
-        if (items == null) {
-            super.setText(/* NOI18N */"");
-            this.selectedIndex = 0;
-        } else {
-            setItems(items);
-            select(selectedItem);
-        }
-    }
-    
-    public void setItemsVisible(int num) {
-        if (num <= 0)
-            num = 1;
-        itemsVisible = num;
-    }
-    
-    public int getItemsVisible() {
-        return itemsVisible;
-    }
-    
-    public void addItem(String item) {
-        items.addElement(item);
-        if (menu != null)
-            menu.addItem(item);
-    }
-    
-    public int countItems() {
-        return items.size();
-    }
-    
-    public String[] getItems() {
-        int length = items.size();
-        String[] s = new String[length];
-        for (int i = 0; i < length; i++)
-            s[i] = (String)items.elementAt(i);
-        return s;
-    }
-    
-    public void setItems(String[] items) {
-        this.items.removeAllElements();
-        if (menu != null)
-            menu.clear();
-        for (int i = 0; i < items.length; i++)
-            addItem(items[i]);
-    }
-    
-    public String getItem(int index) {
-        return (String)items.elementAt(index);
-    }
-    
-    public void removeItem(String item) {
-        removeItem(items.indexOf(item));
-    }
-    
-    public void removeItem(int index) {
-        if (index < 0 || index >= items.size())
-            return;
-        
-        items.removeElementAt(index);
-        if (menu != null) {
-            menu.items().removeElementAt(index);
-            menu.updateView();
-        }
-        
-        int selectedIndex = getSelectedIndex();
-        if (selectedIndex != -1) {
-            if (selectedIndex == index)
-                select(0);
-            else if (selectedIndex > index)
-                select(selectedIndex-1);
-        }
-    }
-    
-    public int getSelectedIndex() {
-        if (items.size() == 0)
-            return -1;
-        else
-            return selectedIndex;
-    }
-    
-    public String getSelectedItem() {
-        if (items.size() == 0)
-            return null;
-        else
-            return (String)items.elementAt(selectedIndex);
-    }
-    
-    public void select(int index) {
-        select(index, null);
-    }
-    
-    public void select(String item) {
-        if (items == null)
-            return;
-        
-        int index = -1;
-        String selItem = null;
-        
-        if (item != null) {
-            if (allowSuffix) {
-                int length = items.size();
-                for (int i = 0; i < length; i++) {
-                    String thisItem = (String)items.elementAt(i);
-                    if (item.startsWith(thisItem)) {
-                        selItem = item;
-                        index = i;
-                        break;
-                    }
-                }
-            } else {
-                index = items.indexOf(item);
-            }
-        }
-        
-        select(index, selItem);
-    }
-    
-    private void select(int index, String selItem) {
-        if (index >= items.size())
-            index = items.size()-1;
-        if (index < 0)
-            index = 0;
-        
-        if (index != selectedIndex) {
-            selectedIndex = index;
-            if (items.size() == 0) {
-                super.setText(/* NOI18N */"");
-            } else {
-                if (selItem == null)
-                    selItem = (String)items.elementAt(index);
-                super.setText(selItem);
-            }
-        }
-    }
-    
-    public void setText(String text, boolean update) {
-        super.setText(text, update);
-        select(text);
-    }
-    
-    public String getText() {
-        return getSelectedItem();
-    }
-    
-    public void setAllowSuffix(boolean allowSuffix) {
-        this.allowSuffix = allowSuffix;
-    }
-    
-    public boolean getAllowSuffix() {
-        return allowSuffix;
-    }
-    
-    public boolean mouseDown(Event evt) {
-        if (canvas == null)
-            return false;
-        
-        if (evt.clickCount == 1 && canvas.getSelectedRow() == row &&
-	    canvas.startEdit(column)) {
-            showMenu();
-            dragging = true;
-            dragX = evt.x + canvas.columnX(column);
-            dragY = evt.y + canvas.rowY(row);
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    void cancelEdit() {
-        if (canvas != null)
-            hideMenu();
-    }
-    
-    // Events are sent here subsequent to the mouseDown.
-    public boolean handleEvent(Event evt) {
-        if (canvas == null)
-            return false;
-        
-        if (evt.target == menu && evt.id == Event.LIST_SELECT) {
-            dragging = false;
-            String item = menu.getSelectedItem();
-            hideMenu();
-            canvas.postEvent(new Event(this, APPLY, item));
-        } else if (dragging) {
-            forwardToMenu(evt, canvas.getEditRow(),
-			  canvas.getEditColumn());
-            if (evt.id == Event.MOUSE_UP && dragging &&
-		evt.x != -1 && evt.y != -1) {
-                dragging = false;
-                if (Math.abs(evt.x - dragX) +
-		    Math.abs(evt.y - dragY) > 4) {
-                    canvas.cancelEdit();
-                }
-            }
-        } else {
-            return false;
-        }
-        
-        return true;
-    }
-    
-    private void showMenu() {
-        if (menu == null) {
-            menu = canvas.choiceMenu;
-            menuWindow = canvas.choiceMenuWindow;
-            
-            if (menu == null) {
-                menu = new TextList();
-                menu.setBackground(canvas.getParent().getBackground());
-                menu.setRelief(menu.BLACK_BORDER);
-                menu.setBorderWidth(1);
-                menu.setMinimumColumns(0);
-                menu.setMinimumRows(0);
-                canvas.choiceMenu = menu;
-                
-                if (Global.isMotif()) {
-                    menu.hide();
-                    canvas.add(menu);
-                } else {
-                    menuWindow = new Window(findFrame(canvas));
-                    canvas.choiceMenuWindow = menuWindow;
-                    canvas.add(menuWindow);
-                    menuWindow.add(/* NOI18N */"Center", menu);
-                }
-            } else {
-                menu.clear();
-                
-                // Don't remove the menu from the canvas on Windows.  If you do,
-                // you start getting spurious double-clicks!  But you do want
-                // to remove it on Motif, otherwise the canvas becomes incapable
-                // of getting the keyboard focus.
-                if (Global.isMotif())
-                    canvas.add(menu);
-            }
-            
-            Enumeration e = items.elements();
-            while (e.hasMoreElements())
-                menu.addItem((String)e.nextElement());
-        }
-        
-        if (Global.isMotif()) {
-            Rectangle r = getMenuBounds(menu);
-            menu.reshape(r.x, r.y, r.width, r.height);
-            menu.select(selectedIndex);
-            menu.validate();
-            menu.makeVisible(selectedIndex);
-            menu.menuMode(null);
-            menu.show();
-        } else {
-            Rectangle r = getWindowMenuBounds(menu);
-            menuWindow.reshape(r.x, r.y, r.width, r.height);
-            menuWindow.validate();
-            menu.select(selectedIndex);
-            menu.makeVisible(selectedIndex);
-            menu.menuMode(this);
-            menuWindow.show();
-            findFrame(canvas).requestFocus();
-        }
-    }
-    
-    private void hideMenu() {
-        if (menu != null) {
-            if (Global.isMotif()) {
-                menu.reshape(0, 0, 0, 0);
-                menu.hide();
-                
-                // Don't remove the menu from the canvas on Windows.  If you do,
-                // you start getting spurious double-clicks!  But you do want
-                // to remove it on Motif, otherwise the canvas becomes incapable
-                // of getting the keyboard focus.
-                if (Global.isMotif())
-                    canvas.remove(menu);
-                
-                menu = null;
-            } else {
-                menuWindow.hide();
-                menuWindow = null;
-                menuWindowX = 0;
-                menuWindowY = 0;
-                menu = null;
-            }
-        }
-    }
-    
-    private synchronized void forwardToMenu(Event evt, int row,
-					    int column) {
-        if (forwarding)
-            return;
-        
-        Point offset = new Point(0, 0);
-        
-        if (Global.isMotif()) {
-            Point p1 = menu.location();
-            Point p2 = menu.view.location();
-            offset.x = p1.x + p2.x;
-            offset.y = p1.y + p2.y;
-        } else {
-            if (!(evt.id == Event.MOUSE_DRAG))
-                return;
-            
-            offset.x = menuWindowX;
-            offset.y = menuWindowY;
-        }
-        
-        Event evtCopy = new Event(evt.target, evt.when, evt.id,
-				  evt.x - offset.x, evt.y - offset.y, evt.key,
-				  evt.modifiers, evt.arg);
-        evtCopy.clickCount = evt.clickCount;
-        evtCopy.evt = evt.evt;
-        
-        forwarding = true;
-        
-        // Don't set the menuDrag flag based on a forwarded event.
-        boolean menuDrag = menu.view.menuDrag;
-        menu.view.postEvent(evtCopy);
-        if (menu != null)
-            menu.view.menuDrag = menuDrag;
-        
-        forwarding = false;
-    }
-    
-    private Rectangle getMenuBounds(TextList menu) {
-        Rectangle r = new Rectangle(0, 0, 0, 0);
-        Dimension pref = menu.preferredSize();
-        Dimension size = canvas.size();
-        int x = canvas.columnX(column);
-        int y = canvas.rowY(row);
-        
-        r.x = Math.min(x, size.width - pref.width);
-        r.x = Math.max(0, r.x);
-        r.width = Math.min(pref.width, size.width - r.x);
-        
-        int numItems = Math.min(items.size(), itemsVisible);
-        numItems = Math.max(numItems, 1);
-        int lineHeight = menu.lineHeight();
-        int hPad = 6;
-        
-        int prefHeight = numItems * lineHeight + hPad;
-        int spaceAbove = y;
-        int spaceBelow = (size.height - (y + canvas.rowHeight));
-        int availableHeight;
-        boolean below;
-        
-        if (prefHeight <= spaceBelow || spaceBelow >= spaceAbove) {
-            below = true;
-            availableHeight = spaceBelow;
-        } else {
-            below = false;
-            availableHeight = spaceAbove;
-        }
-        
-        numItems = Math.min(numItems,
-			    (availableHeight - hPad) / lineHeight);
-        
-        r.height = numItems * lineHeight + hPad;
-        if (below)
-            r.y = y + canvas.rowHeight;
-        else
-            r.y = y - r.height;
-        
-        return r;
-    }
-    
-    private Rectangle getWindowMenuBounds(TextList menu) {
-        Rectangle r = new Rectangle(0, 0, 0, 0);
-        Point offset = getFrameOffset(canvas);
-        Dimension pref = menu.preferredSize();
-        
-        int numItems = Math.min(items.size(), itemsVisible);
-        numItems = Math.max(numItems, 1);
-        int lineHeight = menu.lineHeight();
-        int hPad = 6;
-        int prefHeight = numItems * lineHeight + hPad;
-        
-        r.x = offset.x + canvas.columnX(column);
-        r.y = offset.y + canvas.rowY(row) + lineHeight;
-        r.width = pref.width;
-        r.height = prefHeight;
-        
-        // The Window instance cannot be resized narrower than 112 or shorter
-        // than 27.  This is a lame AWT restriction for Windows95.
-        r.width = Math.max(r.width, 112);
-        r.height = Math.max(r.height, 27);
-        
-        Dimension screenSize = canvas.getToolkit().getScreenSize();
-        // Subtract for taskbar
-        screenSize.height -= 30;
-        
-        if ((r.x + r.width) > screenSize.width)
-            r.x = screenSize.width - r.width;
-        if (r.x < 0)
-            r.x = 0;
-        
-        if ((r.y + r.height) > screenSize.height)
-            r.y -= (r.height + lineHeight);
-        if (r.y < 0)
-            r.y = 0;
-        
-        menuWindowX = r.x - offset.x;
-        menuWindowY = r.y - offset.y;
-        
-        return r;
-    }
-    
-    private Frame findFrame(Component comp) {
-        while (comp != null && !(comp instanceof Frame))
-            comp = comp.getParent();
-        
-        return (Frame)comp;
-    }
-    
-    private Point getFrameOffset(Component comp) {
-        Point offset = new Point(0, 0);
-        while (comp != null) {
-            Point location = comp.location();
-            offset.x += location.x;
-            offset.y += location.y;
-            if (comp instanceof Frame)
-                break;
-            comp = comp.getParent();
-        }
-        
-        return offset;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLComponent.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * 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 1996 Active Software Inc.
- *
- * @version @(#)CLComponent.java 1.6 96/11/08
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-public abstract class CLComponent {
-    protected ColumnListCanvas canvas;
-    protected int row, column;
-    protected String text;
-    private boolean editable;
-    
-    public CLComponent(String text) {
-        setText(text);
-        this.editable = true;
-    }
-    
-    void setCanvas(ColumnListCanvas canvas, int row, int column) {
-        this.canvas = canvas;
-        this.row = row;
-        this.column = column;
-    }
-    
-    public void setText(String text) {
-        setText(text, true);
-    }
-    
-    public void setText(String text, boolean update) {
-        this.text = text;
-        if (canvas != null) {
-            canvas.adjustColumnWidths(this, column);
-            if (update)
-                canvas.updateView();
-        }
-    }
-    
-    public String getText() {
-        return text;
-    }
-    
-    public void setEditable(boolean value) {
-        this.editable = value;
-    }
-    
-    public boolean getEditable() {
-        return editable;
-    }
-    
-    public String toString() {
-        return text;
-    }
-    
-    public abstract int textX();
-    public abstract int textY();
-    public abstract Dimension size();
-    public abstract void paint(Graphics g, int x, int y, int width,
-			       int height, int ascent, int alignment);
-    
-    public boolean mouseDown(Event evt) {
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CLIconLabel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
- * 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 1996 Active Software Inc.
- *
- * @version @(#)CLIconLabel.java 1.8 96/11/14
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.type.IntHolder;
-import java.awt.*;
-
-public class CLIconLabel extends CLComponent
-{
-    private static final int ICON_XPAD = 2;
-    private static final int ICON_WIDTH = 16;
-    private static final int TOTAL_ICON_WIDTH = ICON_WIDTH +
-	(2*ICON_XPAD);
-    
-    private static final int ICON_YPAD = 0;
-    private static final int ICON_HEIGHT = 16;
-    private static final int TOTAL_ICON_HEIGHT = ICON_HEIGHT +
-	(2*ICON_YPAD);
-    
-    private static final int TEXT_PAD = 4;
-    
-    private Image icon;
-    private boolean editable = true;
-    
-    /**
-     * Construct a new CLIconLabel.
-     */
-    public CLIconLabel(String text, Image icon) {
-        super(text);
-        this.icon = icon;
-    }
-    
-    public Image getIcon() {
-        return icon;
-    }
-    
-    public void setIcon(Image icon) {
-        setIcon(icon, true);
-    }
-    
-    public void setIcon(Image icon, boolean update) {
-        this.icon = icon;
-        if (canvas != null && update)
-            canvas.updateView();
-    }
-    
-    public void paint(Graphics g,
-		      int x, int y, int w, int h, int ascent, int alignment)
-    {
-        if (canvas == null)
-            return;
-        
-        IntHolder xoff = new IntHolder();
-        String s = getOffsetAndText(w, alignment, xoff);
-        
-        if (icon != null && w >= TOTAL_ICON_WIDTH) {
-            g.drawImage(icon, x + xoff.value + ICON_XPAD,
-			y + ICON_YPAD, canvas);
-            xoff.value += TOTAL_ICON_WIDTH;
-        } else {
-            xoff.value += TEXT_PAD;
-        }
-        
-        if (s != null) {
-            g.drawString(s, x + xoff.value, y + ascent);
-        }
-    }
-    
-    private String getOffsetAndText(int width, int alignment,
-				    IntHolder xoff) {
-        FontMetrics fm = canvas.getFontMetrics();
-        int iconWidth = 0;
-        int iconPad = 0;
-        int textWidth = 0;
-        int rTextPad = 0;
-        String s = null;
-        
-        if (icon != null) {
-            iconWidth = TOTAL_ICON_WIDTH;
-            iconPad = ICON_XPAD;
-        } else if (text != null) {
-            iconWidth = TEXT_PAD;
-        }
-        
-        if (text != null) {
-            rTextPad = TEXT_PAD;
-            int availTextW = width - iconWidth - rTextPad;
-            s = canvas.chopText(text, availTextW);
-            textWidth = fm.stringWidth(s);
-        }
-        
-        int totalWidth = iconWidth + textWidth + rTextPad;
-        
-        switch (alignment) {
-	case Label.LEFT:
-            xoff.value = 0;
-            break;
-	case Label.CENTER:
-            xoff.value = (width - totalWidth)/2;
-            break;
-	case Label.RIGHT:
-            xoff.value = width - totalWidth;
-            break;
-        }
-        
-        if (xoff.value < 0)
-            xoff.value = 0;
-        
-        return s;
-    }
-    
-    public int textX() {
-        if (canvas == null)
-            return -1;
-        
-        IntHolder xoff = new IntHolder();
-        getOffsetAndText(canvas.columnWidth(column),
-			 canvas.getFormat(column),
-			 xoff);
-        
-        if (icon != null)
-            xoff.value += TOTAL_ICON_WIDTH;
-        else if (text != null)
-            xoff.value += TEXT_PAD;
-        
-        return xoff.value;
-    }
-    
-    public int textY() {
-        if (canvas == null)
-            return -1;
-        else
-            return canvas.rowAscent;
-    }
-    
-    public Dimension size() {
-        if (canvas == null)
-            return null;
-        
-        FontMetrics metrics = canvas.getFontMetrics();
-        Dimension size = new Dimension(0, 0);
-        
-        if (icon != null)
-            size.width += TOTAL_ICON_WIDTH;
-        else if (text != null)
-            size.width += TEXT_PAD;
-        
-        if (text != null)
-            size.width += metrics.stringWidth(text) + TEXT_PAD;
-        size.height = canvas.rowHeight;
-        
-        return size;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CardPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-/*
- * 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.
- *
- * @(#) CardPanel.java 1.8 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.*;
-
-public class CardPanel extends VJPanel {
-    public static final int FETCHCARD = 68496;
-    public static final int CURRENTCARD = 68497;
-    
-    protected Vector tabs;
-    private Label cardLabel;
-    private CardLayout cardLayout;
-    private String currentCard;
-    private Hashtable cards;
-    
-    public CardPanel() {
-        cardLayout = new CardLayout();
-        setLayout(cardLayout);
-        
-        tabs = new Vector();
-        cards = new Hashtable();
-        
-        cardLabel = newCardLabel();
-        add(cardLabel, /* NOI18N */"foobar");
-        // JDK1.1 requires a constraint
-    }
-    
-    protected Label newCardLabel() {
-        return new Label(Global.getMsg(
-/* JSTYLED */
-				       "sunsoft.jws.visual.rt.awt.CardPanel.Card__Panel"));
-    }
-    
-    public Component add(String name, Component comp) {
-        boolean isFront =
-	    (currentCard != null && cards.get(currentCard) == comp);
-        
-        super.add(name, comp);
-        
-        if (isFront) {
-            comp.show();
-            currentCard = name;
-        }
-        
-        return comp;
-    }
-    
-    public void addTab(String name) {
-        tabs.addElement(name);
-    }
-    
-    public void addTab(String name, int index) {
-        tabs.insertElementAt(name, index);
-    }
-    
-    public String getTab(int index) {
-        int size = tabs.size();
-        if (index >= 0 && index < size)
-            return (String)tabs.elementAt(index);
-        else
-            return null;
-    }
-    
-    public int getTabIndex(String name) {
-        return tabs.indexOf(name);
-    }
-    
-    public void removeTab(String name) {
-        tabs.removeElement(name);
-        removeCard(name);
-    }
-    
-    public void renameTab(String oldName, String newName) {
-        int index = tabs.indexOf(oldName);
-        if (index != -1) {
-            tabs.removeElementAt(index);
-            tabs.insertElementAt(newName, index);
-            renameCard(oldName, newName);
-        }
-    }
-    
-    public void removeAllTabs() {
-        tabs.removeAllElements();
-        removeAllCards();
-    }
-    
-    public Enumeration tabs() {
-        return tabs.elements();
-    }
-    
-    public Component addCard(String name, Component card) {
-        if (cardLabel.getParent() == this)
-            remove(cardLabel);
-        
-        if (!tabs.contains(name)) {
-	    /* BEGIN JSTYLED */
-	    throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.awt.CardPanel.FMT.0", /* NOI18N */"\r\n",
-					  Global.getMsg("sunsoft.jws.visual.rt.awt.CardPanel.________There__is__no__tab__.0"), name, /* NOI18N */"\".\r\n",
-					  Global.getMsg("sunsoft.jws.visual.rt.awt.CardPanel.________You__must__call__ad.1")));
-	    /* END JSTYLED */
-        }
-        
-        cards.put(name, card);
-        
-        // The first card that is added will be shown by the cardLayout,
-        // and thusly it must become the currentCard.
-        if (currentCard == null) {
-            currentCard = name;
-            postEvent(new Event(this, CURRENTCARD, name));
-        }
-        
-        return add(name, card);
-    }
-    
-    public Component getCard(String name) {
-        return (Component)cards.get(name);
-    }
-    
-    public String getCardName(Component comp) {
-        Enumeration e = cards.keys();
-        while (e.hasMoreElements()) {
-            String key = (String)e.nextElement();
-            if (cards.get(key) == comp)
-                return key;
-        }
-        
-        return null;
-    }
-    
-    // Call renameTab to rename the card
-    private void renameCard(String oldName, String newName) {
-        Component comp = (Component)cards.get(oldName);
-        
-        if (comp != null) {
-            cards.remove(oldName);
-            cards.put(newName, comp);
-            
-            remove(comp);
-            add(newName, comp);
-            
-            if (oldName.equals(currentCard)) {
-                currentCard = newName;
-                comp.show();
-            }
-        }
-    }
-    
-    // Call removeTab to remove the card
-    private void removeCard(String name) {
-        if (name.equals(currentCard))
-            currentCard = null;
-        
-        Component comp = (Component)cards.get(name);
-        if (comp != null) {
-            cards.remove(name);
-            remove(comp);
-        }
-        
-        if (cardLabel.getParent() != this &&
-	    countComponents() == 0)
-	    add(cardLabel, /* NOI18N */"foobar");
-        // JDK1.1 requires a constraint
-    }
-    
-    // Call removeAllTabs to remove all the cards
-    private void removeAllCards() {
-        cards.clear();
-        
-        if (cardLabel.getParent() != this)
-            add(cardLabel, /* NOI18N */"foobar");
-    }
-    
-    public String getCurrentCard() {
-        return currentCard;
-    }
-    
-    public void show(String name) {
-        if (cards.get(name) == null) {
-            postEvent(new Event(this, FETCHCARD, name));
-        }
-        
-        if (cards.get(name) != null) {
-            currentCard = name;
-            cardLayout.show(this, name);
-            postEvent(new Event(this, CURRENTCARD, name));
-        }
-    }
-    
-    public void first() {
-        if (tabs.size() > 0)
-            show((String)tabs.elementAt(0));
-    }
-    
-    public void next() {
-        int index = frontIndex();
-        if (tabs.size() > (index+1))
-            show((String)tabs.elementAt(index+1));
-    }
-    
-    void previous() {
-        int index = frontIndex();
-        if (tabs.size() > 0 && (index-1) >= 0)
-            show((String)tabs.elementAt(index-1));
-    }
-    
-    public void last() {
-        int index = tabs.size()-1;
-        if (index >= 0)
-            show((String)tabs.elementAt(index));
-    }
-    
-    private int frontIndex() {
-        if (currentCard == null)
-            return -1;
-        else
-            return tabs.indexOf(currentCard);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * 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.
- *
- * @(#) CheckboxList.java 1.7 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.awt.*;
-import java.awt.*;
-import java.util.Vector;
-
-public class CheckboxList extends ScrollPanel {
-    private CheckboxView view;
-    
-    public CheckboxList() {
-        view = new CheckboxView();
-        add(view);
-        
-        Vector items = view.items;
-        for (int i = 0; i < 100; i++)
-            items.addElement(/* NOI18N */"item" + i);
-        
-        view.updateCheckboxes();
-    }
-}
-
-class CheckboxView extends Panel implements Scrollable {
-    Vector items;
-    
-    private int curx, cury;
-    private GBLayout gridbag;
-    private Panel panel;
-    
-    public CheckboxView() {
-        items = new Vector();
-        
-        setLayout(null);
-        gridbag = new GBLayout();
-        
-        panel = new Panel();
-        panel.setLayout(gridbag);
-        
-        add(panel);
-    }
-    
-    public void updateCheckboxes() {
-        panel.removeAll();
-        GBConstraints c = new GBConstraints();
-        
-        c.gridx = 0;
-        c.gridy = 0;
-        c.fill = GBConstraints.BOTH;
-        
-        int size = items.size();
-        for (int i = 0; i < items.size(); i++) {
-            Checkbox box = new Checkbox((String)items.elementAt(i));
-            gridbag.setConstraints(panel.add(box), c);
-            
-            c.gridx++;
-            if (c.gridx == 3) {
-                c.gridx = 0;
-                c.gridy++;
-            }
-        }
-        
-        if (panel.getPeer() != null) {
-            Dimension d = panel.minimumSize();
-            panel.reshape(0, 0, d.width, d.height);
-        }
-    }
-    
-    public void addNotify() {
-        super.addNotify();
-        Dimension d = panel.minimumSize();
-        panel.reshape(0, 0, d.width, d.height);
-    }
-    
-    public Dimension minimumSize() {
-        return new Dimension(150, 300);
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    public void scrollX(int x) {
-        curx = -x;
-        panel.move(curx, cury);
-    }
-    
-    public void scrollY(int y) {
-        cury = -y;
-        panel.move(curx, cury);
-    }
-    
-    public Dimension scrollSize() {
-        return panel.minimumSize();
-    }
-    
-    public Dimension viewSize(Dimension size) {
-        return size;
-    }
-    
-    public int lineHeight() {
-        if (panel.countComponents() == 0)
-            return 1;
-        
-        Component comp = panel.getComponent(0);
-        Dimension min = comp.minimumSize();
-        return min.height;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-public class CheckboxPanel extends GBPanel {
-    
-    private CheckboxGroup group;
-    
-    public CheckboxPanel() {
-        super();
-        group = new CheckboxGroup();
-    }
-    
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        doAdd(comp);
-        super.addImpl(comp, constraints, index);
-    }
-    // #else
-    // public Component add(Component comp, int pos) {
-    //   doAdd(comp);
-    //   return super.add(comp, pos);
-    // }
-    // #endif
-    
-    private void doAdd(Component comp) {
-        if (comp instanceof Checkbox) {
-            Checkbox box = (Checkbox)comp;
-            box.setCheckboxGroup(group);
-            
-            if (box.getState()) {
-                if (group.getCurrent() == null)
-                    group.setCurrent(box);
-                else
-                    box.setState(false);
-            }
-        }
-    }
-    
-    public void remove(Component comp) {
-        if (comp instanceof Checkbox)
-            ((Checkbox)comp).setCheckboxGroup(null);
-        super.remove(comp);
-    }
-    
-    public void removeAll() {
-        int count = countComponents();
-        for (int i = 0; i < count; i++) {
-            Component comp = getComponent(i);
-            if (comp instanceof Checkbox)
-                ((Checkbox)comp).setCheckboxGroup(null);
-        }
-        
-        super.removeAll();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,883 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * ColumnList.java
- *
- * Copyright 1995-1996 Active Software Inc.
- *
- * @version @(#)ColumnList.java 1.62 97/05/02
- * @author  Tilman Sporkert
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.awt.GBLayout;
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.awt.VJScrollbar;
-
-import java.awt.*;
-import java.util.Vector;
-
-                /* BEGIN JSTYLED */
-            /**
-             * A Widget to display data in a row/column fashion, 
-	     * with scrollbars etc.
-             *
-             * A ColumnList has the following features/attributes:
-             * headers: An array of Strings. The size of 
-	     * this array determines the number
-             * of columns in the list. There will be one additional, hidden
-             * column that can be used for any Object. 
-             * The length of the header string defines the initial width of the
-             * column. To make it wider, add spaces to the end of the string.
-             * If a header field is of the form "name=header", then only the
-             * "header" part will actually be used for the visible header.
-             * The "name" part is available through 
-	     * getNames() or getNameColumn()
-             * selectable: If true, records can be selected 
-	     * with the mouse. A LIST_EVENT gets posted.
-             * editable: If true, records can be edited with the mouse.  
-	     * Columns
-             * containing a checkbox are currently the only editable columns.
-             * highlight_items: If true, new entries will be 
-	     * highlighted in orange, slowly
-             * fading out.
-             * showHeaders: If set to false, the headers will not be shown.
-             *           
-             *
-             * @author  Tilman Sporkert
-             */
-
-                /* END JSTYLED */
-public class ColumnList extends ScrollPanel {
-    
-    // Entry attributes
-    static final int HIGHLIGHT = 1;
-    
-    ColumnListCanvas canvas;
-    String[] names = null;
-    boolean[] keys = null;
-    int[] sortColumns = null; // references names
-    int   validSortColumns = 0;
-    // how many of them were actually recognized?
-    boolean[] sortAscend = null;
-    
-    // event type for getting a chance to cancel the selection of a row
-    public final static int CONFIRM_SELECT = 4863;
-    
-    // event type for applying an edit
-    public final static int APPLY_EDIT = 4864;
-    
-    
-    /**
-     * create a new ColumnList with no information 
-     * about the columns
-    */
-    public ColumnList() {
-        add(canvas = new ColumnListCanvas(this));
-        setCanvasBackground(Color.white);
-    }
-    
-    
-    /**
-     * create a new ColumnList, with the given columns, and 
-     * given visible
-     * rows.
-     *
-     */
-    public ColumnList(String[] headers,
-		      boolean selectable,
-		      boolean highlight_items) {
-        this();
-        setHeaders(headers);
-        // setFormat(format);
-        setSelectable(selectable);
-        setHighlightItems(highlight_items);
-    }
-    
-    
-    /**
-     * Sets the column to be editable or not.  
-     * If a column is editable, then
-     * all the strings that are in the column will
-     * be able to be modified.
-     *
-     */
-    public void setTextEditable(int column, boolean value) {
-        canvas.setTextEditable(column, value);
-    }
-    
-    /**
-     * Sets all the columns to be editable or not.  If a column is
-     * editable, then all the strings that are in the column will
-     * be able to be modified.
-     *
-     */
-    public void setTextEditable(boolean value) {
-        canvas.setTextEditable(value);
-    }
-    
-    /**
-     * Gets the current value of the textEditable attribute.
-     *
-     */
-    public boolean getTextEditable(int column) {
-        return canvas.getTextEditable(column);
-    }
-    
-    /**
-     * Call this when a CONFIRM_SELECT event is received if you
-     * don't want the selection to be changed.
-     */
-    public void cancelSelect() {
-        canvas.cancelSelect();
-    }
-    
-    /**
-     * Call this to edit the given column of the 
-     * currently selected row.
-     *
-     */
-    public boolean startEdit(int column) {
-        return canvas.startEdit(column);
-    }
-    
-    /**
-     * Call this to force edits to be applied.
-     */
-    public boolean applyChanges() {
-        return canvas.applyChanges();
-    }
-    
-    /**
-     * Call this when a APPLY_EDIT event is received if you
-     * don't want the change to be applied.
-     */
-    public void cancelApply() {
-        canvas.cancelApply();
-    }
-    
-    /**
-     * Call this when you want to cancel any edit that might
-     * currently be going on.
-     */
-    public void cancelEdit() {
-        canvas.cancelEdit();
-    }
-    
-    public int getEditRow() {
-        return canvas.getEditRow();
-    }
-    
-    public int getEditColumn() {
-        return canvas.getEditColumn();
-    }
-    
-    /**
-     * Sets the foreground color.
-     *
-     */
-    public void setCanvasForeground(Color fg) {
-        canvas.setForeground(fg);
-        canvas.repaint();
-    }
-    
-    
-    /**
-     * Gets the current foreground color.
-     *
-     * @return Color
-     */
-    public Color getCanvasForeground() {
-        return canvas.getForeground();
-    }
-    
-    
-    /**
-     * Sets the background color.
-     *
-     */
-    public void setCanvasBackground(Color fg) {
-        canvas.setBackground(fg);
-        canvas.repaint();
-    }
-    
-    
-    /**
-     * Gets the current background color.
-     *
-     * @return Color
-     */
-    public Color getCanvasBackground() {
-        return canvas.getBackground();
-    }
-    
-    
-    /**
-     * Sets the font attribute.
-     *
-     */
-    public void setCanvasFont(Font font) {
-        canvas.setFont(font);
-        canvas.repaint();
-    }
-    
-    
-    /**
-     * Gets the font attribute.
-     *
-     */
-    public Font getCanvasFont() {
-        return canvas.getFont();
-    }
-    
-    
-    public Dimension preferredSize() {
-        Dimension d = super.preferredSize();
-        // Do NOT account for hbar height as
-        // we want preferredSize height to accomodate
-        // just the header and visibleRow data exactly
-        d.height -= hbar.preferredSize().height;
-        return d;
-    }
-    
-    /**
-     * Set the desired number of rows to be displayed. 
-     * This affects the
-     * minimumSize() and preferredSize() of the widget.
-     * The actual rows
-     * displayed by the widget depend on how the
-     * LayoutManager interprets
-     * those values.
-     *
-     */
-    public void setVisibleRows(int rows) {
-        setDisplayRows(rows);
-    }
-    
-    
-    // for backward compatibility
-    public void setDisplayRows(int rows) {
-        canvas.setDisplayRows(rows);
-    }
-    
-    
-    /**
-     * Set the desired number of "visible" chars, i.e. 
-     * the total width of
-     * the column list. Defaults to "all".
-     *
-     */
-    public void setVisibleChars(int chars) {
-        canvas.setVisibleChars(chars);
-    }
-    
-    
-    /**
-     * Sets the header strings.
-     *
-     */
-    public void setHeaders(String[] headers) {
-        String[] realHeaders = null;
-        
-        if (headers != null) {
-            realHeaders = new String[headers.length];
-            names = new String[headers.length];
-            keys = new boolean[headers.length];
-            boolean hasKeys = false;
-            for (int h = 0; h < headers.length; h++) {
-                keys[h] = false;
-                int offset = headers[h].indexOf(/* NOI18N */ '=');
-                if (offset > 0) {
-                    names[h] = headers[h].substring(0, offset);
-                    if (names[h].charAt(0) == /* NOI18N */ '*') {
-                        keys[h] = true;
-                        hasKeys = true;
-                        names[h] = headers[h].substring(1, offset);
-                    }
-                    realHeaders[h] = headers[h].substring(
-							  offset + 1);
-                } else {
-                    realHeaders[h] = headers[h];
-                    names[h] = headers[h];
-                }
-            }
-            if (!hasKeys)
-                keys = null;
-        } else {
-            keys = null;
-        }
-        
-        canvas.setHeaders(realHeaders);
-    }
-    
-    /* BEGIN JSTYLED */
-    /**
-     * Set the sort order. Input is an array of 
-     column names, optionally
-     * preceded with a '+' for Ascend (default) 
-     or '-' for descend.
-     * This call should be made after setHeaders(), and 
-     before adding items.
-     * Items should only be added with addItem(Object[] entry).
-     *
-     *  If any of the names supplied do not match a 
-     column name, then
-     *  they will be silently ignored.
-     *
-     */
-    /*
-     * Fix for Sun Bug # 4069218: incorrect sortNames 
-     * causes array out of bounds
-     *                              error on addItem(...).
-     *      -> If name is not recognized (i.e. getNameColumn() returns -1),
-     *         Then that entry is *silently* ignored.
-     *      -> Later we may want to throw some kind of exception.
-     *
-     */
-    /* END JSTYLED */
-    public void setSort(String[] sortNames) {
-        if (sortNames != null && sortNames.length > 0) {
-            sortColumns = new int[sortNames.length];
-            sortAscend = new boolean[sortNames.length];
-            int acceptedIndex = 0;
-            int nameColumn;
-            boolean ascend;
-            for (int c = 0; c < sortNames.length; c++) {
-                
-                String colName = null;
-                if (sortNames[c].startsWith(/* NOI18N */"+")) {
-                    ascend = true;
-                    colName = sortNames[c].substring(1);
-                } else if (sortNames[c].startsWith(/* NOI18N */"-")) {
-                    colName = sortNames[c].substring(1);
-                    ascend = false;
-                } else {
-                    ascend = true;
-                    colName = sortNames[c];
-                }
-                nameColumn = getNameColumn(colName);
-                if (nameColumn != -1) {
-                    // only process if recognized.
-                    acceptedIndex ++;
-                    sortColumns[acceptedIndex-1] = nameColumn;
-                    sortAscend[acceptedIndex-1] =  ascend;
-                }
-            }
-            // Need to remember the actual number of accepted sort columns.
-            validSortColumns = acceptedIndex;
-        } else {
-            sortColumns = null;
-            validSortColumns = 0;
-            sortAscend = null;
-        }
-    }
-    
-    
-    
-    /**
-     * set column formating. There is one letter for each column, with
-     * l = left, c = center, r = right
-     *
-     */
-    public void setFormats(String formatStr) {
-        int[] format = new int[formatStr.length()];
-        for (int c = 0; c < formatStr.length(); c++) {
-            int f = formatStr.charAt(c);
-            if (f == /* NOI18N */ 'c')
-                format[c] = Label.CENTER;
-            else if (f == /* NOI18N */ 'r')
-                format[c] = Label.RIGHT;
-            else
-                format[c] = Label.LEFT; // default
-        }
-        canvas.setFormats(format);
-    }
-    
-    
-    /**
-     * Sets the selectable attribute.
-     *
-     */
-    public void setSelectable(boolean selectable) {
-        canvas.setSelectable(selectable);
-    }
-    
-    
-    /**
-     * Sets the editable attribute.
-     *
-     */
-    public void setEditable(boolean editable) {
-        canvas.setEditable(editable);
-    }
-    
-    
-    /**
-     * Sets the hightLightItems attribute.
-     *
-     */
-    public void setHighlightItems(boolean highlight_items) {
-        canvas.setHighlightItems(highlight_items);
-    }
-    
-    public void setHighlighted(int row, boolean highlight) {
-        canvas.setHighlighted(row, highlight);
-    }
-    
-    public boolean getHighlighted(int row) {
-        return canvas.getHighlighted(row);
-    }
-    
-    /**
-     * Sets the showHeaders attribute.
-     *
-     */
-    public void setShowHeaders(boolean showHeaders) {
-        canvas.setShowHeaders(showHeaders);
-    }
-    
-    
-    /**
-     * Sets the showVerticalLines attribute.
-     *
-     */
-    public void setShowVerticalLines(boolean showVerticalLines) {
-        canvas.setShowVerticalLines(showVerticalLines);
-    }
-    
-    
-    /**
-     * Sets the showHorizontalLines attribute.
-     *
-     */
-    public void setShowHorizontalLines(boolean showHorizontalLines) {
-        canvas.setShowHorizontalLines(showHorizontalLines);
-    }
-    
-    
-    /**
-     * Sets the autoWidth attribute.
-     *
-     */
-    public void setAutoWidth(boolean autoWidth) {
-        canvas.setAutoWidth(autoWidth);
-    }
-    
-    
-    /**
-     * Adds an item to the list. If the list has no 
-     * keys defined, the item
-     * will be appended at the end of the list.
-     * Otherwise, the existing entries
-     * will be searched for an entry with the same key values.
-     * If there is
-     * such an entry, it will get replaced. Otherwise, the
-     * record goes at the
-     * end.
-     *
-     * @param values the record
-     * @param updateView whether to update the view
-     * @return index of new record
-     */
-    public int addItem(Object[] values, boolean updateView) {
-        boolean setSelectedRow = false;
-        if (keys != null) {
-            for (int r = 0; r < entries(); r++)
-                if (isEqualTo(values, r)) {
-		    // found a matching entry
-		    if (sortColumns != null && validSortColumns > 0) {
-			// when sorting, take out the old one, and put the new
-			// one in at its proper place
-			if (getSelectedRow() == r)
-			    setSelectedRow = true;
-			canvas.delItems(r, r);
-			break;
-		    }
-		    // no sorting -> just replace
-		    canvas.addItem(values, r);
-		    if (updateView)
-			updateView();
-		    return r;
-		}
-        }
-        if (sortColumns != null && validSortColumns  > 0) {
-            for (int r = 0; r < entries(); r++) {
-                for (int c = 0; c < validSortColumns; c++) {
-                    int colIndex = sortColumns[c];
-                    int comp = values[colIndex].toString().compareTo(
-				     getItem(r, colIndex).toString());
-                    if (!sortAscend[c])
-                        comp = -comp;
-                    if (comp < 0) {
-                        canvas.insertItem(values, r);
-                        if (setSelectedRow)
-                            selectRow(r);
-                        if (updateView)
-                            updateView();
-                        return r;
-                    } else if (comp > 0)
-                        break;
-                }
-            }
-        }
-        canvas.addItem(values);
-        if (setSelectedRow)
-            selectRow(entries() - 1);
-        if (updateView)
-            updateView();
-        return (entries() - 1);
-    }
-    
-    
-    /**
-     * Adds an item to the list.
-     *
-     */
-    public void addItem(Object[] values) {
-        addItem(values, true);
-    }
-    
-    
-    /**
-     * Compares a row to the specified values.
-     *
-     */
-    private boolean isEqualTo(Object[] values, int r) {
-        for (int c = 0; c < getColumns(); c++) {
-            if (keys[c]) {
-                if (!((String) getItem(r, c)).equals((String) values[c]))
-                    return false;
-            }
-        }
-        return true;
-    }
-    
-    
-    /**
-     * Adds an item at a specific location. An existing record will be
-     * replaced. You should not use this method if you have sorting
-     * enabled!
-     *
-     */
-    public void addItem(Object[] values, int row) {
-        canvas.addItem(values, row);
-        updateView();
-    }
-    
-    
-    /**
-     * Insert a new item at a specific location. 
-     * Existing records will be
-     * moved back. You should not use this method if you have sorting
-     * enabled!
-     *
-     */
-    public void insertItem(Object[] values, int row) {
-        canvas.insertItem(values, row);
-        updateView();
-    }
-    
-    
-    /**
-     * Deletes the items.
-     */
-    public void delItems() {
-        delItems(true);
-    }
-    
-    public void delItems(boolean updateView) {
-        canvas.delItems();
-        if (updateView)
-            updateView();
-    }
-    
-    
-    /**
-     * Delete the items.
-     *
-     */
-    public void delItems(int start, int end) {
-        canvas.delItems(start, end);
-        updateView();
-    }
-    
-    
-    /**
-     * Delete an item.
-     *
-     */
-    public boolean delItem(Object[] values) {
-        if (keys != null) {
-            for (int r = 0; r < entries(); r++)
-                if (isEqualTo(values, r)) {
-		    canvas.delItems(r, r);
-		    updateView();
-		    return true;
-		}
-        }
-        return false;
-    }
-    
-    
-    /**
-     * Select a row.
-     *
-     */
-    public int selectRow(int row) {
-        return canvas.selectRow(row);
-    }
-    
-    // for backwards compatibility
-    public void highlight(int row) {
-        canvas.selectRow(row);
-    }
-    
-    /**
-     * Gets the selectedRow attribute.
-     */
-    public int getSelectedRow() {
-        return canvas.selectedRow;
-    }
-    
-    public int getHighlightedRow() {
-        return canvas.getSelectedRow();
-    }
-    
-    /**
-     * Gets the bounds.
-     */
-    public Rectangle getListBounds() {
-        return canvas.bounds();
-    }
-    
-    
-    /**
-     * Gets the entries.
-     */
-    public int entries() {
-        return canvas.records;
-    }
-    
-    
-    /**
-     * Gets the columns.
-     */
-    public int getColumns() {
-        return canvas.columns;
-    }
-    
-    
-    /**
-     * Gets the names of all the columns.
-     */
-    public String[] getNames() {
-        return names;
-    }
-    
-    
-    /**
-     * Gets the column with the specified name. 
-     *
-     */
-    public int getNameColumn(String name) {
-        for (int n = 0; n < names.length; n++)
-            if (names[n].equals(name))
-		return n;
-        return -1;
-    }
-    
-    
-    /**
-     * Gets an item in the specified row and column.
-     *
-     */
-    public Object getItem(int row, int column) {
-        return canvas.getItem(row, column);
-    }
-    
-    
-    /**
-     * Gets the "Object" for a row. 
-     *
-     */
-    public Object getObject(int row) {
-        return canvas.getItem(row, canvas.columns);
-    }
-    
-    /**
-     * Puts an item at a specific row/column location.
-     * Warning: If you are changing the value of a 
-     * key column, another record
-     *          that matches your keys will get deleted.
-     * If you are changing
-     *          the value of a sort column, your record
-     * might get moved to a
-     *          new position.
-     *          The function returns the new row index.
-     *
-     */
-    public int putItem(int row, int column, Object value) {
-        Object oldValue = getItem(row, column);
-        if (!canvas.putItem(row, column, value))
-            return -1;
-        
-        // skip the checks if value didn't change (but not when value isn't
-        // representable as a string, for example hwhen an icon has no label)
-        if (value.toString() != null &&
-	    value.toString().equals(oldValue.toString()))
-	    return row;
-        
-        boolean setSelectedRow = false;
-        if (getSelectedRow() == row)
-            setSelectedRow = true;
-        
-        // did we update a key column?
-        if (keys != null && keys.length > column && keys[column]) {
-            Object[] values = (Object []) canvas.labels.elementAt(row);
-            for (int r = 0; r < entries(); r++)
-                if (r != row && isEqualTo(values, r)) {
-		    // found a matching entry at a different location
-		    canvas.delItems(r, r);
-		    if (r < row)
-			row--; // we just moved down one entry
-		    break;
-		}
-        }
-        if (isSortColumn(column)) {
-            Object[] values = (Object []) canvas.labels.elementAt(row);
-            for (int r = 0; r < entries(); r++) {
-                for (int c = 0; c < sortColumns.length; c++) {
-                    int colIndex = sortColumns[c];
-                    int comp = values[colIndex].toString().compareTo(
-				     getItem(r, colIndex).toString());
-                    if (!sortAscend[c])
-                        comp = -comp;
-                    if (comp < 0) {
-                        if (r != row && r != row + 1) {
-                            swapItems(r, row);
-                            row = r;
-                        }
-                        if (setSelectedRow)
-                            selectRow(row);
-                        return row;
-                    } else if (comp > 0)
-                        break;
-                }
-            }
-        }
-        if (setSelectedRow)
-            selectRow(row);
-        return row;
-    }
-    
-    
-    private boolean isSortColumn(int column) {
-        if (sortColumns == null)
-            return false;
-        for (int c = 0; c < validSortColumns; c++)
-            if (sortColumns[c] == column)
-		return true;
-        return false;
-    }
-    
-    
-    /**
-     * Sets the object for a row
-     *
-     */
-    public boolean putObject(int row, Object value) {
-        return canvas.putItem(row, canvas.columns, value);
-    }
-    
-    
-    /**
-     * Swaps the entries in two rows
-     *
-     */
-    public boolean swapItems(int row1, int row2) {
-        return canvas.swapItems(row1, row2);
-    }
-    
-    
-    /**
-     * Gets the Y coordinate of the upper edge of a 
-     * row in the column list.
-     * Returns -1 if the row is not visible. Returns -2 is the list is
-     * not layed out yet.
-     *
-     * @param row index of desired row
-     * @return       Y coordinage of row
-     */
-    public int getRowY(int row) {
-        return canvas.getRowY(row);
-    }
-    
-    
-    /**
-     * Gets the row height of entries in the list
-     *
-     * @return       height of a row
-     */
-    public int getRowHeight() {
-        return canvas.rowHeight;
-    }
-    
-    
-    /**
-     * Calls repaint() on the ColumnListCanvas. Needed 
-     * if an Object in the
-     * column list has been changed directly(without going through
-     * putItem).
-     */
-    public void needsRepaint() {
-        canvas.repaint();
-    }
-    
-    
-    /**
-     * Redraws everything, and re-evaluates the need for scroll bars
-     */
-    public void updateView() {
-        canvas.repaint();
-        updateWindow();
-    }
-    
-    void setHBarValue(int value) {
-        hbar.setValue(value);
-    }
-    
-    void setVBarValue(int value) {
-        vbar.setValue(value);
-    }
-    
-    public void changeText(String text, int row, int column) {
-        canvas.changeText(text, row, column);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnListCanvas.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1857 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * ColumnListCanvas.java
- *
- * Copyright 1995-1996 Active Software Inc.
- *
- * @version @(#)ColumnListCanvas.java 1.93 97/07/25
- * @author  Tilman Sporkert
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Graphics;
-import java.util.Vector;
-import java.awt.*;
-
-/**
- * An internal widget for the ColumnList widget
- *
- * @author  Tilman Sporkert
- */
-class ColumnListCanvas extends VJPanel implements Scrollable {
-    // Padding
-    final static int LEFT_PAD = 4;
-    final static int RIGHT_PAD = 4;
-    
-    // Editing
-    private EditLine editline;
-    private CLChoice editchoice;
-    private boolean justCancelled;
-    Window choiceMenuWindow;
-    TextList choiceMenu;
-    private int editrow = -1;
-    private int editcolumn = -1;
-    private boolean[] textEditable;
-    private boolean applying;
-    private boolean cancelApply;
-    
-    // double-buffering
-    private Image buffer;
-    private Dimension bufferSize;
-    private Image[] bufferCache = new Image[3];
-    private Dimension[] bufferSizeCache = new Dimension[3];
-    
-    ColumnList parent;
-    Frame      ourFrame = null;
-    int        columns;         // # of data columns
-    // there are actual columns + 1 columns managed
-    // but only columns are visible. The last
-    // column can be accessed only by addItem(),
-    // getItem(), and putItem(), and can be used to
-    // manage a random object together with the
-    // data row
-    int        charWidth;
-    int        rowHeight;      // height of data row
-    Component  hasComponents = null;
-    int        componentHeight = 0;
-    // height of largest component in list
-    int        rowAscent;
-    int        headerHeight;
-    int        totalWidth;     // total width of all colums
-    boolean    dragging = false; // for resizing columns
-    int        dragStart;      // x position where drag started
-    int        dragColumn;     // which column is getting resized?
-    
-    String[]   headers;
-    boolean    showHeaders = true;
-    boolean    showVerticalLines = false;
-    boolean    showHorizontalLines = false;
-    int[]      formats = null;   // Formatting mode for columns
-    int[]      dimensions;      // the dimensions of the headers
-    boolean    autoWidth = true; // automatically expand columns to fit?
-    int        records;         // # of active records
-    Vector     labels;          // the actual data, as Label[]
-    Vector     rowColors;      // Attributes of a record
-    
-    int        requestedRows = 5;  // requested # of rows to show
-    int        requestedChars = 0;
-    // request # of chars to display horizontally
-    int        dispRows;       // # of rows to show
-    int        visibleRows = -1;
-    // this can be one more than dispRows
-    
-    int        scrollx = 0;
-    int        scrollrow = 0;
-    int        scrolly = 0;
-    
-    // the selection
-    boolean    highlightItems = false; // highlight new items?
-    Thread     colorThread = null;
-    boolean    selectable = false;
-    int        selectedRow = -1;
-    Color      selectColor;
-    boolean    editable = true;
-    
-    // flag to track if the selection change has been canceled
-    private boolean cancelSelect;
-    
-    private final static int COLOR_NONE = 0;
-    private final static int COLOR_FIRST = 4;
-    
-    /**
-     * create a new ColumnListCanvas. Before it can be used
-     * in any reasonable fashion, setHeaders() should 
-     * be called, followed
-     * by an optional call to setFormat()!
-     *
-     * @param parent   The parent ColumnList
-     */
-    public ColumnListCanvas(ColumnList parent) {
-        setLayout(null);
-        this.parent = parent;
-        
-        headers = new String[0];
-        columns = 0;
-        
-        labels = new Vector();
-        rowColors = new Vector();
-        
-        dimensions = null;
-        
-        dispRows = 0;
-        records = 0;
-        
-        selectColor = new Color(0, 0, 128);
-    }
-    
-    public void setTextEditable(boolean value) {
-        textEditable = ensureLength(textEditable, columns);
-        for (int i = 0; i < textEditable.length; i++)
-            textEditable[i] = value;
-    }
-    
-    public void setTextEditable(int column, boolean value) {
-        if (column < 0 || column >= columns)
-            return;
-        
-        textEditable = ensureLength(textEditable, column+1);
-        textEditable[column] = value;
-    }
-    
-    public boolean getTextEditable(int column) {
-        if (textEditable == null || column < 0 ||
-	    column >= textEditable.length)
-	    return false;
-        
-        return textEditable[column];
-    }
-    
-    public boolean[] ensureLength(boolean[] arr, int length) {
-        if (arr == null)
-            return new boolean[length];
-        
-        if (arr.length < length) {
-            boolean[] newarr = new boolean[length];
-            System.arraycopy(arr, 0, newarr, 0, arr.length);
-            arr = newarr;
-        }
-        
-        return arr;
-    }
-    
-    public void cancelApply() {
-        cancelApply = true;
-    }
-    
-    public synchronized void cancelEdit() {
-        if (editline != null || editchoice != null) {
-            selectRow(editrow);
-            
-            if (editline != null) {
-                editline.destroy();
-                editline = null;
-                justCancelled = true;
-            } else {
-                editchoice.cancelEdit();
-                editchoice = null;
-                justCancelled = true;
-            }
-            
-            editrow = -1;
-            editcolumn = -1;
-            repaint();
-        }
-    }
-    
-    public int getEditRow() {
-        return editrow;
-    }
-    
-    public int getEditColumn() {
-        return editcolumn;
-    }
-    
-    public boolean applyChanges() {
-        if (editchoice != null) {
-            cancelEdit();
-            return true;
-        } else if (editline != null) {
-            editline.applyChanges();
-            return !cancelApply;
-        } else {
-            return true;
-        }
-    }
-    
-    public boolean startEdit(int column) {
-        return startEdit(column, -1);
-    }
-    
-    private synchronized boolean startEdit(int column, int x) {
-        if (editchoice != null)
-            return false;
-        
-        if (editline != null)
-            return false;
-        
-        if (column < 0 || column >= columns)
-            return false;
-        
-        if (!getTextEditable(column))
-            return false;
-        
-        int row = getSelectedRow();
-        if (row == -1)
-            return false;
-        
-        Object entry = ((Object[])labels.elementAt(row))[column];
-        
-        if (entry instanceof String) {
-            String str = (String)entry;
-            editline = new EditLine(this, str, textX(str, column),
-				    textY(row));
-            editrow = row;
-            editcolumn = column;
-            editline.paint(getBufferGraphics());
-            copyBuffer();
-        } else if (entry instanceof CLChoice) {
-            CLChoice choice = (CLChoice)entry;
-            if (!choice.getEditable())
-                return false;
-            editchoice = choice;
-            editrow = row;
-            editcolumn = column;
-        } else if (entry instanceof CLComponent) {
-            CLComponent comp = (CLComponent)entry;
-            if (!comp.getEditable())
-                return false;
-            
-            String text = comp.getText();
-            
-            if (text != null) {
-                int textX = comp.textX() + columnX(column);
-                int textY = comp.textY() + rowY(row);
-                
-                if (x != -1 && x < textX)
-                    return false;
-                
-                editline = new EditLine(this, text, textX, textY);
-                editrow = row;
-                editcolumn = column;
-                editline.paint(getBufferGraphics());
-                copyBuffer();
-            }
-        }
-        
-        if (editline != null) {
-            selectRow(-1);
-            return true;
-        } else if (editchoice != null) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    public int textX(String str, int column) {
-        int x = -scrollx;
-        for (int i = 0; i < column; i++)
-            x += dimensions[i];
-        x += LEFT_PAD;
-        
-        int format = getFormat(column);
-        if (format != Label.LEFT) {
-            int width = dimensions[column] - LEFT_PAD - RIGHT_PAD;
-            FontMetrics fm = getFontMetrics(getFont());
-            int w = fm.stringWidth(str);
-            
-            if (format == Label.RIGHT)
-                x += width - w;
-            else if (format == Label.CENTER)
-                x += (width - w) / 2;
-        }
-        
-        return x;
-    }
-    
-    public int textY(int row) {
-        return headerHeight + ((row - scrollrow) * rowHeight)
-	    + rowAscent;
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    protected void finalize() {
-        if (colorThread != null)
-            colorThread.stop();
-    }
-    
-    
-    /**
-     * set the headers for the columns. THis also defines the
-     * # of columns. If the # of header columns 
-     * changes, all current rows
-     * will be deleted, and the formatting options get reset
-     *
-     * @param headersIn  array of column headers
-     */
-    public synchronized void setHeaders(String[] headersIn) {
-        int newColumns;
-        
-        if (headersIn == null)
-            newColumns = 0;
-        else
-            newColumns = headersIn.length;
-        
-        if (newColumns != columns) {
-            // # of columns change -> get rid of everything
-            delItems();
-            labels = new Vector();
-            rowColors = new Vector();
-            formats = null;
-            dimensions = null;
-        }
-        
-        if (headersIn == null)
-            columns = 0;
-        else
-            columns = headersIn.length;
-        headers = headersIn;
-        dimensions = null;
-        cacheDimensions();
-        repaint();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setFormats(int[] formatIn) {
-        formats = formatIn;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public int getFormat(int column) {
-        if ((formats == null) || (column < 0) || (
-						  column >= formats.length))
-	    return Label.LEFT;
-        else
-            return formats[column];
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setSelectable(boolean selectable) {
-        this.selectable = selectable;
-    }
-    
-    
-    public void setEditable(boolean editable_in) {
-        editable = editable_in;
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setHighlightItems(boolean highlightItems) {
-        this.highlightItems = highlightItems;
-    }
-    
-    public void setHighlighted(int row, boolean highlight) {
-        if (row < 0 || row >= records)
-            return;
-        
-        if (highlight) {
-            rowColors.setElementAt(new Integer(COLOR_FIRST), row);
-            
-            if (highlightItems == true) {
-                if (colorThread == null) {
-                    colorThread = new ColumnListThread(this);
-                    colorThread.start();
-                } else {
-                    colorThread.resume();
-                }
-            }
-        } else {
-            rowColors.setElementAt(new Integer(COLOR_NONE), row);
-        }
-    }
-    
-    public boolean getHighlighted(int row) {
-        if (row < 0 || row >= records)
-            return false;
-        
-        int rowColor = ((Integer) rowColors.elementAt(row)).intValue();
-        return (rowColor != COLOR_NONE);
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setShowHeaders(boolean showHeaders) {
-        this.showHeaders = showHeaders;
-        repaint();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setShowVerticalLines(boolean showVerticalLines) {
-        this.showVerticalLines = showVerticalLines;
-        repaint();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setShowHorizontalLines(boolean showHorizontalLines) {
-        this.showHorizontalLines = showHorizontalLines;
-        repaint();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setAutoWidth(boolean autoWidth) {
-        this.autoWidth = autoWidth;
-    }
-    
-    
-    // Scrollable
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void scrollX(int x) {
-        if (scrollApply()) {
-            scrollx = x;
-            repaint();
-        } else {
-            parent.setHBarValue(scrollx);
-        }
-    }
-    
-    
-    /**
-     * Scroll vertically to y. Part of Scrollabel interface.
-     *
-     * @param y new vertical scroll position
-     */
-    public void scrollY(int y) {
-        if (scrollApply()) {
-            scrolly = y;
-            if (rowHeight != 0)
-                scrollrow = (y + rowHeight - 1) / rowHeight;
-            else
-                scrollrow = 0;
-            repaint();
-        } else {
-            parent.setVBarValue(scrolly);
-        }
-    }
-    
-    
-    private boolean scrollApply() {
-        boolean status = true;
-        if (!applying) {
-            applying = true;
-            status = applyChanges();
-            
-            // The Motif scrollbar gets locked down
-            // when a modal dialog is
-            // brought up while scrolling.  To prevent getting infinite
-            // errors, we will cancel the edit here.
-            if (!status && Global.isMotif())
-                cancelEdit();
-            
-            applying = false;
-        }
-        return status;
-    }
-    
-    public Dimension scrollSize() {
-        cacheDimensions();
-        if (dimensions == null)
-            return new Dimension(100, 100);
-        else
-            return new Dimension(totalWidth, rowHeight * records);
-    }
-    
-    public Dimension viewSize(Dimension size) {
-        cacheDimensions();
-        size.height -= headerHeight;
-        return size;
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public int lineHeight() {
-        cacheDimensions();
-        return rowHeight;
-    }
-    
-    private synchronized void addMoreLabels() {
-        int c;
-        // have one extra for the "hidden" object
-        Object[] newLabels = new Object[columns + 1];
-        labels.addElement(newLabels);
-        rowColors.addElement(new Integer(COLOR_NONE));
-        for (c = 0; c < columns; c++)
-            newLabels[c] = /* NOI18N */"";
-        newLabels[columns] = null;
-    }
-    
-    private void ensureCapacity(int row) {
-        while (row >= labels.size())
-            addMoreLabels();
-    }
-    
-    private void growRecords(int row) {
-        // initialize all intermediate records
-        while (row > records) {
-            Object[] labelRow = (Object[]) labels.elementAt(records);
-            for (int c = 0; c < columns; c++)
-                labelRow[c] = /* NOI18N */"";
-            labelRow[columns] = null;
-            rowColors.setElementAt(new Integer(COLOR_NONE), records);
-            records++;
-        }
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public synchronized void insertItem(Object[] values, int row) {
-        int c;
-        boolean newWidth = false;
-        
-        // make sure we have enough labels...
-        ensureCapacity(row);
-        growRecords(row);
-        
-        // Make one extra entry
-        ensureCapacity(records + 1);
-        growRecords(records + 1);
-        
-        // Move other rows out of the way
-        for (int pos = records-2; row <= pos; --pos) {
-            labels.setElementAt(labels.elementAt(pos), pos+1);
-            rowColors.setElementAt(rowColors.elementAt(pos), pos+1);
-        }
-        Object[] labelRow = new Object[columns+1];
-        for (c = 0; c < columns; c++)
-            labelRow[c] = /* NOI18N */"";
-        labelRow[columns] = null;
-        labels.setElementAt(labelRow, row);
-        
-        // Fix selected row
-        if (selectedRow >= row)
-            ++selectedRow;
-        
-        // Call addItem to replace things
-        addItem(values, row);
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public synchronized void addItem(Object[] values) {
-        addItem(values, records);
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public synchronized void addItem(Object[] values, int row) {
-        // make sure we have enough labels...
-        ensureCapacity(row);
-        growRecords(row);
-        
-        if (autoWidth)
-            cacheDimensions();
-        
-        Object[] labelRow = (Object[]) labels.elementAt(row);
-        
-        for (int c = 0; c < columns; c++) {
-            labelRow[c] = values[c];
-            if (values[c] instanceof CLComponent)
-                ((CLComponent)values[c]).setCanvas(this, row, c);
-            checkComponentCell(values[c]);
-        }
-        if (values.length > columns)
-            labelRow[columns] = values[columns];
-        else
-            labelRow[columns] = null;
-        
-        adjustColumnWidths(row);
-        
-        if (highlightItems == true) {
-            rowColors.setElementAt(new Integer(COLOR_FIRST), row);
-            if (colorThread == null) {
-                colorThread = new ColumnListThread(this);
-                colorThread.start();
-            } else
-                colorThread.resume();
-        } else
-            rowColors.setElementAt(new Integer(COLOR_NONE), row);
-        if (row >= records)
-            records++;
-    }
-    
-    
-    /**
-     * Adjust the widths of the columns for 'row' to make sure 
-     * everything
-     * fits properly. If autoWidth is false, then this
-     * function has no effect
-     *
-     * @param row row number
-     */
-    private void adjustColumnWidths(int row) {
-        if (!autoWidth || (dimensions == null))
-            return;
-        
-        Object[] labelRow = (Object[]) labels.elementAt(row);
-        for (int c = 0; c < columns; c++)
-            adjustColumnWidths(labelRow[c], c);
-    }
-    
-    
-    /**
-     * If autoWidth is enabled, make sure "value" fits 
-     * into the given column.
-     *
-     * @param value the value to be checked
-     * @param column column number
-     */
-    void adjustColumnWidths(Object value, int column) {
-        if (!autoWidth || (value == null) || (dimensions == null))
-            return;
-        
-        int w = labelWidth(value);
-        int usableWidth = dimensions[column];
-        if (w > usableWidth) {
-            totalWidth += w - usableWidth;
-            dimensions[column] += w - usableWidth;
-        }
-    }
-    
-    
-    /**
-     * If the object (to be put into a cell) is an AWT component, make
-     * sure it gets properly managed in the layout, and 
-     * that the rows are
-     * high enough to hold it.
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private void checkComponentCell(Object value) {
-        if (value instanceof Component) {
-            if (hasComponents == null)
-                hasComponents = (Component) value;
-            add((java.awt.Component) value);
-            ((java.awt.Component) value).hide();
-            Dimension size = ((java.awt.Component) value).
-		preferredSize();
-            if (size.height > componentHeight) {
-                componentHeight = size.height;
-                if (componentHeight > rowHeight) {
-                    rowAscent += (componentHeight - rowHeight) / 2;
-                    rowHeight = componentHeight + 2;
-                }
-                
-            }
-        }
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public synchronized void delItems() {
-        delItems(0, records - 1);
-        selectedRow = -1;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public synchronized void delItems(int start, int end) {
-        if ((start < 0) || (start >= records))
-            return;
-        if (end < start)
-            return;
-        if (end > records)
-            end = records - 1;
-        int r, c;
-        int diff = end - start + 1;
-        for (r = start; r <= end; r++) {
-            Object[] labelRow = (Object[]) labels.elementAt(start);
-            for (c = 0; c < columns; c++) {
-                if (labelRow[c] instanceof Component)
-                    remove((java.awt.Component) labelRow[c]);
-                else if (labelRow[c] instanceof CLComponent)
-                    ((CLComponent)labelRow[c]).setCanvas(null, -1, -1);
-            }
-            
-            labels.removeElementAt(start);
-            rowColors.removeElementAt(start);
-        }
-        records -= diff;
-        
-        if (selectedRow > end)
-            selectedRow -= diff;
-        else if (selectedRow > start)
-            selectedRow = start - 1;
-        
-        // repaint all the time... could be optimized
-        repaint();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    protected Object getItem(int row, int column) {
-        if ((row > records) || (row < 0) || (column > columns) ||
-	    (column < 0))
-	    return null;
-        return ((Object []) labels.elementAt(row))[column];
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    protected synchronized boolean putItem(int row, int column,
-					   Object value) {
-        if ((row > records) || (row < 0) || (column > columns) ||
-	    (column < 0))
-	    return false;
-        Object[] data = (Object []) labels.elementAt(row);
-        data[column] = value;
-        if (value instanceof CLComponent)
-            ((CLComponent)value).setCanvas(this, row, column);
-        
-        if (column < columns) {
-            // don't do this on objects in the hidden column
-            checkComponentCell(value);
-            adjustColumnWidths(value, column);
-        }
-        
-        repaint();
-        return true;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    protected boolean swapItems(int row1, int row2) {
-        if ((row1 > records) || (row1 < 0) || (row2 > records) ||
-	    (row2 < 0))
-	    return false;
-        if (row1 == row2)
-            return true;
-        Object[] data1 = (Object []) labels.elementAt(row1);
-        Object[] data2 = (Object []) labels.elementAt(row2);
-        labels.setElementAt(data2, row1);
-        labels.setElementAt(data1, row2);
-        repaint();
-        return true;
-    }
-    
-    public String chopText(String text, int w) {
-        if (w <= 0)
-            return /* NOI18N */"";
-        
-        FontMetrics fm = getFontMetrics();
-        int len = text.length();
-        int index = getTextCutoff(fm, w, text, len, 0, len);
-        if (index == len)
-            return text;
-        else
-            return text.substring(0, index);
-    }
-    
-    private int getTextCutoff(FontMetrics fm, int textW, String str,
-			      int cur, int lower, int upper) {
-        if (lower == upper) {
-            return lower;
-        } else if (lower == (upper-1)) {
-            int width = fm.stringWidth(str.substring(0, upper));
-            if (width < textW)
-                return upper;
-            else
-                return lower;
-        }
-        
-        int width = fm.stringWidth(str.substring(0, cur));
-        if (width == textW)
-            return cur;
-        else if (width < textW)
-            return getTextCutoff(fm, textW, str,
-				 cur + (upper-cur)/2, cur, upper);
-        else
-            return getTextCutoff(fm, textW, str,
-				 cur - (cur-lower)/2, lower, cur);
-    }
-    
-    // drawString - calls g.drawString(str, x, y), but
-    // makes sure that str
-    //              will fit into width
-    public void drawString(Graphics g, String str, int x, int y,
-			   int width, int format) {
-        str = chopText(str, width);
-        
-        g.setFont(getFont());
-        FontMetrics fm = g.getFontMetrics();
-        int w = fm.stringWidth(str);
-        if (w <= 0)
-            return;
-        
-        if (format == Label.RIGHT)
-            x += width - w;
-        else if (format == Label.CENTER)
-            x += (width - w) / 2;
-        g.drawString(str, x, y);
-    }
-    
-    public FontMetrics getFontMetrics() {
-        return getFontMetrics(getFont());
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void setFont(Font font) {
-        super.setFont(font);
-        dimensions = null;
-        cacheDimensions();
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void update(Graphics g) {
-        paint(g);
-    }
-    
-    
-    /**
-     * Determines the width a label item needs.
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private int labelWidth(Object item) {
-        if (item == null)
-            return (0);
-        else if (item instanceof Component)
-            return ((Component) item).preferredSize().width +
-		LEFT_PAD + RIGHT_PAD;
-        else if (item instanceof String) {
-            String str = (String)item;
-            Graphics g = getBufferGraphics();
-            g.setFont(getFont());
-            FontMetrics fm = g.getFontMetrics();
-            return fm.stringWidth(str) + LEFT_PAD + RIGHT_PAD;
-        } else if (item instanceof CLComponent) {
-            Dimension s = ((CLComponent) item).size();
-            if (s != null)
-                return s.width;
-            else
-                return 0;
-        } else {
-            return 0;
-        }
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private void cacheDimensions() {
-        if (dimensions != null)
-            return;
-        
-        Graphics g = getBufferGraphics();
-        if (g == null)
-            return;
-        
-        g.setFont(getFont());
-        FontMetrics fm = g.getFontMetrics();
-        
-        // figure out rowHeight (must be done before labelWidth is
-        // ever called, because CLComponent width calculation depends
-        // on rowHeight)
-        rowHeight = fm.getHeight() + 3;
-        rowAscent = fm.getAscent() + 2;
-        
-        if (Global.isWindows() && showHorizontalLines)
-            rowHeight++;
-        else if (Global.isMotif() && !showHorizontalLines)
-            rowHeight--;
-        
-        charWidth = fm.charWidth(/* NOI18N */ 'X');
-        
-        if ((componentHeight == 0) && (hasComponents != null))
-            componentHeight = hasComponents.preferredSize().height;
-        
-        if (rowHeight < componentHeight) {
-            rowAscent += (componentHeight - rowHeight) / 2;
-            rowHeight = componentHeight;
-        }
-        if (showHeaders)
-            headerHeight = rowHeight + 6;
-        else
-            headerHeight = 0;
-        
-        // figure out column widths
-        dimensions = new int[(columns == 0) ? 1 : columns];
-        totalWidth = 0;
-        for (int c = 0; c < columns; c++) {
-            // base size of columns on header string
-            int width = fm.stringWidth(headers[c]) + 10;
-            
-            if (autoWidth) {
-                // column should be the width of the widest data item
-                for (int r = 0; r < records; r++) {
-                    Object[] labelRow = (Object[]) labels.elementAt(r);
-                    int itemWidth = labelWidth(labelRow[c]);
-                    if (itemWidth > width)
-                        width += itemWidth - width;
-                }
-            }
-            
-            dimensions[c] = width;
-            totalWidth += dimensions[c];
-        }
-        
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        paint(g, null);
-    }
-    
-    private synchronized void paint(Graphics g, Rectangle cliprect) {
-        Image buffer = getBuffer(size());
-        g = buffer.getGraphics();
-        g.setFont(getFont());
-        
-        // first time? get the dimensions of the header panel
-        cacheDimensions();
-        
-        // how many rows fit?
-        Dimension canvasSize = size();
-        int usableHeight = canvasSize.height - headerHeight;
-        int usableWidth = canvasSize.width;
-        dispRows = usableHeight / rowHeight;
-        
-        // visibleRows can be one more than
-        // dispRows (last row partially visible)
-        visibleRows = (usableHeight + rowHeight - 1) / rowHeight;
-        // make sure we have enough labels...
-        int horOffset = scrollx;
-        int vertOffset = scrollrow;
-        while ((visibleRows + vertOffset) > labels.size())
-            addMoreLabels();
-        
-        g.setColor(getForeground());
-        Color origColor = g.getColor();
-        Color dark = getBackground().darker();
-        Color veryDark = dark.darker();
-        
-        
-        // draw the column headers
-        int x = 0;
-        int colWidth;
-        if (showHeaders) {
-            for (int c = 0; c <= columns; c++) {
-                
-                if (c == columns)
-                    // last column fills up the rest
-		    colWidth = usableWidth - x + horOffset;
-                else
-                    colWidth = dimensions[c];
-                
-                int left = x - horOffset;
-                int right = left + colWidth - 1;
-                int bottom = headerHeight - 1;
-                
-                // is the column for real, and some of it visible?
-                if ((colWidth > 0) && ((right > 0) ||
-				       (left < usableWidth))) {
-                    // now draw the thing...
-                    g.setColor(getBackground());
-                    g.drawLine(left, 0, right, 0); // top
-                    g.drawLine(left, 0, left, bottom); // left
-                    
-                    g.setColor(veryDark);
-                    g.drawLine(left, bottom, right, bottom); // bottom
-                    g.drawLine(right, 0, right, bottom); // right
-                    
-                    g.setColor(dark);
-                    g.fillRect(left + 1, 1, colWidth - 2,
-			       headerHeight - 2);
-                    
-                    g.setColor(origColor);
-                    
-                    // last column has no strings
-                    if (c != columns)
-                        drawString(g, headers[c], left + LEFT_PAD,
-				   headerHeight - 5,
-				   colWidth - LEFT_PAD - RIGHT_PAD,
-				   getFormat(c));
-                }
-                
-                if (c != columns)
-                    x += dimensions[c];
-            }
-        }
-        
-        // now paint the data
-        int y = headerHeight;
-        for (int r = 0; r < labels.size(); r++) {
-            if ((r >= vertOffset) && (r <
-				      (visibleRows + vertOffset))) {
-                x = 0;
-                Object[] row = (Object[]) labels.elementAt(r);
-                int rowColor = ((Integer) rowColors.elementAt(r)).
-		    intValue();
-                
-                Color stringForeground =
-		    getStringForeground(origColor, r, rowColor);
-                Color stringBackground =
-		    getStringBackground(r, rowColor);
-                
-                g.setColor(stringBackground);
-                g.fillRect(0, y, usableWidth, rowHeight);
-                g.setColor(stringForeground);
-                
-                for (int c = 0; c < columns; c++) {
-                    colWidth = dimensions[c];
-                    int left = x - horOffset;
-                    int right = left + colWidth - 1;
-                    
-                    // is the column for real, and some of it visible?
-                    if ((colWidth > 0) &&
-			((right > 0) || (left < usableWidth))) {
-                        if (row[c] != null)
-                            if (row[c] instanceof String)
-				drawString(g, (String) row[c],
-					   left + LEFT_PAD,
-					   y + rowAscent,
-					   colWidth - LEFT_PAD - RIGHT_PAD,
-					   getFormat(c));
-			    else if (row[c] instanceof CLComponent)
-				((CLComponent)row[c]).paint(g, left, y,
-							    colWidth, rowHeight,
-							    rowAscent,
-							    getFormat(c));
-			    else if (row[c] instanceof Component) {
-				Component cb = (Component) row[c];
-				Dimension size = cb.preferredSize();
-				size = new Dimension(size.width,
-						     size.height);
-				if (size.width > (colWidth - 2))
-				    size.width = colWidth - 2;
-				cb.reshape(left + 2, y,
-					   size.width, rowHeight);
-				cb.setBackground(stringBackground);
-				cb.setForeground(stringForeground);
-				cb.show();
-				// cb.validate();
-			    } else
-				drawString(g, row[c].toString(),
-					   left + LEFT_PAD, y + rowAscent,
-					   colWidth - LEFT_PAD - RIGHT_PAD,
-					   getFormat(c));
-                    } else {
-                        if (row[c] != null)
-                            if (row[c] instanceof Component) {
-				Component cb = (Component) row[c];
-				cb.hide();
-			    }
-                    }
-                    x += dimensions[c];
-                }
-                y += rowHeight;
-                if (showHorizontalLines) {
-                    g.setColor(dark);
-                    g.drawLine(0, y - 1, usableWidth, y - 1);
-                }
-                g.setColor(origColor);
-            } else {
-                Object[] row = (Object[]) labels.elementAt(r);
-                for (int c = 0; c < row.length; c++)
-                    if (row[c] instanceof Component)
-			((Component) row[c]).hide();
-            }
-        } // for each row
-        
-        
-        if (showVerticalLines) {
-            g.setColor(dark);
-            x = 0;
-            for (int c = 0; c < columns; c++) {
-                colWidth = dimensions[c];
-                int left = x - horOffset;
-                int right = left + colWidth - 1;
-                
-                // only draw if the line would be visible
-                if (right > usableWidth)
-                    break;
-                if ((colWidth > 0) && (right > 0))
-                    g.drawLine(right, headerHeight, right,
-			       canvasSize.height);
-                
-                x += dimensions[c];
-            }
-        }
-        
-        if (editline != null)
-            editline.paint(g);
-        
-        copyBuffer();
-    }
-    
-    private Image getBuffer(Dimension size) {
-        // WORK-AROUND: sometimes size() calls return
-        // dimensions of 0 for width
-        // or height when they probably shouldn't
-        // (this is on Win95), and it
-        // causes an illegal argument exception in
-        // the createImage call below
-        if (size.width == 0 || size.height == 0) {
-            if (buffer != null && bufferSize != null)
-                size = new Dimension(bufferSize);
-            else
-                size = new Dimension(1, 1);
-        }
-        // end of WORK-AROUND
-        
-        if (buffer == null || bufferSize == null ||
-	    (size.width != bufferSize.width) ||
-	    (size.height != bufferSize.height)) {
-            
-            getCachedBuffer(size);
-            
-            if (buffer == null || bufferSize == null ||
-		(size.width != bufferSize.width) ||
-		(size.height != bufferSize.height)) {
-                buffer = createImage(size.width, size.height);
-                updateCache(buffer, size);
-            }
-            
-            bufferSize = size;
-        }
-        
-        return buffer;
-    }
-    
-    private Graphics getBufferGraphics() {
-        Image buffer = getBuffer(size());
-        if (buffer == null)
-            return null;
-        else
-            return buffer.getGraphics();
-    }
-    
-    private void copyBuffer() {
-        Graphics g = getGraphics();
-        Image buffer = getBuffer(size());
-        if (g != null && buffer != null)
-            g.drawImage(buffer, 0, 0, this);
-    }
-    
-    private void getCachedBuffer(Dimension size) {
-        for (int i = 0; i < 3; i++) {
-            if (bufferSizeCache[i] != null &&
-		bufferSizeCache[i].width == size.width &&
-		bufferSizeCache[i].height == size.height) {
-                buffer = bufferCache[i];
-                bufferSize = bufferSizeCache[i];
-                break;
-            }
-        }
-    }
-    
-    private void updateCache(Image buffer, Dimension size) {
-        if (buffer == null)
-            return;
-        
-        int i;
-        for (i = 0; i < 3; i++) {
-            if (bufferSizeCache[i] == null)
-                break;
-        }
-        
-        if (i < 3) {
-            bufferCache[i] = buffer;
-            bufferSizeCache[i] = new Dimension(size.width, size.height);
-        } else {
-            bufferCache[0] = bufferCache[1];
-            bufferCache[1] = bufferCache[2];
-            bufferCache[2] = buffer;
-            
-            bufferSizeCache[0] = bufferSizeCache[1];
-            bufferSizeCache[1] = bufferSizeCache[2];
-            bufferSizeCache[2] = new Dimension(size.width, size.height);
-        }
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private Color getStringForeground(Color origColor,
-				      int row, int rowColor) {
-        if (row == selectedRow)
-            return getBackground();
-        else
-            return origColor;
-    }
-    
-    private Color getStringBackground(int row, int rowColor) {
-        Color bg = getBackground();
-        if (row == selectedRow) {
-            if (rowColor != COLOR_NONE)
-                if (bg == Color.white)
-		    return Color.magenta;
-		else
-		    return selectColor.darker();
-            else
-                return selectColor;
-        } else {
-            if (rowColor != COLOR_NONE)
-                if (bg == Color.white)
-		    return Color.orange;
-		else
-		    return bg.darker();
-            else
-                return getBackground();
-        }
-        
-    }
-    
-    private boolean rowVisible(int row) {
-        return ((row >= scrollrow) &&
-		(row < (scrollrow + dispRows)));
-    }
-    
-    
-    public void updateView() {
-        parent.updateView();
-    }
-    
-    
-    /**
-     * @see sunsoft.jws.visual.designer.gui.ColumnList
-     */
-    public void setDisplayRows(int rows) {
-        requestedRows = rows;
-    }
-    
-    
-    public void setVisibleChars(int chars) {
-        requestedChars = chars;
-    }
-    
-    
-    /**
-     * the minimum width is enough to fully display 
-     * the first column, but not
-     * more than 200 pixels. The minimum height is the
-     * height to display the
-     * number of rows requested with setDisplayRows() (default is 3)
-     *
-     * @return       Dimension
-     */
-    public Dimension minimumSize() {
-        return preferredSize();
-    }
-    
-    /**
-     * Calculate the preferred size. Standard AWT function.
-     *
-     * @return       the preferred size of the ColumnListCanvas
-     */
-    public Dimension preferredSize() {
-        cacheDimensions();
-        if (dimensions == null)
-            return new Dimension(100, 100);
-        else
-            if (requestedChars == 0)
-		return new Dimension(totalWidth,
-				     headerHeight + rowHeight * requestedRows);
-	    else
-		return new Dimension(requestedChars * charWidth,
-				     headerHeight + rowHeight * requestedRows);
-    }
-    
-    
-    /**
-     * select row, and make it visible
-     * only one row can be selected at a time - previously selected
-     * rows will be restored to normal
-     * to remove the selection, set the selected row to -1
-     *
-     * @param row    index of row
-     * @return       actual index of selected row, -1 if none
-     */
-    public int selectRow(int row) {
-        if (selectedRow != row) {
-            int oldSelectedRow = selectedRow;
-            if (row < records)
-                selectedRow = row;
-            else
-                selectedRow = -1;
-            
-            // make sure we can see the new selection
-            // Tilman 05/21: Not tested if the makeVisible() call works
-            if ((selectedRow != -1) && (!rowVisible(selectedRow)))
-                parent.makeVisible(selectedRow);
-            
-            // repaint if anything is visible
-            if (rowVisible(oldSelectedRow) || rowVisible(selectedRow))
-                repaint();
-        }
-        return selectedRow;
-    }
-    
-    
-    /**
-     * Get the index of the currently selected row
-     *
-     * @return       index of selected row, -1 if none is selected
-     */
-    public int getSelectedRow() {
-        return selectedRow;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    protected int getRowY(int row) {
-        if ((dimensions == null) || (visibleRows == -1))
-            return -2;
-        if (rowVisible(row)) {
-            return headerHeight + rowHeight * (row - scrollrow);
-        } else
-            return -1;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private synchronized void startDrag(int startX) {
-        int x = -scrollx;
-        for (int c = 0; c < columns; c++) {
-            x += dimensions[c];
-            if ((startX >= (x - 5)) && (startX <= (x + 5))) {
-                dragColumn = c;
-                dragging = true;
-                dragStart = startX;
-                break;
-            }
-        }
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private synchronized int mouseColumn(int mouseX) {
-        int x = -scrollx;
-        if (mouseX < x)
-            return -1;
-        for (int c = 0; c < columns; c++) {
-            x += dimensions[c];
-            if (mouseX < x)
-                return c;
-        }
-        return -1;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    private synchronized void dragColumn(int dragX) {
-        int diff = dragX - dragStart;
-        if (dimensions[dragColumn] + diff >= 5) {
-            dimensions[dragColumn] += diff;
-            totalWidth += diff;
-            dragStart = dragX;
-            repaint();
-        }
-    }
-    
-    public boolean handleEvent(Event evt) {
-        //
-        // Workaround for an AWT bug on Windows95
-        // where we get a spurious
-        // mouse down event when the CLChoice menu is
-        // unmapped as the result
-        // of selection being made from a mouse down
-        // event inside the menu.
-        //
-        if (editchoice == null && justCancelled &&
-	    evt.id == Event.MOUSE_DOWN) {
-            justCancelled = false;
-            return true;
-        }
-        justCancelled = false;
-        
-        if (editline != null && editline.handleEvent(evt))
-            return true;
-        else if (editchoice != null && editchoice.handleEvent(evt))
-            return true;
-        
-        if (evt.id == EditLine.REPAINT && evt.target == editline) {
-            if (evt.arg != null) {
-                paint(getGraphics(), (Rectangle)evt.arg);
-            } else {
-                editline.paint(getBufferGraphics());
-                copyBuffer();
-            }
-        } else if (evt.id == EditLine.APPLY && evt.target == editline) {
-            cancelApply = false;
-            parent.postEvent(new Event(parent, ColumnList.APPLY_EDIT,
-				       evt.arg));
-            if (!cancelApply) {
-                changeText((String)evt.arg, editrow, editcolumn);
-                cancelEdit();
-            } else if (editline != null) {
-                editline.cancelApply();
-            }
-        } else if (evt.id == EditLine.CANCEL &&
-		   evt.target == editline) {
-            cancelEdit();
-        } else if (evt.id == CLChoice.APPLY &&
-		   evt.target == editchoice) {
-            cancelApply = false;
-            parent.postEvent(new Event(parent, ColumnList.APPLY_EDIT,
-				       evt.arg));
-            if (!cancelApply) {
-                changeText((String)evt.arg, editrow, editcolumn);
-                cancelEdit();
-            }
-        } else {
-            return super.handleEvent(evt);
-        }
-        
-        return true;
-    }
-    
-    public synchronized void changeText(String text, int row,
-					int column) {
-        if (row < 0 || row >= records || column < 0 ||
-	    column >= columns)
-	    return;
-        
-        Object[] data = (Object []) labels.elementAt(row);
-        Object item = data[column];
-        
-        if (item instanceof String) {
-            data[column] = text;
-            adjustColumnWidths(text, column);
-            parent.updateView();
-        } else if (item instanceof CLComponent) {
-            ((CLComponent)item).setText(text, true);
-        }
-    }
-    
-    public int columnX(int column) {
-        int x = -scrollx;
-        for (int c = 0; c < column; c++)
-            x += dimensions[c];
-        return x;
-    }
-    
-    public int columnWidth(int column) {
-        return dimensions[column];
-    }
-    
-    public int rowY(int row) {
-        return headerHeight + ((row - scrollrow) * rowHeight);
-    }
-    
-    public int rowHeight(int row) {
-        return rowHeight;
-    }
-    
-    public boolean mouseDown(Event e, int x, int y) {
-        if (editline != null) {
-            if (!applyChanges())
-                return false;
-            selectRow(-1);
-        } else if (editchoice != null) {
-            cancelEdit();
-            selectRow(-1);
-        }
-        
-        if (y > headerHeight) {
-            int row = (y - headerHeight - 1) / rowHeight + scrollrow;
-            if (row < records) {
-                int column = mouseColumn(x);
-                if (column != -1) {
-                    Object entry = ((Object[])
-				    labels.elementAt(row))[column];
-                    if ((entry instanceof CLComponent) && editable) {
-                        CLComponent comp = (CLComponent)entry;
-                        Event evt = new Event(e.target, e.when, e.id,
-					      x - columnX(column),
-					      y - rowY(row), e.key,
-					      e.modifiers, e.arg);
-                        evt.clickCount = e.clickCount;
-                        if (comp.mouseDown(evt))
-                            return true;
-                    }
-                }
-                if (selectable) {
-                    cancelSelect = false;
-                    if (e.clickCount == 1) {
-                        if (row == getSelectedRow() &&
-			    getTextEditable(column)) {
-                            cancelEdit();
-                            if (startEdit(column, x)) {
-                                return true;
-                            } else {
-                                // Should make a beeping or
-                                // clicking noise somehow.
-                            }
-                        }
-                        
-                        parent.postEvent(new Event(parent,
-					   ColumnList.CONFIRM_SELECT,
-						new Integer(row)));
-                        if (!cancelSelect) {
-                            row = selectRow(row);
-                            parent.postEvent(new Event(parent,
-						       Event.LIST_SELECT,
-						       new Integer(row)));
-                        }
-                    } else if (e.clickCount == 2) {
-                        row = selectRow(row);
-                        parent.postEvent(new Event(parent,
-						   Event.ACTION_EVENT,
-						   new Integer(row)));
-                    }
-                }
-            }
-        } else if (y < headerHeight) {
-            startDrag(x);
-        }
-        return true;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public boolean mouseDrag(Event e, int x, int y) {
-        if (dragging) {
-            dragColumn(x);
-            return true;
-        }
-        return false;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public boolean mouseUp(Event e, int x, int y) {
-        if (dragging) {
-            dragging = false;
-            parent.updateView();
-            return true;
-        }
-        return false;
-    }
-    
-    boolean resizeCursor = false;
-    boolean checkedFrame = false;
-    
-    private Frame getFrame() {
-        if (ourFrame == null) {
-            if (!checkedFrame) {
-                checkedFrame = true;
-                Component c = parent;
-                while (c != null) {
-                    if (c instanceof Frame) {
-                        ourFrame = (Frame) c;
-                        break;
-                    } else
-                        c = c.getParent();
-                }
-            }
-        }
-        return ourFrame;
-    }
-    
-    
-    public boolean mouseMove(Event e, int x, int y) {
-        if (getFrame() != null) {
-            boolean resizable = false;
-            
-            if (y < headerHeight) {
-                int x1 = -scrollx;
-                for (int c = 0; c < columns; c++) {
-                    x1 += dimensions[c];
-                    if ((x >= (x1 - 5)) && (x <= (x1 + 5))) {
-                        resizable = true;
-                        break;
-                    }
-                }
-            }
-            
-            if (resizable != resizeCursor) {
-                if (resizable)
-                    ourFrame.setCursor(Frame.E_RESIZE_CURSOR);
-                else
-                    ourFrame.setCursor(Frame.DEFAULT_CURSOR);
-                
-                resizeCursor = resizable;
-            }
-            return true;
-        } else
-            return false;
-    }
-    
-    
-    /**
-     * restore the cursor when exiting 
-     *
-     * @param ...    ...
-     * @return       ...
-     */
-    public boolean mouseExit(Event e, int x, int y) {
-        if (resizeCursor) {
-            ourFrame.setCursor(Frame.DEFAULT_CURSOR);
-            resizeCursor = false;
-        }
-        return false;
-    }
-    
-    
-    /**
-     * ...
-     *
-     * @return       ...
-     */
-    public synchronized boolean updateRowColors() {
-        int r;
-        boolean isChanging = false;
-        boolean needsRepaint = false;
-        for (r = 0; r < records; r++) {
-            int rowColor = ((Integer)
-			    rowColors.elementAt(r)).intValue();
-            if (rowColor != COLOR_NONE) {
-                if (rowColor == 1)
-                    needsRepaint = true;
-                isChanging = true;
-                rowColors.setElementAt(new Integer(rowColor - 1), r);
-            }
-        }
-        if (needsRepaint)
-            repaint();
-        return isChanging;
-    }
-    
-    
-    /**
-     * ...
-     */
-    void cancelSelect() {
-        cancelSelect = true;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ColumnListThread.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * ColumnListThread.java
- *
- * Copyright 1995-1996 Active Software Inc.
- *
- * @version @(#)ColumnListThread.java 1.11 97/06/17
- * @author  Tilman Sporkert
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-
-/**
- * A simple class that provides timing for fading colors in highlighted 
- * ColumnList rows
- *
- * @author  Tilman Sporkert
- */
-class ColumnListThread extends Thread {
-    private ColumnListCanvas parent;
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public ColumnListThread(ColumnListCanvas parentIn) {
-        parent = parentIn;
-    }
-    
-    /**
-     * ...
-     *
-     * @param ...    ...
-     * @return       ...
-     * @exception    ...
-     */
-    public void run() {
-        setPriority(Thread.MIN_PRIORITY);
-        int i = 0;
-        while (true) {
-            try {
-                // System.out.println("Thread goes to sleep..." + i);
-                Thread.currentThread().sleep(3000);
-            } catch (Exception e) {
-                /* JSTYLED */
-		System.out.println(Global.getMsg("sunsoft.jws.visual.rt.awt.ColumnListThread.Exception__in__sleep-co-__.2") + e);
-            }
-            i++;
-            if (!parent.updateRowColors()) {
-                // System.out.println("Done changing, stopping thread...");
-                Thread.currentThread().suspend();
-            }
-            
-        }
-    }
-    
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/EditLine.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,798 +0,0 @@
-/*
- * 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 1996 Active Software Inc.
- *
- * @version @(#)EditLine.java 1.13 97/06/18
- */
-
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-/**
- * An EditLine allows for the editing of text within some other component.
- */
-
-public class EditLine implements Runnable
-{
-    public static final int REPAINT = 87000;
-    public static final int APPLY = 87001;
-    public static final int CANCEL = 87002;
-    
-    public static final int BACKSPACE_KEY = 8;
-    public static final int TAB_KEY = 9;
-    public static final int RETURN_KEY = 10;
-    public static final int ESCAPE_KEY = 27;
-    public static final int DELETE_KEY = 127;
-    
-    private Component comp;
-    private String text;
-    private int textX, textY;
-    private Color fg, bg;
-    private Font font;
-    private FontMetrics metrics;
-    
-    private int x, y, w, h;
-    private int initWidth;
-    private String initText;
-    
-    private boolean justStartedEditing;
-    private boolean cancelApply;
-    private boolean applying;
-    
-    private int scrollPos;
-    private int cursorPos;
-    private int selectPos;
-    private boolean dragging;
-    private Frame frame;
-    
-    private boolean cursorState;
-    private boolean paintCursor;
-    private Thread cursorThread;
-    private long cursorTime;
-    private static final long CURSOR_DELAY = 500;
-    
-    private static final int XOFF = 2;
-    private static final int MINWIDTH = 12;
-    static final int XPAD = 15;
-    static final int YPAD = 4;
-    
-    public EditLine(Component comp, String text, int textX, int textY) {
-        if (text == null)
-            text = /* NOI18N */"";
-        
-        this.comp = comp;
-        this.text = text;
-        this.textX = textX;
-        this.textY = textY;
-        this.initText = text;
-        
-        selectPos = 0;
-        cursorPos = text.length();
-        scrollPos = 0;
-        justStartedEditing = true;
-        
-        cacheDims();
-        this.initWidth = w;
-        mouseMove(textX, textY);
-        comp.requestFocus();
-        
-        cursorThread = new Thread(this, /* NOI18N */"Edit Line Cursor");
-        cursorThread.setDaemon(true);
-        cursorTime = System.currentTimeMillis();
-        cursorState = true;
-        cursorThread.start();
-    }
-    
-    public void setText(String text) {
-        if (text == null)
-            text = /* NOI18N */"";
-        
-        this.text = text;
-        cursorPos = text.length();
-        selectPos = cursorPos;
-        scrollPos = 0;
-        cacheText();
-    }
-    
-    public String getText() {
-        return text;
-    }
-    
-    public void setSelection(int start, int end) {
-        int len = text.length();
-        start = Math.max(0, start);
-        start = Math.min(start, len);
-        end = Math.max(start, end);
-        end = Math.min(end, len);
-        
-        selectPos = start;
-        cursorPos = end;
-        makeVisible(cursorPos);
-        repaint();
-    }
-    
-    public String getSelection() {
-        return text.substring(selectStart(), selectEnd());
-    }
-    
-    public void setFont(Font font) {
-        this.font = font;
-        cacheDims();
-        comp.repaint();
-    }
-    
-    public Font getFont() {
-        if (font == null)
-            return comp.getFont();
-        else
-            return font;
-    }
-    
-    public void setForeground(Color fg) {
-        this.fg = fg;
-    }
-    
-    public Color getForeground() {
-        if (fg == null)
-            return comp.getForeground();
-        else
-            return fg;
-    }
-    
-    public void setBackground(Color bg) {
-        this.bg = bg;
-    }
-    
-    public Color getBackground() {
-        if (bg == null)
-            return comp.getBackground();
-        else
-            return bg;
-    }
-    
-    public boolean applyChanges() {
-        if (!text.equals(initText)) {
-            applying = true;
-            cancelApply = false;
-            comp.postEvent(new Event(this, APPLY, text));
-            applying = false;
-            return !cancelApply;
-        } else {
-            comp.postEvent(new Event(this, CANCEL, null));
-            return true;
-        }
-    }
-    
-    public void cancelApply() {
-        cancelApply = true;
-    }
-    
-    private void cacheText() {
-        int len = text.length();
-        if (selectPos > len)
-            selectPos = len;
-        if (cursorPos > len)
-            cursorPos = len;
-        if (scrollPos > len)
-            scrollPos = 0;
-        
-        Rectangle paintRect = cacheHorizontal();
-        makeVisible(cursorPos);
-        repaint(paintRect);
-    }
-    
-    private void cacheDims() {
-        metrics = comp.getFontMetrics(getFont());
-        cacheHorizontal();
-        cacheVertical();
-    }
-    
-    private Rectangle cacheHorizontal() {
-        Dimension d = comp.size();
-        int prevLeft = x;
-        int prevRight = x+w;
-        
-        x = textX - XOFF;
-        w = metrics.stringWidth(text) + XPAD;
-        w = Math.max(w, MINWIDTH);
-        w = Math.max(w, initWidth);
-        
-        if (w > (d.width-x)) {
-            x = d.width - w;
-            if (x < 0) {
-                x = 0;
-                w = d.width;
-            }
-        }
-        
-        int left = x;
-        int right = x+w;
-        
-        if (left > prevLeft && right < prevRight)
-            return new Rectangle(prevLeft, y, prevRight-prevLeft, h);
-        else if (left > prevLeft)
-            return new Rectangle(prevLeft, y, left - prevLeft, h);
-        else if (right < prevRight)
-            return new Rectangle(right, y, prevRight - right, h);
-        else
-            return null;
-    }
-    
-    private void cacheVertical() {
-        Dimension d = comp.size();
-        y = textY - (metrics.getAscent() + YPAD/2);
-        h = metrics.getHeight() + YPAD;
-        
-        if (h > (d.height-y)) {
-            y = d.height - h;
-            if (y < 0) {
-                y = 0;
-                h = d.height;
-            }
-        }
-    }
-    
-    public boolean handleEvent(Event evt) {
-        if (evt.id == Event.MOUSE_DOWN) {
-            if (justStartedEditing && evt.clickCount == 2) {
-                justStartedEditing = false;
-                comp.postEvent(new Event(this, CANCEL, null));
-                return false;
-            } else {
-                justStartedEditing = false;
-            }
-        }
-        
-        boolean retval = false;
-        
-        switch (evt.id) {
-	case Event.MOUSE_DOWN:
-            if (inside(evt.x, evt.y)) {
-                mouseDown(evt.clickCount, evt.x, evt.y);
-                retval = true;
-            }
-            break;
-            
-	case Event.MOUSE_DRAG:
-            if (dragging) {
-                mouseDrag(evt.x, evt.y);
-                retval = true;
-            }
-            break;
-            
-	case Event.MOUSE_UP:
-            if (dragging) {
-                mouseUp(evt.x, evt.y);
-                retval = true;
-            }
-            break;
-            
-	case Event.LOST_FOCUS:
-            // Don't allow the focus to get away!
-            comp.requestFocus();
-            // Intentional lack of break
-	case Event.GOT_FOCUS:
-            mouseMove(-1, -1);
-            retval = true;
-            break;
-            
-	case Event.MOUSE_MOVE:
-            mouseMove(evt.x, evt.y);
-            retval = true;
-            break;
-            
-	case Event.KEY_PRESS:
-	case Event.KEY_ACTION:
-            keyPress(evt);
-            // intentional lack of break
-	case Event.KEY_RELEASE:
-	case Event.KEY_ACTION_RELEASE:
-            retval = true;
-            break;
-        }
-        
-        return retval;
-    }
-    
-    private void mouseDown(int clickCount, int evtX, int evtY) {
-        comp.requestFocus();
-        
-        switch (clickCount) {
-	case 2:
-            selectWord(evtX);
-            break;
-            
-	case 3:
-            selectLine();
-            break;
-            
-	default:
-            dragging = true;
-            setCursorX(evtX);
-            break;
-        }
-    }
-    
-    private void mouseDrag(int evtX, int evtY) {
-        adjustSelection(evtX);
-    }
-    
-    private void mouseUp(int evtX, int evtY) {
-        mouseDrag(evtX, evtY);
-        dragging = false;
-        mouseMove(evtX, evtY);
-        resetTimer();
-    }
-    
-    private void mouseMove(int evtX, int evtY) {
-        Frame f = getFrame();
-        if (f == null)
-            return;
-        
-        if (inside(evtX, evtY)) {
-            if (f.getCursorType() != Frame.TEXT_CURSOR)
-                f.setCursor(Frame.TEXT_CURSOR);
-        } else {
-            if (f.getCursorType() != Frame.DEFAULT_CURSOR)
-                f.setCursor(Frame.DEFAULT_CURSOR);
-        }
-    }
-    
-    private void keyPress(Event evt) {
-        boolean cacheText = false;
-        boolean repaint = false;
-        
-        int key = evt.key;
-        
-        if (key == RETURN_KEY) {
-            applyChanges();
-            return;
-        } else if (key == ESCAPE_KEY) {
-            comp.postEvent(new Event(this, CANCEL, null));
-            return;
-        }
-        
-        int len = text.length();
-        
-        switch (key) {
-	case Event.HOME:
-            if (cursorPos != 0) {
-                setCursorPos(0);
-                repaint = true;
-            }
-            break;
-            
-	case Event.END:
-            if (cursorPos != len) {
-                setCursorPos(len);
-                repaint = true;
-            }
-            break;
-            
-	case Event.LEFT:
-            if (cursorPos != 0) {
-                setCursorPos(cursorPos-1);
-                repaint = true;
-            }
-            break;
-            
-	case Event.RIGHT:
-            if (cursorPos != len) {
-                setCursorPos(cursorPos+1);
-                repaint = true;
-            }
-            break;
-            
-	case BACKSPACE_KEY:
-            if (deleteSelection()) {
-                cacheText = true;
-            } else if (cursorPos != 0) {
-                text = text.substring(0, cursorPos-1) +
-		    text.substring(cursorPos);
-                cursorPos--;
-                selectPos--;
-                cacheText = true;
-            }
-            break;
-            
-	case DELETE_KEY:
-            if (deleteSelection()) {
-                cacheText = true;
-            } else if (cursorPos != len) {
-                text = text.substring(0, cursorPos) +
-		    text.substring(cursorPos+1);
-                cacheText = true;
-            }
-            break;
-            
-	default:
-            if ((evt.modifiers & ~Event.SHIFT_MASK) == 0 &&
-		(key >= 32 && key <= 127)) {
-                deleteSelection();
-                text = text.substring(0, cursorPos) +
-		    String.valueOf((char)key) +
-		    text.substring(cursorPos);
-                cursorPos++;
-                selectPos++;
-                cacheText = true;
-            }
-            break;
-        }
-        
-        if (cacheText)
-            cacheText();
-        else if (repaint)
-            repaint();
-    }
-    
-    private boolean deleteSelection() {
-        if (selectPos != cursorPos) {
-            int start = selectStart();
-            int end = selectEnd();
-            text = text.substring(0, start) + text.substring(end);
-            setCursorPos(start);
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    private void selectWord(int evtX) {
-        int pos = getCursorPos(evtX);
-        selectPos = getWordStart(pos);
-        cursorPos = getWordEnd(pos);
-        makeVisible(cursorPos);
-        repaint();
-    }
-    
-    private int getWordStart(int pos) {
-        int i;
-        boolean hitChar = false;
-        
-        for (i = (pos-1); i >= 0; i--) {
-            char c = text.charAt(i);
-            if (hitChar && Character.isSpace(c))
-                break;
-            else if (!hitChar && !Character.isSpace(c))
-                hitChar = true;
-        }
-        
-        return i+1;
-    }
-    
-    private int getWordEnd(int pos) {
-        int i;
-        boolean hitSpace = false;
-        int len = text.length();
-        int start = Math.max(pos-1, 0);
-        
-        for (i = start; i < len; i++) {
-            char c = text.charAt(i);
-            if (hitSpace && !Character.isSpace(c))
-                break;
-            else if (!hitSpace && Character.isSpace(c))
-                hitSpace = true;
-        }
-        
-        return i;
-    }
-    
-    private void selectLine() {
-        selectPos = 0;
-        cursorPos = text.length();
-        repaint();
-    }
-    
-    private Frame getFrame() {
-        Component c = comp;
-        if (frame == null) {
-            while (c != null && !(c instanceof Frame))
-                c = c.getParent();
-            frame = (Frame)c;
-        }
-        return frame;
-    }
-    
-    public Point location() {
-        return new Point(x, y);
-    }
-    
-    public Dimension size() {
-        return new Dimension(w, h);
-    }
-    
-    private void setCursorX(int evtX) {
-        setCursorPos(getCursorPos(evtX));
-        repaint();
-    }
-    
-    private void setCursorPos(int pos) {
-        cursorPos = pos;
-        selectPos = pos;
-        makeVisible(cursorPos);
-        resetTimer();
-    }
-    
-    private void adjustSelection(int evtX) {
-        int pos = getCursorPos(evtX);
-        if (cursorPos != pos) {
-            cursorPos = pos;
-            makeVisible(cursorPos);
-            repaint();
-        }
-    }
-    
-    private boolean makeVisible(int pos) {
-        if (pos < scrollPos) {
-            scrollPos = Math.max(pos-6, 0);
-            return true;
-        } else if (pos > scrollPos) {
-            int width = metrics.stringWidth(text.substring(
-							   scrollPos, pos));
-            if (width >= (w-3)) {
-                int old = scrollPos;
-                scrollPos = getScrollPos(pos, w-40);
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    private synchronized void resetTimer() {
-        cursorState = true;
-        cursorTime = System.currentTimeMillis();
-        notify();
-    }
-    
-    private int getCursorPos(int evtX) {
-        int len = text.length();
-        int beginW = metrics.stringWidth(text.substring(0, scrollPos));
-        
-        int xoff = evtX - x - XOFF + beginW;
-        return findCursorOffset(xoff, text, len/2, 0, len);
-    }
-    
-    private int findCursorOffset(int xoff, String str,
-				 int cur, int lower, int upper) {
-        if (lower == upper) {
-            return lower;
-        } else if (lower == (upper-1)) {
-            int lw = metrics.stringWidth(str.substring(0, lower));
-            int uw = metrics.stringWidth(str.substring(0, upper));
-            
-            if ((xoff - lw) < (uw - xoff))
-                return lower;
-            else
-                return upper;
-        }
-        
-        int width = metrics.stringWidth(str.substring(0, cur));
-        
-        if (width > xoff)
-            return findCursorOffset(xoff, str, cur - (cur-lower)/2,
-				    lower, cur);
-        else
-            return findCursorOffset(xoff, str, cur + (upper-cur)/2,
-				    cur, upper);
-    }
-    
-    private int getScrollPos(int pos, int textW) {
-        String str = text.substring(scrollPos);
-        int offset = pos - scrollPos;
-        if (offset <= 0)
-            return scrollPos;
-        
-        pos = findScrollOffset(textW, str, offset, offset/2, 0, offset);
-        return (scrollPos + pos);
-    }
-    
-    private int findScrollOffset(int textW, String str, int len,
-				 int cur, int lower, int upper) {
-        if (lower == upper) {
-            return lower;
-        } else if (lower == (upper-1)) {
-            int lw = metrics.stringWidth(str.substring(lower, len));
-            int uw = metrics.stringWidth(str.substring(upper, len));
-            if ((lw-textW) < (textW-uw))
-                return lower;
-            else
-                return upper;
-        }
-        
-        int width = metrics.stringWidth(str.substring(cur, len));
-        if (width > textW)
-            return findScrollOffset(textW, str, len,
-				    cur + (upper-cur)/2, cur, upper);
-        else
-            return findScrollOffset(textW, str, len,
-				    cur - (cur-lower)/2, lower, cur);
-    }
-    
-    private boolean inside(int evtX, int evtY) {
-        return (evtX >= x && evtX <= (x+w) &&
-		evtY >= y && evtY <= (y+h));
-    }
-    
-    private int selectStart() {
-        return Math.min(selectPos, cursorPos);
-    }
-    
-    private int selectEnd() {
-        return Math.max(selectPos, cursorPos);
-    }
-    
-    public void repaint() {
-        repaint(null);
-    }
-    
-    // If "rect" is non-null, then the component is expected to repaint
-    // the area define by the rectangle.  The coordinates
-    // in the rectangle
-    // are relative to the component's coordinate space.
-    public void repaint(Rectangle rect) {
-        comp.postEvent(new Event(this, REPAINT, rect));
-    }
-    
-    public synchronized void paint(Graphics g) {
-        g = g.create();
-        g.translate(x, y);
-        g.setFont(getFont());
-        
-        if (paintCursor) {
-            if (cursorState)
-                g.setColor(getForeground());
-            else
-                g.setColor(getBackground());
-            
-            int xoff =
-		metrics.stringWidth(text.substring(scrollPos,
-						   cursorPos)) + XOFF;
-            g.fillRect(xoff, YPAD/2, 1, h-YPAD);
-            
-            paintCursor = false;
-            return;
-        }
-        
-        if (bg != null) {
-            g.setColor(getBackground());
-            g.fillRect(0, 0, w, h);
-        } else {
-            g.clearRect(0, 0, w, h);
-        }
-        
-        g.setColor(getForeground());
-        g.drawRect(0, 0, w-1, h-1);
-        
-        int xoff = XOFF;
-        int yoff = h - YPAD/2 - metrics.getDescent();
-        if (Global.isMotif())
-            yoff -= 1;
-        
-        int start = selectStart();
-        int end = selectEnd();
-        
-        if (start == end) {
-            String str = text.substring(scrollPos);
-            g.drawString(str, XOFF, yoff);
-            
-            if (cursorState) {
-                xoff += metrics.stringWidth(text.substring(scrollPos,
-							   cursorPos));
-                g.fillRect(xoff, YPAD/2, 1, h-YPAD);
-            }
-        } else {
-            
-            // Draw first unselected segment
-            if (start > scrollPos) {
-                g.drawString(text.substring(scrollPos, start),
-			     xoff, yoff);
-                xoff += metrics.stringWidth(text.substring(
-							   scrollPos, start));
-            }
-            
-            // Draw selected segment
-            String selectStr = text.substring(Math.max(start,
-						       scrollPos), end);
-            int selectW = metrics.stringWidth(selectStr);
-            
-            g.setColor(new Color(0, 0, 128));
-            g.fillRect(xoff, YPAD/2, selectW, h-YPAD);
-            g.setColor(Color.white);
-            g.drawString(selectStr, xoff, yoff);
-            
-            if (cursorState)
-                g.setColor(getForeground());
-            
-            if (cursorPos == end)
-                xoff += selectW;
-            
-            // Draw the cursor
-            g.fillRect(xoff, YPAD/2, 1, h-YPAD);
-            
-            if (cursorPos == start)
-                xoff += selectW;
-            
-            if (!cursorState)
-                g.setColor(getForeground());
-            
-            // Draw last unselected segment
-            int length = text.length();
-            if (end < length) {
-                g.drawString(text.substring(end), xoff, yoff);
-            }
-        }
-    }
-    
-    public synchronized void run() {
-        long waitTime = CURSOR_DELAY;
-        
-        while (Thread.currentThread() == cursorThread) {
-            try {
-                wait(waitTime);
-            }
-            catch (InterruptedException ex) {
-            }
-            
-            comp.requestFocus();
-            
-            if (dragging) {
-                waitTime = 0;
-            } else {
-                long diff = System.currentTimeMillis() - cursorTime;
-                if (diff >= CURSOR_DELAY) {
-                    waitTime = CURSOR_DELAY;
-                    cursorState = !cursorState;
-                    cursorTime = System.currentTimeMillis();
-                    paintCursor = true;
-                    repaint();
-                } else {
-                    waitTime = CURSOR_DELAY - diff;
-                }
-            }
-        }
-    }
-    
-    public synchronized void destroy() {
-        cursorThread = null;
-        notify();
-        
-        Frame f = getFrame();
-        if (f != null && f.getCursorType() != Frame.DEFAULT_CURSOR)
-            f.setCursor(Frame.DEFAULT_CURSOR);
-    }
-    
-    protected void finalize() {
-        destroy();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBConstraints.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
- * 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"
- *
- * @(#)GBConstraints.java	1.12 97/09/03 Doug Stein
- *
- * Copyright (c) 1996, 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.StringTokenizer;
-import java.util.NoSuchElementException;
-
-/**
- * GBConstraints is used to specify constraints for components
- * laid out using the GBLayout class.
- *
- * @see java.awt.GBLayout
- * @version 1.12, 06/17/97
- * @author Doug Stein
- */
-public class GBConstraints implements Cloneable {
-    public static final int RELATIVE = -1;
-    public static final int REMAINDER = 0;
-    
-    public static final int NONE = 0;
-    public static final int BOTH = 1;
-    public static final int HORIZONTAL = 2;
-    public static final int VERTICAL = 3;
-    
-    public static final int CENTER = 10;
-    public static final int NORTH = 11;
-    public static final int NORTHEAST = 12;
-    public static final int EAST = 13;
-    public static final int SOUTHEAST = 14;
-    public static final int SOUTH = 15;
-    public static final int SOUTHWEST = 16;
-    public static final int WEST = 17;
-    public static final int NORTHWEST = 18;
-    
-    public int gridx, gridy, gridwidth, gridheight;
-    public double weightx, weighty;
-    public int anchor, fill;
-    
-    // Regular insets and pads will shrink when space gets tight
-    public Insets insets;
-    public int ipadx, ipady;
-    
-    // Hard insets and pads never shrink
-    public Insets hardinsets;
-    public int hardipadx, hardipady;
-    
-    // Normally a component will not shrink below it minimum size.  Setting
-    // shrinkx or shrinky to true indicates that the component may shrink
-    // below its minimum size.
-    public boolean shrinkx;
-    public boolean shrinky;
-    
-    // The following variables are filled in during layout and
-    // can be accessed, but should not be modified:
-    public Point location;           // location of the component
-    public Dimension size;           // size of the component
-    public Dimension minsize;        // minimum size of the component
-    
-    int tempX, tempY;
-    int tempWidth, tempHeight;
-    int tinyWidth, tinyHeight;
-    
-    /**
-     * Creates a set of gridbag constraints.
-     */
-    public GBConstraints() {
-        gridx = RELATIVE;
-        gridy = RELATIVE;
-        gridwidth = 1;
-        gridheight = 1;
-        
-        weightx = 0;
-        weighty = 0;
-        anchor = CENTER;
-        fill = NONE;
-        
-        insets = new Insets(0, 0, 0, 0);
-        ipadx = 0;
-        ipady = 0;
-        
-        hardinsets = new Insets(0, 0, 0, 0);
-        hardipadx = 0;
-        hardipady = 0;
-    }
-    
-    /**
-     * Creates a set of gridbag constraints by parsing the given
-     * constraints option string.  Each option has the form key=value.
-     * Options are separated by semicolons (;).
-     */
-    public GBConstraints(String constraints) {
-        this();
-        parseConstraints(constraints);
-    }
-    
-    public Object clone() {
-        GBConstraints c;
-        try {
-            c = (GBConstraints)super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-        
-        if (c.insets != null)
-            c.insets = (Insets)c.insets.clone();
-        if (c.hardinsets != null)
-            c.hardinsets = (Insets)c.hardinsets.clone();
-        
-        return c;
-    }
-    
-    private void parseConstraints(String constraints) {
-        StringTokenizer st = new StringTokenizer(
-				 constraints, /* NOI18N */";", true);
-        
-        String option_string = null;
-        try {
-            while (st.hasMoreTokens()) {
-                option_string = st.nextToken();
-                if (option_string.equals(/* NOI18N */";"))
-                    continue;
-                
-                StringTokenizer op = new StringTokenizer(option_string,
-						/* NOI18N */"=", true);
-                String option = op.nextToken();
-                
-                if (option.equals(/* NOI18N */"gridx") ||
-		    option.equals(/* NOI18N */"x"))
-		    gridx = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"gridy") ||
-			 option.equals(/* NOI18N */"y"))
-		    gridy = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"gridwidth") ||
-			 option.equals(/* NOI18N */"width"))
-		    gridwidth = convertSymbolicValue(getValueToken(
-								   op));
-                else if (option.equals(/* NOI18N */"gridheight") ||
-			 option.equals(/* NOI18N */"height"))
-		    gridheight = convertSymbolicValue(getValueToken(op));
-                
-                else if (option.equals(/* NOI18N */"weightx")) {
-                    Double x = new Double(getValueToken(op));
-                    weightx = x.doubleValue();
-                } else if (option.equals(/* NOI18N */"weighty")) {
-                    Double x = new Double(getValueToken(op));
-                    weighty = x.doubleValue();
-                } else if (option.equals(/* NOI18N */"anchor"))
-                    anchor = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"fill"))
-                    fill = convertSymbolicValue(getValueToken(op));
-                
-                else if (option.equals(/* NOI18N */"insets.top"))
-                    insets.top = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"insets.left"))
-                    insets.left = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"insets.bottom"))
-                    insets.bottom = convertSymbolicValue(
-							 getValueToken(op));
-                else if (option.equals(/* NOI18N */"insets.right"))
-                    insets.right = convertSymbolicValue(getValueToken(op));
-                
-                else if (option.equals(/* NOI18N */"ipadx"))
-                    ipadx = convertSymbolicValue(getValueToken(op));
-                else if (option.equals(/* NOI18N */"ipady"))
-                    ipady = convertSymbolicValue(getValueToken(op));
-                
-                else if (option.equals(/* NOI18N */"shrinkx")) {
-                    Boolean x = new Boolean(getValueToken(op));
-                    shrinkx = x.booleanValue();
-                } else if (option.equals(/* NOI18N */"shrinky")) {
-                    Boolean x = new Boolean(getValueToken(op));
-                    shrinky = x.booleanValue();
-                }
-                
-                else if (option.equals(/* NOI18N */"hardinsets.top"))
-                    hardinsets.top = convertSymbolicValue(
-							  getValueToken(op));
-                else if (option.equals(/* NOI18N */"hardinsets.left"))
-                    hardinsets.left = convertSymbolicValue(
-							   getValueToken(op));
-                else if (option.equals(/* NOI18N */"hardinsets.bottom"))
-                    hardinsets.bottom = convertSymbolicValue(
-							     getValueToken(op));
-                else if (option.equals(/* NOI18N */"hardinsets.right"))
-                    hardinsets.right = convertSymbolicValue(
-							    getValueToken(op));
-                
-                else if (option.equals(/* NOI18N */"hardipadx"))
-                    hardipadx = convertSymbolicValue(
-						     getValueToken(op));
-                else if (option.equals(/* NOI18N */"hardipady"))
-                    hardipady = convertSymbolicValue(
-						     getValueToken(op));
-                
-                else
-                    throw new NoSuchElementException();
-            }
-        }
-        catch (Exception e) {
-            /* JSTYLED */
-	    throw new Error(Global.getMsg("sunsoft.jws.visual.rt.awt.GBConstraints.-ba-r-ba-n-ba-tSyntax__error__i.3") +
-			    /* NOI18N */"\t\t" + constraints + /* NOI18N */": "
-			    + option_string);
-        }
-    }
-    
-    private String getValueToken(StringTokenizer op)
-	throws NoSuchElementException
-    {
-        if (op.hasMoreTokens()) {
-            String assign = op.nextToken();
-            if (assign.equals(/* NOI18N */"="))
-                if (op.hasMoreTokens())
-		    return op.nextToken();
-        }
-        throw new NoSuchElementException();
-    }
-    
-    private int convertSymbolicValue(String value) {
-        if (value.equals(/* NOI18N */"relative"))
-            return GBConstraints.RELATIVE;
-        else if (value.equals(/* NOI18N */"remainder"))
-            return GBConstraints.REMAINDER;
-        else if (value.equals(/* NOI18N */"none"))
-            return GBConstraints.NONE;
-        else if (value.equals(/* NOI18N */"both"))
-            return GBConstraints.BOTH;
-        else if (value.equals(/* NOI18N */"horizontal"))
-            return GBConstraints.HORIZONTAL;
-        else if (value.equals(/* NOI18N */"vertical"))
-            return GBConstraints.VERTICAL;
-        else if (value.equals(/* NOI18N */"center"))
-            return GBConstraints.CENTER;
-        else if (value.equals(/* NOI18N */"north"))
-            return GBConstraints.NORTH;
-        else if (value.equals(/* NOI18N */"northeast"))
-            return GBConstraints.NORTHEAST;
-        else if (value.equals(/* NOI18N */"east"))
-            return GBConstraints.EAST;
-        else if (value.equals(/* NOI18N */"southeast"))
-            return GBConstraints.SOUTHEAST;
-        else if (value.equals(/* NOI18N */"south"))
-            return GBConstraints.SOUTH;
-        else if (value.equals(/* NOI18N */"southwest"))
-            return GBConstraints.SOUTHWEST;
-        else if (value.equals(/* NOI18N */"west"))
-            return GBConstraints.WEST;
-        else if (value.equals(/* NOI18N */"northwest"))
-            return GBConstraints.NORTHWEST;
-        
-        Integer int_val = new Integer(value);
-        return int_val.intValue();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBContainer.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * 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.
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-public interface GBContainer {
-    
-    //
-    // Initialization
-    //
-    
-    public void setGBPanel(GBPanel panel);
-    
-    //
-    // Container methods
-    //
-    
-    public void setLayout(LayoutManager mgr);
-    public void layout();
-    
-    public Component add(Component comp);
-    public void remove(Component comp);
-    public void removeAll();
-    
-    public void update(Graphics g);
-    public void paint(Graphics g);
-    public boolean handleEvent(Event e);
-    public void reshape(int x, int y, int w, int h);
-    
-    //
-    // Constraints
-    //
-    
-    public void setConstraints(Component comp, GBConstraints c);
-    public GBConstraints getConstraints(Component comp);
-    
-    //
-    // Layout and Preview modes
-    //
-    
-    public void layoutMode();
-    public void previewMode();
-    
-    //
-    // GBLayout attributes
-    //
-    
-    public void setColumnWeights(double w[]);
-    public void setRowWeights(double w[]);
-    public double [] getColumnWeights();
-    public double [] getRowWeights();
-    
-    public void setColumnWidths(int w[]);
-    public void setRowHeights(int h[]);
-    public int[] getColumnWidths();
-    public int[] getRowHeights();
-    
-    public void addRow(int index);
-    public void addColumn(int index);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBLayout.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1833 +0,0 @@
-/*
- * 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"
- *
- * @(#)GBLayout.java	1.23 97/09/03 Doug Stein
- *
- * Copyright (c) 1996, 2001 by Sun Microsystems, Inc. 
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.Hashtable;
-
-class GBLayoutInfo {
-    int width, height;	/* number of cells horizontally, vertically */
-    int startx, starty;		/* starting point for layout */
-    int minWidth[];		/* largest minWidth in each column */
-    int minHeight[];		/* largest minHeight in each row */
-    double weightX[];		/* largest weight in each column */
-    double weightY[];		/* largest weight in each row */
-    
-    GBLayoutInfo(int w, int h) {
-        width = w;
-        height = h;
-        minWidth = new int[w];
-        minHeight = new int[h];
-        weightX = new double[w];
-        weightY = new double[h];
-    }
-}
-
-/* BEGIN JSTYLED */
-/**
-   GBLayout is a flexible layout manager
-   that aligns components vertically and horizontally,
-   without requiring that the components be the same size.
-   Each GBLayout uses a rectangular grid of cells,
-   with each component occupying one or more cells
-   (called its  < em >display area</em>).
-   Each component managed by a GBLayout
-   is associated with a
-   < a href = java.awt.GBConstraints.html >GBConstraints</a>  instance
-   that specifies how the component is laid out
-   within its display area.
-   How a GBLayout places a set of components
-   depends on each component's GBConstraints and minimum size,
-   as well as the preferred size of the components' container.
-   < p>
-        
-   To use a GBLayout effectively,
-   you must customize one or more of its components' GBConstraints.
-   You customize a GBConstraints object by setting one or more
-   of its instance variables:
-   < dl>
-   < dt > <a href = java.awt.GBConstraints.html#gridx> gridx</a>,
-   < a href = java.awt.GBConstraints.html#gridy> gridy</a>
-   < dd>  Specifies the cell at the upper left of the component's display area,
-   where the upper-left-most cell has address gridx  =  0, gridy=0.
-   Use GBConstraints.RELATIVE(the default value)
-   to specify that the component be just placed
-   just to the right of(for gridx)
-   or just below(for gridy)
-   the component that was added to the container
-   just before this component was added.
-   < dt > <a href = java.awt.GBConstraints.html#gridwidth> gridwidth</a>,
-   < a href = java.awt.GBConstraints.html#gridheight> gridheight</a>
-   < dd>  Specifies the number of cells in a row(for gridwidth)
-   or column(for gridheight)
-   in the component's display area.
-   The default value is 1.
-   Use GBConstraints.REMAINDER to specify
-   that the component be the last one in its row(for gridwidth)
-   or column(for gridheight).
-   Use GBConstraints.RELATIVE to specify
-   that the component be the next to last one
-   in its row(for gridwidth) or column (for gridheight).
-   < dt>  <a href = java.awt.GBConstraints.html#fill>fill</a>
-   < dd>  Used when the component's display area
-   is larger than the component's requested size
-   to determine whether(and how) to resize the component.
-   Valid values are
-   GBConstraints.NONE
-   (the default),
-   GBConstraints.HORIZONTAL
-   (make the component wide enough to fill its display area
-   horizontally, but don't change its height),
-   GBConstraints.VERTICAL
-   (make the component tall enough to fill its display area
-   vertically, but don't change its width),
-   and
-   GBConstraints.BOTH
-   (make the component fill its display area entirely).
-   < dt > <a href = java.awt.GBConstraints.html#ipadx> ipadx</a>,
-   < a href = java.awt.GBConstraints.html#ipady> ipady</a>
-   < dd>  Specifies the internal padding:
-   how much to add to the minimum size of the component.
-   The width of the component will be at least
-   its minimum width plus ipadx*2 pixels
-   (since the padding applies to both sides of the component).
-   Similarly, the height of the component will be at least
-   the minimum height plus ipady*2 pixels.
-   < dt>  <a href = java.awt.GBConstraints.html#insets>insets</a>
-   < dd>  Specifies the external padding of the component --
-   the minimum amount of space between the component
-   and the edges of its display area.
-   < dt>  <a href = java.awt.GBConstraints.html#anchor>anchor</a>
-   < dd>  Used when the component is smaller than its display area
-   to determine where(within the area) to place the component.
-   Valid values are
-   GBConstraints.CENTER(the default),
-   GBConstraints.NORTH,
-   GBConstraints.NORTHEAST,
-   GBConstraints.EAST,
-   GBConstraints.SOUTHEAST,
-   GBConstraints.SOUTH,
-   GBConstraints.SOUTHWEST,
-   GBConstraints.WEST, and
-   GBConstraints.NORTHWEST.
-   < dt > <a href = java.awt.GBConstraints.html#weightx> weightx</a>,
-   < a href = java.awt.GBConstraints.html#weighty> weighty</a>
-   < dd>  Used to determine how to distribute space;
-   this is important for specifying resizing behavior.
-   Unless you specify a weight
-   for at least one component in a row(weightx)
-   and column(weighty),
-   all the components clump together in the center of
-   their container.
-   This is because when the weight is zero(the default),
-   the GBLayout puts any extra space
-   between its grid of cells and the edges of the container.
-   < /dl>
-        
-   The following figure shows ten components(all buttons)
-   managed by a GBLayout:
-   < blockquote>
-   < img src  =  images/java.awt/GridBagEx.gif width=262 height=155>
-   < /blockquote>
-        
-   All the components have fill = GBConstraints.BOTH.
-   In addition, the components have the following non-default constraints:
-   < ul>
-   < li >Button1, Button2, Button3:
-   weightx = 1.0
-   < li >Button4:
-   weightx = 1.0,
-   gridwidth = GBConstraints.REMAINDER
-   < li >Button5:
-   gridwidth = GBConstraints.REMAINDER
-   < li >Button6:
-   gridwidth = GBConstraints.RELATIVE
-   < li >Button7:
-   gridwidth = GBConstraints.REMAINDER
-   < li >Button8:
-   gridheight  =  2, weighty=1.0,
-   < li >Button9, Button 10:
-   gridwidth = GBConstraints.REMAINDER
-   < /ul>
-        
-   Here is the code that implements the example shown above:
-   < blockquote>
-   < pre>
-   import java.awt.*;
-   import java.util.*;
-   import java.applet.Applet;
-        
-   public class GridBagEx1 extends Applet {
-            
-   protected void makebutton(String name,
-   GBLayout gridbag,
-   GBConstraints c) {
-   Button button = new Button(name);
-   gridbag.setConstraints(button, c);
-   add(button);
-   }
-            
-   public void init() {
-   GBLayout gridbag = new GBLayout();
-   GBConstraints c = new GBConstraints();
-                
-   setFont(new Font("Sansserif", Font.PLAIN, 14));
-   setLayout(gridbag);
-                
-   c.fill = GBConstraints.BOTH;
-   c.weightx = 1.0;
-   makebutton("Button1", gridbag, c);
-   makebutton("Button2", gridbag, c);
-   makebutton("Button3", gridbag, c);
-                
-   c.gridwidth = GBConstraints.REMAINDER; // end row
-   makebutton("Button4", gridbag, c);
-                
-   c.weightx = 0.0;		   // reset to the default
-   makebutton("Button5", gridbag, c); // another row
-                
-   c.gridwidth = GBConstraints.RELATIVE; // next-to-last in row
-   makebutton("Button6", gridbag, c);
-                
-   c.gridwidth = GBConstraints.REMAINDER; // end row
-   makebutton("Button7", gridbag, c);
-                
-   c.gridwidth = 1;	   	   // reset to the default
-   c.gridheight = 2;
-   c.weighty = 1.0;
-   makebutton("Button8", gridbag, c);
-                
-   c.weighty = 0.0;		   // reset to the default
-   c.gridwidth = GBConstraints.REMAINDER; // end row
-   c.gridheight = 1;		   // reset to the default
-   makebutton("Button9", gridbag, c);
-   makebutton("Button10", gridbag, c);
-                
-   resize(300, 100);
-   }
-            
-   public static void main(String args[]) {
-   Frame f = new Frame("GridBag Layout Example");
-   GridBagEx1 ex1 = new GridBagEx1();
-                
-   ex1.init();
-                
-   f.add("Center", ex1);
-   f.pack();
-   f.resize(f.getPreferredSize());
-   f.show();
-   }
-   }
-   < /pre>
-   < /blockquote>
-   *
-   * @version 1.23, 08/06/97
-   * @author Doug Stein
-   */
-/* END JSTYLED */
-public class GBLayout implements LayoutManager {
-    
-    /**
-     * Determines the minimum widths for the grid columns.
-     */
-    public int columnWidths[];
-    
-    /**
-     * Determines the minimum heights for the grid rows.
-     */
-    public int rowHeights[];
-    
-    /**
-     * Determines the minimum weights for the grid columns.
-     */
-    public double columnWeights[];
-    
-    /**
-     * Determines the minimum weights for the grid rows.
-     */
-    public double rowWeights[];
-    
-    protected static final int INITGRIDSIZE = 16;
-    protected static final int MINSIZE = 1;
-    protected static final int PREFERREDSIZE = 2;
-    protected static final int TINYSIZE = 3;
-    
-    protected Hashtable comptable;
-    protected GBConstraints defaultConstraints;
-    protected GBLayoutInfo layoutInfo;
-    
-    protected int anchor;
-    protected int clipAnchor;
-    
-    private static boolean layoutDisabled = false;
-    private static int disableCount = 0;
-    private static Insets windowInsets = new Insets(0, 0, 0, 0);
-    
-    /**
-     * Globally enable gridbag layout.  The 
-     * default is for gridbag layout to
-     * be enabled.
-     */
-    public synchronized static void enable() {
-        disableCount--;
-        if (disableCount <= 0)
-            layoutDisabled = false;
-    }
-    
-    /**
-     * Globally disable gridbag layout.  This can be used to improve
-     * performance by temporarily disabling layout during
-     * spurious calls to validate.
-     */
-    public synchronized static void disable() {
-        disableCount++;
-        if (disableCount > 0)
-            layoutDisabled = true;
-    }
-    
-    /**
-     * Set the window insets.  The window insets default to (0,0,0,0).
-     */
-    public synchronized static void setWindowInsets(Insets insets) {
-        if (insets == null)
-            windowInsets = new Insets(0, 0, 0, 0);
-        else
-            windowInsets = (Insets)insets.clone();
-    }
-    
-    /**
-     * Get the window insets.
-     */
-    public synchronized static Insets getWindowInsets() {
-        return (Insets)windowInsets.clone();
-    }
-    
-    /**
-     * Creates a gridbag layout.
-     */
-    public GBLayout() {
-        comptable = new Hashtable();
-        defaultConstraints = new GBConstraints();
-        
-        anchor = GBConstraints.CENTER;
-        clipAnchor = GBConstraints.NORTHWEST;
-    }
-    
-    /**
-     * Sets the constraints for the specified component.
-     * @param comp the component to be modified
-     * @param constraints the constraints to be applied
-     */
-    public void setConstraints(Component comp,
-			       GBConstraints constraints) {
-        GBConstraints c = (GBConstraints)constraints.clone();
-        if (c.insets == null)
-            c.insets = new Insets(0, 0, 0, 0);
-        if (c.hardinsets == null)
-            c.hardinsets = new Insets(0, 0, 0, 0);
-        
-        comptable.put(comp, c);
-    }
-    
-    /**
-     * Sets the constraints from an option string.
-     * Each option has the form key=value. Options are separated by
-     * semicolons (;).
-     * @param comp the component to be modified
-     * @param constraints the constraints string
-     */
-    public void setConstraints(Component comp, String constraints) {
-        if (constraints == null)
-            return;
-        
-        comptable.put(comp, new GBConstraints(constraints));
-    }
-    
-    /**
-     * Retrieves the constraints for the specified component.  A copy of
-     * the constraints is returned.
-     * @param comp the component to be queried
-     */
-    public GBConstraints getConstraints(Component comp) {
-        GBConstraints constraints = (GBConstraints)comptable.get(comp);
-        if (constraints == null) {
-            setConstraints(comp, defaultConstraints);
-            constraints = (GBConstraints)comptable.get(comp);
-        }
-        return (GBConstraints)constraints.clone();
-    }
-    
-    /**
-     * Retrieves the constraints for the specified 
-     * component.  The return
-     * value is not a copy, but is the actual constraints
-     * class used by the
-     * layout mechanism.
-     * @param comp the component to be queried
-     */
-    protected GBConstraints lookupConstraints(Component comp) {
-        GBConstraints constraints = (GBConstraints)comptable.get(comp);
-        if (constraints == null) {
-            setConstraints(comp, defaultConstraints);
-            constraints = (GBConstraints)comptable.get(comp);
-        }
-        return constraints;
-    }
-    
-    /**
-     * Returns the coordinates of the upper-left corner of the grid.
-     * The coordinates are based on the current layout of the grid.
-     */
-    public Point getLayoutOrigin() {
-        Point origin = new Point(0, 0);
-        if (layoutInfo != null) {
-            origin.x = layoutInfo.startx;
-            origin.y = layoutInfo.starty;
-        }
-        return origin;
-    }
-    
-    /**
-     * Returns the widths and heights of the grid columns and rows.
-     * The dimensions are based on the current layout of the grid.
-     */
-    public int [][] getLayoutDimensions() {
-        if (layoutInfo == null)
-            return new int[2][0];
-        
-        int dim[][] = new int [2][];
-        dim[0] = new int[layoutInfo.width];
-        dim[1] = new int[layoutInfo.height];
-        
-        System.arraycopy(layoutInfo.minWidth, 0, dim[0], 0,
-			 layoutInfo.width);
-        System.arraycopy(layoutInfo.minHeight, 0, dim[1], 0,
-			 layoutInfo.height);
-        
-        return dim;
-    }
-    
-    /**
-     * Returns the minimum widths and heights of the 
-     * grid columns and rows.
-     * This is how the grid would be arranged if the parent were
-     * to be reshaped to its minimum size.
-     */
-    public int [][] getMinimumLayoutDimensions(Container parent) {
-        GBLayoutInfo info = GetLayoutInfo(parent, MINSIZE);
-        int dim[][] = new int[2][];
-        dim[0] = new int[info.width];
-        dim[1] = new int[info.height];
-        
-        System.arraycopy(info.minWidth, 0, dim[0], 0, info.width);
-        System.arraycopy(info.minHeight, 0, dim[1], 0, info.height);
-        
-        return dim;
-    }
-    
-    /**
-     * Returns the preferred widths and heights of the 
-     * grid columns and rows.
-     * This is how the grid would be arranged if the parent were
-     * to be reshaped to its preferred size.
-     */
-    public int [][] getPreferredLayoutDimensions(Container parent) {
-        GBLayoutInfo info = GetLayoutInfo(parent, PREFERREDSIZE);
-        int dim[][] = new int[2][];
-        dim[0] = new int[info.width];
-        dim[1] = new int[info.height];
-        
-        System.arraycopy(info.minWidth, 0, dim[0], 0, info.width);
-        System.arraycopy(info.minHeight, 0, dim[1], 0, info.height);
-        
-        return dim;
-    }
-    /* BEGIN JSTYLED */            
-    /**
-     * Returns the current set of weights for the grid 
-     * columns and rows.
-     * The return value reflects the effective weights for the columns
-     * and rows after taking into account the weight constraints that
-     * are set on the child components.
-     */
-    /* END JSTYLED */
-    public double [][] getLayoutWeights() {
-        if (layoutInfo == null)
-            return new double[2][0];
-        
-        double weights[][] = new double [2][];
-        weights[0] = new double[layoutInfo.width];
-        weights[1] = new double[layoutInfo.height];
-        
-        System.arraycopy(layoutInfo.weightX, 0, weights[0], 0,
-			 layoutInfo.width);
-        System.arraycopy(layoutInfo.weightY, 0, weights[1], 0,
-			 layoutInfo.height);
-        
-        return weights;
-    }
-    
-    /**
-     * Returns the coordinates of the grid cell corresponding 
-     * to the given
-     * pixel coordinates.
-     */
-    public Point location(int x, int y) {
-        Point loc = new Point(0, 0);
-        int i, d;
-        
-        if (layoutInfo == null)
-            return loc;
-        
-        d = layoutInfo.startx;
-        for (i = 0; i < layoutInfo.width; i++) {
-            d += layoutInfo.minWidth[i];
-            if (d > x)
-                break;
-        }
-        loc.x = i;
-        
-        d = layoutInfo.starty;
-        for (i = 0; i < layoutInfo.height; i++) {
-            d += layoutInfo.minHeight[i];
-            if (d > y)
-                break;
-        }
-        loc.y = i;
-        
-        return loc;
-    }
-    
-    /**
-     * Sets the anchor for the gridbag.  The anchor determines 
-     * the placement
-     * for the child components when the container
-     * has extra space and none
-     * of the children have weights.  The default anchor is CENTER.
-     */
-    public void setAnchor(int anchor) {
-        this.anchor = anchor;
-    }
-    
-    /**
-     * Returns the current anchor.
-     */
-    public int getAnchor() {
-        return anchor;
-    }
-    
-    /**
-     * Sets the clip anchor.  The clip anchor determines 
-     * which edge(s) of
-     * the container get clipped when there is not enough space.  The
-     * default clip anchor is NORTHWEST.  A clip anchor
-     * of NORTHWEST means
-     * that northwest corner is anchored, so the south
-     * and east edges will
-     * be clipped if there is not enough space.
-     */
-    public void setClipAnchor(int clipAnchor) {
-        this.clipAnchor = clipAnchor;
-    }
-    
-    /**
-     * Returns the current clip anchor.
-     */
-    public int getClipAnchor() {
-        return clipAnchor;
-    }
-    
-    /**
-     * If the parent is a Window, then adjust the insets according to
-     * the window insets.
-     */
-    private Insets getInsets(Container parent) {
-        Insets parentInsets = parent.insets();
-        Insets insets = null;
-        if (parentInsets != null) {
-            insets = (Insets) parentInsets.clone();
-        } else {
-            insets = new Insets(0, 0, 0, 0);
-        }
-        if (parent instanceof Window) {
-            insets.top += windowInsets.top;
-            insets.bottom += windowInsets.bottom;
-            insets.left += windowInsets.left;
-            insets.right += windowInsets.right;
-        }
-        return insets;
-    }
-    
-    /**
-     * Adds the specified component with the specified 
-     * name to the layout.
-     * The name is converted to a set of GBConstraints.
-     * @param name the constraints string
-     * @param comp the component to be added
-     */
-    public void addLayoutComponent(String name, Component comp) {
-        setConstraints(comp, name);
-    }
-    
-    /**
-     * Removes the specified component from the layout. Does not apply.
-     * @param comp the component to be removed
-     */
-    public void removeLayoutComponent(Component comp) {
-    }
-    
-    /**
-     * Returns the preferred dimensions for this layout 
-     * given the components
-     * in the specified panel.
-     * @param parent the component which needs to be laid out
-     * @see #minimumLayoutSize
-     */
-    public Dimension preferredLayoutSize(Container parent) {
-        GBLayoutInfo info = GetLayoutInfo(parent, PREFERREDSIZE);
-        return GetMinSize(parent, info);
-    }
-    
-    /**
-     * Returns the minimum dimensions needed to layout the components 
-     * contained in the specified panel.
-     * @param parent the component which needs to be laid out 
-     * @see #preferredLayoutSize
-     */
-    public Dimension minimumLayoutSize(Container parent) {
-        GBLayoutInfo info = GetLayoutInfo(parent, MINSIZE);
-        return GetMinSize(parent, info);
-    }
-    
-    /**
-     * Returns the smallest allowable size for the specified panel.
-     * This can be smaller than getMinimumSize if there are insets and
-     * pads set on any of the panel's children.
-     * @param parent the component which needs to be laid out 
-     * @see #preferredLayoutSize
-     */
-    public Dimension tinyLayoutSize(Container parent) {
-        GBLayoutInfo info = GetLayoutInfo(parent, TINYSIZE);
-        return GetMinSize(parent, info);
-    }
-    
-    /**
-     * Lays out the container in the specified panel.  
-     * @param parent the specified component being laid out
-     * @see Container
-     */
-    public void layoutContainer(Container parent) {
-        if (!layoutDisabled)
-            ArrangeGrid(parent, true);
-    }
-    
-    /**
-     * Does everything that layout normally does, except the components
-     * aren't actually reshaped.  This has the useful side effect of
-     * setting the location and size variables in the constraints
-     * for each component.
-     * @param parent the specified component being laid out
-     * @see Container
-     */
-    public void layoutContainerNoReshape(Container parent) {
-        if (!layoutDisabled)
-            ArrangeGrid(parent, false);
-    }
-    
-    /**
-     * Returns the String representation of this GBLayout's values.
-     */
-    public String toString() {
-        return getClass().getName();
-    }
-    /* BEGIN JSTYLED */
-    /**
-     * Print the layout information.  Useful for debugging.
-     */
-            
-    /* DEBUG
-     *
-     *  protected void DumpLayoutInfo(GBLayoutInfo s) {
-     *    int x;
-     *
-     *    System.out.println("Col\tWidth\tWeight");
-     *    for (x=0; x<s.width; x++) {
-     *      System.out.println(x + "\t" +
-     *			 s.minWidth[x] + "\t" +
-     *			 s.weightX[x]);
-     *    }
-     *    System.out.println("Row\tHeight\tWeight");
-     *    for (x=0; x<s.height; x++) {
-     *      System.out.println(x + "\t" +
-     *			 s.minHeight[x] + "\t" +
-     *			 s.weightY[x]);
-     *    }
-     *  }
-     */
-            
-    /**
-     * Print the layout constraints.  Useful for debugging.
-     */
-            
-    /* DEBUG
-     *
-     *  protected void DumpConstraints(GBConstraints constraints) {
-     *    System.out.println(
-     *		       "wt " +
-     *		       constraints.weightx +
-     *		       " " +
-     *		       constraints.weighty +
-     *		       ", " +
-     *
-     *		       "box " +
-     *		       constraints.gridx +
-     *		       " " +
-     *		       constraints.gridy +
-     *		       " " +
-     *		       constraints.gridwidth +
-     *		       " " +
-     *		       constraints.gridheight +
-     *		       ", " +
-     *
-     *		       "min " +
-     *		       constraints.minWidth +
-     *		       " " +
-     *		       constraints.minHeight +
-     *		       ", " +
-     *
-     *		       "pad " +
-     *		       constraints.insets.bottom +
-     *		       " " +
-     *		       constraints.insets.left +
-     *		       " " +
-     *		       constraints.insets.right +
-     *		       " " +
-     *		       constraints.insets.top +
-     *		       " " +
-     *		       constraints.ipadx +
-     *		       " " +
-     *		       constraints.ipady);
-     *  }
-     */
-            
-    /**
-     * Fill in an instance of the GBLayoutInfo structure for the
-     * current set of managed children.  This requires four passes
-     * through the child components:
-     *<pre>
-     * 1) Figure out the dimensions of the layout grid.
-     * 2) Determine which cells the components occupy.
-     * 3) Distribute the weights among the rows/columns.
-     * 4) Distribute the minimum sizes among the rows/columns.
-     *</pre>
-     * This also caches the minsizes for all the children when they are
-     * first encountered (so subsequent loops don't need to ask again).
-     */
-
-    /* END JSTYLED */
-    protected GBLayoutInfo GetLayoutInfo(Container parent,
-					 int sizeflag) {
-        Component comp;
-        GBConstraints constraints;
-        Dimension d;
-        Component components[] = parent.getComponents();
-        
-        int compindex, width, height, i, j, k, px, py;
-        int limit, pixels_diff, nextSize;
-        int curX, curY, curWidth, curHeight, curRow, curCol;
-        double weight_diff, weight, start, size;
-        int xMax[], yMax[];
-        
-	/* BEGIN JSTYLED */
-	/*
-	 * Pass #1
-	 *
-	 * Figure out the dimensions of the layout 
-	 * grid (use a value of 1 for
-	 * zero or negative widths and heights).
-	 */
-	/* END JSTYLED */
-        
-        width = height = 0;
-        curRow = curCol = -1;
-        xMax = new int[INITGRIDSIZE];
-        yMax = new int[INITGRIDSIZE];
-        
-        for (compindex = 0; compindex < components.length; compindex++) {
-            comp = components[compindex];
-            if (!comp.isVisible())
-                continue;
-            constraints = lookupConstraints(comp);
-            
-            curX = constraints.gridx;
-            curY = constraints.gridy;
-            curWidth = constraints.gridwidth;
-            if (curWidth <= 0)
-                curWidth = 1;
-            curHeight = constraints.gridheight;
-            if (curHeight <= 0)
-                curHeight = 1;
-            
-            /* If x or y is negative, then use relative positioning: */
-            if (curX < 0 && curY < 0) {
-                if (curRow >= 0)
-                    curY = curRow;
-                else if (curCol >= 0)
-                    curX = curCol;
-                else
-                    curY = 0;
-            }
-            if (curX < 0) {
-                px = 0;
-                limit = curY + curHeight;
-                xMax = ensureCapacity(xMax, limit);
-                for (i = curY; i < limit; i++)
-                    px = Math.max(px, xMax[i]);
-                
-                curX = px - curX - 1;
-                if (curX < 0)
-                    curX = 0;
-            } else if (curY < 0) {
-                py = 0;
-                limit = curX + curWidth;
-                yMax = ensureCapacity(yMax, limit);
-                for (i = curX; i < limit; i++)
-                    py = Math.max(py, yMax[i]);
-                
-                curY = py - curY - 1;
-                if (curY < 0)
-                    curY = 0;
-            }
-            
-            /* Adjust the grid width and height */
-            for (px = curX + curWidth; width < px; width++);
-            for (py = curY + curHeight; height < py; height++);
-            
-            /* Adjust the xMax and yMax arrays */
-            yMax = ensureCapacity(yMax, px);
-            xMax = ensureCapacity(xMax, py);
-            for (i = curX; i < px; i++) { yMax[i] = py; }
-            for (i = curY; i < py; i++) { xMax[i] = px; }
-            
-            /* Cache the current slave's size. */
-            if (sizeflag == TINYSIZE) {
-                if (comp instanceof Container) {
-                    Container cntr = (Container)comp;
-                    if (cntr.getLayout() instanceof GBLayout)
-                        d = ((GBLayout)cntr.getLayout()).tinyLayoutSize(cntr);
-                    else
-                        d = comp.getMinimumSize();
-                }
-                else
-                    d = comp.getMinimumSize();
-                
-                constraints.tinyWidth = d.width;
-                constraints.tinyHeight = d.height;
-                
-                if (constraints.shrinkx)
-                    constraints.tinyWidth = 0;
-                if (constraints.shrinky)
-                    constraints.tinyHeight = 0;
-                
-                if (constraints.minsize == null) {
-                    d = comp.getMinimumSize();
-                    constraints.minsize = new Dimension(d.width,
-							d.height);
-                }
-            } else {
-                if (sizeflag == PREFERREDSIZE) {
-                    d = comp.getPreferredSize();
-                    if (d.width <= 1 && d.height <= 1) {
-                        // If the preferred size is not reasonable
-                        // then try the minumum size
-                        d = comp.getMinimumSize();
-                        if (d.width <= 1 && d.height <= 1) {
-                            // Both preferred and minimun size
-                            // are small so use the actual size
-                            // that was set for the component.
-                            d = comp.getSize();
-                        }
-                    }
-                    constraints.minsize = new Dimension(d.width,
-							d.height);
-                } else {
-                    d = comp.getMinimumSize();
-                    // If the component is less than 1,1 minumum
-                    // size then
-                    // use getPreferredSize instead. This is
-                    // a workaround for
-                    // Beans that do not have getMinimumSize
-                    // implemented.
-                    if (d.width <= 1 && d.height <= 1) {
-                        d = comp.getPreferredSize();
-                        if (d.width <= 1 && d.height <= 1) {
-                            d = comp.getSize();
-                        }
-                    }
-                    constraints.minsize = new Dimension(d.width,
-							d.height);
-                }
-            }
-	    /* BEGIN JSTYLED */
-	    /*
-	     * Zero width and height must mean that this is 
-	     * the last item (or
-	     * else something is wrong).
-	     */
-	    if (constraints.gridheight == 0 && 
-		constraints.gridwidth == 0)
-		curRow = curCol = -1;
-                    
-	    /* Zero width starts a new row */
-	    if (constraints.gridheight == 0 && curRow < 0)
-		curCol = curX + curWidth;
-                    
-	    /* Zero height starts a new column */
-	    else if (constraints.gridwidth == 0 && curCol < 0)
-		curRow = curY + curHeight;
-	}
-                
-	/*
-	 * Apply minimum row/column dimensions
-	 */
-	/* END JSTYLED */
-	if (columnWidths != null && width < columnWidths.length)
-	    width = columnWidths.length;
-	if (rowHeights != null && height < rowHeights.length)
-	    height = rowHeights.length;
-            
-	GBLayoutInfo r = new GBLayoutInfo(width, height);
-            
-	/*
-	 * Pass #2
-	 *
-	 * Negative values for gridX are filled in with 
-	 * the current x value.
-	 * Negative values for gridY are filled in with
-	 * the current y value.
-	 * Negative or zero values for gridWidth and
-	 * gridHeight end the current
-	 * row or column, respectively.
-	 *
-	 * Pass #1 figures out the grid dimensions.
-	 * Pass #2 replaces the
-	 * negative and zero values for gridWidth and gridHeight with
-	 * real values that are based on the grid dimensions determined
-	 * in pass #1.
-	 */
-            
-	curRow = curCol = -1;
-	xMax = new int[height];
-	yMax = new int[width];
-            
-	for (compindex = 0; compindex < components.length;
-	    compindex++) {
-	    comp = components[compindex];
-	    if (!comp.isVisible())
-		continue;
-	    constraints = lookupConstraints(comp);
-                
-	    curX = constraints.gridx;
-	    curY = constraints.gridy;
-	    curWidth = constraints.gridwidth;
-	    curHeight = constraints.gridheight;
-                
-	    /* If x or y is negative, then use relative positioning: */
-	    if (curX < 0 && curY < 0) {
-		if (curRow >= 0)
-		    curY = curRow;
-		else if (curCol >= 0)
-		    curX = curCol;
-		else
-		    curY = 0;
-	    }
-                
-	    if (curX < 0) {
-		if (curHeight <= 0) {
-		    curHeight += r.height - curY;
-		    if (curHeight < 1)
-			curHeight = 1;
-		}
-                    
-		px = 0;
-		for (i = curY; i < (curY + curHeight); i++)
-		    px = Math.max(px, xMax[i]);
-                    
-		curX = px - curX - 1;
-		if (curX < 0)
-		    curX = 0;
-	    } else if (curY < 0) {
-		if (curWidth <= 0) {
-		    curWidth += r.width - curX;
-		    if (curWidth < 1)
-			curWidth = 1;
-		}
-                    
-		py = 0;
-		for (i = curX; i < (curX + curWidth); i++)
-		    py = Math.max(py, yMax[i]);
-                    
-		curY = py - curY - 1;
-		if (curY < 0)
-		    curY = 0;
-	    }
-                
-	    if (curWidth <= 0) {
-		curWidth += r.width - curX;
-		if (curWidth < 1)
-		    curWidth = 1;
-	    }
-                
-	    if (curHeight <= 0) {
-		curHeight += r.height - curY;
-		if (curHeight < 1)
-		    curHeight = 1;
-	    }
-                
-	    px = curX + curWidth;
-	    py = curY + curHeight;
-                
-	    for (i = curX; i < px; i++) { yMax[i] = py; }
-	    for (i = curY; i < py; i++) { xMax[i] = px; }
-                
-	    /* Make negative sizes start a new row/column */
-	    if (constraints.gridheight == 0 &&
-                constraints.gridwidth == 0)
-                curRow = curCol = -1;
-	    if (constraints.gridheight == 0 && curRow < 0)
-		curCol = curX + curWidth;
-	    else if (constraints.gridwidth == 0 && curCol < 0)
-		curRow = curY + curHeight;
-                
-	    /* Assign the new values to the gridbag slave */
-	    constraints.tempX = curX;
-	    constraints.tempY = curY;
-	    constraints.tempWidth = curWidth;
-	    constraints.tempHeight = curHeight;
-	}
-            
-	/*
-	 * Apply row/column weights.
-	 */
-            
-	if (columnWeights != null)
-	    System.arraycopy(columnWeights, 0, r.weightX, 0,
-			     Math.min(columnWeights.length, r.weightX.length));
-	if (rowWeights != null)
-	    System.arraycopy(rowWeights, 0, r.weightY, 0,
-			     Math.min(rowWeights.length, r.weightY.length));
-            
-	/*
-	 * Pass #3
-	 *
-	 * Distribute the weights.
-	 */
-            
-	nextSize = Integer.MAX_VALUE;
-            
-	for (i = 1;
-	    i != Integer.MAX_VALUE;
-	    i = nextSize, nextSize = Integer.MAX_VALUE) {
-	    for (compindex = 0; compindex < components.length;
-		 compindex++) {
-		comp = components[compindex];
-		if (!comp.isVisible())
-		    continue;
-		constraints = lookupConstraints(comp);
-                    
-		if (constraints.tempWidth == i) {
-		    px = constraints.tempX + constraints.tempWidth;
-		    /* right column */
-                        
-		    /*
-		     * Figure out if we should use this slave\'s 
-		     * weight.  If the weight
-		     * is less than the total weight spanned
-		     * by the width of the cell,
-		     * then discard the weight.  Otherwise
-		     * split the difference
-		     * according to the existing weights.
-		     */
-                        
-		    weight_diff = constraints.weightx;
-		    for (k = constraints.tempX; k < px; k++)
-			weight_diff -= r.weightX[k];
-		    if (weight_diff > 0.0) {
-			weight = 0.0;
-			for (k = constraints.tempX; k < px; k++)
-			    weight += r.weightX[k];
-			for (k = constraints.tempX; weight > 0.0
-				 && k < px; k++) {
-			    double wt = r.weightX[k];
-			    double dx = (wt * weight_diff) / weight;
-			    r.weightX[k] += dx;
-			    weight_diff -= dx;
-			    weight -= wt;
-			}
-				/* BEGIN JSTYLED */
-                                /* Assign the remainder to the 
-				 * rightmost cell */
-				/* END JSTYLED */
-			r.weightX[px-1] += weight_diff;
-		    }
-		} else if (constraints.tempWidth > i &&
-			   constraints.tempWidth < nextSize)
-                    nextSize = constraints.tempWidth;
-                    
-                    
-		if (constraints.tempHeight == i) {
-		    py = constraints.tempY + constraints.tempHeight;
-		    /* bottom row */
-                        
-		    /*
-		     * Figure out if we should use this slave\'s 
-		     * weight.  If the weight
-		     * is less than the total weight spanned by
-		     * the height of the cell,
-		     * then discard the weight.  Otherwise split
-		     * it the difference
-		     * according to the existing weights.
-		     */
-                        
-		    weight_diff = constraints.weighty;
-		    for (k = constraints.tempY; k < py; k++)
-			weight_diff -= r.weightY[k];
-		    if (weight_diff > 0.0) {
-			weight = 0.0;
-			for (k = constraints.tempY; k < py; k++)
-			    weight += r.weightY[k];
-			for (k = constraints.tempY; weight > 0.0
-				 && k < py; k++) {
-			    double wt = r.weightY[k];
-			    double dy = (wt * weight_diff) / weight;
-			    r.weightY[k] += dy;
-			    weight_diff -= dy;
-			    weight -= wt;
-			}
-			/* Assign the remainder to the bottom cell */
-			r.weightY[py-1] += weight_diff;
-		    }
-		} else if (constraints.tempHeight > i &&
-			   constraints.tempHeight < nextSize)
-                    nextSize = constraints.tempHeight;
-	    }
-	}
-            
-	/*
-	 * Apply minimum row/column widths.
-	 */
-            
-	if (sizeflag == TINYSIZE) {
-	    if (columnWidths != null) {
-		for (i = 0; i < columnWidths.length; i++) {
-		    if (r.weightX[i] == 0)
-			r.minWidth[i] = columnWidths[i];
-		}
-	    }
-	    if (rowHeights != null) {
-		for (i = 0; i < rowHeights.length; i++) {
-		    if (r.weightY[i] == 0)
-			r.minHeight[i] = rowHeights[i];
-		}
-	    }
-	} else {
-	    if (columnWidths != null)
-		System.arraycopy(columnWidths, 0, r.minWidth, 0,
-				 columnWidths.length);
-	    if (rowHeights != null)
-		System.arraycopy(rowHeights, 0, r.minHeight, 0,
-				 rowHeights.length);
-	}
-            
-	/*
-	 * Pass #4
-	 *
-	 * Distribute the minimum widths.
-	 */
-            
-	nextSize = Integer.MAX_VALUE;
-            
-	for (i = 1;
-	    i != Integer.MAX_VALUE;
-	    i = nextSize, nextSize = Integer.MAX_VALUE) {
-	    for (compindex = 0; compindex < components.length;
-		 compindex++) {
-		comp = components[compindex];
-		if (!comp.isVisible())
-		    continue;
-		constraints = lookupConstraints(comp);
-                    
-		if (constraints.tempWidth == i) {
-		    px = constraints.tempX + constraints.tempWidth;
-		    /* right column */
-                        
-		    /*
-		     * Calculate the minWidth array values.
-		     * First, figure out how wide the current 
-		     * slave needs to be.
-		     * Then, see if it will fit within the
-		     * current minWidth values.
-		     * If it will not fit, add the difference
-		     * according to the
-		     * weightX array.
-		     */
-                        
-		    if (sizeflag == TINYSIZE && hasWeightX(r,
-							   constraints)) {
-			pixels_diff = constraints.tinyWidth
-                            + constraints.hardipadx +
-                            constraints.hardinsets.left +
-                            constraints.hardinsets.right;
-		    } else {
-			pixels_diff = constraints.minsize.width +
-                            constraints.ipadx + constraints.hardipadx +
-                            constraints.insets.left +
-                            constraints.insets.right +
-                            constraints.hardinsets.left +
-                            constraints.hardinsets.right;
-		    }
-                        
-		    for (k = constraints.tempX; k < px; k++)
-			pixels_diff -= r.minWidth[k];
-		    if (pixels_diff > 0) {
-			weight = 0.0;
-			for (k = constraints.tempX; k < px; k++)
-			    weight += r.weightX[k];
-			for (k = constraints.tempX; weight > 0.0 &&
-				 k < px; k++) {
-			    double wt = r.weightX[k];
-			    int dx = (int)((wt * ((double)
-						  pixels_diff)) / weight);
-			    r.minWidth[k] += dx;
-			    pixels_diff -= dx;
-			    weight -= wt;
-			}
-                            
-			/* Any leftovers are evenly distributed */
-			int dx = pixels_diff/(px-constraints.tempX);
-			for (k = constraints.tempX; k < (px-1); k++) {
-			    r.minWidth[k] += dx;
-			    pixels_diff -= dx;
-			}
-			r.minWidth[px-1] += pixels_diff;
-		    }
-		} else if (constraints.tempWidth > i &&
-			   constraints.tempWidth < nextSize)
-                    nextSize = constraints.tempWidth;
-                    
-                    
-		if (constraints.tempHeight == i) {
-		    py = constraints.tempY + constraints.tempHeight;
-		    /* bottom row */
-                        
-		    /*
-		     * Calculate the minHeight array values.
-		     * First, figure out how tall the current 
-		     * slave needs to be.
-		     * Then, see if it will fit within the
-		     * current minHeight values.
-		     * If it will not fit, add the difference
-		     * according to the
-		     * weightY array.
-		     */
-                        
-		    if (sizeflag == TINYSIZE && hasWeightY(r,
-							   constraints)) {
-			pixels_diff = constraints.tinyHeight +
-                            constraints.hardipady +
-                            constraints.hardinsets.top +
-                            constraints.hardinsets.bottom;
-		    } else {
-			pixels_diff = constraints.minsize.height +
-                            constraints.ipady + constraints.hardipady +
-                            constraints.insets.top +
-                            constraints.insets.bottom +
-                            constraints.hardinsets.top +
-                            constraints.hardinsets.bottom;
-		    }
-                        
-		    for (k = constraints.tempY; k < py; k++)
-			pixels_diff -= r.minHeight[k];
-		    if (pixels_diff > 0) {
-			weight = 0.0;
-			for (k = constraints.tempY; k < py; k++)
-			    weight += r.weightY[k];
-			for (k = constraints.tempY; weight > 0.0 &&
-				 k < py; k++) {
-			    double wt = r.weightY[k];
-			    int dy = (int)((wt * ((double)pixels_diff))
-					   / weight);
-			    r.minHeight[k] += dy;
-			    pixels_diff -= dy;
-			    weight -= wt;
-			}
-                            
-			/* Any leftovers are evenly distributed */
-			int dy = pixels_diff/(py-constraints.tempY);
-			for (k = constraints.tempY; k < (py-1); k++) {
-			    r.minHeight[k] += dy;
-			    pixels_diff -= dy;
-			}
-			r.minHeight[py-1] += pixels_diff;
-		    }
-		} else if (constraints.tempHeight > i &&
-			   constraints.tempHeight < nextSize)
-                    nextSize = constraints.tempHeight;
-	    }
-	}
-            
-	return r;
-    }
-        
-    private int[] ensureCapacity(int arr[], int size) {
-	if (arr.length < size) {
-	    int newSize = arr.length * 2;
-	    if (newSize == 0)
-		newSize = 1;
-	    while (newSize < size)
-		newSize = newSize * 2;
-                
-	    int newArr[] = new int[newSize];
-	    System.arraycopy(arr, 0, newArr, 0, arr.length);
-	    arr = newArr;
-	}
-            
-	return arr;
-    }
-        
-    private boolean hasWeightX(GBLayoutInfo r, GBConstraints c) {
-	int gx = c.tempX + c.tempWidth;
-	for (int i = c.tempX; i < gx; i++) {
-	    if (r.weightX[i] != 0)
-		return true;
-	}
-	return false;
-    }
-        
-    private boolean hasWeightY(GBLayoutInfo r, GBConstraints c) {
-	int gy = c.tempY + c.tempHeight;
-	for (int i = c.tempY; i < gy; i++) {
-	    if (r.weightY[i] != 0)
-		return true;
-	}
-	return false;
-    }
-        
-    /**
-     * Adjusts the x, y, width, and height fields to the correct
-     * values according to the constraint geometry and pads.
-     */
-    protected void AdjustForGravity(GBConstraints c, Rectangle r) {
-	int diffx, diffy, w, h;
-	Insets insets = (Insets)c.insets.clone();
-            
-	w = r.width -
-            (insets.left + insets.right + c.hardinsets.left +
-	    c.hardinsets.right);
-	h = r.height -
-            (insets.top + insets.bottom + c.hardinsets.top +
-	    c.hardinsets.bottom);
-            
-	if (w < c.tinyWidth) {
-	    if (c.fill == GBConstraints.HORIZONTAL ||
-                c.fill == GBConstraints.BOTH) {
-		diffx = c.tinyWidth - w;
-		insets.left -= diffx/2;
-		insets.right -= diffx/2;
-		if (insets.left < 0) {
-		    insets.right += insets.left;
-		    insets.left = 0;
-		}
-		if (insets.right < 0) {
-		    insets.left += insets.right;
-		    insets.right = 0;
-		}
-	    } else {
-		switch (c.anchor) {
-		case GBConstraints.NORTH:
-		case GBConstraints.SOUTH:
-		case GBConstraints.CENTER:
-		    diffx = c.tinyWidth - w;
-		    insets.left -= diffx/2;
-		    insets.right -= diffx/2;
-		    if (insets.left < 0) {
-			insets.right += insets.left;
-			insets.left = 0;
-		    }
-		    if (insets.right < 0) {
-			insets.left += insets.right;
-			insets.right = 0;
-		    }
-		    break;
-                        
-		case GBConstraints.NORTHWEST:
-		case GBConstraints.SOUTHWEST:
-		case GBConstraints.WEST:
-		    diffx = c.tinyWidth - w;
-		    insets.right -= diffx;
-		    if (insets.right < 0) {
-			insets.left += insets.right;
-			insets.right = 0;
-		    }
-		    break;
-                        
-		case GBConstraints.NORTHEAST:
-		case GBConstraints.SOUTHEAST:
-		case GBConstraints.EAST:
-		    diffx = c.tinyWidth - w;
-		    insets.left -= diffx;
-		    if (insets.left < 0) {
-			insets.right += insets.left;
-			insets.left = 0;
-		    }
-		    break;
-		default:
-		    /* JSTYLED */
-		    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.4"));
-		}
-	    }
-	}
-            
-	if (h < c.tinyHeight) {
-	    if (c.fill == GBConstraints.VERTICAL ||
-                c.fill == GBConstraints.BOTH) {
-		diffy = c.tinyHeight - h;
-		insets.top -= diffy/2;
-		insets.bottom -= diffy/2;
-		if (insets.top < 0) {
-		    insets.bottom += insets.top;
-		    insets.top = 0;
-		}
-		if (insets.bottom < 0) {
-		    insets.top += insets.bottom;
-		    insets.bottom = 0;
-		}
-	    } else {
-		switch (c.anchor) {
-		case GBConstraints.WEST:
-		case GBConstraints.EAST:
-		case GBConstraints.CENTER:
-		    diffy = c.tinyHeight - h;
-		    insets.top -= diffy/2;
-		    insets.bottom -= diffy/2;
-		    if (insets.top < 0) {
-			insets.bottom += insets.top;
-			insets.top = 0;
-		    }
-		    if (insets.bottom < 0) {
-			insets.top += insets.bottom;
-			insets.bottom = 0;
-		    }
-		    break;
-                        
-		case GBConstraints.NORTHWEST:
-		case GBConstraints.NORTHEAST:
-		case GBConstraints.NORTH:
-		    diffy = c.tinyHeight - h;
-		    insets.bottom -= diffy;
-		    if (insets.bottom < 0) {
-			insets.top += insets.bottom;
-			insets.bottom = 0;
-		    }
-		    break;
-                        
-		case GBConstraints.SOUTHWEST:
-		case GBConstraints.SOUTHEAST:
-		case GBConstraints.SOUTH:
-		    diffy = c.tinyHeight - h;
-		    insets.top -= diffy;
-		    if (insets.top < 0) {
-			insets.bottom += insets.top;
-			insets.top = 0;
-		    }
-		    break;
-		default:
-		    /* JSTYLED */
-		    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.4"));
-		}
-	    }
-	}
-            
-	r.x += insets.left + c.hardinsets.left;
-	r.width -= (insets.left + insets.right +
-		    c.hardinsets.left + c.hardinsets.right);
-	r.y += insets.top + c.hardinsets.top;
-	r.height -= (insets.top + insets.bottom +
-		     c.hardinsets.top + c.hardinsets.bottom);
-            
-	diffx = 0;
-	if ((c.fill != GBConstraints.HORIZONTAL &&
-	    c.fill != GBConstraints.BOTH)
-            && (r.width > (c.minsize.width + c.ipadx + c.hardipadx))) {
-	    diffx = r.width - (c.minsize.width + c.ipadx +
-			       c.hardipadx);
-	    r.width = c.minsize.width + c.ipadx + c.hardipadx;
-	}
-            
-	diffy = 0;
-	if ((c.fill != GBConstraints.VERTICAL &&
-	    c.fill != GBConstraints.BOTH)
-            && (r.height > (c.minsize.height + c.ipady + c.hardipady))) {
-	    diffy = r.height - (c.minsize.height + c.ipady +
-				c.hardipady);
-	    r.height = c.minsize.height + c.ipady + c.hardipady;
-	}
-            
-	switch (c.anchor) {
-	case GBConstraints.CENTER:
-	    r.x += diffx/2;
-	    r.y += diffy/2;
-	    break;
-	case GBConstraints.NORTH:
-	    r.x += diffx/2;
-	    break;
-	case GBConstraints.NORTHEAST:
-	    r.x += diffx;
-	    break;
-	case GBConstraints.EAST:
-	    r.x += diffx;
-	    r.y += diffy/2;
-	    break;
-	case GBConstraints.SOUTHEAST:
-	    r.x += diffx;
-	    r.y += diffy;
-	    break;
-	case GBConstraints.SOUTH:
-	    r.x += diffx/2;
-	    r.y += diffy;
-	    break;
-	case GBConstraints.SOUTHWEST:
-	    r.y += diffy;
-	    break;
-	case GBConstraints.WEST:
-	    r.y += diffy/2;
-	    break;
-	case GBConstraints.NORTHWEST:
-	    break;
-	default:
-	    /* JSTYLED */
-	    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.5"));
-	}
-    }
-        
-    /**
-     * Figure out the minimum size of the
-     * parent based on the information retrieved from GetLayoutInfo.
-     */
-    protected Dimension GetMinSize(Container parent,
-				   GBLayoutInfo info) {
-	Dimension d = new Dimension();
-	int i, t;
-	Insets insets = getInsets(parent);
-            
-	t = 0;
-	for (i = 0; i < info.width; i++)
-	    t += info.minWidth[i];
-	d.width = t + insets.left + insets.right;
-            
-	t = 0;
-	for (i = 0; i < info.height; i++)
-	    t += info.minHeight[i];
-	d.height = t + insets.top + insets.bottom;
-            
-	return d;
-    }
-        
-    /**
-     * Lays out the grid.  Called directly from layoutContainer.
-     */
-    protected void ArrangeGrid(Container parent) {
-	ArrangeGrid(parent, true);
-    }
-        
-    /**
-     * Lays out the grid, conditionally reshaping the children.
-     * The doReshape flag indicates whether or not
-     * the children should be reshaped.
-     *
-     * @see layoutContainerNoReshape
-     */
-    protected void ArrangeGrid(Container parent, boolean doReshape) {
-	Component comp;
-	int compindex;
-	GBConstraints constraints;
-	Insets insets = getInsets(parent);
-	Component components[] = parent.getComponents();
-	Dimension d;
-	Rectangle r = new Rectangle();
-	int i, diffw, diffh;
-	double weight;
-	GBLayoutInfo info, tinyinfo;
-            
-	/*
-	 * If the parent has no slaves anymore, then don't do anything
-	 * at all:  just leave the parent's size as-is.
-	 */
-	if (components.length == 0 &&
-            (columnWidths == null || columnWidths.length == 0) &&
-            (rowHeights == null || rowHeights.length == 0)) {
-	    return;
-	}
-            
-	/*
-	 * Pass #1: scan all the slaves to figure out the total amount
-	 * of space needed.
-	 */
-            
-	info = GetLayoutInfo(parent, PREFERREDSIZE);
-	d = GetMinSize(parent, info);
-            
-	Dimension parentSize = parent.getSize();
-            
-	if (d.width > parentSize.width || d.height >
-            parentSize.height) {
-	    info = GetLayoutInfo(parent, MINSIZE);
-	    d = GetMinSize(parent, info);
-	}
-            
-	tinyinfo = GetLayoutInfo(parent, TINYSIZE);
-            
-	layoutInfo = info;
-	r.width = d.width;
-	r.height = d.height;
-            
-	/* BEGIN JSTYLED */
-	/*
-	 * DEBUG
-	 *
-	 * DumpLayoutInfo(info);
-	 * for (compindex = 0 ; compindex < components.length ; compindex++) {
-	 * comp = components[compindex];
-	 * if (!comp.isVisible())
-	 *	continue;
-	 * constraints = lookupConstraints(comp);
-	 * DumpConstraints(constraints);
-	 * }
-	 * System.out.println("minSize " + r.width + " " + r.height);
-	 */
-                
-	/*
-	 * If the current dimensions of the window don't match the desired
-	 * dimensions, then adjust the minWidth and minHeight arrays
-	 * according to the weights.
-	 */
-
-	/* END JSTYLED */
-            
-	diffw = parentSize.width - r.width;
-	if (diffw != 0) {
-	    weight = 0.0;
-	    for (i = 0; i < info.width; i++)
-		weight += info.weightX[i];
-	    if (weight > 0.0) {
-		for (i = 0; i < info.width; i++) {
-		    int dx = (int)((((double)diffw) *
-				    info.weightX[i]) / weight);
-		    info.minWidth[i] += dx;
-		    r.width += dx;
-		    if (info.minWidth[i] < tinyinfo.minWidth[i]) {
-			r.width += tinyinfo.minWidth[i] -
-                            info.minWidth[i];
-			info.minWidth[i] = tinyinfo.minWidth[i];
-		    }
-		}
-	    }
-	    diffw = parentSize.width - r.width;
-	} else {
-	    diffw = 0;
-	}
-            
-	diffh = parentSize.height - r.height;
-	if (diffh != 0) {
-	    weight = 0.0;
-	    for (i = 0; i < info.height; i++)
-		weight += info.weightY[i];
-	    if (weight > 0.0) {
-		for (i = 0; i < info.height; i++) {
-		    int dy = (int)((((double)diffh) *
-				    info.weightY[i]) / weight);
-		    info.minHeight[i] += dy;
-		    r.height += dy;
-		    if (info.minHeight[i] < tinyinfo.minHeight[i]) {
-			r.height += tinyinfo.minHeight[i] -
-                            info.minHeight[i];
-			info.minHeight[i] = tinyinfo.minHeight[i];
-		    }
-		}
-	    }
-	    diffh = parentSize.height - r.height;
-	} else {
-	    diffh = 0;
-	}
-            
-	/*
-	 * DEBUG
-	 *
-	 * System.out.println("Re-adjusted:");
-	 * DumpLayoutInfo(info);
-	 */
-            
-	/*
-	 * Now do the actual layout of the slaves 
-	 * using the layout information
-	 * that has been collected.
-	 */
-            
-	int anchorx = anchor;
-	int anchory = anchor;
-            
-	if (diffw < 0)
-	    anchorx = clipAnchor;
-	if (diffh < 0)
-	    anchory = clipAnchor;
-            
-	switch (anchorx) {
-	case GBConstraints.CENTER:
-	case GBConstraints.NORTH:
-	case GBConstraints.SOUTH:
-	    info.startx = diffw/2;
-	    break;
-                
-	case GBConstraints.WEST:
-	case GBConstraints.NORTHWEST:
-	case GBConstraints.SOUTHWEST:
-	    info.startx = 0;
-	    break;
-                
-	case GBConstraints.EAST:
-	case GBConstraints.NORTHEAST:
-	case GBConstraints.SOUTHEAST:
-	    info.startx = diffw;
-	    break;
-                
-	default:
-	    /* JSTYLED */
-	    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.6"));
-	}
-            
-	switch (anchory) {
-	case GBConstraints.CENTER:
-	case GBConstraints.WEST:
-	case GBConstraints.EAST:
-	    info.starty = diffh/2;
-	    break;
-                
-	case GBConstraints.NORTH:
-	case GBConstraints.NORTHWEST:
-	case GBConstraints.NORTHEAST:
-	    info.starty = 0;
-	    break;
-                
-	case GBConstraints.SOUTH:
-	case GBConstraints.SOUTHWEST:
-	case GBConstraints.SOUTHEAST:
-	    info.starty = diffh;
-	    break;
-                
-	default:
-	    /* JSTYLED */
-	    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.7"));
-	}
-            
-	info.startx += insets.left;
-	info.starty += insets.top;
-            
-	for (compindex = 0; compindex < components.length;
-	    compindex++) {
-	    comp = components[compindex];
-	    if (!comp.isVisible())
-		continue;
-	    constraints = lookupConstraints(comp);
-                
-	    r.x = info.startx;
-	    for (i = 0; i < constraints.tempX; i++)
-		r.x += info.minWidth[i];
-                
-	    r.y = info.starty;
-	    for (i = 0; i < constraints.tempY; i++)
-		r.y += info.minHeight[i];
-                
-	    r.width = 0;
-	    for (i = constraints.tempX;
-		 i < (constraints.tempX + constraints.tempWidth);
-		 i++) {
-		r.width += info.minWidth[i];
-	    }
-                
-	    r.height = 0;
-	    for (i = constraints.tempY;
-		 i < (constraints.tempY + constraints.tempHeight);
-		 i++) {
-		r.height += info.minHeight[i];
-	    }
-                
-	    AdjustForGravity(constraints, r);
-                
-	    /*
-	     * If the window is too small to be interesting then
-	     * unmap it.  Otherwise configure it and then make sure
-	     * it's mapped.
-	     */
-                
-	    if ((r.width <= 0) || (r.height <= 0)) {
-		if (doReshape)
-		    comp.reshape(-1, -1, 0, 0);
-		constraints.location = new Point(-1, -1);
-		constraints.size = new Dimension(0, 0);
-	    } else {
-		Point loc = comp.getLocation();
-		Dimension size = comp.getSize();
-                    
-		if (loc.x != r.x || loc.y != r.y ||
-                    size.width != r.width || size.height != r.height) {
-		    if (doReshape)
-			comp.reshape(r.x, r.y, r.width, r.height);
-		    constraints.location = new Point(r.x, r.y);
-		    constraints.size = new Dimension(r.width, r.height);
-		}
-	    }
-	}
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/GBPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
- * 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.
- *
- * @(#) GBPanel.java 1.35 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.awt.*;
-
-public class GBPanel extends VJPanel {
-    
-    private static Class gbclass;
-    
-    private boolean runtime = true;
-    private GBContainer cntr;
-    private GBLayout mgr;
-    
-    public GBPanel() {
-        setLayout(new GBLayout());
-    }
-    
-    public boolean handleEvent(Event evt) {
-        if (cntr != null)
-            return cntr.handleEvent(evt);
-        else
-            return super.handleEvent(evt);
-    }
-    
-    public void setRuntime(boolean rt) {
-        if (runtime == rt)
-            return;
-        
-        runtime = rt;
-        
-        if (runtime) {
-            cntr.setGBPanel(null);
-            cntr = null;
-        } else {
-            if (gbclass == null)
-                gbclass = DesignerAccess.getGBPanelClass();
-            
-            try {
-                cntr = (GBContainer)gbclass.newInstance();
-            }
-            catch (IllegalAccessException ex) {
-                throw new Error(ex.toString());
-            }
-            catch (InstantiationException ex) {
-                throw new Error(ex.toString());
-            }
-            
-            cntr.setGBPanel(this);
-        }
-    }
-    
-    public GBContainer getGBContainer() {
-        return cntr;
-    }
-    
-    //
-    // Special hack for flow layout so that it
-    // can re-adjust its vertical
-    // size based on the horizontal space available.
-    // This method is needed
-    // to make the flow layout take up more space
-    // vertically when it runs
-    // short on horizontal space.
-    //
-    public void layout() {
-        boolean hasFlow = false;
-        int count = countComponents();
-        GBLayout gridbag = (GBLayout)getLayout();
-        Component comp;
-        LayoutManager mgr;
-        
-        for (int i = 0; i < count; i++) {
-            comp = getComponent(i);
-            if (comp instanceof Container) {
-                mgr = ((Container)comp).getLayout();
-                if (mgr instanceof VJFlowLayout) {
-                    hasFlow = true;
-                    ((VJFlowLayout)mgr).setMinimumWidth(0);
-                }
-            }
-        }
-        
-        if (hasFlow) {
-            gridbag.layoutContainerNoReshape(this);
-            
-            for (int i = 0; i < count; i++) {
-                comp = getComponent(i);
-                if (comp instanceof Container) {
-                    mgr = ((Container)comp).getLayout();
-                    if (mgr instanceof VJFlowLayout) {
-                        GBConstraints c = gridbag.getConstraints(comp);
-                        if (c.size != null)
-                            ((VJFlowLayout)mgr).setMinimumWidth(
-								c.size.width);
-                    }
-                }
-            }
-        }
-        
-        super.layout();
-        
-        if (hasFlow) {
-            for (int i = 0; i < count; i++) {
-                comp = getComponent(i);
-                if (comp instanceof Container) {
-                    mgr = ((Container)comp).getLayout();
-                    if (mgr instanceof VJFlowLayout) {
-                        ((VJFlowLayout)mgr).setMinimumWidth(0);
-                    }
-                }
-            }
-        }
-        
-        if (cntr != null)
-            cntr.layout();
-    }
-    
-    //
-    // Forwarding of container methods
-    //
-    
-    public void setLayout(LayoutManager mgr) {
-        if (cntr != null)
-            cntr.setLayout(mgr);
-        else
-            super.setLayout(mgr);
-        updateLayout();
-    }
-    
-    public void setLayoutSuper(LayoutManager mgr) {
-        super.setLayout(mgr);
-        updateLayout();
-    }
-    
-    private void updateLayout() {
-        LayoutManager m = getLayout();
-        if (m instanceof GBLayout)
-            mgr = (GBLayout)m;
-        else
-            mgr = null;
-    }
-    
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        super.addImpl(comp, constraints, index);
-        doAdd(comp);
-    }
-    // #else
-    // public Component add(Component comp, int pos) {
-    //   super.add(comp, pos);
-    //   doAdd(comp);
-    //   return comp;
-    // }
-    // #endif
-    
-    
-    private void doAdd(Component comp) {
-        if (cntr != null)
-            cntr.add(comp);
-    }
-    
-    public void remove(Component comp) {
-        super.remove(comp);
-        if (cntr != null)
-            cntr.remove(comp);
-    }
-    
-    public void removeAll() {
-        super.removeAll();
-        if (cntr != null)
-            cntr.removeAll();
-    }
-    
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        
-        if (cntr != null)
-            cntr.update(g);
-        
-        super.update(g);
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        
-        if (cntr != null)
-            cntr.paint(g);
-        
-        super.paint(g);
-    }
-    
-    public void reshape(int x, int y, int w, int h) {
-        super.reshape(x, y, w, h);
-        if (cntr != null)
-            cntr.reshape(x, y, w, h);
-    }
-    
-    //
-    // Layout and Preview modes
-    //
-    
-    public void layoutMode() {
-        if (cntr != null)
-            cntr.layoutMode();
-    }
-    
-    public void previewMode() {
-        if (cntr != null)
-            cntr.previewMode();
-    }
-    
-    //
-    // Constraints
-    //
-    
-    public void setConstraints(Component comp, GBConstraints c) {
-        if (c == null)
-            /* JSTYLED */
-	    throw new Error(Global.getMsg("sunsoft.jws.visual.rt.awt.GBPanel.null__constraints"));
-        
-        if (cntr != null)
-            cntr.setConstraints(comp, c);
-        else if (mgr != null)
-            mgr.setConstraints(comp, c);
-    }
-    
-    public GBConstraints getConstraints(Component comp) {
-        if (cntr != null)
-            return cntr.getConstraints(comp);
-        else if (mgr != null)
-            return mgr.getConstraints(comp);
-        else
-            return null;
-    }
-    
-    //
-    // GBLayout attributes
-    //
-    
-    public void setColumnWeights(double w[]) {
-        if (cntr != null)
-            cntr.setColumnWeights(w);
-        else if (mgr != null)
-            mgr.columnWeights = w;
-    }
-    
-    public void setRowWeights(double w[]) {
-        if (cntr != null)
-            cntr.setRowWeights(w);
-        else if (mgr != null)
-            mgr.rowWeights = w;
-    }
-    
-    public double [] getColumnWeights() {
-        if (cntr != null)
-            return cntr.getColumnWeights();
-        else if (mgr != null)
-            return mgr.columnWeights;
-        else
-            return null;
-    }
-    
-    public double [] getRowWeights() {
-        if (cntr != null)
-            return cntr.getRowWeights();
-        else if (mgr != null)
-            return mgr.rowWeights;
-        else
-            return null;
-    }
-    
-    public void setColumnWidths(int w[]) {
-        if (cntr != null)
-            cntr.setColumnWidths(w);
-        else if (mgr != null)
-            mgr.columnWidths = w;
-    }
-    
-    public void setRowHeights(int h[]) {
-        if (cntr != null)
-            cntr.setRowHeights(h);
-        else if (mgr != null)
-            mgr.rowHeights = h;
-    }
-    
-    public int[] getColumnWidths() {
-        if (cntr != null)
-            return cntr.getColumnWidths();
-        else if (mgr != null)
-            return mgr.columnWidths;
-        else
-            return null;
-    }
-    
-    public int[] getRowHeights() {
-        if (cntr != null)
-            return cntr.getRowHeights();
-        else if (mgr != null)
-            return mgr.rowHeights;
-        else
-            return null;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ImageButton.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageButton.java 1.16 - last change made 07/23/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-/**
- * An image button (a 3D rect around an image.)  It greys itself out
- * when disabled and inverts the 3D rect and 
- * moves its image when depressed.
- *
- * @(#) @(#) ImageButton.java 1.16 - last change made 07/23/97
- */
-public class ImageButton extends ImageLabel {
-    private int lineWidth = 2;	  // thickness of 3D line around button
-    private int pressMovement = 1;  // distance image moves
-    // when button pressed
-    protected boolean depressed;
-    
-    public ImageButton(Image img) {
-        this(img, 20, 20);
-    }
-    
-    public ImageButton(Image img, int w, int h) {
-        super(img, w, h);
-        depressed = false;
-        padWidth = lineWidth + 2;
-    }
-    
-    public void setPadWidth(int w) {
-        super.setPadWidth(w + lineWidth);
-    }
-    
-    public int getPadWidth() {
-        return (super.getPadWidth() - lineWidth);
-    }
-    
-    public void setLineWidth(int w) {
-        int oldPadWidth = getPadWidth();
-        lineWidth = w;
-        setPadWidth(oldPadWidth);
-    }
-    
-    public int getLineWidth() {
-        return (lineWidth);
-    }
-    
-    public void setPressMovement(int p) {
-        if (p != pressMovement) {
-            pressMovement = p;
-            if (depressed) {
-                Graphics g = getGraphics();
-                if (g != null) {
-                    Dimension d = size();
-                    g.setColor(getBackground());
-                    g.fillRect(0, 0, d.width, d.height);
-                    repaint();
-                }
-            }
-        }
-    }
-    
-    public int getPressMovement() {
-        return (pressMovement);
-    }
-    
-    /**
-     * Paint the image button with a 3D border
-     */
-    public void paint(Graphics g) {
-        Color bg = getBackground();
-        
-        if (imgWidth >= 0 && imgHeight >= 0) {
-            synchronized (DesignerAccess.mutex) {
-                Dimension d = size();
-                Image img = isEnabled() ? upImg : disImg;
-                int x = (d.width - imgWidth) / 2;
-                int y = (d.height - imgHeight) / 2;
-                int offset = (depressed ? pressMovement : 0);
-                
-                if (pressMovement != 0) {
-                    // clear the area needed to accomodate press movement
-                    g.setColor(bg);
-                    int m = (pressMovement < 0 ? -1 : 1);
-                    for (int i = 0; i < pressMovement * m; i++)
-                        g.drawRect(x + i * m + (m < 0 ? -1 : 0),
-				   y + i * m + (m < 0 ? -1 : 0),
-				imgWidth, imgHeight);
-                }
-                
-                // draw the image and the 3D border
-                if (upImg != null) {
-                    // Bug workaround: If a SystemColor
-                    // is used as the background color
-                    // then Win32 JDK code loses the reference
-                    // and the bg of a
-                    // transparent gif will be black.
-                    if (bg instanceof SystemColor)
-                        bg = new Color(bg.getRGB());
-                    g.drawImage(img, x + offset, y + offset, bg, this);
-                }
-                g.setColor(bg);
-                for (int i = 0; i < lineWidth; i++) {
-                    g.draw3DRect(i, i,
-				 d.width - i*2 - 1,
-				 d.height - i*2 - 1,
-				 !depressed);
-                }
-            }
-        }
-    }
-    
-    public boolean mouseDown(Event e, int x, int y) {
-        depressed = true;
-        repaint();
-        return true;
-    }
-    
-    public boolean mouseDrag(Event e, int x, int y) {
-        if (depressed != inside(x, y)) {
-            depressed = !depressed;
-            repaint();
-        }
-        return true;
-    }
-    
-    public boolean mouseUp(Event evt, int x, int y) {
-        if (depressed) {
-            action();
-            depressed = false;
-            repaint();
-        }
-        return true;
-    }
-    
-    public void action() {
-        postEvent(new Event(this, Event.ACTION_EVENT, null));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ImageLabel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageLabel.java 1.30 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import java.awt.*;
-import java.awt.image.RGBImageFilter;
-import java.awt.image.FilteredImageSource;
-
-/**
- * An image label.  It greys itself out when disabled.
- *
- * @(#) @(#) ImageLabel.java 1.30 - last change made 07/25/97
- */
-public class ImageLabel extends Canvas {
-    /**
-     * The original image set in the constructor or in setImage().
-     */
-    protected Image origImg;
-    
-    /**
-     * The massaged image (after the win95 work-around.)
-     */
-    protected Image upImg;
-    
-    /* BEGIN JSTYLED */
-    /**
-     * The image to use when the component is disabled.  
-     * This is the upImg
-     * stippled with the background color.
-     */
-    /* END JSTYLED */
-    protected Image disImg;
-    
-    protected int padWidth = 0;
-    protected int defaultWidth;
-    protected int defaultHeight;
-    protected int imgWidth = -1;
-    protected int imgHeight = -1;
-    
-    public ImageLabel(Image img) {
-        this(img, 20, 20);
-    }
-    
-    public ImageLabel(Image img, int w, int h) {
-        origImg = img;
-        upImg = null;
-        disImg = null;
-        defaultWidth = w;
-        defaultHeight = h;
-    }
-    
-    public void setPadWidth(int w) {
-        padWidth = w;
-        repaint();
-    }
-    
-    public int getPadWidth() {
-        return (padWidth);
-    }
-    
-    public void setDefaultWidth(int w) {
-        if (w <= 0)
-            return;
-        defaultWidth = w;
-    }
-    
-    public int getDefaultWidth() {
-        return defaultWidth;
-    }
-    
-    public void setDefaultHeight(int h) {
-        if (h <= 0)
-            return;
-        defaultHeight = h;
-    }
-    
-    public int getDefaultHeight() {
-        return defaultHeight;
-    }
-    
-    private void setUpImages() {
-        if (origImg != null && upImg == null) {
-            disImg = null;
-            imgWidth = -1;
-            imgHeight = -1;
-            
-            if (getBackground() != null) {
-                upImg = origImg;
-                
-                // WORK-AROUND: create an image filter
-                // for transparent gifs on Win95
-                if (Global.isWindows95() && Global.javaVersion() ==
-		    1.0) {
-                    RGBImageFilter wfilter = new TransWorkAroundFilter(
-						       getBackground());
-                    upImg = createImage(new FilteredImageSource(
-							upImg.getSource(),
-								wfilter));
-                }
-                
-                // start the loading of the main image
-                prepareImage(upImg, this);
-                
-                // width and height might be immediately
-                // available if already loaded
-                imgWidth = upImg.getWidth(this);
-                imgHeight = upImg.getHeight(this);
-            }
-        } else {
-            imgWidth = defaultWidth;
-            imgHeight = defaultHeight;
-        }
-        
-        if (origImg != null && disImg == null &&
-	    getBackground() != null) {
-            // create a checkerboard image for disabled
-            // version of the button
-            RGBImageFilter filter = new CheckerboardFilter(
-							   getBackground());
-            disImg = createImage(new FilteredImageSource(
-					 origImg.getSource(), filter));
-        }
-    }
-    
-    public void setImage(Image img) {
-        origImg = img;
-        upImg = null;
-        disImg = null;
-        setUpImages();
-        repaint();
-    }
-    
-    public Image getImage() {
-        return (origImg);
-    }
-    
-    public Dimension minimumSize() {
-        if (upImg != null) {
-            if (imgWidth == -1 || imgHeight == -1) {
-                imgWidth = upImg.getWidth(this);
-                imgHeight = upImg.getHeight(this);
-            }
-            
-            if (imgWidth == -1 || imgHeight == -1)
-                return (new Dimension(defaultWidth + padWidth * 2,
-				      defaultHeight + padWidth * 2));
-            else
-                return (new Dimension(imgWidth + padWidth * 2,
-				      imgHeight + padWidth * 2));
-        } else {
-            // return(new Dimension(0, 0));
-            return (new Dimension(20, 20));
-        }
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    /**
-     * Overrides Component setBackground in order to redo the images,
-     * because of the transparent gif workaround and also because the
-     * disabled image relies on the background color.
-     */
-    public void setBackground(Color bg) {
-        super.setBackground(bg);
-        if (upImg != null) {
-            // this isn't just a work-around for Win95,
-            // but on ALL platforms
-            // the disabled image must be redone when
-            // the background color changes
-            upImg = null;
-            disImg = null;
-            setUpImages();
-        }
-    }
-    /* BEGIN JSTYLED */
-    /* Invalidate all of a component's containers and then validate the
-     * Window at the top.  Call this when the size of a component
-     * changes and you wish to make the window that contains it resize
-     * to accomodate the new size.
-     */
-    /* END JSTYLED */
-    protected void updateWindow(Component c) {
-        while (c != null) {
-            c.invalidate();
-            if (c instanceof Window) {
-                c.validate();
-                break;
-            }
-            c = c.getParent();
-        }
-    }
-    
-    /**
-     * Figures out if this component needs to be resized.
-     */
-    protected void updateSize(int w, int h) {
-        if (w >= 0 && h >= 0) {
-            Dimension d = size();
-            if (d.width != w + padWidth * 2 || d.height != h +
-		padWidth * 2) {
-                resize(w + padWidth * 2, h + padWidth * 2);
-                updateWindow(this);
-            }
-        }
-    }
-    
-    /**
-     * By overriding update we insure that this component won't be
-     * completely cleared with the background color each time it's
-     * updated (while loading.)  We'd like less flickering than that.
-     */
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        synchronized (DesignerAccess.mutex) {
-            g.setColor(getBackground());
-            Dimension d = size();
-            if (upImg != null && (imgWidth >= 0 && imgHeight >= 0)) {
-                // clear only the areas around the image (to
-                // avoid having the image
-                // flicker as it is loaded scanline-by-scanline)
-                int x = (d.width - imgWidth) / 2;
-                int y = (d.height - imgHeight) / 2;
-                if (x > 0)
-                    g.fillRect(0, 0, x, d.height);
-                if (y > 0)
-                    g.fillRect(0, 0, d.width, y);
-                if (d.width > imgWidth)
-                    g.fillRect(x + imgWidth, 0, d.width - (x
-						   + imgWidth), d.height);
-                if (d.height > imgHeight)
-                    g.fillRect(0, y + imgHeight, d.width,
-			       d.height - (y + imgHeight));
-            } else {
-                // there is no image, so clear the whole area
-                g.fillRect(0, 0, d.width, d.height);
-            }
-            g.setColor(getForeground());
-        }
-        paint(g);
-    }
-    
-    /* BEGIN JSTYLED */
-    /**
-     * Draw the image in the center of the available area.  
-     * No background
-     * clearing is done here (that job belongs to update().)
-     */
-    /* END JSTYLED */
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        synchronized (DesignerAccess.mutex) {
-            Dimension d = size();
-            if (upImg != null && (imgWidth >= 0 && imgHeight >= 0)) {
-                Image img = isEnabled() ? upImg : disImg;
-                int x = (d.width - imgWidth) / 2;
-                int y = (d.height - imgHeight) / 2;
-                g.drawImage(img, x, y, getBackground(), this);
-            } else {
-                g.setColor(getForeground());
-                g.drawRect(0, 0, d.width-1, d.height-1);
-            }
-        }
-    }
-    
-    public boolean imageUpdate(Image img, int flags,
-			       int x, int y, int w, int h) {
-        
-        if (img == upImg && (flags & ERROR) == 0) {
-            boolean updateSize = false;
-            
-            if ((flags & WIDTH) != 0) {
-                imgWidth = w;
-                updateSize = true;
-            }
-            if ((flags & HEIGHT) != 0) {
-                imgHeight = h;
-                updateSize = true;
-            }
-            
-            if (updateSize && imgWidth >= 0 && imgHeight >= 0) {
-                // As soon as the size is known this
-                // component needs to resize itself.
-                updateSize(imgWidth, imgHeight);
-                
-                // This repaint is needed for images
-                // that are already loaded, and
-                // are being loaded a second time.
-                // In this situation, the
-                // update for the width and height comes
-                // in after all the other
-                // updates.  The call to super.imageUpdate
-                // does not do a repaint
-                // when the size changes, so we need to do one here.
-                repaint();
-            }
-        }
-        
-        return super.imageUpdate(img, flags, x, y, w, h);
-    }
-    
-    public void enable() {
-        if (!isEnabled()) {
-            super.enable();
-            repaint();
-        }
-    }
-    
-    public void disable() {
-        if (isEnabled()) {
-            super.disable();
-            repaint();
-        }
-    }
-    
-    public void addNotify() {
-        super.addNotify();
-        setUpImages();
-    }
-}
-
-
-/**
- * A Work-around filter.
- *
- * Transparent gifs don't display properly on Windows 95.  
- * The work-around
- * is to replace transparent pixels with the background color of the
- * component they're being displayed in before drawing them.
- */
-class TransWorkAroundFilter extends RGBImageFilter {
-    private Color bg;
-    
-    TransWorkAroundFilter(Color bg) {
-        if (bg != null) {
-            this.bg = bg;
-            canFilterIndexColorModel = false;
-        } else {
-            throw new Error(
-			    /* JSTYLED */
-			    Global.fmtMsg("sunsoft.jws.visual.rt.awt.ImageLabel.nullColor", "TransWorkAroundFilter"));
-        }
-    }
-    
-    public int filterRGB(int x, int y, int rgb) {
-        if ((rgb & 0xff000000) == 0)
-            return (bg.getRGB());
-        else
-            return (rgb);
-    }
-}
-
-
-/**
- * Checkerboard color filter.
- *
- * Use for creating a greyed-out version of another image.  Supply the
- * color for the checkerboard spaces.  Every other pixel will still be
- * in the original color of the image.
- */
-class CheckerboardFilter extends RGBImageFilter {
-    private Color checked;
-    
-    CheckerboardFilter(Color checked) {
-        if (checked != null) {
-            this.checked = checked;
-            canFilterIndexColorModel = false;
-        } else {
-            throw new Error(
-			    /* JSTYLED */
-			    Global.fmtMsg("sunsoft.jws.visual.rt.awt.ImageLabel.nullColor", "CheckerboardFilter"));
-        }
-    }
-    
-    public int filterRGB(int x, int y, int rgb) {
-        if (y % 2 == x % 2)
-            return (rgb);
-        else
-            return (checked.getRGB());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/KeyField.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
- * 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.
- *
- * @(#) KeyField.java 1.6 - last change made 05/02/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-public class KeyField extends Canvas {
-    // commented out -kp use Event constants...
-    //  public static final int ESC = 27;
-    //  public static final int DELETE = 127;
-    
-    
-    
-    
-    private static int ipadx = 20;
-    private static int ipady = 14;
-    
-    private int key;
-    private FontMetrics fontMetrics;
-    private boolean hasFocus;
-    
-    public void addNotify() {
-        super.addNotify();
-        fontMetrics = getFontMetrics(getFont());
-    }
-    
-    public void removeNotify() {
-        super.removeNotify();
-        fontMetrics = null;
-    }
-    
-    public Dimension minimumSize() {
-        Dimension d = new Dimension(0, 0);
-        
-        if (fontMetrics != null) {
-            d.width = fontMetrics.stringWidth(/* NOI18N */
-					      "Carriage Return") + ipadx;
-            d.height = fontMetrics.getMaxAscent() + ipady;
-        }
-        
-        return d;
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    public void setKey(int key) {
-        this.key = key;
-        repaint();
-    }
-    
-    public int getKey() {
-        return key;
-    }
-    
-    private String getKeyString() {
-        String str;
-        
-        switch (key) {
-	case 0:
-            str = /* NOI18N */"null";
-            break;
-	case /* NOI18N */ '\n':
-            str = /* NOI18N */"Line Feed";
-            break;
-	case /* NOI18N */ '\t':
-            str = /* NOI18N */"Tab";
-            break;
-	case /* NOI18N */ '\f':
-            str = /* NOI18N */"Form Feed";
-            break;
-	case /* NOI18N */ '\r':
-            str = /* NOI18N */"Carriage Return";
-            break;
-            //    case /* NOI18N */ '\b':
-	case Event.BACK_SPACE:
-            str = /* NOI18N */"Back Space";
-            break;
-	case /* NOI18N */ ' ':
-            str = /* NOI18N */"Space";
-            break;
-            
-            //    case ESC:
-	case Event.ESCAPE:
-            str = /* NOI18N */"Esc";
-            break;
-            //    case DELETE:
-	case Event.DELETE:
-            str = /* NOI18N */"Delete";
-            break;
-            /* added -kp */
-	case Event.INSERT:
-            str = /* NOI18N */"Insert";
-            break;
-	case Event.CAPS_LOCK:
-            str = /* NOI18N */"Caps Lock";
-            break;
-	case Event.NUM_LOCK:
-            str = /* NOI18N */"Num Lock";
-            break;
-	case Event.PAUSE:
-            str = /* NOI18N */"Pause";
-            break;
-	case Event.PRINT_SCREEN:
-            str = /* NOI18N */"Print Screen";
-            break;
-	case Event.SCROLL_LOCK:
-            str = /* NOI18N */"Scroll Lock";
-            break;
-            /* end added -kp */
-	case Event.HOME:
-            str = /* NOI18N */"Home";
-            break;
-	case Event.END:
-            str = /* NOI18N */"End";
-            break;
-	case Event.PGUP:
-            str = /* NOI18N */"Page Up";
-            break;
-	case Event.PGDN:
-            str = /* NOI18N */"Page Down";
-            break;
-	case Event.UP:
-            str = /* NOI18N */"Up";
-            break;
-	case Event.DOWN:
-            str = /* NOI18N */"Down";
-            break;
-	case Event.LEFT:
-            str = /* NOI18N */"Left";
-            break;
-	case Event.RIGHT:
-            str = /* NOI18N */"Right";
-            break;
-	case Event.F1:
-            str = /* NOI18N */"F1";
-            break;
-	case Event.F2:
-            str = /* NOI18N */"F2";
-            break;
-	case Event.F3:
-            str = /* NOI18N */"F3";
-            break;
-	case Event.F4:
-            str = /* NOI18N */"F4";
-            break;
-	case Event.F5:
-            str = /* NOI18N */"F5";
-            break;
-	case Event.F6:
-            str = /* NOI18N */"F6";
-            break;
-	case Event.F7:
-            str = /* NOI18N */"F7";
-            break;
-	case Event.F8:
-            str = /* NOI18N */"F8";
-            break;
-	case Event.F9:
-            str = /* NOI18N */"F9";
-            break;
-	case Event.F10:
-            str = /* NOI18N */"F10";
-            break;
-	case Event.F11:
-            str = /* NOI18N */"F11";
-            break;
-	case Event.F12:
-            str = /* NOI18N */"F12";
-            break;
-            
-	default:
-            if (key >= 32)
-                str = String.valueOf((char)key);
-            else
-                str = /* NOI18N */"^" + String.valueOf((char)
-					       (key+ /* NOI18N */ 'A'-1));
-            
-            break;
-        }
-        
-        return str;
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        Dimension size = size();
-        
-        String str = getKeyString();
-        int x = (size.width - fontMetrics.stringWidth(str)) / 2;
-        int y = (size.height + fontMetrics.getMaxAscent()) / 2 - 1;
-        if (isEnabled())
-            g.setColor(getForeground());
-        else
-            g.setColor(getBackground().darker());
-        g.setFont(getFont());
-        g.drawString(str, x, y);
-        
-        g.setColor(getBackground());
-        g.draw3DRect(1, 1, size.width-3, size.height-3, false);
-        g.draw3DRect(2, 2, size.width-5, size.height-5, false);
-        
-        if (hasFocus) {
-            g.setColor(getForeground());
-            g.drawRect(0, 0, size.width-1, size.height-1);
-        }
-    }
-    
-    public boolean handleEvent(Event e) {
-        
-        if (e.id == Event.GOT_FOCUS) {
-            if (!hasFocus) {
-                hasFocus = true;
-                repaint();
-            }
-        } else if (e.id == Event.LOST_FOCUS) {
-            if (hasFocus) {
-                hasFocus = false;
-                repaint();
-            }
-        } else {
-            return super.handleEvent(e);
-        }
-        
-        return false;
-    }
-    
-    public boolean mouseDown(Event e, int x, int y) {
-        if (!hasFocus)
-            requestFocus();
-        return false;
-    }
-    
-    public boolean keyDown(Event e, int key) {
-        setKey(key);
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/LabelBar.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,280 +0,0 @@
-/*
- * 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.
- *
- * @(#) LabelBar.java 1.25 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.Global;
-
-            /* BEGIN JSTYLED */
-        /**
-         * Displays a 3D bar with text within it.  Useful as a divider between
-         * different parts of a panel.  Uses the java.awt.Label contants for
-         * its alignment settings (LEFT, CENTER, RIGHT.) <P>
-         *
-         * When the alignment is set to LEFT, the label 
-	 * looks something like this:
-         *
-         * <pre>
-         *    ----label---------------------------
-         * </pre>
-         *
-         * Set the edge offset attribute to control how far from the edge the
-         * text in the label rests.  When the alignment is CENTER, the offset
-         * is the distance on both sides on the label.  You may set
-         * the label text to null to get a label bar that acts merely as a
-         * separator.
-         *
-         * @version 1.25, 07/25/97
-         */
-            /* END JSTYLED */
-public class LabelBar extends Canvas {
-    /**
-     * The left alignment.
-     */
-    public static final int LEFT = Label.LEFT;
-    
-    /**
-     * The center alignment.
-     */
-    public static final int CENTER = Label.CENTER;
-    
-    /**
-     * The right alignment.
-     */
-    public static final int RIGHT = Label.RIGHT;
-    
-    /**
-     * The number of pixels (both sides) between bar and label.
-     */
-    private static final int barAndLabelPad = 2;
-    
-    /**
-     * The number of pixels (both sides) between bar edge
-     */
-    private static final int barAndEdgePad = 1;
-    
-    /**
-     * The number of pixels in the bar's thickness.
-     */
-    private static final int barThickness = 2;
-    
-    private int alignment = Label.LEFT;
-    private int labelOffsetFromEdge = 10;
-    private String label;
-    
-    public LabelBar() {
-        this.label = null;
-    }
-    
-    public LabelBar(String label) {
-        this.label = label;
-    }
-    
-    public void setLabel(String label) {
-        this.label = label;
-        repaint();
-    }
-    
-    public String getLabel() {
-        return (label);
-    }
-    
-    public void setLabelOffsetFromEdge(int offset) {
-        if (offset != labelOffsetFromEdge) {
-            labelOffsetFromEdge = offset;
-            repaint();
-        }
-    }
-    
-    public int getLabelOffsetFromEdge() {
-        return (labelOffsetFromEdge);
-    }
-    
-    public void setAlignment(int alignment) {
-        switch (alignment) {
-	case LEFT:
-	case CENTER:
-	case RIGHT:
-            this.alignment = alignment;
-            repaint();
-            break;
-	default:
-            throw new IllegalArgumentException(
-					       /* JSTYLED */
-					       Global.getMsg("sunsoft.jws.visual.rt.awt.ImageLabel.ImproperAlignment"));
-        }
-    }
-    
-    public int getAlignment() {
-        return (alignment);
-    }
-    
-    public Dimension preferredSize() {
-        return (minimumSize());
-    }
-    
-    public Dimension minimumSize() {
-        Font font = getFont();
-        if (label != null && label.length() > 0 && font != null) {
-            FontMetrics fm = getFontMetrics(font);
-            return (new Dimension(fm.stringWidth(label) +
-				  labelOffsetFromEdge * 2,
-				  fm.getHeight()));
-        } else {
-            return (new Dimension(labelOffsetFromEdge * 2, 6));
-        }
-    }
-    
-    /**
-     * Sets the foreground color (the label bar text.)  This overrides
-     * the setForeground call in Component in order to get an immediate
-     * repaint when the foreground color setting is changed.
-     */
-    public void setForeground(Color c) {
-        super.setForeground(c);
-        repaint();
-    }
-    
-    /**
-     * Disables this component. This overrides the same call in
-     * Component in order to get an immediate repaint when it is
-     * called.
-     */
-    public void disable() {
-        super.disable();
-        repaint();
-    }
-    
-    /**
-     * Enables this component. This overrides the same call in
-     * Component in order to get an immediate repaint when it is
-     * called.
-     */
-    public void enable() {
-        super.enable();
-        repaint();
-    }
-    
-    /**
-     * Stipples the given area in a checkerboard fashion using the given
-     * color.  It could be called, for example, after regular painting
-     * is complete whenever this component is disabled by using the
-     * background color as the stipple color.
-     */
-    private void checkerStipple(Graphics g, Color c,
-				int x1, int y1, int w, int h) {
-        Color oldColor = g.getColor();
-        g.setColor(c);
-        for (int y = y1; y < y1 + h; y++)
-            for (int x = x1; x < x1 + w; x++)
-		if (y % 2 == x % 2)
-		    g.drawLine(x, y, x, y);
-        g.setColor(oldColor);
-    }
-    
-    /**
-     * Paints LabelBar contents.
-     */
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        synchronized (DesignerAccess.mutex) {
-            
-            super.paint(g);
-            int midy = size().height / 2 - 1;
-            if (label != null && label.length() > 0) {
-                // set up and draw the label location
-                // according to the alignment
-                Font font = getFont();
-                FontMetrics fm = getFontMetrics(font);
-                int labelWidth = fm.stringWidth(label);
-                int labelBegin;
-                switch (alignment) {
-		case LEFT:
-                    labelBegin = labelOffsetFromEdge;
-                    break;
-		case CENTER:
-                    labelBegin = (size().width - labelWidth) / 2;
-                    break;
-		case RIGHT:
-                    labelBegin = size().width - (labelOffsetFromEdge +
-						 labelWidth);
-                    break;
-		default:
-                    throw new IllegalArgumentException(
-						       /* JSTYLED */
-						       Global.getMsg("sunsoft.jws.visual.rt.awt.ImageLabel.ImproperAlignment"));
-                }
-                g.setColor(getForeground());
-                g.setFont(getFont());
-                g.drawString(label, labelBegin,
-		     size().height - (((size().height - fm.getHeight()) / 2)
-					      + fm.getMaxDescent() + 1));
-                
-                // set up and draw the bars according
-                // to the location of the label
-                int leftBarBegin = barAndEdgePad;
-                int leftBarWidth = labelBegin - (barAndLabelPad +
-						 leftBarBegin);
-                int rightBarBegin = labelBegin + (labelWidth +
-						  barAndLabelPad);
-                int rightBarWidth = size().width - (rightBarBegin +
-						    barAndEdgePad);
-                g.setColor(getBackground());
-                if (leftBarWidth > 0)
-                    g.fill3DRect(leftBarBegin, midy, leftBarWidth,
-				 barThickness, false);
-                if (rightBarWidth > 0)
-                    g.fill3DRect(rightBarBegin, midy, rightBarWidth,
-				 barThickness, false);
-            } else {
-                // no label, just draw a single bar
-                int barBegin = barAndEdgePad;
-                int barWidth = size().width - (barAndEdgePad * 2);
-                g.setColor(getBackground());
-                g.fill3DRect(barBegin, midy, barWidth, barThickness,
-			     false);
-            }
-            
-            // if disabled, stipple everything just
-            // painted with the background color
-            if (!isEnabled())
-                checkerStipple(g, getBackground(), 0, 0, size().width,
-			       size().height);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= CLCheckbox CLChoice CLComponent CLIconLabel \
-	CardPanel CheckboxList CheckboxPanel \
-	ColumnList ColumnListCanvas ColumnListThread \
-	EditLine GBConstraints GBContainer GBLayout \
-	GBPanel ImageButton ImageLabel KeyField \
-	LabelBar MultiLineLabel RWHelper RootDialog \
-	RootFrame RootWindow ScrollPanel Scrollable \
-	ScrollableArea StatusBar StringVector \
-	TabbedFolder TextList TextView VJButton \
-	VJCanvas VJErrorDialog VJFlowLayout VJPanel \
-	VJScrollbar WinScrollbar
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/MultiLineLabel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,291 +0,0 @@
-/*
- * 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.
- */
-
-/* BEGIN JSTYLED */
-        /**
-         * MultiLineLabel.java
-         *
-         * This example is from the book _Java in a 
-	 * Nutshell_ by David Flanagan.
-         * Written by David Flanagan.  
-	 * Copyright (c) 1996 O'Reilly & Associates.
-         * You may study, use, modify, and distribute 
-	 * this example for any purpose.
-         * This example is provided WITHOUT WARRANTY either 
-	 * expressed or implied.
-         *
-         * Tilman 05/07/96: added a maxChars parameter to 
-	 * specify a maximum line
-         * length. If any of the lines is longer, it will be cut
-         * at the last space character before maxChars, until it fits
-         * into maxChars. Set maxChars to -1 if you don't care.
-         *
-         * Van 07/30/96: added the removal of backslash-r 
-	 * from the multi-line string
-         * that might have been added by strings in Windows (which
-         * expect newlines to be indicated by backslash-r backslash-n)
-         *
-         * Van 10/18/96: changed the way lines are tokenized so that multiple
-         * consequetive newline characters create a blank line(s).
-         *
-         * Van 10/21/96: added interfaces to the maxChars variable
-         *
-         * @version @(#)MultiLineLabel.java 1.15 97/07/25
-         */
-/* END JSTYLED */        
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-import java.util.*;
-
-public class MultiLineLabel extends Canvas {
-    public static final int LEFT = Label.LEFT; // Alignment constants
-    public static final int CENTER = Label.CENTER;
-    public static final int RIGHT = Label.RIGHT;
-    
-    protected String label;
-    protected Vector lines;         // The lines of text to display
-    protected int num_lines;          // The number of lines
-    protected int maxChars;           // maximum width of lines
-    protected int margin_width;       // Left and right margins
-    protected int margin_height;      // Top and bottom margins
-    protected int line_height;        // Total height of the font
-    protected int line_ascent;        // Font height above baseline
-    protected int[] line_widths;      // How wide each line is
-    protected int max_width;          // The width of the widest line
-    protected int alignment = LEFT;   // The alignment of the text.
-    
-    /**
-     * This method breaks a specified label up into an array of lines.
-     * It uses the StringTokenizer utility class.
-     */
-    protected void newLabel(String label) {
-        if (label == null)
-            label = /* NOI18N */"";
-        this.label = label;
-        
-        lines = new Vector();
-        int len = label.length();
-        int startFrom = 0;
-        while (startFrom != -1 && startFrom < len) {
-            // determine next line
-            String line;
-            int index = label.indexOf(/* NOI18N */"\n", startFrom);
-            if (index == -1) {
-                line = label.substring(startFrom);
-                startFrom = -1;
-            } else {
-                line = label.substring(startFrom, index);
-                startFrom = index + 1;
-            }
-            
-            // wrap the words in the line
-            if ((maxChars == -1) || (line.length() <= maxChars))
-                lines.addElement(line);
-            else {
-                while (line.length() > maxChars) {
-                    int offset = line.lastIndexOf(/* NOI18N */ ' ',
-						  maxChars);
-                    if (offset == -1) {
-                        // didn't get one within maxChars!
-                        offset = line.indexOf(/* NOI18N */ ' ');
-                        if (offset == -1)
-                            break;
-                    }
-                    lines.addElement(line.substring(0, offset));
-                    line = line.substring(offset + 1);
-                }
-                lines.addElement(line);
-            }
-        }
-        num_lines = lines.size();
-        line_widths = new int[num_lines];
-    }
-    
-    /**
-     * This method figures out how the font is, and how wide each
-     * line of the label is, and how wide the widest line is.
-     */
-    protected void measure() {
-        /* JSTYLED */
-	if (this.getFont() == null) return;
-        FontMetrics fm = this.getFontMetrics(this.getFont());
-        // If we don't have font metrics yet, just return.
-        /* JSTYLED */
-	if (fm == null) return;
-        
-        line_height = fm.getHeight();
-        line_ascent = fm.getAscent();
-        max_width = 0;
-        for (int i = 0; i < num_lines; i++) {
-            line_widths[i] = fm.stringWidth(
-					    (String) lines.elementAt(i));
-            if (line_widths[i] > max_width) max_width = line_widths[i];
-        }
-        Dimension d = preferredSize();
-        setSize(d);
-    }
-    
-    // Here are four versions of the constructor.
-    
-    /**
-     * Break the label up into separate lines, and save the other info.
-     */
-    public MultiLineLabel(String label, int maxChars,
-			  int margin_width, int margin_height,
-			  int alignment) {
-        this.maxChars = maxChars;
-        newLabel(label);
-        this.margin_width = margin_width;
-        this.margin_height = margin_height;
-        this.alignment = alignment;
-    }
-    public MultiLineLabel(String label, int maxChars,
-			  int margin_width, int margin_height) {
-        this(label, maxChars, margin_width, margin_height, LEFT);
-    }
-    public MultiLineLabel(String label, int maxChars,
-			  int alignment) {
-        this(label, maxChars, 10, 10, alignment);
-    }
-    public MultiLineLabel(String label, int maxChars) {
-        this(label, maxChars, 10, 10, LEFT);
-    }
-    
-    public MultiLineLabel(String label) {
-        this(label, -1, 10, 10, LEFT);
-    }
-    
-    public MultiLineLabel() {
-        this(/* NOI18N */"MultiLineLabel");
-    }
-    
-    // Methods to set the various attributes of the component
-    public void setLabel(String label) {
-        newLabel(label);
-        measure();
-        repaint();
-    }
-    
-    public String getLabel() {
-        return label;
-    }
-    
-    public void setMaxColumns(int w) {
-        if (w < 0)
-            w = -1;
-        maxChars = w;
-        newLabel(label);
-        measure();
-        repaint();
-    }
-    
-    public int getMaxColumns() {
-        return (maxChars);
-    }
-    
-    public void setFont(Font f) {
-        super.setFont(f);
-        measure();
-        repaint();
-    }
-    
-    public void setForeground(Color c) {
-        super.setForeground(c);
-        repaint();
-    }
-    
-    public void setAlignment(int a) { alignment = a; repaint(); }
-    public void setMarginWidth(int mw) { margin_width = mw; repaint(); }
-    public void setMarginHeight(int mh) { margin_height = mh;
-    repaint(); }
-    public int getAlignment() { return alignment; }
-    public int getMarginWidth() { return margin_width; }
-    public int getMarginHeight() { return margin_height; }
-    
-    /**
-     * This method is invoked after our Canvas is first created
-     * but before it can actually be displayed.  After we've
-     * invoked our superclass's addNotify() method, we have font
-     * metrics and can successfully call measure() to figure out
-     * how big the label is.
-     */
-    public void addNotify() { super.addNotify(); measure(); }
-    
-    /**
-     * This method is called by a layout manager when it wants to
-     * know how big we'd like to be.
-     */
-    public Dimension preferredSize() {
-        return new Dimension(max_width + 2*margin_width,
-			     num_lines * line_height + 2*margin_height);
-    }
-    
-    /**
-     * This method is called when the layout manager wants to know
-     * the bare minimum amount of space we need to get by.
-     */
-    public Dimension minimumSize() {
-        return new Dimension(max_width, num_lines * line_height);
-    }
-    
-    /**
-     * This method draws the label (applets use the same method).
-     * Note that it handles the margins and the alignment, but that
-     * it doesn't have to worry about the color or font--the superclass
-     * takes care of setting those in the Graphics object we're passed.
-     */
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        int x, y;
-        Dimension d = this.size();
-        
-        int mw = Math.max((d.width - max_width)/2, 0);
-        g.setColor(getForeground());
-        
-        y = line_ascent + (d.height - num_lines * line_height)/2;
-        for (int i = 0; i < num_lines; i++, y += line_height) {
-            switch (alignment) {
-	    case LEFT:
-                x = mw;
-                break;
-	    case CENTER:
-	    default:
-                x = (d.width - line_widths[i])/2;
-                break;
-	    case RIGHT:
-                x = d.width - mw - line_widths[i];
-                break;
-            }
-            g.drawString(((String) lines.elementAt(i)).trim(), x, y);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RWHelper.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * 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.
- *
- * @(#) RWHelper.java 1.7 - last change made 07/11/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-public interface RWHelper {
-    public void setWindow(Window win);
-    public boolean isSelectable();
-    
-    public void select();
-    public void unselect();
-    public void layoutMode();
-    public void previewMode();
-    public Dimension previewSize();
-    
-    public void addNotify();
-    public void removeNotify();
-    public void layout();
-    public void paint(Graphics g);
-    public boolean mouseDown(Event evt, int x, int y);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (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 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-/*
- *        Copyright (C) 1996  Active Software, Inc.
- *                  All rights reserved.
- *
- * @(#) RootDialog.java 1.44 - last change made 06/19/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.*;
-
-import java.awt.*;
-
-public class RootDialog extends Dialog implements RootWindow {
-    private RWHelper helper;
-    private Thread eventThread;
-    
-    public RootDialog(Frame parent, boolean modal) {
-        super(parent, modal);
-        initHelper();
-    }
-    
-    public RootDialog(Frame parent, String title, boolean modal) {
-        super(parent, title, modal);
-        initHelper();
-    }
-    
-    private void initHelper() {
-        Class c = DesignerAccess.getRootWindowHelperClass();
-        if (c != null) {
-            try {
-                helper = (RWHelper)c.newInstance();
-                helper.setWindow(this);
-            }
-            catch (Exception ex) {
-            }
-        }
-    }
-    
-    // Workaround for idiotic JDK1.1 bug where if you add a
-    // component to a container that it is already in, then
-    // the component will be removed from the container!
-    //
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        if (comp.getParent() != this)
-            super.addImpl(comp, constraints, index);
-    }
-    // #endif
-    
-    /**
-     * Make dialogs on Windows behave the same as
-     * dialogs on Motif.
-     */
-    public void pack() {
-        Component parent = getParent();
-        Boolean dis = isDisplayable();
-        
-        if (parent != null && parent.isDisplayable() == false) {
-            parent.addNotify();
-        }
-        if (dis.equals(false)) {
-            addNotify();
-        }
-
-        Dimension d = getPreferredSize();
-        Point p = getDialogLocation(d);
-        
-        // Adjust the location the first time the dialog is mapped after
-        // the peer has been created.  There is an AWT bug that screws
-        // up the location of the dialog, so we
-        // have to make this adjustment.
-        if (Global.isMotif() && dis.equals(false)) {
-            p.x -= d.width/2;
-            p.y -= d.height/2;
-        }
-        setLocation(p.x, p.y);
-        
-        setSize(getPreferredSize());
-        validate();
-    }
-    
-    private Point getDialogLocation(Dimension prefSize) {
-        Frame frame = (Frame)getParent();
-        Point p = frame.location();
-        Dimension fsize = frame.size();
-        Dimension dsize = prefSize;
-        
-        p.x += (fsize.width - dsize.width)/2;
-        p.y += (fsize.height - dsize.height)/2;
-        
-        return p;
-    }
-    
-    /**
-     * Make sure the insets aren't screwed up on Windows.  The dialog
-     * will come up too small the first time it is shown if we don't
-     * fix the insets here.
-     */
-    public Insets insets() {
-        Insets insets = (Insets)super.insets().clone();
-        
-        if (Global.isWindows()) {
-            if (insets.top < 10)
-                insets.top = 25;
-            if (insets.bottom < 5)
-                insets.bottom = 5;
-            if (insets.left < 5)
-                insets.left = 5;
-            if (insets.right < 5)
-                insets.right = 5;
-        }
-        
-        return insets;
-    }
-    
-    /**
-     * Event forwarding to groups.
-     *
-     * (see comment in GBPanel.java)
-     */
-    public boolean postEvent(Event evt) {
-	/* BEGIN JSTYLED */
-	// AWT Bug: JDK-1.0 AWT gives a WINDOW_ICONIFY event to a Dialog
-	// when it is shown (causing us to obediently iconify the windows in the
-	// dialog's group, including the dialog iteself.)  AWT then gives a
-	// WINDOW_DEICONFY event to the same Dialog, resulting in a show and an
-	// infinite loop of hiding and showing.  Dialogs can't be iconfied
-	// anyway, so just what is this event doing here!!?
-	//
-	// Work-around: throw away these two spurious events on Dialogs before
-	// they can muck up the works.
-	//
-	/* END JSTYLED */
-        if (evt.id == Event.WINDOW_ICONIFY ||
-	    evt.id == Event.WINDOW_DEICONIFY)
-	    return true;
-        
-        boolean marked = VJPanel.markEvent(evt, this);
-        boolean handled = super.postEvent(evt);
-        
-        if (marked)
-            VJPanel.forwardEvent(evt, this);
-        return handled;
-    }
-    
-    public void select() {
-        if (helper != null)
-            helper.select();
-    }
-    
-    public void unselect() {
-        if (helper != null)
-            helper.unselect();
-    }
-    
-    public void layoutMode() {
-        if (helper != null)
-            helper.layoutMode();
-    }
-    
-    public void previewMode() {
-        if (helper != null)
-            helper.previewMode();
-    }
-    
-    public Dimension previewSize() {
-        if (helper != null)
-            return helper.previewSize();
-        else
-            return null;
-    }
-    
-    public void addNotify() {
-        Component parent = getParent();
-        if (parent != null && parent.getPeer() == null)
-            parent.addNotify();
-        
-        if (helper != null)
-            helper.addNotify();
-        super.addNotify();
-    }
-    
-    public void removeNotify() {
-        if (Global.isWindows())
-            reshapeZero(this);
-        
-        if (helper != null)
-            helper.removeNotify();
-        super.removeNotify();
-    }
-    
-    /**
-     * Recursively reshapes the component and all its children to zero.
-     * You need to do this on Windows when removeNotify is called.
-     * Otherwise when you call addNotify, the children are offset
-     * about 25 extra pixels from the top on the window, and the bottom
-     * 25 pixels will get clipped off.  I don't know why this happens,
-     * but I do know that reshaping everything back to zero avoids
-     * the problem.  I noticed the problem on WindowsNT, but not as
-     * often on Windows95.
-     */
-    private void reshapeZero(Component comp) {
-        comp.reshape(0, 0, 0, 0);
-        
-        if (comp instanceof Container) {
-            Container cntr = (Container)comp;
-            int count = cntr.countComponents();
-            
-            for (int i = 0; i < count; i++)
-                reshapeZero(cntr.getComponent(i));
-        }
-    }
-    
-    public void layout() {
-        if (helper != null)
-            helper.layout();
-        super.layout();
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        if (helper != null)
-            helper.paint(g);
-        super.paint(g);
-    }
-    
-    public boolean mouseDown(Event evt, int x, int y) {
-        if (helper != null)
-            return helper.mouseDown(evt, x, y);
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootFrame.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
- * 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.
- *
- * @(#) RootFrame.java 1.50 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.*;
-
-import java.awt.*;
-
-public class RootFrame extends Frame implements RootWindow {
-    
-    private Point location = new Point(0, 0);
-    
-    private boolean skipValidate = false;
-    
-    /* BEGIN JSTYLED */
-    //
-    // The ignoreShow and ignoreHide flags are used as part of a workaround
-    // for an AWT problem with iconify and deiconify events.  An infinite
-    // loop can happen under certain circumstances without this workaround.
-    //
-    // When hide is called on a window that is currently showing, AWT will
-    // deliver a WINDOW_ICONIFY event.  Similarly, when show is called on a
-    // window that is currently hidden, AWT will deliver a WINDOW_DEICONIFY
-    // event.  (Note that in JDK1.0.2, iconify events are not delivered with
-    // Windows95, but they are delivered with Motif).
-    //
-    // Now say that you have a callback for WINDOW_ICONIFY that hides
-    // the window, and a callback for WINDOW_DEICONIFY that shows the
-    // window.  Normally this is ok because calling hide on a hidden window
-    // will not cause an iconify event to be delivered, and calling show
-    // on a mapped window will not cause a deiconify event to be delivered.
-    //
-    // But if the user iconifies and deiconifies a window while the
-    // application is busy, then a WINDOW_ICONIFY event and a
-    // WINDOW_DEICONIFY event will both be in the event queue at the same
-    // time.  When the WINDOW_ICONIFY event is then handled, calling hide
-    // on the window will cause another WINDOW_ICONIFY event to be delivered
-    // because the window is currently showing.  Then, when the
-    // WINDOW_DEICONIFY is handled, show will be called causing another
-    // WINDOW_DEICONIFY event to be delivered.  You then go into an infinite
-    // loop with the window mapping and unmapping itself.
-    //
-    // The solution is to never allow hide to be called in the callback
-    // from  a WINDOW_ICONIFY event, and never allow show to be called
-    // in the callback from a WINDOW_DEICONIFY event.
-    //
-    /* END JSTYLED */
-    private boolean ignoreShow = false;
-    private boolean ignoreHide = false;
-    
-    // Give windows a nice looking border.
-    static {
-        if (Global.isWindows95())
-            GBLayout.setWindowInsets(new Insets(1, 1, 1, 1));
-        else if (Global.isWindowsNT())
-            GBLayout.setWindowInsets(new Insets(2, 3, 2, 3));
-        else
-            GBLayout.setWindowInsets(new Insets(4, 4, 4, 4));
-    }
-    
-    private RWHelper helper;
-    private Group subGroup;
-    
-    public RootFrame() {
-        super();
-        initHelper();
-    }
-    
-    public RootFrame(String title) {
-        super(title);
-        initHelper();
-    }
-    
-    private void initHelper() {
-        Class c = DesignerAccess.getRootWindowHelperClass();
-        if (c != null) {
-            try {
-                helper = (RWHelper)c.newInstance();
-                helper.setWindow(this);
-            }
-            catch (Exception ex) {
-            }
-        }
-    }
-    
-    /**
-     * The subgroup is set on the bogus frames that are put around
-     * panel groups when the panel groups are running standalone.
-     * This situation only occurs when the generated main for a
-     * panel group is run from the command line.
-     */
-    public void setSubGroup(Group subGroup) {
-        this.subGroup = subGroup;
-    }
-    
-    /**
-     * Returns the subgroup.  The subgroup is non-null for frames
-     * that are used as wrappers for panel groups.
-     */
-    public Group getSubGroup() {
-        return subGroup;
-    }
-    
-    // Workaround for idiotic JDK1.1 bug where if you add a
-    // component to a container that it is already in, then
-    // the component will be removed from the container!
-    //
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        if (comp.getParent() != this)
-            super.addImpl(comp, constraints, index);
-    }
-    // #endif
-    
-    /**
-     * Workaround: Return the correct window location for Motif.
-     */
-    public Point location() {
-        if (Global.isMotif())
-            return new Point(location.x, location.y);
-        else
-            return super.location();
-    }
-    
-    /**
-     * Update the location.
-     */
-    public void reshape(int x, int y, int w, int h) {
-        super.reshape(x, y, w, h);
-        location = new Point(x, y);
-    }
-    
-    /**
-     * Event forwarding to groups.
-     *
-     * (see comment in GBPanel.java)
-     */
-    public boolean postEvent(Event evt) {
-        // See the comment at the top of the file
-        // for ignoreShow and ignoreHide
-        if (evt.id == Event.WINDOW_ICONIFY)
-            ignoreHide = true;
-        else if (evt.id == Event.WINDOW_DEICONIFY)
-            ignoreShow = true;
-        
-        boolean marked = VJPanel.markEvent(evt, this);
-        boolean handled = super.postEvent(evt);
-        
-        if (marked)
-            VJPanel.forwardEvent(evt, this);
-        
-        // See the comment at the top of the file
-        // for ignoreShow and ignoreHide
-        if (evt.id == Event.WINDOW_ICONIFY)
-            ignoreHide = false;
-        else if (evt.id == Event.WINDOW_DEICONIFY)
-            ignoreShow = false;
-        
-        return handled;
-    }
-    
-    public boolean handleEvent(Event evt) {
-        if (evt.id == Event.WINDOW_DESTROY) {
-            if (subGroup != null) {
-                subGroup.postMessage(new Message(
-			 DesignerAccess.getContainer(subGroup), /* NOI18N */
-						 "AWT", evt, true));
-                return true;
-            }
-        } else if (evt.target == this && evt.id == Event.WINDOW_MOVED) {
-            // The CDE window manager screws
-            // up the window location sometimes.
-            // The bug can be avoided by ignoring
-            // WINDOW_MOVED events that have
-            // the coordinates (0,0).
-            if (evt.x != 0 && evt.y != 0)
-                location = new Point(evt.x, evt.y);
-        }
-        
-        return super.handleEvent(evt);
-    }
-    
-    public void select() {
-        if (helper != null)
-            helper.select();
-    }
-    
-    public void unselect() {
-        if (helper != null)
-            helper.unselect();
-    }
-    
-    public void layoutMode() {
-        if (helper != null)
-            helper.layoutMode();
-    }
-    
-    public void previewMode() {
-        if (helper != null)
-            helper.previewMode();
-    }
-    
-    public Dimension previewSize() {
-        if (helper != null)
-            return helper.previewSize();
-        else
-            return null;
-    }
-    
-    public void addNotify() {
-        if (helper != null)
-            helper.addNotify();
-        super.addNotify();
-    }
-    
-    public void removeNotify() {
-        if (helper != null)
-            helper.removeNotify();
-        super.removeNotify();
-    }
-    
-    public void layout() {
-        if (helper != null)
-            helper.layout();
-        super.layout();
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        if (helper != null)
-            helper.paint(g);
-        super.paint(g);
-    }
-    
-    public boolean mouseDown(Event evt, int x, int y) {
-        if (helper != null)
-            return helper.mouseDown(evt, x, y);
-        return false;
-    }
-    
-    public void show() {
-        // See the comment at the top of the file
-        // for ignoreShow and ignoreHide
-        if (ignoreShow)
-            return;
-        
-        //
-        // Call show only if it is necessary.
-        // When the peer's show method
-        // is called, the peer will call validate
-        // back on the AWT component.
-        //
-        if (isShowing()) {
-            if (!Global.isWindows())
-                toFront();
-            return;
-        }
-        
-        skipValidate = true;
-        super.show();
-        skipValidate = false;
-    }
-    
-    public void hide() {
-        // See the comment at the top of the file
-        // for ignoreShow and ignoreHide
-        if (!ignoreHide)
-            super.hide();
-    }
-    
-    /**
-     * Don't do a validate during a show.
-     */
-    public void validate() {
-        if (!skipValidate)
-            super.validate();
-    }
-    
-    /**
-     * Add some extra to the top inset if we are 
-     * on Windows and the frame
-     * has a menubar.  There is an AWT bug that
-     * causes the top insets to
-     * be too small when there is a menubar.
-     */
-    public Insets insets() {
-        Insets insets = (Insets)super.insets().clone();
-        if (Global.isWindows() && getMenuBar() != null &&
-	    insets.top < 30)
-	    insets.top += 30;
-        return insets;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/RootWindow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * 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.
- *
- * @(#) RootWindow.java 1.6 - last change made 05/07/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.Dimension;
-
-public interface RootWindow {
-    public void select();
-    public void unselect();
-    
-    public void layoutMode();
-    public void previewMode();
-    
-    public boolean isVisible();
-    public Dimension previewSize();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,446 +0,0 @@
-/*
- * 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.
- *
- * @(#) ScrollPanel.java 1.41 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.Util;
-import java.awt.*;
-
-public class ScrollPanel extends VJPanel {
-    protected VJScrollbar vbar, hbar;
-    
-    private Component comp;
-    private boolean vshow, hshow;
-    private GBLayout gridbag;
-    private boolean hasFocus;
-    
-    private int scrollAreaWidth = 0;
-    private int scrollAreaHeight = 0;
-    private Insets scrollAreaInsets;
-    
-    public ScrollPanel() {
-        super(Util.WIN95_FIELD_BORDER);
-        setBorderInsets(new Insets(0, 0, 0, 0));
-        
-        GBConstraints c = new GBConstraints();
-        gridbag = new GBLayout();
-        setLayout(gridbag);
-        
-        hbar = new VJScrollbar(VJScrollbar.HORIZONTAL);
-        vbar = new VJScrollbar(VJScrollbar.VERTICAL);
-        
-        c.gridx = 1;
-        c.gridy = 0;
-        c.shrinkx = false;
-        c.shrinky = true;
-        c.fill = GBConstraints.VERTICAL;
-        
-        // #ifdef JDK1.1
-        super.addImpl(vbar, null, -1);
-        // #else
-	// super.add(vbar, -1);
-        // #endif
-        
-        gridbag.setConstraints(vbar, c);
-        
-        c.gridx = 0;
-        c.gridy = 1;
-        c.shrinkx = true;
-        c.shrinky = false;
-        c.fill = GBConstraints.HORIZONTAL;
-        
-        // #ifdef JDK1.1
-        super.addImpl(hbar, null, -1);
-        // #else
-	// super.add(hbar, -1);
-        // #endif
-        
-        gridbag.setConstraints(hbar, c);
-        
-        // Have the initial minimumSize include the vertical scrollbar,
-        // but not the horizontal scrollbar.
-        vshow = true;
-        hbar.hide();
-    }
-    
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        super.addImpl(comp, constraints, index);
-        doAdd(comp);
-    }
-    // #else
-    // public Component add(Component comp, int pos) {
-    //   super.add(comp, pos);
-    //   doAdd(comp);
-    //   return comp;
-    // }
-    // #endif
-    
-    private void doAdd(Component comp) {
-        if (!(comp instanceof Scrollable))
-            throw new Error(Global.getMsg(
-		  "sunsoft.jws.visual.rt.awt.ScrollPanel.OnlyOneInstance"));
-        
-        if (this.comp != null)
-            remove(this.comp);
-        
-        this.comp = comp;
-        
-        GBConstraints c = new GBConstraints();
-        c.gridx = 0;
-        c.gridy = 0;
-        c.weightx = 1;
-        c.weighty = 1;
-        c.shrinkx = true;
-        c.shrinky = true;
-        c.fill = GBConstraints.BOTH;
-        c.insets = scrollAreaInsets;
-        
-        gridbag.setConstraints(comp, c);
-    }
-    
-    public int getScrollAreaWidth() {
-        return scrollAreaWidth;
-    }
-    
-    public void setScrollAreaWidth(int scrollAreaWidth) {
-        this.scrollAreaWidth = scrollAreaWidth;
-    }
-    
-    public int getScrollAreaHeight() {
-        return scrollAreaHeight;
-    }
-    
-    public void setScrollAreaHeight(int scrollAreaHeight) {
-        this.scrollAreaHeight = scrollAreaHeight;
-    }
-    
-    public Insets getScrollAreaInsets() {
-        return scrollAreaInsets;
-    }
-    
-    public void setScrollAreaInsets(Insets insets) {
-        scrollAreaInsets = insets;
-        
-        if (comp != null) {
-            GBConstraints c = gridbag.getConstraints(comp);
-            c.insets = insets;
-            gridbag.setConstraints(comp, c);
-        }
-    }
-    
-    public int getVisibleIndex() {
-        if (!vshow)
-            return 0;
-        
-        int lineHeight = ((Scrollable)comp).lineHeight();
-        int scrolly = vbar.getValue();
-        
-        return (scrolly+lineHeight-1)/lineHeight;
-    }
-    
-    public void makeVisible(int index) {
-        if (!vshow)
-            return;
-        
-        if (index == -1)
-            return;
-        
-        Scrollable scrollable = (Scrollable)comp;
-        Dimension viewSize = scrollable.viewSize(comp.size());
-        int lineHeight = scrollable.lineHeight();
-        int y = lineHeight*index;
-        int scrolly = vbar.getValue();
-        
-        if (y < scrolly) {
-            vbar.setValue(y);
-            scrollable.scrollY(y);
-        } else if ((y + lineHeight) > scrolly + viewSize.height) {
-            y -= (viewSize.height - lineHeight);
-            if (y < 0)
-                y = 0;
-            vbar.setValue(y);
-            scrollable.scrollY(y);
-        }
-    }
-    
-    public boolean handleEvent(Event e) {
-        if (e.id == Event.GOT_FOCUS) {
-            hasFocus = true;
-            return super.handleEvent(e);
-        } else if (e.id == Event.LOST_FOCUS) {
-            hasFocus = false;
-            return super.handleEvent(e);
-        } else if (e.target == hbar)
-            ((Scrollable)comp).scrollX(hbar.getValue());
-        else if (e.target == vbar)
-            ((Scrollable)comp).scrollY(vbar.getValue());
-        else
-            return super.handleEvent(e);
-        
-        return true;
-    }
-    
-    private Dimension viewSize() {
-        Dimension size = size();
-        size = new Dimension(size.width, size.height);
-        
-        // take out our insets
-        Insets insets = insets();
-        Insets scrollAreaInsets = getScrollAreaInsets();
-        if (scrollAreaInsets == null)
-            scrollAreaInsets = new Insets(0, 0, 0, 0);
-        
-        size.width -= (insets.left + insets.right +
-		       scrollAreaInsets.left + scrollAreaInsets.right);
-        size.height -= (insets.top + insets.bottom +
-			scrollAreaInsets.top + scrollAreaInsets.bottom);
-        
-        return ((Scrollable)comp).viewSize(size);
-    }
-    
-    // Always leave space for the scrollbars
-    public Dimension minimumSize() {
-        Dimension compMin;
-        Dimension hbarMin = hbar.minimumSize();
-        Dimension vbarMin = vbar.minimumSize();
-        
-        if (comp != null) {
-            compMin = comp.minimumSize();
-            compMin = new Dimension(compMin.width, compMin.height);
-        }
-        else
-            compMin = new Dimension(0, 0);
-        
-        return calcSize(compMin, hbarMin, vbarMin);
-    }
-    
-    // Always leave space for the scrollbars
-    public Dimension preferredSize() {
-        Dimension compPref;
-        Dimension hbarPref = hbar.preferredSize();
-        Dimension vbarPref = vbar.preferredSize();
-        
-        if (comp != null) {
-            compPref = comp.preferredSize();
-            compPref = new Dimension(compPref.width, compPref.height);
-        }
-        else
-            compPref = new Dimension(0, 0);
-        
-        return calcSize(compPref, hbarPref, vbarPref);
-    }
-    
-    private Dimension calcSize(Dimension compMin,
-			       Dimension hbarMin, Dimension vbarMin) {
-        Insets insets = insets();
-        Insets scrollAreaInsets = getScrollAreaInsets();
-        if (scrollAreaInsets == null)
-            scrollAreaInsets = new Insets(0, 0, 0, 0);
-        
-        if (scrollAreaWidth != 0)
-            compMin.width = scrollAreaWidth;
-        if (scrollAreaHeight != 0)
-            compMin.height = scrollAreaHeight;
-        
-        int insetsWidth = insets.left + insets.right +
-	    scrollAreaInsets.left + scrollAreaInsets.right;
-        compMin.width += (vbarMin.width + insetsWidth);
-        compMin.width = Math.max(compMin.width, (hbarMin.width +
-						 insetsWidth));
-        
-        int insetsHeight = insets.top + insets.bottom +
-	    scrollAreaInsets.top + scrollAreaInsets.bottom;
-        compMin.height += (hbarMin.height + insetsHeight);
-        compMin.height = Math.max(compMin.height, (vbarMin.height +
-						   insetsHeight));
-        
-        return compMin;
-    }
-    
-    public void layout() {
-        boolean hadFocus = hasFocus;
-        
-        Dimension viewSize = viewSize();
-        if (viewSize.width <= 0 || viewSize.height <= 0) {
-            super.layout();
-            return;
-        }
-        
-        Dimension d;
-        Dimension scrollSize = ((Scrollable)comp).scrollSize();
-        boolean needHShow = false, needVShow = false;
-        boolean revalidate = false;
-        
-        if (viewSize.width < scrollSize.width)
-            needHShow = true;
-        if (viewSize.height < scrollSize.height)
-            needVShow = true;
-        
-        if ((needHShow || needVShow) && !(needHShow && needVShow)) {
-            if (needVShow) {
-                d = vbar.minimumSize();
-                if (viewSize.width < (scrollSize.width + d.width))
-                    needHShow = true;
-            } else if (needHShow) {
-                d = hbar.minimumSize();
-                if (viewSize.height < (scrollSize.height + d.height))
-                    needVShow = true;
-            }
-        }
-        
-        if (needHShow) {
-            if (!hshow) {
-                hbar.show();
-                hshow = true;
-                revalidate = true;
-            }
-        } else {
-            if (hshow) {
-                hbar.hide();
-                hshow = false;
-                revalidate = true;
-                if (hbar.getValue() != 0)
-                    hbar.setValue(0);
-                ((Scrollable)comp).scrollX(0);
-            }
-        }
-        
-        if (needVShow) {
-            if (!vshow) {
-                vbar.show();
-                vshow = true;
-                revalidate = true;
-            }
-        } else {
-            if (vshow) {
-                vbar.hide();
-                vshow = false;
-                revalidate = true;
-                if (vbar.getValue() != 0)
-                    vbar.setValue(0);
-                ((Scrollable)comp).scrollY(0);
-            }
-        }
-        
-        if (hshow)
-            updateHScrollbar();
-        if (vshow)
-            updateVScrollbar();
-        
-        if (revalidate) {
-            validate();
-            if (hadFocus && Global.isMotif())
-                comp.requestFocus();
-        } else {
-            super.layout();
-        }
-    }
-    
-    public void updateWindow() {
-        invalidate();
-        validate();
-    }
-    
-    protected void updateHScrollbar() {
-        Dimension viewSize = viewSize();
-        Dimension scrollSize = ((Scrollable)comp).scrollSize();
-        
-        if (vshow) {
-            Dimension d = vbar.minimumSize();
-            viewSize.width -= d.width;
-        }
-        
-        // (viewSize.width-d.width) can become negative
-        // during initialization
-        if (viewSize.width < 1)
-            return;
-        
-        int maximum = scrollSize.width;
-        // #ifndef MAXIMUM_HACK
-        // maximum -= viewSize.width;
-        // #endif
-        
-        hbar.setValues(hbar.getValue(), viewSize.width, 0, maximum);
-        
-        Scrollable scrollable = (Scrollable)comp;
-        int lineWidth = Math.max(10, viewSize.width/6);
-        int pageSize = Math.max(lineWidth, viewSize.width - lineWidth);
-        pageSize = Math.min(scrollSize.width - viewSize.width,
-			    pageSize);
-        
-        hbar.setLineIncrement(lineWidth);
-        hbar.setPageIncrement(pageSize);
-        
-        scrollable.scrollX(hbar.getValue());
-    }
-    
-    protected void updateVScrollbar() {
-        Dimension viewSize = viewSize();
-        Dimension scrollSize = ((Scrollable)comp).scrollSize();
-        
-        if (hshow) {
-            Dimension d = hbar.minimumSize();
-            viewSize.height -= d.height;
-        }
-        
-        // (viewSize.height-d.height) can become
-        // negative during initialization
-        if (viewSize.height < 1)
-            return;
-        
-        int maximum = scrollSize.height;
-        // #ifndef MAXIMUM_HACK
-        // maximum -= viewSize.height;
-        // #endif
-        vbar.setValues(vbar.getValue(), viewSize.height, 0, maximum);
-        
-        Scrollable scrollable = (Scrollable)comp;
-        int lineHeight = scrollable.lineHeight();
-        int pageSize =
-	    Math.max(lineHeight,
-		     (viewSize.height/lineHeight)*lineHeight - lineHeight);
-        pageSize = Math.min(scrollSize.height-viewSize.height,
-			    pageSize);
-        
-        vbar.setLineIncrement(lineHeight);
-        vbar.setPageIncrement(pageSize);
-        
-        scrollable.scrollY(vbar.getValue());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/Scrollable.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * 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.
- *
- * @(#) Scrollable.java 1.4 - last change made 11/05/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-public interface Scrollable {
-    public void scrollX(int x);
-    public void scrollY(int y);
-    public Dimension scrollSize();
-    public Dimension viewSize(Dimension d);
-    public int lineHeight();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollableArea.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
- * 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.
- *
- * @(#) ScrollableArea.java 1.6 - last change made 02/09/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.awt.*;
-
-import java.awt.*;
-
-public class ScrollableArea extends VJPanel implements Scrollable {
-    private Component comp;
-    private int curx, cury;
-    private int lineHeight = 4;
-    
-    public void layout() {
-        if (comp == null)
-            return;
-        
-        Dimension d = comp.preferredSize();
-        d = new Dimension(d.width, d.height);
-        Dimension size = size();
-        d.width = Math.max(d.width, size.width);
-        d.height = Math.max(d.height, size.height);
-        
-        comp.reshape(curx, cury, d.width, d.height);
-    }
-    
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        doAdd(comp);
-        super.addImpl(comp, constraints, index);
-    }
-    // #else
-    // public Component add(Component comp, int pos) {
-    //   doAdd(comp);
-    //   return super.add(comp, pos);
-    // }
-    // #endif
-    
-    private void doAdd(Component comp) {
-        if (this.comp != null)
-            remove(this.comp);
-        this.comp = comp;
-    }
-    
-    public void remove(Component comp) {
-        super.remove(comp);
-        if (this.comp == comp)
-            this.comp = null;
-    }
-    
-    public Dimension minimumSize() {
-        if (comp != null)
-            return comp.preferredSize();
-        else
-            return new Dimension(0, 0);
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    public void scrollX(int x) {
-        curx = -x;
-        if (comp != null)
-            comp.move(curx, cury);
-    }
-    
-    public void scrollY(int y) {
-        cury = -y;
-        if (comp != null)
-            comp.move(curx, cury);
-    }
-    
-    public Dimension scrollSize() {
-        return minimumSize();
-    }
-    
-    public Dimension viewSize(Dimension size) {
-        return size;
-    }
-    
-    public void setLineHeight(int lineHeight) {
-        this.lineHeight = lineHeight;
-    }
-    
-    public int lineHeight() {
-        return lineHeight;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/StatusBar.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
- * 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.
- *
- * @(#) StatusBar.java 1.15 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.Util;
-import java.awt.*;
-
-/**
- * A label that shows a single line of text for while.  After a set
- * time period the text is blanked.  It's useful for a status bar at
- * the bottom of a frame.
- *
- * @version 1.15, 07/25/97
- */
-public class StatusBar extends Canvas implements Runnable {
-    private String text;
-    private long wakeupTime;
-    private long timeout;
-    
-    public StatusBar(String text) {
-        wakeupTime = 0;
-        timeout = 7000;
-        setFont(new Font(/* NOI18N */"Sansserif", Font.BOLD, 14));
-        
-        Thread thread = new Thread(this);
-        thread.setDaemon(true);
-        thread.start();
-    }
-    
-    public StatusBar() {
-        this(/* NOI18N */"");
-    }
-    
-    public synchronized void setTimeout(long millis) {
-        timeout = millis;
-        resetTimer(true);
-    }
-    
-    public void setText(String text) {
-        setText(text, true);
-    }
-    
-    public void setText(String text, boolean shouldTimeout) {
-        if (text != this.text && (this.text == null ||
-				  !this.text.equals(text))) {
-            this.text = text;
-            repaint();
-        }
-        
-        resetTimer(shouldTimeout);
-    }
-    
-    public String getText() {
-        return text;
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        Dimension d = size();
-        
-        g.setColor(getBackground());
-        if (Global.isWindows())
-            g.fillRect(0, 0, d.width, d.height);
-        Global.util.draw3DRect(g, 0, 0, d.width-1, d.height-1,
-			       Util.WIN95_SUNKEN, 1);
-        
-        if (text != null) {
-            g.setColor(getForeground());
-            g.setFont(getFont());
-            FontMetrics fm = g.getFontMetrics();
-            g.drawString(text, 5, fm.getAscent() + 3);
-        }
-    }
-    
-    public Dimension minimumSize() {
-        Graphics g = getGraphics();
-        int w = 10;
-        int h = 6;
-        
-        if (g != null) {
-            FontMetrics fm = g.getFontMetrics();
-            if (text != null)
-                w += fm.stringWidth(text);
-            h += fm.getHeight();
-        }
-        
-        return new Dimension(w, h);
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    public synchronized void run() {
-        long currentTime = System.currentTimeMillis();
-        
-        while (true) {
-            try {
-                if (wakeupTime == 0)
-                    wait();
-                else
-                    wait(wakeupTime - currentTime);
-            }
-            catch (java.lang.InterruptedException ex) {
-            }
-            
-            currentTime = System.currentTimeMillis();
-            if (wakeupTime != 0 && wakeupTime < currentTime) {
-                text = null;
-                repaint();
-                wakeupTime = 0;
-            }
-        }
-    }
-    
-    private synchronized void resetTimer(boolean shouldTimeout) {
-        if (timeout > 0 && shouldTimeout && text != null &&
-	    !text.equals(/* NOI18N */"")) {
-            wakeupTime = System.currentTimeMillis() + timeout;
-            notify();
-        } else {
-            wakeupTime = 0;
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/StringVector.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- * 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.
- *
- * @(#) StringVector.java 1.3 - last change made 04/25/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-public final class StringVector {
-    Vector vector;
-    
-    public StringVector(int initialCapacity, int capacityIncrement) {
-        vector = new Vector(initialCapacity, capacityIncrement);
-    }
-    
-    public StringVector(int initialCapacity) {
-        vector = new Vector(initialCapacity);
-    }
-    
-    public StringVector() {
-        vector = new Vector();
-    }
-    
-    public final void copyInto(String anArray[]) {
-        vector.copyInto(anArray);
-    }
-    
-    public final void trimToSize() {
-        vector.trimToSize();
-    }
-    
-    public final void ensureCapacity(int minCapacity) {
-        vector.ensureCapacity(minCapacity);
-    }
-    
-    public final void setSize(int newSize) {
-        vector.setSize(newSize);
-    }
-    
-    public final int capacity() {
-        return vector.capacity();
-    }
-    
-    public final int size() {
-        return vector.size();
-    }
-    
-    public final boolean isEmpty() {
-        return vector.isEmpty();
-    }
-    
-    public final Enumeration elements() {
-        return vector.elements();
-    }
-    
-    public final boolean contains(String elem) {
-        return vector.contains(elem);
-    }
-    
-    public final int indexOf(String elem) {
-        return vector.indexOf(elem);
-    }
-    
-    public final int indexOf(String elem, int index) {
-        return vector.indexOf(elem, index);
-    }
-    
-    public final int lastIndexOf(String elem) {
-        return vector.lastIndexOf(elem);
-    }
-    
-    public final int lastIndexOf(String elem, int index) {
-        return vector.lastIndexOf(elem, index);
-    }
-    
-    public final String elementAt(int index) {
-        return (String)vector.elementAt(index);
-    }
-    
-    public final String firstElement() {
-        return (String)vector.firstElement();
-    }
-    
-    public final String lastElement() {
-        return (String)vector.lastElement();
-    }
-    
-    public final void setElementAt(String obj, int index) {
-        vector.setElementAt(obj, index);
-    }
-    
-    public final void removeElementAt(int index) {
-        vector.removeElementAt(index);
-    }
-    
-    public final void insertElementAt(String obj, int index) {
-        vector.insertElementAt(obj, index);
-    }
-    
-    public final void addElement(String obj) {
-        vector.addElement(obj);
-    }
-    
-    public final boolean removeElement(Object obj) {
-        return vector.removeElement(obj);
-    }
-    
-    public final void removeAllElements() {
-        vector.removeAllElements();
-    }
-    
-    public synchronized Object clone() {
-        try {
-            StringVector v = (StringVector)super.clone();
-            v.vector = (Vector)vector.clone();
-            return v;
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-    }
-    
-    public String toString() {
-        return vector.toString();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TabbedFolder.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,539 +0,0 @@
-/*
- * 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.
- *
- * @(#) TabbedFolder.java 1.20 - last change made 08/04/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.*;
-
-public class TabbedFolder extends CardPanel {
-    
-    public static final int CONFIRM_SWITCH = 4862;
-    
-    //
-    // Constants used for drawing the tabs
-    //
-    
-    private static final int bd = 2;
-    private static final double BFACTOR = 0.8;
-    private static final double DFACTOR = 0.7;
-    
-    private static final int tabipadx = 14;
-    private static final int tabipady = 14;
-    private static final int comppadx = 20;
-    private static final int comppady = 14;
-    private static final Insets folderInsets = new Insets(6, 6, 6, 6);
-    
-    //
-    // Cached tab information
-    //
-    
-    private Image buffer;
-    private int tabx[];
-    private String tabtext[];
-    private int tabW, tabH;
-    private boolean cancelSwitch = false;
-    
-    
-    public TabbedFolder() {
-    }
-    
-    public TabbedFolder(String tabs[]) {
-        for (int i = 0; i < tabs.length; i++) {
-            super.addTab(tabs[i]);
-        }
-    }
-    
-    protected Label newCardLabel() {
-        return new Label(Global.getMsg(
-		"sunsoft.jws.visual.rt.awt.TabbedFolder.NewCardLabel"));
-    }
-    
-    //
-    // Methods that comprise the public interface for TabbedFolder
-    //
-    
-    public void addTab(String tab) {
-        super.addTab(tab);
-        flushCache();
-        repaint();
-    }
-    
-    public void addTab(String tab, int index) {
-        super.addTab(tab, index);
-        flushCache();
-        repaint();
-    }
-    
-    public void renameTab(String oldName, String newName) {
-        super.renameTab(oldName, newName);
-        flushCache();
-        repaint();
-    }
-    
-    public void removeTab(String tab) {
-        super.removeTab(tab);
-        flushCache();
-        repaint();
-    }
-    
-    public void removeAllTabs() {
-        super.removeAllTabs();
-        flushCache();
-        repaint();
-    }
-    
-    public String getCurrentFolder() {
-        return getCurrentCard();
-    }
-    
-    public void show(String tab) {
-        super.show(tab);
-        repaint();
-    }
-    
-    //
-    // Overridden methods from Component
-    //
-    
-    public void addNotify() {
-        super.addNotify();
-        flushCache();
-    }
-    
-    public void removeNotify() {
-        super.removeNotify();
-        flushCache();
-    }
-    
-    public void setFont(Font font) {
-        super.setFont(font);
-        flushCache();
-    }
-    
-    public Dimension minimumSize() {
-        cacheTabInfo();
-        
-        Dimension d = super.minimumSize();
-        int w = tabW + folderInsets.left + folderInsets.right;
-        if (w > d.width)
-            d = new Dimension(w, d.height);
-        
-        return d;
-    }
-    
-    public Dimension preferredSize() {
-        cacheTabInfo();
-        
-        Dimension d = super.preferredSize();
-        int w = tabW + folderInsets.left + folderInsets.right;
-        if (w > d.width)
-            d = new Dimension(w, d.height);
-        
-        return d;
-    }
-    
-    public Insets insets() {
-        cacheTabInfo();
-        
-        Insets insets = new Insets(0, 0, 0, 0);
-        insets.left = folderInsets.left + bd + comppadx/2;
-        insets.right = folderInsets.right + bd + comppadx/2;
-        insets.top = folderInsets.top + tabH + comppady/2;
-        insets.bottom = folderInsets.bottom + bd + comppady/2;
-        
-        return insets;
-    }
-    
-    //
-    // Event Handling
-    //
-    
-    public boolean mouseDown(Event evt, int x, int y) {
-        int index = calcTabIndex(x, y);
-        if (index >= 0 && index < tabs.size()) {
-            String name = (String)tabs.elementAt(index);
-            
-            cancelSwitch = false;
-            postEvent(new Event(this, CONFIRM_SWITCH, name));
-            
-            if (!cancelSwitch) {
-                show(name);
-                postEvent(new Event(this, Event.ACTION_EVENT, name));
-            } else {
-                cancelSwitch = false;
-            }
-        }
-        
-        return false;
-    }
-    
-    public void cancelSwitch() {
-        cancelSwitch = true;
-    }
-    
-    private synchronized int calcTabIndex(int x, int y) {
-        cacheTabInfo();
-        
-        if (x < (folderInsets.left+tabx[0]) ||
-	    x > (folderInsets.left+tabx[tabx.length-1])) {
-            return -1;
-        }
-        if (y < (folderInsets.top+bd) || y > (folderInsets.top+tabH)) {
-            return -1;
-        }
-        
-        for (int i = 0; i < tabtext.length; i++) {
-            if (x >= (folderInsets.left+tabx[i]) &&
-		x <= (folderInsets.left + tabx[i+1])) {
-                return i;
-            }
-        }
-        
-        return -1;
-    }
-    
-    //
-    // Cache all the information and the image needed for the tabs.
-    //
-    
-    private synchronized void cacheTabInfo() {
-        if (tabx == null) {
-            if (getPeer() == null)
-                return;
-            
-            FontMetrics fontMetrics = getFontMetrics(getFont());
-            int len = tabs.size();
-            
-            if (len == 0) {
-                tabx = new int[2];
-                tabtext = new String[1];
-                tabtext[0] = Global.getMsg(
-			   "sunsoft.jws.visual.rt.awt.TabbedFolder.Empty");
-                tabx[0] = bd;
-                tabx[1] = tabx[0] +
-		    fontMetrics.stringWidth(tabtext[0]) + tabipadx + 2*bd;
-            } else {
-                Enumeration e = tabs.elements();
-                int i = 0;
-                int x = bd;
-                tabx = new int[tabs.size()+1];
-                tabtext = new String[tabs.size()];
-                
-                while (e.hasMoreElements()) {
-                    tabtext[i] = (String)e.nextElement();
-                    tabx[i] = x;
-                    x += fontMetrics.stringWidth(tabtext[i]) +
-			tabipadx + 2*bd;
-                    i++;
-                }
-                tabx[i] = x;
-            }
-            
-            // Need 4 extra pixels: 2 on each end
-            tabW = tabx[tabx.length-1] - tabx[0] + 2*bd;
-            
-            // Need 6 extra pixels: 4 on top, and 2 on the bottom
-            tabH = fontMetrics.getMaxAscent() + tabipady + 3*bd;
-            
-            // Create the image buffer
-            buffer = createImage(tabW, tabH);
-        }
-    }
-    
-    private synchronized void flushCache() {
-        tabx = null;
-        tabtext = null;
-        tabW = 0;
-        tabH = 0;
-        buffer = null;
-        if (isValid())
-            invalidate();
-    }
-    
-    //
-    // Drawing methods
-    //
-    
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        
-        cacheTabInfo();
-        Dimension size = size();
-        int x, y;
-        
-        x = folderInsets.left + tabW;
-        y = folderInsets.top + tabH;
-        
-        // Clear the background
-        g.setColor(getBackground());
-        g.fillRect(0, 0, size.width, folderInsets.top);
-        g.fillRect(0, y, size.width, size.height-y);
-        g.fillRect(0, 0, folderInsets.left, size.height);
-        g.fillRect(x, 0, size.width-x, size.height);
-        
-        draw(g);
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        draw(g);
-    }
-    
-    private synchronized void draw(Graphics g) {
-        cacheTabInfo();
-        Dimension size = size();
-        
-        if (buffer != null) {
-            drawTabs(size);
-            g.drawImage(buffer, folderInsets.left,
-			folderInsets.top, null);
-        }
-        
-        drawBox(g, size);
-    }
-    
-    private synchronized void drawTabs(Dimension size) {
-        Graphics g = buffer.getGraphics();
-        String card = getCurrentCard();
-        int selIndex = -1;
-        if (card != null)
-            selIndex = tabs.indexOf(card);
-        
-        g.setColor(getBackground());
-        g.fillRect(0, 0, tabW, tabH);
-        
-        for (int i = 0; i < tabtext.length; i++) {
-            if (i != selIndex) {
-                drawTab(g, i, false);
-            }
-        }
-        
-        for (int i = 0; i < tabtext.length; i++) {
-            if (i == selIndex) {
-                drawTab(g, i, true);
-                break;
-            }
-        }
-        
-        // Draw the left extra bit
-        g.setColor(brighter(getBackground()));
-        g.fillRect(0, tabH-bd, bd, bd);
-        
-        // Draw the right extra bit
-        int rightEdge = tabx[tabx.length-1];
-        if ((size.width - tabW) > (folderInsets.left +
-				   folderInsets.right)) {
-            // The corner does not lie within the image.
-            // This can happen
-            // when the tabs do not completely fill
-            // the top of the folder.
-            g.setColor(brighter(getBackground()));
-            g.fillRect(tabW-bd, tabH-bd, bd, bd);
-        } else {
-            drawUpperRightCorner(g, tabW-bd, tabH-bd);
-        }
-    }
-    
-    private void drawUpperRightCorner(Graphics g, int x, int y) {
-        String card = getCurrentCard();
-        int selIndex = -1;
-        if (card != null)
-            selIndex = tabs.indexOf(card);
-        
-        g.setColor(darker(getBackground()));
-        fillRect(g, x, y, bd, bd);
-        
-        int size = tabs.size();
-        if (size == 0 || selIndex != size-1) {
-            g.setColor(brighter(getBackground()));
-            fillRect(g, x, y, 1, 1);
-        }
-    }
-    
-    private void drawTab(Graphics g, int index, boolean selected) {
-        int x = tabx[index];
-        int y = bd;
-        int w = tabx[index+1]-tabx[index]-1;
-        int h = tabH-bd-1;
-        
-        if (selected) {
-            x -= bd;
-            y -= bd;
-            w += 2*bd;
-            h += 2*bd;
-        }
-        
-        g.setColor(getBackground());
-        draw3DOuterTab(g, x, y, w, h, selected);
-        draw3DInnerTab(g, x+1, y+1, w-2, h-2, selected);
-        
-        x = tabx[index] + bd + (tabipadx/2);
-        y = tabH - bd - tabipady/2;
-        if (selected)
-            y -= bd;
-        
-        g.setColor(getForeground());
-        g.setFont(getFont());
-        g.drawString(tabtext[index], x, y-1);
-    }
-    
-    private void drawBox(Graphics g, Dimension size) {
-        int x = folderInsets.left;
-        int y = folderInsets.top + tabH;
-        int w = size.width - (folderInsets.left +
-			      folderInsets.right) - 1;
-        int h = size.height - (tabH + folderInsets.top +
-			       folderInsets.bottom) - 1;
-        
-        if (x >= size.width || y >= size.height || w <= 0 || h <= 0)
-            return;
-        
-        g.setColor(getBackground());
-        draw3DU(g, x, y, w, h, true);
-        
-        // Draw the extra line on the top-right side if the tab image
-        // does not cover the area.  The tab image is only as wide as
-        // the tabs, so we need to account for any possible extra space
-        // here.
-        if ((size.width - tabW) > (folderInsets.left +
-				   folderInsets.right)) {
-            g.setColor(brighter(getBackground()));
-            fillRect(g, folderInsets.left + tabW,
-		     folderInsets.top + tabH - bd,
-		     size.width - (folderInsets.left + folderInsets.right +
-				   tabW),
-		     bd);
-            drawUpperRightCorner(g,
-				 size.width - folderInsets.right - bd,
-				 folderInsets.top + tabH - bd);
-        }
-    }
-    
-    private void draw3DU(Graphics g, int x, int y, int width,
-			 int height, boolean raised) {
-        Color c = g.getColor();
-        Color brighter = brighter(c);
-        Color darker = darker(c);
-        
-        g.setColor(raised ? brighter : darker);
-        g.drawLine(x, y, x, y + height);
-        g.drawLine(x+1, y, x+1, y + height);
-        
-        g.setColor(raised ? darker : brighter);
-        g.drawLine(x + 1, y + height, x + width, y + height);
-        g.drawLine(x + 2, y + height - 1, x + width - 1,
-		   y + height - 1);
-        
-        g.drawLine(x + width, y, x + width, y + height - 1);
-        g.drawLine(x + width - 1, y, x + width - 1, y + height - 1);
-        g.setColor(c);
-    }
-    
-    private void draw3DInnerTab(Graphics g,
-				int x, int y, int width, int height,
-				boolean selected) {
-        Color c = g.getColor();
-        Color brighter = brighter(c);
-        Color darker = darker(c);
-        
-        g.setColor(brighter);
-        g.drawLine(x, y, x, y + height);
-        g.drawLine(x + 1, y, x + width - 1, y);
-        if (!selected)
-            g.drawLine(x + 1, y + height, x + width + 1, y + height);
-        g.setColor(darker);
-        g.drawLine(x + width, y, x + width, y + height - 1);
-        g.setColor(c);
-    }
-    
-    private void draw3DOuterTab(Graphics g,
-				int x, int y, int width, int height,
-				boolean selected) {
-        Color c = g.getColor();
-        Color brighter = brighter(c);
-        Color darker = darker(c);
-        
-        // Left, Top, Bottom, Right
-        
-        g.setColor(brighter);
-        g.drawLine(x, y + 2, x, y + height);
-        g.drawLine(x + 2, y, x + width - 2, y);
-        if (!selected)
-            g.drawLine(x + 1, y + height, x + width, y + height);
-        g.setColor(darker);
-        g.drawLine(x + width, y + 2, x + width, y + height - 2);
-        g.setColor(c);
-    }
-    
-    /**
-     * Returns a brighter version of this color.
-     */
-    private Color brighter(Color c) {
-        // fix for bug where the brighter color doesn't show up
-        // against a white background The Util.brighter will return
-        // new Color(<some light grey>) for whites.
-        return Global.util.brighter(c);
-    }
-    
-    /**
-     * Returns a darker version of this color.
-     */
-    private Color darker(Color c) {
-        return new Color(Math.max((int)(c.getRed()  *DFACTOR), 0),
-			 Math.max((int)(c.getGreen()*DFACTOR), 0),
-			 Math.max((int)(c.getBlue() *DFACTOR), 0));
-    }
-    
-    // Workaround for Windows fillRect bug.
-    // The Windows fillRect sometimes
-    // fills the lower-right edges when it shouldn't.
-    // The bug appears to
-    // only happen is certain situations.  It does
-    // not seem to happen when
-    // drawing inside an off-screen buffer.
-    private void fillRect(Graphics g, int x, int y, int w, int h) {
-        if (Global.isWindows()) {
-            w -= 1;
-            h -= 1;
-            g.drawRect(x, y, w, h);
-        }
-        g.fillRect(x, y, w, h);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TextList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
- * 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.
- *
- * @(#) TextList.java 1.15 - last change made 11/26/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-import java.util.Vector;
-
-/**
- * An alternate to the regular AWT List widget.
- *
- * @version 	1.15, 11/26/96
- */
-public class TextList extends ScrollPanel {
-    TextView view;
-    private StringVector items;
-    
-    public TextList() {
-        items = new StringVector();
-        view = new TextView();
-        view.items(items.vector);
-        
-        add(view);
-    }
-    
-    //
-    // Methods that are forwarded to the view.
-    //
-    public void enable(boolean value) {
-        super.enable(value);
-        view.enable(value);
-    }
-    
-    public StringVector items() {
-        return items;
-    }
-    
-    public void updateView() {
-        view.updateView();
-        updateWindow();
-    }
-    
-    public void setMinimumRows(int num) {
-        view.setMinimumRows(num);
-    }
-    
-    public int getMinimumRows() {
-        return view.getMinimumRows();
-    }
-    
-    public void setMinimumColumns(int num) {
-        view.setMinimumColumns(num);
-    }
-    
-    public int getMinimumColumns() {
-        return view.getMinimumColumns();
-    }
-    
-    public int getRows() {
-        return view.getRows();
-    }
-    
-    public void select(int index) {
-        view.select(index);
-    }
-    
-    public void select(String item) {
-        view.select(item);
-    }
-    
-    public void deselect(int index) {
-        view.deselect(index);
-    }
-    
-    public void deselectAll() {
-        view.deselectAll();
-    }
-    
-    public void setMultipleSelections(boolean v) {
-        view.setMultipleSelections(v);
-    }
-    
-    public boolean allowsMultipleSelections() {
-        return view.allowsMultipleSelections();
-    }
-    
-    public int getSelectedIndex() {
-        return view.getSelectedIndex();
-    }
-    
-    public int[] getSelectedIndexes() {
-        return view.getSelectedIndexes();
-    }
-    
-    public String getSelectedItem() {
-        return (String)view.getSelectedItem();
-    }
-    
-    public String[] getSelectedItems() {
-        Object items[] = view.getSelectedItems();
-        String str[] = new String[items.length];
-        for (int i = 0; i < items.length; i++)
-            str[i] = (String)items[i];
-        return str;
-    }
-    
-    public void addItem(String item) {
-        items.addElement(item);
-        updateView();
-    }
-    
-    public void addItem(String item, int index) {
-        if (index == -1) {
-            if (items.size() == 0) {
-                items.addElement(item);
-            } else {
-                items.insertElementAt(item, 0);
-            }
-        } else if (index < items.size()) {
-            items.insertElementAt(item, index);
-        } else {
-            items.addElement(item);
-        }
-        updateView();
-    }
-    
-    public void replaceItem(String newValue, int index) {
-        if (index < items.size()) {
-            items.setElementAt(newValue, index);
-            updateView();
-        }
-    }
-    
-    public int countItems() {
-        return items.size();
-    }
-    
-    public void clear() {
-        items.removeAllElements();
-        updateView();
-    }
-    
-    public void delItem(int position) {
-        if (position < items.size()) {
-            items.removeElementAt(position);
-            updateView();
-        }
-    }
-    
-    public void delItems(int start, int end) {
-        for (int index = start; index <= end; index++) {
-            if (index < items.size()) {
-                items.removeElementAt(start);
-            }
-        }
-        updateView();
-    }
-    
-    public String getItem(int index) {
-        if (index < items.size()) {
-            return (items.elementAt(index));
-        } else return null;
-    }
-    
-    public void makeVisible(int index) {
-        updateView();
-        super.makeVisible(index);
-    }
-    
-    public int lineHeight() {
-        return view.lineHeight();
-    }
-    
-    public void menuMode(CLChoice choice) {
-        view.menuMode(choice);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TextView.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,682 +0,0 @@
-/*
- * 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.
- *
- * @(#) TextView.java 1.29 - last change made 08/12/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.Vector;
-import java.util.Hashtable;
-
-public class TextView extends VJCanvas implements Scrollable {
-    private static final int RIGHT_MOUSE = 4;
-    
-    protected Vector items;
-    
-    protected int fontHeight, lineWidth, lineHeight;
-    protected FontMetrics fontMetrics;
-    protected int minrows = 10;
-    protected int mincolumns = 15;
-    protected int minWidth = 0;
-    
-    static protected final int textIndent = 6;
-    static protected final int textBorder = 2;
-    static protected final int viewBorder = 0;
-    static protected final int viewIPad = 2;
-    
-    private int selected[] = new int[0];
-    private int numSelected;
-    
-    private int scrollx = 0;
-    private int scrolly = 0;
-    private Image buffer;
-    private boolean multipleSelections;
-    private Hashtable stringWidthTable;
-    
-    private boolean menuMode;
-    private CLChoice menuChoice;
-    boolean menuDrag;
-    
-    private boolean gotEventInside;
-    private int prevMenuY;
-    
-    public TextView() {
-        stringWidthTable = new Hashtable();
-        // why was the background hardcoded to white?
-        // setBackground(Color.white);
-    }
-    
-    //
-    // Accessor methods.  These are forwarded from the TextList class.
-    //
-    public void setMinimumRows(int num) {
-        minrows = num;
-    }
-    
-    public int getMinimumRows() {
-        return minrows;
-    }
-    
-    public void setMinimumColumns(int num) {
-        mincolumns = num;
-    }
-    
-    public int getMinimumColumns() {
-        return mincolumns;
-    }
-    
-    public int getRows() {
-        if (lineHeight == 0)
-            return 0;
-        
-        Dimension size = size();
-        int h = size.height - (viewBorder + viewIPad);
-        return ((h+lineHeight-1)/lineHeight);
-    }
-    
-    public void updateView() {
-        for (int i = 0; i < numSelected; i++) {
-            if (selected[i] >= items.size()) {
-                shift(selected, i+1, numSelected, -1);
-                numSelected--;
-            }
-        }
-        
-        cacheMinWidth();
-        repaint();
-    }
-    
-    private void shift(int[] data, int offset, int length, int shift) {
-        System.arraycopy(data, offset, data, offset+shift,
-			 length-offset);
-    }
-    
-    public void select(int index) {
-        if (index >= items.size())
-            return;
-        if (index < -1)
-            return;
-        
-        if (!multipleSelections) {
-            if (index == -1) {
-                if (numSelected != 0) {
-                    numSelected = 0;
-                    repaint();
-                }
-            } else {
-                if (numSelected == 0) {
-                    selected = ensureCapacity(selected, numSelected, 1);
-                    numSelected = 1;
-                    selected[0] = -1;
-                }
-                if (selected[0] != index) {
-                    selected[0] = index;
-                    repaint();
-                }
-            }
-        } else {
-            if (index == -1)
-                return;
-            
-            boolean inserted = false;
-            for (int i = 0; i < numSelected; i++) {
-                if (index == selected[i]) {
-                    inserted = true;
-                    break;
-                } else if (index < selected[i]) {
-                    inserted = true;
-                    selected = ensureCapacity(selected,
-					      numSelected, numSelected+1);
-                    shift(selected, i, numSelected, 1);
-                    selected[i] = index;
-                    numSelected++;
-                    repaint();
-                    break;
-                }
-            }
-            
-            if (!inserted) {
-                selected = ensureCapacity(selected, numSelected,
-					  numSelected+1);
-                selected[numSelected] = index;
-                numSelected++;
-                repaint();
-            }
-        }
-    }
-    
-    public void select(Object item) {
-        if (item != null)
-            select(items.indexOf(item));
-    }
-    
-    public void deselect(int index) {
-        if (index < 0 || index >= items.size())
-            return;
-        
-        for (int i = 0; i < numSelected; i++) {
-            if (selected[i] == index) {
-                shift(selected, i+1, numSelected, -1);
-                numSelected--;
-                repaint();
-                break;
-            }
-        }
-    }
-    
-    public void deselectAll() {
-        if (numSelected != 0) {
-            numSelected = 0;
-            repaint();
-        }
-    }
-    
-    public boolean isSelected(int index) {
-        for (int i = 0; i < numSelected; i++) {
-            if (selected[i] == index)
-                return true;
-        }
-        
-        return false;
-    }
-    
-    public void setMultipleSelections(boolean v) {
-        multipleSelections = v;
-    }
-    
-    public boolean allowsMultipleSelections() {
-        return multipleSelections;
-    }
-    
-    public int getSelectedIndex() {
-        if (numSelected == 0)
-            return -1;
-        else
-            return selected[0];
-    }
-    
-    public int[] getSelectedIndexes() {
-        int[] data = new int[numSelected];
-        System.arraycopy(selected, 0, data, 0, numSelected);
-        return data;
-    }
-    
-    public Object getSelectedItem() {
-        if (numSelected == 0)
-            return null;
-        else
-            return items.elementAt(selected[0]);
-    }
-    
-    public Object[] getSelectedItems() {
-        Object[] data = new Object[numSelected];
-        for (int i = 0; i < numSelected; i++)
-            data[i] = items.elementAt(selected[i]);
-        return data;
-    }
-    
-    private int[] ensureCapacity(int[] elementData, int elementCount,
-				 int minCapacity) {
-        int oldCapacity = elementData.length;
-        if (minCapacity > oldCapacity) {
-            int oldData[] = elementData;
-            int newCapacity = oldCapacity * 2;
-            if (newCapacity < minCapacity) {
-                newCapacity = minCapacity;
-            }
-            elementData = new int[newCapacity];
-            System.arraycopy(oldData, 0, elementData, 0, elementCount);
-        }
-        
-        return elementData;
-    }
-    
-    //
-    // Package private accessor methods
-    //
-    protected void items(Vector items) {
-        this.items = items;
-    }
-    
-    //
-    // Component methods
-    //
-    public Dimension minimumSize() {
-        int bd = getBD();
-        return new Dimension(minWidth + bd, (minrows * lineHeight)
-			     + bd);
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    //
-    // Scrollable methods
-    //
-    public void scrollX(int x) {
-        scrollx = x;
-        repaint();
-    }
-    
-    public void scrollY(int y) {
-        scrolly = y;
-        repaint();
-    }
-    
-    public Dimension scrollSize() {
-        return new Dimension(minWidth, items.size()*lineHeight);
-    }
-    
-    public Dimension viewSize(Dimension size) {
-        int bd = getBD();
-        size.width -= bd;
-        size.height -= bd;
-        return size;
-    }
-    
-    public int lineHeight() {
-        return lineHeight;
-    }
-    
-    private int getBD() {
-        return 2 * (viewBorder + viewIPad);
-    }
-    
-    //
-    // Event handling for selections
-    //
-    public boolean mouseDown(Event e, int x, int y) {
-        //
-        // On Windows95, we sometimes get bogus
-        // mouseDown events.  This happens
-        // when the TextView is being used as a
-        // menu for the CLChoice component.
-        // The user presses the mouse over the CLChoice
-        // item in the list, causing
-        // the menu to be mapped.  Then, without
-        // releasing the mouse, the user
-        // drags the mouse into the menu.  This
-        // sometimes causes a bogus
-        // mouseDown event to be sent to the menu /* JSTYLED */
-	// (actually to the TextView
-        // inside the menu).
-        //
-        // The workaround is to ignore mouseDown
-        // events that occur before there
-        // has been either a mouseDrag or a
-        // mouseMove event.  This check is only
-        // made if menuChoice is not null /* JSTYLED */
-	// (indicating that this TextView is being
-        // used as a CLChoice menu).
-        //
-        if (menuChoice != null && !menuDrag)
-            return true;
-        
-        selectY(e, true);
-        
-        menuMode = false;
-        menuChoice = null;
-        menuDrag = false;
-        
-        return true;
-    }
-    
-    public boolean mouseDrag(Event e, int x, int y) {
-        // Workaround for bug observed on WindowsNT
-        // where you get spurious
-        // mouse drag events when pressing the mouse.
-        // The spurious event
-        // has coordinates x=-1 and y=-1.
-        if (!Global.isWindows() || e.y != -1) {
-            if (menuMode) {
-                menuDrag = true;
-                menuEvent(e);
-            } else if (!multipleSelections) {
-                selectY(e, true);
-            }
-        }
-        
-        return true;
-    }
-    
-    public boolean mouseUp(Event e, int x, int y) {
-        if (menuMode)
-            menuEvent(e);
-        
-        return true;
-    }
-    
-    public boolean mouseMove(Event e, int x, int y) {
-        if (menuMode) {
-            menuDrag = true;
-            menuEvent(e);
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    private void selectY(Event e, boolean doPost) {
-        int evtX = e.x;
-        int evtY = e.y + scrolly - (viewBorder + viewIPad);
-        int index = evtY/lineHeight;
-        int size = items.size();
-        int id;
-        
-        if (size == 0)
-            return;
-        if (index >= size)
-            index = size-1;
-        if (index < 0)
-            index = 0;
-        
-        if (multipleSelections) {
-            if (isSelected(index)) {
-                id = Event.LIST_DESELECT;
-                deselect(index);
-            } else {
-                id = Event.LIST_SELECT;
-                select(index);
-            }
-            
-            if (doPost) {
-                Event evt = new Event(getParent(), id,
-				      items.elementAt(index));
-                if (menuChoice != null)
-                    menuChoice.handleEvent(evt);
-                else
-                    postEvent(evt);
-            }
-        } else {
-            id = Event.LIST_SELECT;
-            
-            //
-            // Ignore double-clicks on Windows because
-            // they are sent spuriously.
-            //
-            if ((e.clickCount == 2 && !Global.isWindows()) ||
-		e.modifiers == RIGHT_MOUSE) {
-                id = Event.ACTION_EVENT;
-            }
-            
-            if (!isSelected(index)) {
-                select(index);
-                repaint();
-                if (doPost) {
-                    Event evt = new Event(getParent(), id,
-					  items.elementAt(index));
-                    if (menuChoice != null)
-                        menuChoice.handleEvent(evt);
-                    else
-                        postEvent(evt);
-                }
-            } else if (e.id == Event.MOUSE_DOWN ||
-		       e.id == Event.MOUSE_UP) {
-                if (doPost) {
-                    Event evt = new Event(getParent(), id,
-					  items.elementAt(index));
-                    if (menuChoice != null)
-                        menuChoice.handleEvent(evt);
-                    else
-                        postEvent(evt);
-                }
-            }
-        }
-    }
-    
-    //
-    // Painting
-    //
-    public void reshape(int x, int y, int width, int height) {
-        super.reshape(x, y, width, height);
-        cacheLineWidth();
-        
-        if (width <= 0 || height <= 0)
-            return;
-        
-        // Create the image used for double-buffering
-        if (buffer == null ||
-	    (width != buffer.getWidth(this) ||
-	    height != buffer.getHeight(this)))
-	    buffer = createImage(width, height);
-    }
-    
-    public void update(Graphics g) {
-        paint(g);
-    }
-    
-    public void paint(Graphics g) {
-        if (buffer == null)
-            return;
-        
-        g = buffer.getGraphics();
-        g.setFont(getFont());
-        
-        Dimension d = size();
-        
-        g.setColor(getBackground());
-        g.fillRect(0, 0, d.width, d.height);
-        
-        if (isEnabled())
-            g.setColor(getForeground());
-        else
-            g.setColor(getBackground().darker());
-        drawItems(g);
-        
-        g.setColor(getBackground());
-        drawBorder(g);
-        
-        g = getGraphics();
-        g.drawImage(buffer, 0, 0, this);
-    }
-    
-    private void drawItems(Graphics g) {
-        Dimension d = size();
-        int size = items.size();
-        
-        int viewTop, viewBottom, lineTop, lineBottom;
-        int bd = viewBorder + viewIPad;
-        int yoff;
-        
-        viewTop = scrolly;
-        viewBottom = scrolly + d.height;
-        
-        for (int i = 0; i < size; i++) {
-            lineTop = i*lineHeight;
-            lineBottom = lineTop + lineHeight;
-            
-            if (lineTop > viewBottom || lineBottom < viewTop)
-                continue;
-            
-            yoff = lineTop - viewTop + bd;
-            drawLine(g, i, -scrollx+bd, yoff);
-        }
-    }
-    
-    protected void drawLine(Graphics g, int index, int xoff, int yoff) {
-        String name = (String)items.elementAt(index);
-        
-        int x = textIndent;
-        int y = (lineHeight + fontHeight)/2 - 1;
-        
-        if (isSelected(index)) {
-            g.setColor(new Color(0, 0, 128));
-            g.fillRect(xoff, yoff, lineWidth, lineHeight);
-            g.setColor(Color.white);
-        }
-        
-        // Useful for pixel debugging
-        // g.drawRect(xoff, yoff, lineWidth-1, lineHeight-1);
-        
-        g.drawString(name, x+xoff, y+yoff);
-        
-        if (isSelected(index)) {
-            g.setColor(getForeground());
-        }
-    }
-    
-    private void drawBorder(Graphics g) {
-        Dimension size = size();
-        
-        for (int i = 0; i < viewIPad; i++)
-            g.drawRect(viewBorder+i, viewBorder+i,
-		       size.width-1-2*(i+viewBorder),
-		       size.height-1-2*(i+viewBorder));
-    }
-    
-    public void addNotify() {
-        super.addNotify();
-        cacheAll();
-    }
-    
-    public void setFont(Font f) {
-        super.setFont(f);
-        
-        stringWidthTable.clear();
-        if (getPeer() != null)
-            cacheAll();
-    }
-    
-    private void cacheAll() {
-        cacheLineHeight();
-        cacheMinWidth();
-    }
-    
-    //
-    // Need to call this when the list of items
-    // changes, the font changes,
-    // or the mincolumns changes.  The mincolumns
-    // change should be followed
-    // by a call to updateView for the change
-    // to take effect.  It is only
-    // necessary to call updateView if addNotify
-    // has not yet been called.
-    //
-    protected void cacheMinWidth() {
-        minWidth = mincolumns * getStringWidth(/* NOI18N */"0");
-        
-        int count = items.size();
-        for (int i = 0; i < count; i++)
-            minWidth = Math.max(minWidth,
-				getStringWidth((String)items.elementAt(i)));
-        
-        minWidth += textIndent * 2;
-        cacheLineWidth();
-    }
-    
-    protected int getStringWidth(String s) {
-        if (fontMetrics == null)
-            return 0;
-        
-        Integer val = (Integer)stringWidthTable.get(s);
-        if (val == null) {
-            val = new Integer(fontMetrics.stringWidth(s));
-            stringWidthTable.put(s, val);
-        }
-        
-        return val.intValue();
-    }
-    
-    //
-    // Need to call this when the size
-    // changes and when the minWidth changes.
-    //
-    protected void cacheLineWidth() {
-        Dimension size = size();
-        int bd = getBD();
-        lineWidth = Math.max(minWidth, size.width-bd);
-    }
-    
-    //
-    // Need to call this when the font changes.
-    //
-    protected void cacheLineHeight() {
-        lineHeight = 0;
-        Graphics g = getGraphics();
-        if (g == null)
-            return;
-        
-        Font f = getFont();
-        if (f == null)
-            return;
-        
-        fontMetrics = g.getFontMetrics(f);
-        fontHeight = fontMetrics.getMaxAscent();
-        
-        lineHeight = fontHeight + 2*textBorder;
-    }
-    
-    //
-    // Methods used by CLChoice
-    //
-    
-    void menuMode(CLChoice choice) {
-        menuChoice = choice;
-        menuMode = true;
-        menuDrag = false;
-        gotEventInside = false;
-        prevMenuY = 0;
-    }
-    
-    private void menuEvent(Event e) {
-        if (checkBounds(e)) {
-            selectY(e, (e.id == Event.MOUSE_UP));
-            
-            // Auto-scrolling
-            int bd = getBD();
-            if (e.id != Event.MOUSE_MOVE &&
-		((e.y < bd && e.y < prevMenuY) ||
-		 (e.y > (size().height-bd) && e.y > prevMenuY))) {
-                ((TextList)getParent()).makeVisible(getSelectedIndex());
-            }
-            
-            prevMenuY = e.y;
-        }
-    }
-    
-    private boolean checkBounds(Event e) {
-        if (!gotEventInside) {
-            Dimension d = size();
-            int bd = getBD();
-            if (e.x >= bd && e.y >= bd &&
-		e.x <= (d.width-bd) && e.y <= (d.height-bd))
-		gotEventInside = true;
-        }
-        
-        return gotEventInside;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJButton.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJButton.java 1.3 - last change made 01/08/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-public class VJButton extends Button {
-    private boolean isStandard = true;
-    
-    public VJButton() {
-        super();
-    }
-    
-    public VJButton(String label) {
-        super(label);
-    }
-    
-    public Dimension minimumSize() {
-        Dimension d = super.minimumSize();
-        d = new Dimension(d.width, d.height);
-        if (isStandard) {
-            d.width = Math.max(d.width, 75);
-            if (!Global.isWindows())
-                d.height += 6;
-        }
-        return d;
-    }
-    
-    public Dimension preferredSize() {
-        Dimension d = super.preferredSize();
-        d = new Dimension(d.width, d.height);
-        if (isStandard) {
-            d.width = Math.max(d.width, 75);
-            if (!Global.isWindows())
-                d.height += 6;
-        }
-        return d;
-    }
-    
-    public boolean isStandard() {
-        return isStandard;
-    }
-    
-    public void setStandard(boolean value) {
-        isStandard = value;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJCanvas.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJCanvas.java 1.5 - last change made 12/10/96
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-public class VJCanvas extends Canvas {
-    
-    public static final int PAINT_EVENT = 2567;
-    public static final int UPDATE_EVENT = 2568;
-    
-    /**
-     * This Canvas doesn't keep growing like the regular Canvas does.
-     **/
-    
-    int minWidth = 100, minHeight = 100;
-    
-    public void setMinWidth(int minWidth) {
-        this.minWidth = minWidth;
-    }
-    
-    public void setMinHeight(int minHeight) {
-        this.minHeight = minHeight;
-    }
-    
-    public int getMinWidth() {
-        return minWidth;
-    }
-    
-    public int getMinHeight() {
-        return minHeight;
-    }
-    
-    public Dimension minimumSize() {
-        return new Dimension(minWidth, minHeight);
-    }
-    
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        postEvent(new Event(this, UPDATE_EVENT, g));
-        paint(g);
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        super.paint(g);
-        postEvent(new Event(this, PAINT_EVENT, g));
-    }
-    
-    //
-    // Workaround for Windows95 AWT bug:  If
-    // you call request focus while
-    // the mouse is pressed, you get spurious
-    // mouse down events.  Not only
-    // that, but the spurious events have
-    // clickCount set to 2, so you end
-    // up with spurious double clicks.
-    // On Windows95 the component
-    // automatically gets the focus when
-    // you press the mouse inside it.
-    // Therefore, it isn't necessary to
-    // call requestFocus at all if running
-    // on Windows and the mouse is down (and this avoids the bug).
-    //
-    public boolean postEvent(Event e) {
-        // Fix the click count
-        VJPanel.fixClickCount(e);
-        
-        if (e.id == Event.MOUSE_DOWN)
-            VJPanel.isMouseDown = true;
-        else if (e.id == Event.MOUSE_UP)
-            VJPanel.isMouseDown = false;
-        return super.postEvent(e);
-    }
-    
-    public void requestFocus() {
-        if (!Global.isWindows() || !VJPanel.isMouseDown)
-            super.requestFocus();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJErrorDialog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJErrorDialog.java 1.4 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-public class VJErrorDialog extends RootDialog {
-    
-    private MultiLineLabel errorLabel;
-    private VJButton okButton;
-    
-    public VJErrorDialog(Frame frame, boolean modal) {
-        super(frame, modal);
-        init();
-    }
-    
-    public VJErrorDialog(Frame frame, String title, boolean modal) {
-        super(frame, title, modal);
-        init();
-    }
-    
-    public void setLabel(String label) {
-        errorLabel.setLabel(label);
-    }
-    
-    public String getLabel() {
-        return errorLabel.getLabel();
-    }
-    
-    private void init() {
-        GBLayout gb = new GBLayout();
-        GBConstraints c = new GBConstraints();
-        setLayout(gb);
-        
-        c.weightx = 1;
-        c.weighty = 1;
-        c.gridwidth = 0;
-        
-        errorLabel = new MultiLineLabel();
-        c.fill = GBConstraints.BOTH;
-        c.insets = new Insets(2, 2, 2, 2);
-        gb.setConstraints(add(errorLabel), c);
-        
-        c.weightx = 0;
-        c.weighty = 0;
-        c.fill = GBConstraints.HORIZONTAL;
-        c.insets = new Insets(0, 0, 0, 0);
-        gb.setConstraints(add(new LabelBar()), c);
-        
-        okButton = new VJButton(Global.getMsg(
-		"sunsoft.jws.visual.rt.awt.VJErrorDialog.OK"));
-        c.fill = GBConstraints.NONE;
-        c.insets = new Insets(2, 2, 2, 2);
-        gb.setConstraints(add(okButton), c);
-    }
-    
-    public boolean action(Event evt, Object what) {
-        if (evt.target == okButton) {
-            hide();
-            return true;
-        }
-        
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJFlowLayout.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-/*
- * 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"
- *
- * @(#)FlowLayout.java	1.18 95/12/14 Arthur van Hoff
- *
- * Copyright (c) 1994, 2001 by Sun Microsystems, Inc. 
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-package sunsoft.jws.visual.rt.awt;
-
-import java.awt.*;
-
-/**
- * Flow layout is used to layout buttons in a panel. It will arrange
- * buttons left to right until no more buttons fit on the same line.
- * Each line is centered.
- *
- * @version 	1.18, 14 Dec 1995
- * @author 	Arthur van Hoff
- * @author 	Sami Shaio
- */
-public class VJFlowLayout implements LayoutManager {
-    
-    /**
-     * The left alignment variable. 
-     */
-    public static final int LEFT 	= 0;
-    
-    /**
-     * The right alignment variable. 
-     */
-    public static final int CENTER 	= 1;
-    
-    /**
-     * The right alignment variable.
-     */
-    public static final int RIGHT 	= 2;
-    
-    // Private variables
-    private static final int PREFERREDSIZE = 0;
-    private static final int MINIMUMSIZE = 1;
-    
-    private int align;
-    private int hgap;
-    private int vgap;
-    
-    private int minimumWidth;
-    
-    /**
-     * Constructs a new Flow Layout with a centered alignment.
-     */
-    public VJFlowLayout() {
-        this.align = LEFT;
-        this.hgap = 5;
-        this.vgap = 5;
-        this.minimumWidth = 0;
-    }
-    
-    public void setAlignment(int align) {
-        this.align = align;
-    }
-    
-    public int getAlignment() {
-        return align;
-    }
-    
-    public void setHGap(int hgap) {
-        this.hgap = hgap;
-    }
-    
-    public int getHGap() {
-        return hgap;
-    }
-    
-    public void setVGap(int vgap) {
-        this.vgap = vgap;
-    }
-    
-    public int getVGap() {
-        return vgap;
-    }
-    
-    public void setMinimumWidth(int width) {
-        this.minimumWidth = width;
-    }
-    
-    public int getMinimumWidth() {
-        return minimumWidth;
-    }
-    
-    /**
-     * Adds the specified component to the layout. 
-     * Not used by this class.
-     * @param name the name of the component
-     * @param comp the the component to be added
-     */
-    public void addLayoutComponent(String name, Component comp) {
-    }
-    
-    /**
-     * Removes the specified component from the layout. Not used by
-     * this class.  
-     * @param comp the component to remove
-     */
-    public void removeLayoutComponent(Component comp) {
-    }
-    
-    /**
-     * Returns the preferred dimensions for 
-     * this layout given the components
-     * in the specified target container.
-     * @param target the component which needs to be laid out
-     * @see Container
-     * @see #minimumLayoutSize
-     */
-    public Dimension preferredLayoutSize(Container target) {
-        return calcLayoutSize(target, PREFERREDSIZE);
-    }
-    
-    /**
-     * Returns the minimum dimensions needed to layout the components
-     * contained in the specified target container.
-     * @param target the component which needs to be laid out 
-     * @see #preferredLayoutSize
-     */
-    public Dimension minimumLayoutSize(Container target) {
-        return calcLayoutSize(target, MINIMUMSIZE);
-    }
-    
-    private Dimension calcLayoutSize(Container target, int which) {
-        Insets insets = target.insets();
-        Dimension r = new Dimension(0, vgap + insets.top +
-				    insets.bottom);
-        int nmembers = target.countComponents();
-        int rowCount = 0;
-        int rowWidth = insets.left + insets.right + hgap;
-        int rowHeight = 0;
-        
-        for (int i = 0; i < nmembers; i++) {
-            Component m = target.getComponent(i);
-            
-            if (m.isVisible()) {
-                Dimension d;
-                if (which == PREFERREDSIZE)
-                    d = m.preferredSize();
-                else
-                    d = m.minimumSize();
-                
-                if (minimumWidth > 0 && rowCount != 0 &&
-		    rowWidth + d.width + hgap > minimumWidth) {
-                    
-                    r.width = Math.max(rowWidth, r.width);
-                    r.height += (rowHeight + vgap);
-                    
-                    rowCount = 0;
-                    rowWidth = insets.left + insets.right + hgap;
-                    rowHeight = 0;
-                }
-                
-                rowWidth += (d.width + hgap);
-                rowHeight = Math.max(rowHeight, d.height);
-                rowCount++;
-            }
-        }
-        
-        if (rowCount > 0) {
-            r.width = Math.max(rowWidth, r.width);
-            r.height += (rowHeight + vgap);
-        }
-        
-        return r;
-    }
-    
-    /**
-     * Centers the elements in the specified row, if there is any slack.
-     * @param target the component which needs to be moved
-     * @param x the x coordinate
-     * @param y the y coordinate
-     * @param width the width dimensions
-     * @param height the height dimensions
-     * @param rowStart the beginning of the row
-     * @param rowEnd the the ending of the row
-     */
-    private void moveComponents(Container target, int x, int y,
-			int width, int height, int rowStart, int rowEnd) {
-        switch (align) {
-	case LEFT:
-            break;
-	case CENTER:
-            x += width / 2;
-            break;
-	case RIGHT:
-            x += width;
-            break;
-        }
-        for (int i = rowStart; i < rowEnd; i++) {
-            Component m = target.getComponent(i);
-            if (m.isVisible()) {
-                Dimension size = m.size();
-                m.move(x, y + (height - size.height) / 2);
-                x += hgap + size.width;
-            }
-        }
-    }
-    
-    /**
-     * Lays out the container. This method will actually reshape the
-     * components in the target in order to satisfy the constraints of
-     * the BorderLayout object. 
-     * @param target the specified component being laid out.
-     * @see Container
-     */
-    public void layoutContainer(Container target) {
-        Insets insets = target.insets();
-        Dimension size = target.size();
-        int maxwidth = size.width - (insets.left + insets.right +
-				     hgap*2);
-        int nmembers = target.countComponents();
-        int x = 0, y = insets.top + vgap;
-        int rowh = 0, start = 0;
-        
-        for (int i = 0; i < nmembers; i++) {
-            Component m = target.getComponent(i);
-            if (m.isVisible()) {
-                Dimension d = m.preferredSize();
-                m.resize(d.width, d.height);
-                
-                if ((x == 0) || ((x + d.width) <= maxwidth)) {
-                    if (x > 0) {
-                        x += hgap;
-                    }
-                    x += d.width;
-                    rowh = Math.max(rowh, d.height);
-                } else {
-                    moveComponents(target, insets.left + hgap,
-				   y, maxwidth - x, rowh, start, i);
-                    x = d.width;
-                    y += vgap + rowh;
-                    rowh = d.height;
-                    start = i;
-                }
-            }
-        }
-        moveComponents(target, insets.left + hgap, y,
-		       maxwidth - x, rowh, start, nmembers);
-    }
-    
-    /**
-     * Returns the String representation of this FlowLayout's values.
-     */
-    public String toString() {
-        String str = /* NOI18N */"";
-        switch (align) {
-	case LEFT:    str = /* NOI18N */",align=left"; break;
-	case CENTER:  str = /* NOI18N */",align=center"; break;
-	case RIGHT:   str = /* NOI18N */",align=right"; break;
-        }
-        return getClass().getName() + /* NOI18N */"[hgap=" +
-	    hgap + /* NOI18N */",vgap=" + vgap + str + /* NOI18N */"]";
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJPanel.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,796 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJPanel.java 1.31 - last change made 08/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.awt.*;
-import java.util.Hashtable;
-
-public class VJPanel extends Panel {
-    // Relief constants
-    public static final int RELIEF_FLAT   = Util.RELIEF_FLAT;
-    public static final int RELIEF_RAISED = Util.RELIEF_RAISED;
-    public static final int RELIEF_SUNKEN = Util.RELIEF_SUNKEN;
-    public static final int RELIEF_RIDGE  = Util.RELIEF_RIDGE;
-    public static final int RELIEF_GROOVE = Util.RELIEF_GROOVE;
-    public static final int WIN95_RAISED = Util.WIN95_RAISED;
-    public static final int WIN95_SUNKEN = Util.WIN95_SUNKEN;
-    /* BEGIN JSTYLED */
-    public static final int WIN95_FIELD_BORDER = Util.WIN95_FIELD_BORDER;
-    public static final int WIN95_WINDOW_BORDER = Util.WIN95_WINDOW_BORDER;
-    /* END JSTYLED */
-    public static final int BLACK_BORDER = Util.BLACK_BORDER;
-    
-    // Alignment constants
-    public static final int LEFT = Label.LEFT;
-    public static final int CENTER = Label.CENTER;
-    public static final int RIGHT = Label.RIGHT;
-    
-    // Drawing constants
-    private static final int labelpadx = 10;
-    private static final int labelipadx = 4;
-    private static final int labelpadtop = 2;
-    
-    // Maker event
-    private static final int MARKER_EVENT = 83250;
-    
-    // Multiply factor for darker color
-    private static double FACTOR = 0.85;
-    
-    // request focus workaround for Windows
-    static boolean isMouseDown;
-    
-    // click count adjustment
-    private static final int CLICK_TIMEOUT = 400;
-    private static final int CLICK_DISTANCE = 2;
-    private static int clickCount = 1;
-    private static long clickTime = 0;
-    private static long clickWhen = -1;
-    private static int clickX, clickY;
-    
-    // Relief
-    private int relief;
-    
-    // Border width
-    int borderWidth;
-    
-    // Label for the upper border of the panel
-    private String borderLabel;
-    
-    // Alignment for the borderLabel
-    private int labelAlignment;
-    
-    // Insets between the border decoration and the child components
-    private Insets borderInsets;
-    
-    //
-    // Event forwarding to groups.
-    //
-    // The MARKER_EVENT stuff is necessary because AWT is broken.  For
-    // example, say a key is pressed in a textfield.  All of the parents
-    // of the textfield get a chance at the event before the textfield's
-    // peer.  If any of the parents returns true from handleEvent, then
-    // the peer never sees the event.
-    //
-    // VJPanel overrides postEvent instead of handleEvent.  handleEvent
-    // would have been overridden if it we possible to return true from
-    // handleEvent and not screw up AWT.  Since this is not the case, it
-    // becomes necessary to override postEvent instead of handleEvent,
-    // to ensure that all AWT event handling has taken place everywhere
-    // before the event is forwarded to the shadow (and from there to
-    // the group).
-    //
-    // The panel cannot return true from postEvent or else no one
-    // will ever see the event.  Therefore, postEvent returns false,
-    // and the MARKER_EVENT stuff ensures that the event doesn't get
-    // delivered twice.
-    //
-    //
-    
-    /**
-     * markEvent - Marks events that should be forwarded to the shadow.
-     *
-     * Returns true if the event has been marked, false otherwise.
-     */
-    public static boolean markEvent(Event evt, Component comp) {
-        //
-        // Check for events that are already marked
-        //
-        Event e = evt.evt;
-        while (e != null) {
-            if (e.id == MARKER_EVENT)
-                return false;
-            e = e.evt;
-        }
-        
-        //
-        // Figure out the mgr to send the mesage to, and also figure
-        // out the target for the message.
-        //
-        Object messageTarget = null;
-        AttributeManager mgr = null;
-        Hashtable shadowTable = DesignerAccess.getShadowTable();
-        
-        if (evt.target != null) {
-            mgr = (AttributeManager)shadowTable.get(evt.target);
-            messageTarget = mgr;
-        }
-        if (mgr == null) {
-            mgr = (AttributeManager)shadowTable.get(comp);
-            messageTarget = evt.target;
-        }
-        
-        //
-        // If we found a mgr, then mark the event and return true.
-        // Otherwise, return false.
-        //
-        if (mgr != null) {
-            Message msg = new Message(messageTarget, /* NOI18N */"AWT",
-				      evt, true);
-            
-            e = evt;
-            while (e.evt != null)
-                e = e.evt;
-            e.evt = new Event(mgr, MARKER_EVENT, msg);
-            
-            e.evt.x = e.x;
-            e.evt.y = e.y;
-            
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    /**
-     * forwardEvent - Forwards marked events to the shadow
-     */
-    public static void forwardEvent(Event evt, Component comp) {
-        // Find the marker event and remove it
-        Event p = evt;
-        Event e = evt;
-        while (e.evt != null) {
-            p = e;
-            e = e.evt;
-        }
-        p.evt = null;
-        
-        // Make sure we have a marked event
-        if (e.id != MARKER_EVENT) {
-            throw new Error(
-			    /* JSTYLED */
-			    Global.fmtMsg("sunsoft.jws.visual.rt.awt.VJPanel.UnmarkedEvent", "forwardEvent"));
-        }
-        
-        // Need to untranslate the (x,y) for the event.
-        evt.x = e.x;
-        evt.y = e.y;
-        
-        Component target = null;
-        if (evt.target instanceof Component)
-            target = (Component)evt.target;
-        
-        while (target != null && target != comp) {
-            Container parent = target.getParent();
-            if (parent == null) {
-                // We didn't hit comp on the way up the tree,
-                // so don't translate
-                evt.x = e.x;
-                evt.y = e.y;
-                break;
-            }
-            
-            translateEvent(evt, target, parent, true);
-            target = parent;
-        }
-        
-        // Fix the click count
-        fixClickCount(evt);
-        
-        // Send the message
-        AttributeManager mgr = (AttributeManager)e.target;
-        mgr.postMessage((Message)e.arg);
-    }
-    
-    // Windows workaround:  The location of most
-    // components gets totally
-    // screwed up on Windows.  The solution is to
-    // use the location in the
-    // GBConstraints instead.  This version of
-    // postEvent translates events
-    // according to the GBConstraints location variable.
-    public boolean postEvent(Event e) {
-        // Fix the click count
-        fixClickCount(e);
-        
-        if (e.id == Event.MOUSE_DOWN)
-            VJPanel.isMouseDown = true;
-        else if (e.id == Event.MOUSE_UP)
-            VJPanel.isMouseDown = false;
-        
-        boolean marked = markEvent(e, this);
-        boolean handled = doPostEvent(e);
-        if (marked)
-            VJPanel.forwardEvent(e, this);
-        
-        return handled;
-    }
-    
-    private boolean doPostEvent(Event e) {
-        boolean handled = false;
-        
-        if (Global.isWindows()) {
-            if (handleEvent(e)) {
-                handled = true;
-            } else {
-                Container parent = getParent();
-                if (parent != null) {
-                    translateEvent(e, this, parent);
-                    
-                    if (parent.postEvent(e)) {
-                        handled = true;
-                    }
-                }
-            }
-        } else {
-            handled = super.postEvent(e);
-        }
-        
-        return handled;
-    }
-    
-    
-    //
-    // This is a workaround for two different problems.
-    //
-    // The first problem is that on Motif, the
-    // click count sometimes does
-    // not work.  Sometimes is does sort of work,
-    // but you have to double-
-    // click REALLY fast.  This workaround adjusts
-    // the clickCount according
-    // to a reasonable click timeout.
-    //
-    // The second problem is that on Windows you can get double-clicks
-    // even if the second click is at a different x,y
-    // location than the first
-    // click.  This workaround makes sure that
-    // if the clicks are far apart,
-    // then it isn't a double click.
-    //
-    
-    static void fixClickCount(Event evt) {
-        if (evt.id != Event.MOUSE_DOWN || evt.when == clickWhen)
-            return;
-        
-        if (Global.isMotif()) {
-            long curtime = System.currentTimeMillis();
-            if (evt.when == 0)
-                evt.when = curtime;
-            
-            int d = Math.abs(clickX - evt.x) + Math.abs(clickY - evt.y);
-            
-            if ((curtime - clickTime) < CLICK_TIMEOUT
-		&& (d <= CLICK_DISTANCE)) {
-                clickCount++;
-                evt.clickCount = clickCount;
-            } else {
-                clickCount = 1;
-            }
-            
-            if (evt.clickCount == 1)
-                evt.clickCount = clickCount;
-            clickTime = curtime;
-            clickWhen = evt.when;
-            clickX = evt.x;
-            clickY = evt.y;
-        } else if (Global.isWindows()) {
-            long curtime = System.currentTimeMillis();
-            if (evt.when == 0)
-                evt.when = curtime;
-            
-            int d = Math.abs(clickX - evt.x) + Math.abs(clickY - evt.y);
-            
-            if (d > CLICK_DISTANCE) {
-                evt.clickCount = 1;
-            }
-            
-            clickWhen = evt.when;
-            clickX = evt.x;
-            clickY = evt.y;
-        }
-    }
-    
-    public void translateEvent(Event e, Component child,
-			       Container parent) {
-        translateEvent(e, child, parent, false);
-    }
-    
-    private static void translateEvent(Event e,
-				       Component child, Container parent,
-				       boolean negate) {
-        
-        LayoutManager parentMgr = parent.getLayout();
-        
-        // Translate the event using the location
-        // from the GridBagLayout,
-        // if available.  This solves the location problem if you use
-        // GridBagLayout for all your containers.
-        if (parentMgr instanceof GBLayout) {
-            GBLayout gb = (GBLayout)parentMgr;
-            GBConstraints c = gb.getConstraints(child);
-            
-            Point p = null;
-            if (c != null)
-                p = c.location;
-            if (p == null)
-                p = child.location();
-            
-            if (negate)
-                e.translate(-p.x, -p.y);
-            else
-                e.translate(p.x, p.y);
-        } else {
-            Point p = child.location();
-            if (negate)
-                e.translate(-p.x, -p.y);
-            else
-                e.translate(p.x, p.y);
-        }
-    }
-    
-    //
-    // Constructor
-    //
-    
-    public VJPanel() {
-        relief = Util.RELIEF_FLAT;
-        borderLabel = null;
-        borderWidth = 2;
-        borderInsets = new Insets(5, 5, 5, 5);
-        labelAlignment = LEFT;
-    }
-    
-    public VJPanel(int relief) {
-        this();
-        setRelief(relief);
-    }
-    
-    public VJPanel(int relief, String label) {
-        this(relief);
-        setBorderLabel(label);
-    }
-    
-    public VJPanel(int relief, String label,
-		   int borderWidth, Insets borderInsets) {
-        this(relief, label);
-        setBorderWidth(borderWidth);
-        setBorderInsets(borderInsets);
-    }
-    
-    //
-    // Children that are not visible should
-    // not be layed out.  The reason
-    // for this is that layout managers ignore non-visible components,
-    // therefore non-visible components do not get reshaped.
-    //
-    // In the case of a non-visible, non-container component, there is
-    // no problem.  But if you have a non-visible container, then the
-    // layout method should not be called on that container.   But AWT
-    // ignores visibility and calls layout on
-    // all containers regardless.
-    //
-    // The problem with this is that a non-visible container will not
-    // have been reshaped when its parent was layed out.  Therefore,
-    // calling layout on this container causes it to do a layout based
-    // on its own bogus size.  This means that all the child components
-    // get reshaped and validated with incorrect sizes!  If the
-    // non-visible container is later made
-    // visible, all of its components
-    // are already valid so they don't get layed out again.  But these
-    // components have incorrect sizes.
-    //
-    // This workaround ensures that layout is not called on non-visible
-    // children of the container.
-    //
-    public void validate() {
-        if (!isValid() && getPeer() != null) {
-            layout();
-            
-            // Unfortunately, we don't have access to the valid flag.
-            // Fortunately, it is okay to leave the component invalid.
-            //
-            // Components in an AWT application
-            // are invalid most of the time
-            // anyways, because if any child component invalidate, then
-            // all the parents are invalidated.  And there are many
-            // situations where a child calls
-            // invalidate where you don't
-            // want to call validate again.  So many components end up
-            // invalid all the time.  This is okay, because
-            // it just means
-            // that if you do call validate, then everything will get
-            // layed out again.
-            
-            // valid = true;
-        }
-        
-        int ncomponents = countComponents();
-        for (int i = 0; i < ncomponents; i++) {
-            Component comp = getComponent(i);
-            if (!comp.isValid() && comp.getPeer() !=
-		null && comp.isVisible()) {
-                comp.validate();
-            }
-        }
-    }
-    
-    protected void validateTree() {
-        if (!isValid() && getPeer() != null) {
-            layout();
-            
-            int ncomponents = countComponents();
-            for (int i = 0; i < ncomponents; ++i) {
-                Component comp = getComponent(i);
-                if ((comp instanceof Container) &&
-		    !(comp instanceof Window) &&
-		    (!comp.isValid() && comp.getPeer() != null) &&
-		    comp.isVisible()) {
-                    ((Container)comp).validate();
-                }
-            }
-        }
-    }
-    
-    // Workaround for idiotic JDK1.1 bug where if you add a
-    // component to a container that it is already in, then
-    // the component will be removed from the container!
-    //
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        if (comp.getParent() != this)
-            super.addImpl(comp, constraints, index);
-    }
-    // #endif
-    
-    public void setRelief(int relief) {
-        this.relief = relief;
-        
-        // Need to invalidate because changing
-        // from a flat relief to something
-        // else will cause the preferredSize to change.
-	invalidate();
-        repaint();
-    }
-    
-    public int getRelief() {
-        return relief;
-    }
-    
-    public void setBorderWidth(int borderWidth) {
-        if (borderWidth != this.borderWidth) {
-            this.borderWidth = borderWidth;
-            invalidate();
-            repaint();
-        }
-    }
-    
-    public int getBorderWidth() {
-        return borderWidth;
-    }
-    
-    public void setBorderLabel(String label) {
-        borderLabel = label;
-        invalidate();
-        repaint();
-    }
-    
-    public String getBorderLabel() {
-        return borderLabel;
-    }
-    
-    public void setLabelAlignment(int alignment) {
-        labelAlignment = alignment;
-        repaint();
-    }
-    
-    public int getLabelAlignment() {
-        return labelAlignment;
-    }
-    
-    public void setBorderInsets(Insets insets) {
-        if (insets == null)
-            this.borderInsets = new Insets(0, 0, 0, 0);
-        else
-            this.borderInsets = (Insets)insets.clone();
-        invalidate();
-    }
-    
-    public Insets getBorderInsets() {
-        return (Insets)borderInsets.clone();
-    }
-    
-    public Insets insets() {
-        int bd = getBD();
-        int h = getLabelAdjustedTop();
-        Insets insets = getAdjustedInsets();
-        
-        return new Insets(h + insets.top,
-			  bd + insets.left,
-			  bd + insets.bottom,
-			  bd + insets.right);
-    }
-    
-    public Dimension minimumSize() {
-        Dimension d = super.minimumSize();
-        int w = getLabelAdjustedMinWidth();
-        if (w > d.width)
-            d = new Dimension(w, d.height);
-        return d;
-    }
-    
-    public Dimension preferredSize() {
-        Dimension d = super.preferredSize();
-        int w = getLabelAdjustedMinWidth();
-        if (w > d.width)
-            d = new Dimension(w, d.height);
-        return d;
-    }
-    
-    private int getBD() {
-        int bd = 0;
-        if (relief != Util.RELIEF_FLAT || borderLabel != null)
-            bd = borderWidth;
-        return bd;
-    }
-    
-    private Insets getAdjustedInsets() {
-        Insets insets;
-        if (relief == Util.RELIEF_FLAT && borderLabel == null)
-            insets = new Insets(0, 0, 0, 0);
-        else
-            insets = borderInsets;
-        return insets;
-    }
-    
-    private int getLabelAdjustedTop() {
-        if (relief == Util.RELIEF_FLAT && borderLabel == null)
-            return 0;
-        
-        int bd = borderWidth;
-        int top = bd;
-        Font font = getFont();
-        
-        if (borderLabel != null && font != null) {
-            FontMetrics fm = getFontMetrics(font);
-            top = fm.getAscent() + fm.getDescent() + labelpadtop;
-            
-            if (!isLabelInBorder())
-                top += bd;
-            else if (top < bd)
-                top = bd;
-        }
-        
-        return top;
-    }
-    
-    private int getLabelAdjustedMinWidth() {
-        if (relief == Util.RELIEF_FLAT && borderLabel == null)
-            return 0;
-        
-        int bd = borderWidth;
-        int w = 2*bd + borderInsets.left + borderInsets.right;
-        
-        Font font = getFont();
-        if (borderLabel != null && font != null) {
-            FontMetrics fm = getFontMetrics(font);
-            w = Math.max(w, 2*bd + fm.stringWidth(borderLabel)
-			 + labelpadx + labelipadx);
-        }
-        
-        return w;
-    }
-    
-    private boolean isLabelInBorder() {
-        switch (relief) {
-	case Util.RELIEF_RAISED:
-	case Util.RELIEF_SUNKEN:
-	case Util.WIN95_RAISED:
-	case Util.WIN95_SUNKEN:
-	case Util.WIN95_FIELD_BORDER:
-	case Util.WIN95_WINDOW_BORDER:
-            return false;
-            
-	case Util.RELIEF_GROOVE:
-	case Util.RELIEF_RIDGE:
-	case Util.BLACK_BORDER:
-	case Util.RELIEF_FLAT:
-	default:
-            return true;
-        }
-    }
-    
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        Dimension size = size();
-        Insets insets = insets();
-        
-        g.setColor(getBackground());
-        if (insets.left > 0)
-            g.fillRect(0, 0, insets.left, size.height);
-        if (insets.top > 0)
-            g.fillRect(0, 0, size.width, insets.top);
-        if (insets.bottom > 0)
-            g.fillRect(0, size.height-insets.bottom,
-		       size.width, insets.bottom);
-        if (insets.right > 0)
-            g.fillRect(size.width-insets.right, 0,
-		       insets.right, size.height);
-        
-        paint(g);
-    }
-    
-    public void paint(Graphics g) {
-        // XXX This workaround is needed for both
-        // Windows and Solaris to ensure
-        //     all lightweight components contained
-        // within VJPanel are repainted
-        //     correctly;  For some reasons, VJPanel
-        // is entirely filled with
-        //     the background color whenever update()
-        // is called.  If only the
-        //     components within the clip region
-        // of the "Graphics g" parameter
-        //     is repainted, then the other lightweight
-        // components become
-        //     invisible because they get painted
-        // over with the VJPanel background.
-        //     The obvious suspect for filling
-        // the VJPanel background is the
-        //     fillRect calls in update(), but
-        // the problem exists even when
-        //     those fillRect calls are not executed.  See bug 4074362.
-        g = getGraphics();
-        // end of workaround
-        
-        super.paint(g);
-        
-        Dimension size = size();
-        Insets insets = insets();
-        int bd = borderWidth;
-        
-        FontMetrics fm = null;
-        if (borderLabel != null) {
-            fm = getFontMetrics(getFont());
-        }
-        
-        // Draw the border
-        if (relief != Util.RELIEF_FLAT && bd > 0) {
-            switch (relief) {
-	    case Util.RELIEF_FLAT:
-	    case Util.RELIEF_RAISED:
-	    case Util.RELIEF_SUNKEN:
-	    case Util.RELIEF_RIDGE:
-	    case Util.RELIEF_GROOVE:
-	    case Util.WIN95_RAISED:
-	    case Util.WIN95_SUNKEN:
-	    case Util.BLACK_BORDER:
-                g.setColor(getBackground());
-                break;
-                
-	    case Util.WIN95_FIELD_BORDER:
-	    case Util.WIN95_WINDOW_BORDER:
-                g.setColor(getParent().getBackground());
-                break;
-            }
-            int yoff = 0;
-            if (borderLabel != null) {
-                int ascent = fm.getAscent();
-                int descent = fm.getDescent();
-                
-                if (isLabelInBorder())
-                    yoff = (ascent + descent + labelpadtop - bd)/2;
-                else
-                    yoff = ascent + descent + labelpadtop;
-                
-                if (yoff < 0)
-                    yoff = 0;
-            }
-            
-            Global.util.draw3DRect(g, 0, yoff,
-				   size.width-1, size.height-1-yoff,
-				   relief, bd);
-        }
-        
-        // Draw the label
-        if (borderLabel != null) {
-            int stringWidth = fm.stringWidth(borderLabel);
-            int ascent = fm.getAscent();
-            int descent = fm.getDescent();
-            int x, y, h;
-            
-            switch (labelAlignment) {
-	    case LEFT:
-	    default:
-                x = bd + (labelpadx + labelipadx)/2;
-                break;
-	    case CENTER:
-                x = (size.width - stringWidth)/2;
-                break;
-	    case RIGHT:
-                x = size.width - (stringWidth + (labelpadx
-						 + labelipadx)/2 + bd);
-                break;
-            }
-            
-            y = labelpadtop + ascent;
-            h = labelpadtop + ascent + descent;
-            
-            if (isLabelInBorder() && bd > h) {
-                y = (bd - h)/2 + (labelpadtop + ascent);
-                h = bd;
-            }
-            
-            g.setColor(getBackground());
-            g.fillRect(x - labelipadx/2, 0, stringWidth +
-		       labelipadx, h);
-            
-            g.setColor(getForeground());
-            g.setFont(getFont());
-            g.drawString(borderLabel, x, y-1);
-        }
-    }
-    
-    //
-    // Workaround for Windows95 AWT bug:  If you call
-    // request focus while
-    // the mouse is pressed, you get spurious
-    // mouse down events.  Not only
-    // that, but the spurious events have
-    // clickCount set to 2, so you end
-    // up with spurious double clicks.  On Windows95 the component
-    // automatically gets the focus when you press the mouse inside it.
-    // Therefore, it isn't necessary to call
-    // requestFocus at all if running
-    // on Windows and the mouse is down (and this avoids the bug).
-    //
-    public void requestFocus() {
-        if (!Global.isWindows() || !VJPanel.isMouseDown)
-            super.requestFocus();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/VJScrollbar.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJScrollbar.java 1.9 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-
-public class VJScrollbar extends Panel {
-    
-    /**
-     * The horizontal Scrollbar variable.
-     */
-    public static final int	HORIZONTAL = Scrollbar.HORIZONTAL;
-    
-    /**
-     * The vertical Scrollbar variable.
-     */
-    public static final int	VERTICAL   = Scrollbar.VERTICAL;
-    
-    /**
-     * Are we running on Windows
-     */
-    private boolean win;
-    
-    /**
-     * Workaround scrollbar if we are running on Windows
-     */
-    private WinScrollbar winScrollbar;
-    
-    /**
-     * Normal scrollbar if we are not running on Windows
-     */
-    private Scrollbar scrollbar;
-    
-    /**
-     * Constructs a new vertical Scrollbar.
-     */
-    public VJScrollbar() {
-        this(VERTICAL);
-    }
-    
-    /**
-     * Constructs a new Scrollbar with the specified orientation.
-     */
-    public VJScrollbar(int orientation) {
-        win = Global.isWindows();
-        
-        GBLayout gridbag = new GBLayout();
-        setLayout(gridbag);
-        
-        GBConstraints c = new GBConstraints();
-        c.gridx = 0;
-        c.gridy = 0;
-        c.weightx = 1;
-        c.weighty = 1;
-        c.fill = GBConstraints.BOTH;
-        
-        if (win) {
-            winScrollbar = new WinScrollbar(orientation);
-            
-            // #ifdef JDK1.1
-            super.addImpl(winScrollbar, null, -1);
-            // #else
-	    // super.add(winScrollbar, -1);
-            // #endif
-            
-            gridbag.setConstraints(winScrollbar, c);
-        } else {
-            scrollbar = new Scrollbar(orientation);
-            
-            // #ifdef JDK1.1
-            super.addImpl(scrollbar, null, -1);
-            // #else
-	    // super.add(scrollbar, -1);
-            // #endif
-            
-            gridbag.setConstraints(scrollbar, c);
-        }
-    }
-    
-    /**
-     * Constructs a new Scrollbar with the specified orientation,
-     * value, page size,  and minumum and maximum values.
-     */
-    public VJScrollbar(int orientation, int value, int visible,
-		       int minimum, int maximum) {
-        this(orientation);
-        setValues(value, visible, minimum, maximum);
-    }
-    
-    // #ifdef JDK1.1
-    protected void addImpl(Component comp, Object constraints,
-			   int index) {
-        throw new Error(Global.getMsg(
-		"sunsoft.jws.visual.rt.awt.VJScrollbar.CantAdd"));
-    }
-    // #else
-    // public Component add(Component comp, int pos) {
-    //   throw new Error("Cannot add components to a VJScrollbar");
-    // }
-    // #endif
-    
-    /**
-     * Don't allow any components to be removed
-     */
-    public void remove(Component comp) {
-        throw new Error(Global.getMsg(
-		"sunsoft.jws.visual.rt.awt.VJScrollbar.CantRemove"));
-    }
-    
-    /**
-     * Returns the orientation for this Scrollbar.
-     */
-    public int getOrientation() {
-        if (win)
-            return winScrollbar.getOrientation();
-        else
-            return scrollbar.getOrientation();
-    }
-    
-    /**
-     * Returns the current value of this Scrollbar.
-     */
-    public int getValue() {
-        if (win)
-            return winScrollbar.getValue();
-        else
-            return scrollbar.getValue();
-    }
-    
-    /**
-     * Returns the current value of this Scrollbar.
-     */
-    public void setValue(int value) {
-        if (win)
-            winScrollbar.setValue(value);
-        else
-            scrollbar.setValue(value);
-    }
-    
-    /**
-     * Returns the minimum value of this Scrollbar.
-     */
-    public int getMinimum() {
-        if (win)
-            return winScrollbar.getMinimum();
-        else
-            return scrollbar.getMinimum();
-    }
-    
-    /**
-     * Returns the maximum value of this Scrollbar.
-     */
-    public int getMaximum() {
-        if (win)
-            return winScrollbar.getMaximum();
-        else
-            return scrollbar.getMaximum();
-    }
-    
-    /**
-     * Returns the visible amount of the Scrollbar.
-     */
-    public int getVisible() {
-        if (win)
-            return winScrollbar.getVisible();
-        else
-            return scrollbar.getVisible();
-    }
-    
-    /**
-     * Sets the line increment for this scrollbar. This is the value
-     * that will be added (subtracted) when the user hits the line down
-     * (up) gadgets.
-     */
-    public void setLineIncrement(int l) {
-        // Workaround for Motif increment warning
-        if (l < 1)
-            l = 1;
-        
-        if (win)
-            winScrollbar.setLineIncrement(l);
-        else
-            scrollbar.setLineIncrement(l);
-    }
-    
-    /**
-     * Gets the line increment for this scrollbar.
-     */
-    public int getLineIncrement() {
-        if (win)
-            return winScrollbar.getLineIncrement();
-        else
-            return scrollbar.getLineIncrement();
-    }
-    
-    /**
-     * Sets the page increment for this scrollbar. This is the value
-     * that will be added (subtracted) when the user hits the page down
-     * (up) gadgets.
-     */
-    public void setPageIncrement(int l) {
-        // Workaround for Motif page increment warning
-        if (l < 1)
-            l = 1;
-        
-        if (win)
-            winScrollbar.setPageIncrement(l);
-        else
-            scrollbar.setPageIncrement(l);
-    }
-    
-    /**
-     * Gets the page increment for this scrollbar.
-     */
-    public int getPageIncrement() {
-        if (win)
-            return winScrollbar.getPageIncrement();
-        else
-            return scrollbar.getPageIncrement();
-    }
-    
-    /**
-     * Sets the values for this Scrollbar.
-     */
-    public void setValues(int value, int visible, int minimum,
-			  int maximum) {
-        if (win)
-            winScrollbar.setValues(value, visible, minimum, maximum);
-        else
-            scrollbar.setValues(value, visible, minimum, maximum);
-    }
-    
-    /**
-     * Returns the String parameters for this Scrollbar.
-     */
-    protected String paramString() {
-        return super.paramString();
-    }
-    
-    /**
-     * Need to set the target of any scrollbar events to ourselves.
-     */
-    public boolean handleEvent(Event evt) {
-        switch (evt.id) {
-	case Event.SCROLL_LINE_UP:
-	case Event.SCROLL_LINE_DOWN:
-	case Event.SCROLL_PAGE_UP:
-	case Event.SCROLL_PAGE_DOWN:
-	case Event.SCROLL_ABSOLUTE:
-            if (win) {
-                if (evt.target == winScrollbar)
-                    evt.target = this;
-            } else {
-                if (evt.target == scrollbar)
-                    evt.target = this;
-            }
-            break;
-	default: return true;
-        }
-        
-        return super.handleEvent(evt);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/WinScrollbar.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,948 +0,0 @@
-/*
- * 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) 1994-1995, 2001 by Sun Microsystems, Inc. 
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
- *
- *
- *        Copyright (C) 1996  Active Software, Inc.
- *                  All rights reserved.
- *
- * @(#) WinScrollbar.java 1.13 - last change made 05/02/97
- */
-
-package sunsoft.jws.visual.rt.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.Util;
-import java.awt.*;
-
-
-public class WinScrollbar extends Canvas implements Runnable {
-    
-    /**
-     * The horizontal Scrollbar variable.
-     */
-    public static final int	HORIZONTAL = Scrollbar.HORIZONTAL;
-    
-    /**
-     * The vertical Scrollbar variable.
-     */
-    public static final int	VERTICAL   = Scrollbar.VERTICAL;
-    
-    /**
-     * The value of the Scrollbar.
-     */
-    int	value;
-    
-    /**
-     * The maximum value of the Scrollbar.
-     */
-    int	maximum;		// doesn't include the visible area
-    
-    /**
-     * The minimum value of the Scrollbar.
-     */
-    int	minimum;
-    
-    /**
-     * The size of the visible portion of the Scrollbar.
-     */
-    int	sVisible;
-    
-    /**
-     * The Scrollbar's orientation--being either horizontal or vertical.
-     */
-    int	orientation;
-    
-    /**
-     * The amount by which the scrollbar value will change when going
-     * up or down by a line.
-     */
-    int lineIncrement = 1;
-    
-    /**
-     * The amount by which the scrollbar value will change when going
-     * up or down by a page.
-     */
-    int pageIncrement = 10;
-    
-    /**
-     * Are we running on WindowsNT
-     */
-    private boolean winNT;
-    
-    private static WinScrollbar threadScrollbar;
-    private static Thread scrollThread;
-    private WinScrollbar currentScrollbar;
-    private int currentScrollAction;
-    private int currentScrollPosition;
-    
-    private static final int SCROLL_DELAY = 250;
-    private static final int SCROLL_INTERVAL = 40;
-    
-    /**
-     * Constructs a new vertical Scrollbar.
-     */
-    public WinScrollbar() {
-        this(VERTICAL);
-    }
-    
-    
-    /**
-     * Constructs a new Scrollbar with the specified orientation.
-     * @param orientation either Scrollbar.HORIZONTAL 
-     * or Scrollbar.VERTICAL
-     * @exception IllegalArgumentException When an
-     * illegal scrollbar orientation is given.
-    */
-    public WinScrollbar(int orientation) {
-        switch (orientation) {
-	case Scrollbar.HORIZONTAL:
-	case Scrollbar.VERTICAL:
-            this.orientation = orientation;
-            break;
-            
-	default:
-            /* JSTYLED */
-	    throw new IllegalArgumentException(Global.getMsg("sunsoft.jws.visual.rt.awt.WinScrollbar.IllegalOrientation"));
-        }
-        
-        winNT = Global.isWindowsNT();
-    }
-    
-    /**
-     * Constructs a new Scrollbar with the specified orientation,
-     * value, page size,  and minumum and maximum values.
-     * @param orientation either Scrollbar.HORIZONTAL 
-     * or Scrollbar.VERTICAL
-     * @param value the scrollbar's value
-     * @param visible the size of the visible portion of the
-     * scrollable area. The scrollbar will use this value when paging up
-     * or down by a page.
-     * @param minimum the minimum value of the scrollbar
-     * @param maximum the maximum value of the scrollbar
-     */
-    public WinScrollbar(int orientation, int value, int visible,
-			int minimum, int maximum) {
-        this(orientation);
-        setValues(value, visible, minimum, maximum);
-    }
-    
-    /**
-     * Returns the orientation for this Scrollbar.
-     */
-    public int getOrientation() {
-        return orientation;
-    }
-    
-    /**
-     * Returns the current value of this Scrollbar.
-     * @see #getMinimum
-     * @see #getMaximum
-     */
-    public int getValue() {
-        return value;
-    }
-    
-    /**
-     * Sets the value of this Scrollbar to the specified value.
-     * @param value the new value of the Scrollbar. If this value is
-     * below the current minimum or above 
-     * the current maximum, it becomes the
-     * new one of those values, respectively.
-     * @see #getValue
-     */
-    public void setValue(int value) {
-        if (value < minimum) {
-            value = minimum;
-        }
-        if (value > (maximum - sVisible)) {
-            value = maximum - sVisible;
-        }
-        if (value != this.value) {
-            this.value = value;
-            if (getPeer() != null)
-                peerSetValue(value);
-        }
-    }
-    
-    /**
-     * Returns the minimum value of this Scrollbar.
-     * @see #getMaximum
-     * @see #getValue
-     */
-    public int getMinimum() {
-        return minimum;
-    }
-    
-    /**
-     * Returns the maximum value of this Scrollbar.
-     * @see #getMinimum
-     * @see #getValue
-     */
-    public int getMaximum() {
-        return maximum;
-    }
-    
-    /**
-     * Returns the visible amount of the Scrollbar.
-     */
-    public int getVisible() {
-        return sVisible;
-    }
-    
-    /**
-     * Sets the line increment for this scrollbar. This is the value
-     * that will be added (subtracted) when the user hits the line down
-     * (up) gadgets.
-     */
-    public void setLineIncrement(int l) {
-        lineIncrement = l;
-        if (getPeer() != null)
-            peerSetLineIncrement(l);
-    }
-    
-    /**
-     * Gets the line increment for this scrollbar.
-     */
-    public int getLineIncrement() {
-        return lineIncrement;
-    }
-    
-    /**
-     * Sets the page increment for this scrollbar. This is the value
-     * that will be added (subtracted) when the user hits the page down
-     * (up) gadgets.
-     */
-    public void setPageIncrement(int l) {
-        pageIncrement = l;
-        if (getPeer() != null)
-            peerSetPageIncrement(l);
-    }
-    
-    /**
-     * Gets the page increment for this scrollbar.
-     */
-    public int getPageIncrement() {
-        return pageIncrement;
-    }
-    
-    /**
-     * Sets the values for this Scrollbar.
-     * @param value is the position in the current window.
-     * @param visible is the amount visible per page
-     * @param minimum is the minimum value of the scrollbar
-     * @param maximum is the maximum value of the scrollbar
-     */
-    public void setValues(int value, int visible, int minimum,
-			  int maximum) {
-        if (visible < 0)
-            visible = 0;
-        
-        if (visible > maximum)
-            visible = maximum;
-        
-        if (maximum < minimum) {
-            maximum = minimum;
-        }
-        if (value < minimum) {
-            value = minimum;
-        }
-        if (value > (maximum - visible)) {
-            value = (maximum - visible);
-        }
-        
-        this.value = value;
-        this.sVisible = visible;
-        this.minimum = minimum;
-        this.maximum = maximum;
-        
-        if (getPeer() != null)
-            peerSetValues(value, sVisible, minimum, maximum);
-    }
-    
-    /**
-     * Returns the String parameters for this Scrollbar.
-     */
-    protected String paramString() {
-        return super.paramString() +
-	    /* NOI18N */",val=" + value +
-	    /* NOI18N */",vis=" + isVisible() +
-	    /* NOI18N */",min=" + minimum +
-	    /* NOI18N */",max=" + maximum +
-	    ((orientation == VERTICAL) ? /* NOI18N */
-	    ",vert" : /* NOI18N */",horz");
-    }
-    
-    /**
-     * Returns the minimum size for the scrollbar
-     */
-    public Dimension minimumSize() {
-        if (orientation == VERTICAL)
-            return new Dimension(16, 50);
-        else
-            return new Dimension(50, 16);
-    }
-    
-    /**
-     * Returns the preferred size for the scrollbar
-     */
-    public Dimension preferredSize() {
-        return minimumSize();
-    }
-    
-    
-    // The rest of this code does the things
-    // that the peer would normally
-    // if the peer weren't so badly broken.
-    
-    private Image buffer;
-    private int prevWidth = 0;
-    private int prevHeight = 0;
-    private int action = 0;
-    
-    private int anchorPos;
-    private int anchorValue;
-    private int dragSpace;
-    
-    private static final int UP = 10;
-    private static final int DOWN = 11;
-    private static final int LEFT = 12;
-    private static final int RIGHT = 13;
-    
-    private static final int LINEUP = 20;
-    private static final int LINEDOWN = 21;
-    private static final int PAGEUP = 22;
-    private static final int PAGEDOWN = 23;
-    private static final int DRAG = 24;
-    
-    private void peerSetValue(int value) {
-        repaint();
-    }
-    
-    private void peerSetLineIncrement(int l) {
-    }
-    
-    private void peerSetPageIncrement(int l) {
-    }
-    
-    private void peerSetValues(int value, int sVisible,
-			       int minimum, int maximum) {
-        repaint();
-    }
-    
-    public void reshape(int x, int y, int width, int height) {
-        super.reshape(x, y, width, height);
-        
-        if (prevWidth != width || prevHeight != height) {
-            if (width > 0 && height > 0)
-                buffer = createImage(width, height);
-            else
-                buffer = null;
-            
-            prevWidth = width;
-            prevHeight = height;
-        }
-    }
-    
-    public void update(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        draw(g);
-    }
-    
-    public void paint(Graphics g) {
-        if (Global.isWindows())
-            g = getGraphics();
-        draw(g);
-    }
-    
-    private void draw(Graphics g) {
-        if (buffer == null)
-            return;
-        
-        drawScrollbar();
-        g.drawImage(buffer, 0, 0, null);
-    }
-    
-    private void drawScrollbar() {
-        Graphics g = buffer.getGraphics();
-        Dimension size = size();
-        int w = size.width;
-        int h = size.height;
-        
-        // Erase the old version
-        g.setColor(getBackground());
-        g.fillRect(0, 0, size.width, size.height);
-        
-        drawOutline(g, w-1, h-1);
-        drawEndBoxes(g, w-1, h-1);
-        
-        int info[] = getDragBoxInfo();
-        fillPageBox(g, w, h, info);
-        drawDragBox(g, w-1, h-1, info);
-    }
-    
-    private void drawOutline(Graphics g, int w, int h) {
-        g.setColor(Global.util.darker(getBackground()));
-        if (orientation == VERTICAL) {
-            g.drawRect(0, 0, w, w);
-            g.drawRect(0, w, w, h-2*w);
-            g.drawRect(0, h-w, w, w);
-        } else {
-            g.drawRect(0, 0, h, h);
-            g.drawRect(h, 0, w-2*h, h);
-            g.drawRect(w-h, 0, h, h);
-        }
-    }
-    
-    private void drawEndBoxes(Graphics g, int w, int h) {
-        if (orientation == VERTICAL) {
-            if (action != LINEUP) {
-                drawArrow(g, 0, 0, w, w, UP);
-                drawBox(g, 0, 0, w, w);
-            } else {
-                drawArrow(g, 1, 1, w, w, UP);
-            }
-            
-            if (action != LINEDOWN) {
-                drawArrow(g, 0, h-w, w, w, DOWN);
-                drawBox(g, 0, h-w, w, w);
-            } else {
-                drawArrow(g, 1, h-w+1, w, w, DOWN);
-            }
-        } else {
-            if (action != LINEUP) {
-                drawArrow(g, 0, 0, h, h, LEFT);
-                drawBox(g, 0, 0, h, h);
-            } else {
-                drawArrow(g, 1, 1, h, h, LEFT);
-            }
-            
-            if (action != LINEDOWN) {
-                drawArrow(g, w-h, 0, h, h, RIGHT);
-                drawBox(g, w-h, 0, h, h);
-            } else {
-                drawArrow(g, w-h+1, 1, h, h, RIGHT);
-            }
-        }
-    }
-    
-    private void fillPageBox(Graphics g, int w, int h, int info[]) {
-        g.setColor(pageDarker(getBackground()));
-        if (orientation == VERTICAL) {
-            if (action == PAGEUP) {
-                g.fillRect(1, w, w-2, info[0]-w);
-            } else if (action == PAGEDOWN) {
-                g.fillRect(1, info[0]+info[1]+1, w-2,
-			   h-(w+info[0]+info[1])-1);
-            }
-        } else {
-            if (action == PAGEUP) {
-                g.fillRect(h, 1, info[0]-h, h-2);
-            } else if (action == PAGEDOWN) {
-                g.fillRect(info[0]+info[1]+1, 1,
-			   w-(h+info[0]+info[1])-1, h-2);
-            }
-        }
-    }
-    
-    private void drawDragBox(Graphics g, int w, int h, int info[]) {
-        if (orientation == VERTICAL) {
-            drawBox(g, 0, info[0], w, info[1]);
-        } else {
-            drawBox(g, info[0], 0, info[1], h);
-        }
-    }
-    
-    private int [] getDragBoxInfo() {
-        int info[] = new int[2];
-        int minpix;
-        int deltapix;
-        Dimension size = size();
-        
-        if (orientation == VERTICAL) {
-            minpix = size.width;
-            deltapix = size.height - 2 * size.width;
-        } else {
-            minpix = size.height;
-            deltapix = size.width - 2 * size.height;
-        }
-        
-        int deltaval = maximum - minimum;
-        double d = (double)deltapix/(double)deltaval;
-        double xory = minpix + (value-minimum) * d;
-        double worh = sVisible * d;
-        
-        info[0] = (int)xory;
-        info[1] = (int)worh;
-        
-        return info;
-    }
-    
-    private void drawBox(Graphics g, int x, int y, int w, int h) {
-        g.setColor(getBackground());
-        Global.util.draw3DRect(g, x, y, w, h,
-			       Util.WIN95_WINDOW_BORDER, 2);
-        
-        if (true)
-            return;
-        else {
-            g.setColor(Global.util.brighter(getBackground()));
-            g.drawLine(x, y, x+w-1, y);
-            g.drawLine(x, y, x, y+h-1);
-            
-            g.setColor(Color.white);
-            g.drawLine(x+1, y+1, x+w-2, y+1);
-            g.drawLine(x+1, y+1, x+1, y+h-2);
-            
-            g.setColor(Color.black);
-            g.drawLine(x+w, y, x+w, y+h);
-            g.drawLine(x, y+h, x+w, y+h);
-            
-            g.setColor(Global.util.darker(getBackground()));
-            g.drawLine(x+w-1, y+1, x+w-1, y+h-1);
-            g.drawLine(x+1, y+h-1, x+w-1, y+h-1);
-        }
-    }
-    
-    private void drawArrow(Graphics g, int x, int y, int w, int h,
-			   int direction) {
-        Polygon p = new Polygon();
-        
-        // xoff=4 and yoff=4 for the default case where w=15 and y=15
-        int xoff = (w-3)/3;
-        int yoff = (h-3)/3;
-        int bd = 2;
-        
-        g.setColor(Color.black);
-        
-        switch (direction) {
-	case LEFT:
-            if (winNT) {
-                x -= xoff/4;
-                g.fillRect(x+bd+2*xoff-1, y+bd+(5*yoff/4)-1,
-			   xoff/2+1, yoff/2+1);
-            }
-            p.addPoint(x+bd+xoff-1, y+bd+(3*yoff/2)-1);
-            p.addPoint(x+bd+2*xoff-1, y+bd+yoff-3);
-            p.addPoint(x+bd+2*xoff-1, y+bd+2*yoff+1);
-            break;
-            
-	case RIGHT:
-            if (winNT) {
-                x += xoff/4+1;
-                g.fillRect(x+bd+(xoff/2)-1, y+bd+(5*yoff/4)-1,
-			   xoff/2+2, yoff/2+1);
-            }
-            p.addPoint(x+bd+xoff, y+bd+yoff-3);
-            p.addPoint(x+bd+xoff*2, y+bd+(3*yoff/2)-1);
-            p.addPoint(x+bd+xoff, y+bd+2*yoff+1);
-            break;
-            
-	case UP:
-            if (winNT) {
-                y -= yoff/4+1;
-                g.fillRect(x+bd+(5*xoff/4)-1, y+bd+2*yoff,
-			   xoff/2+1, yoff/2+1);
-            }
-            p.addPoint(x+bd+xoff-3, y+bd+2*yoff);
-            p.addPoint(x+bd+(3*xoff/2)-1, y+bd+yoff);
-            p.addPoint(x+bd+(3*xoff/2), y+bd+yoff);
-            p.addPoint(x+bd+2*xoff+2, y+bd+2*yoff);
-            break;
-            
-	case DOWN:
-            if (winNT) {
-                y += yoff/4+1;
-                g.fillRect(x+bd+(5*xoff/4)-1, y+bd+(yoff/2)-1,
-			   xoff/2+1, yoff/2+2);
-            }
-            p.addPoint(x+bd+xoff-2, y+bd+yoff);
-            p.addPoint(x+bd+2*xoff+1, y+bd+yoff);
-            p.addPoint(x+bd+(3*xoff/2)-1, y+bd+2*yoff);
-            p.addPoint(x+bd+(3*xoff/2)-1, y+bd+2*yoff-1);
-            break;
-        }
-        
-        g.fillPolygon(p);
-    }
-    
-    private static final double PAGE_DFACTOR = 0.8;
-    
-    /**
-     * Returns a darker version of this color used for the paging
-     * highlight color.
-     */
-    private Color pageDarker(Color c) {
-        return new Color(Math.max((int)(c.getRed()  *PAGE_DFACTOR), 0),
-			 Math.max((int)(c.getGreen()*PAGE_DFACTOR), 0),
-			 Math.max((int)(c.getBlue() *PAGE_DFACTOR), 0));
-    }
-    
-    public boolean mouseDown(Event evt, int x, int y) {
-        Dimension size = size();
-        int w = size.width;
-        int h = size.height;
-        
-        if (orientation == VERTICAL) {
-            if (y < w) {
-                lineUp(y);
-            } else if (y >= (h-w)) {
-                lineDown(y);
-            } else {
-                int info[] = getDragBoxInfo();
-                if (y >= (w+1) && y < info[0]) {
-                    pageUp(y);
-                } else if (y >= info[0]+info[1] && y < (h-w)) {
-                    pageDown(y);
-                } else if (y >= info[0] && y < info[0]+info[1]) {
-                    dragStart(x, y);
-                }
-            }
-            
-        } else {
-            if (x < h) {
-                lineUp(x);
-            } else if (x >= (w-h)) {
-                lineDown(x);
-            } else {
-                int info[] = getDragBoxInfo();
-                if (x >= (h+1) && x < info[0]) {
-                    pageUp(x);
-                } else if (x >= info[0]+info[1] && x < (w-h)) {
-                    pageDown(x);
-                } else if (x >= info[0] && x < info[0]+info[1]) {
-                    dragStart(x, y);
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean mouseDrag(Event evt, int x, int y) {
-        if (action == DRAG) {
-            drag(x, y);
-            return true;
-        } else if (threadScrollbar != null &&
-		   threadScrollbar.currentScrollbar == this) {
-            synchronized (threadScrollbar) {
-                if (orientation == VERTICAL)
-                    threadScrollbar.currentScrollPosition = y;
-                else
-                    threadScrollbar.currentScrollPosition = x;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean mouseUp(Event evt, int x, int y) {
-        cancelAutoScroll();
-        
-        if (action == DRAG) {
-            dragStop(x, y);
-        }
-        
-        action = 0;
-        repaint();
-        
-        return false;
-    }
-    
-    private boolean lineUp(int pos) {
-        boolean status = false;
-        action = LINEUP;
-        initAutoScroll(action, pos);
-        
-        int prevValue = value;
-        value = Math.max(minimum, value-lineIncrement);
-        if (value != prevValue) {
-            status = true;
-            postEvent(new Event(this, Event.SCROLL_LINE_UP,
-				new Integer(value)));
-        }
-        
-        repaint();
-        return status;
-    }
-    
-    private boolean lineDown(int pos) {
-        boolean status = false;
-        action = LINEDOWN;
-        initAutoScroll(action, pos);
-        
-        int prevValue = value;
-        value = Math.min(maximum-sVisible, value+lineIncrement);
-        if (value != prevValue) {
-            postEvent(new Event(this, Event.SCROLL_LINE_DOWN,
-				new Integer(value)));
-            status = true;
-        }
-        
-        repaint();
-        return status;
-    }
-    
-    private boolean pageUp(int pos) {
-        boolean status = false;
-        action = PAGEUP;
-        initAutoScroll(action, pos);
-        
-        int prevValue = value;
-        value = Math.max(minimum, value-pageIncrement);
-        if (value != prevValue) {
-            status = true;
-            postEvent(new Event(this, Event.SCROLL_PAGE_UP,
-				new Integer(value)));
-        }
-        
-        repaint();
-        return status;
-    }
-    
-    private boolean pageDown(int pos) {
-        boolean status = false;
-        action = PAGEDOWN;
-        initAutoScroll(action, pos);
-        
-        int prevValue = value;
-        value = Math.min(maximum-sVisible, value+pageIncrement);
-        if (value != prevValue) {
-            status = true;
-            postEvent(new Event(this, Event.SCROLL_PAGE_DOWN,
-				new Integer(value)));
-        }
-        
-        repaint();
-        return status;
-    }
-    
-    private void dragStart(int x, int y) {
-        action = DRAG;
-        
-        if (orientation == VERTICAL)
-            anchorPos = y;
-        else
-            anchorPos = x;
-        
-        anchorValue = value;
-        
-        Dimension size = size();
-        int info[] = getDragBoxInfo();
-        
-        if (orientation == VERTICAL)
-            dragSpace = size.height - size.width*2 - info[1];
-        else
-            dragSpace = size.width - size.height*2 - info[1];
-    }
-    
-    private void drag(int x, int y) {
-        if (orientation == VERTICAL)
-            newDragValue(y);
-        else
-            newDragValue(x);
-    }
-    
-    private void dragStop(int x, int y) {
-        action = 0;
-        drag(x, y);
-    }
-    
-    private void newDragValue(int pos) {
-        int pixelsDiff = pos - anchorPos;
-        int valDiff = (pixelsDiff * (maximum-minimum) / dragSpace);
-        int prevValue = value;
-        
-        value = anchorValue + valDiff;
-        if (valDiff < 0)
-            value = Math.max(value, minimum);
-        else
-            value = Math.min(value, maximum-sVisible);
-        
-        if (value != prevValue)
-            postEvent(new Event(this, Event.SCROLL_ABSOLUTE,
-				new Integer(value)));
-        
-        repaint();
-    }
-    
-    private void initAutoScroll(int action, int pos) {
-        if (Thread.currentThread() == scrollThread)
-            return;
-        
-        if (threadScrollbar == null) {
-            threadScrollbar = this;
-            scrollThread = new Thread(threadScrollbar, /* NOI18N */
-				      "WindowsScrollbarThread");
-            scrollThread.setDaemon(true);
-            scrollThread.start();
-        }
-        
-        synchronized (threadScrollbar) {
-            threadScrollbar.currentScrollbar = this;
-            threadScrollbar.currentScrollAction = action;
-            threadScrollbar.currentScrollPosition = pos;
-            threadScrollbar.notify();
-        }
-    }
-    
-    private void cancelAutoScroll() {
-        if (threadScrollbar != null) {
-            synchronized (threadScrollbar) {
-                threadScrollbar.currentScrollbar = null;
-                threadScrollbar.currentScrollAction = -1;
-                threadScrollbar.currentScrollPosition = -1;
-                threadScrollbar.notify();
-            }
-        }
-    }
-    
-    public synchronized void run() {
-        boolean scrolling = false;
-        long waitTime;
-        
-        while (scrollThread == Thread.currentThread()) {
-            long startTime = System.currentTimeMillis();
-            
-            if (currentScrollbar == null) {
-                waitTime = 0;
-                scrolling = false;
-            } else {
-                if (scrolling) {
-                    if (!doScroll(currentScrollbar,
-				  currentScrollAction,
-				  currentScrollPosition)) {
-                        cancelAutoScroll();
-                        waitTime = 0;
-                    } else {
-                        waitTime = SCROLL_INTERVAL;
-                    }
-                } else {
-                    waitTime = SCROLL_DELAY;
-                    scrolling = true;
-                }
-            }
-            
-            // Wait for "waitTime" milliseconds.
-            // But if "waitTime" is zero,
-            // then just wait for a notify.  If
-            // the currentScrollbar changes,
-            // then don't wait any longer.
-            if (waitTime == 0 || currentScrollbar == null) {
-                try { wait(0); }
-                catch (InterruptedException ex) {}
-            } else {
-                WinScrollbar initScrollbar = currentScrollbar;
-                long targetTime = startTime + waitTime;
-                long diff = targetTime - System.currentTimeMillis();
-                
-                while (currentScrollbar == initScrollbar && diff > 0) {
-                    try { wait(diff); }
-                    catch (InterruptedException ex) {}
-                    diff = targetTime - System.currentTimeMillis();
-                }
-                
-                if (currentScrollbar != initScrollbar)
-                    scrolling = false;
-            }
-        }
-    }
-    
-    private boolean doScroll(WinScrollbar scrollbar,
-			     int action, int pos) {
-        boolean status = false;
-        
-        switch (action) {
-	case LINEUP:
-            status = scrollbar.lineUp(pos);
-            break;
-            
-	case LINEDOWN:
-            status = scrollbar.lineDown(pos);
-            break;
-            
-	case PAGEUP:
-            if (continuePaging(scrollbar, action, pos)) {
-                status = scrollbar.pageUp(pos);
-            } else {
-                // Keep trying to scroll for the case
-                // where the user drags
-                // the mouse while paging.  We want to
-                // track the drag position
-                // in the direction of the original paging action.
-                status = true;
-            }
-            break;
-            
-	case PAGEDOWN:
-            if (continuePaging(scrollbar, action, pos)) {
-                status = scrollbar.pageDown(pos);
-            } else {
-                // Keep trying to scroll for the case
-                // where the user drags
-                // the mouse while paging.  We want to
-                // track the drag position
-                // in the direction of the original paging action.
-                status = true;
-            }
-            break;
-            
-	default:
-            break;
-        }
-        
-        return status;
-    }
-    
-    private boolean continuePaging(WinScrollbar scrollbar, int action,
-				   int pos) {
-        boolean status = false;
-        int info[] = scrollbar.getDragBoxInfo();
-        
-        if (pos < info[0]) {
-            status = (action == PAGEUP);
-        } else if (pos >= info[0]+info[1]) {
-            status = (action == PAGEDOWN);
-        }
-        
-        return status;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AMContainer.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- * 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.
- *
- * @(#) AMContainer.java 1.8 - last change made 04/25/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.util.Enumeration;
-
-/**
- * Interface that must be implemented by the containers in shadow trees.
- *
- * @version 	1.8, 04/25/96
- */
-public interface AMContainer {
-    public void add(AttributeManager child);
-    public void remove(AttributeManager child);
-    public void addChildBody(Shadow child);
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value);
-    public void removeChildBody(Shadow child);
-    public void createChildren();
-    public void destroyChildren();
-    public AttributeManager getChild(String name);
-    public Enumeration getChildList();
-    public int getChildCount();
-    public void reparentChildren();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AMContainerHelper.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
-/*
- * 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.
- *
- * @(#) AMContainerHelper.java 1.41 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.ComponentShadow;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * This is a helper class for shadow containers.  Shadow containers are
- * nodes in the shadow tree.  A shadow container should implement the
- * AMContainer interface.
- *
- * @version 	1.41, 06/17/97
- */
-public class AMContainerHelper {
-    /**
-     * The container that is being assisted by this helper class.
-     */
-    private AMContainer container;
-    
-    /**
-     * A list of any shadow children a particular shadow instance
-     * might have.
-     * This is used to describe the hierarchical relationship of
-     *  graphical
-     * objects in the interface.
-     */
-    private Vector children;
-    
-    /**
-     * Constructor.
-     */
-    public AMContainerHelper(AMContainer container) {
-        this.container = container;
-        children = new Vector();
-    }
-    
-    /**
-     * Returns the list of children this helper is keeping track
-     * of for the
-     * container.
-     */
-    public Vector getChildren() {
-        return children;
-    }
-    
-    /**
-     * Returns a list of the children that the caller can use
-     * only for reading
-     * and cannot alter.  The list is cloned because the caller
-     * might use it
-     * for removing children from the container.
-     */
-    public Enumeration getChildList() {
-        return ((Vector) children.clone()).elements();
-    }
-    
-    /**
-     * Returns the number of children in the container.
-     */
-    public int getChildCount() {
-        return children.size();
-    }
-    
-    /**
-     * Adds a child.
-     */
-    public void add(AttributeManager child) {
-        if (child != null && !children.contains(child)) {
-            // check to see that child isn't one of this container's parents
-            if (child instanceof AMContainer) {
-                for (AMContainer cn = container; cn != null;
-		     cn = ((AttributeManager)cn).getParent()) {
-                    if (cn == child) {
-                        throw new IllegalArgumentException(Global.getMsg(
-"sunsoft.jws.visual.rt.base.AMContainerHelper.adding__container's__p.0"));
-                    }
-                }
-            }
-            
-            if (child.getParent() != null) {
-                child.getParent().remove(child);
-            }
-            
-            child.setParent(container);
-            children.addElement(child);
-            
-            // Update the group tree
-            recurseCheckAdd(child);
-            
-            // Update the AWT tree
-            if ((child instanceof Shadow) && ((Shadow)child).getBody()
-                != null) {
-                container.addChildBody((Shadow) child);
-            }
-            
-            // Update the mode
-            AttributeManager mgr = (AttributeManager)container;
-            if (mgr.isLayoutMode() != child.isLayoutMode()) {
-                if (mgr.isLayoutMode())
-                    child.layoutMode();
-                else
-                    child.previewMode();
-            }
-        }
-    }
-    
-    private void recurseCheckAdd(AttributeManager child) {
-        /**
-         * AttributeManager instances are created with the "name"
-         * attribute set to null.  This is fine when the new instances
-         * are being created by generated code (runtime mode) or
-         * are being
-         * loaded from a file.  In both these cases the name has
-         * just been
-         * or is about to be set to something unique.
-         *
-         * The case we are watching for here is when the top-level
-         * root in
-         * the designer (build mode) tries to to create and add a new
-         * AtttributeManager object.  In this case a unique default name
-         * must be created here (so that every object in a new 
-         * application
-         * has a unique name.)
-         */
-        Root root = child.getRoot();
-        if (root != null && child.get(/* NOI18N */"name") == null
-	    && ((Boolean)
-		root.get(/* NOI18N */"autoNaming")).booleanValue())
-	    child.set(/* NOI18N */"name", root.getUniqueName(child));
-        
-        if (child instanceof Group) {
-            if (child.getRoot() != null) {
-                Group group = child.getRoot().getGroup();
-                if (group != null)
-                    group.add((Group)child);
-                
-                ((Group)child).setParentBody();
-            }
-        } else if (child instanceof AMContainer) {
-            AMContainer cntr = (AMContainer)child;
-            Enumeration e = cntr.getChildList();
-            while (e.hasMoreElements())
-                recurseCheckAdd((AttributeManager)e.nextElement());
-        }
-    }
-    
-    /**
-     * Removes a child.
-     */
-    public void remove(AttributeManager child) {
-        if (child != null) {
-            if (child.getParent() != container)
-                return;
-            
-            // update the the global register for unsaved changes
-            Root theRoot = child.getRoot();
-            if (theRoot != null && theRoot.isLoadedRoot())
-                DesignerAccess.setChangesMade(true);
-            
-            // Update the AWT tree
-            if ((child instanceof Shadow) && ((Shadow)child).getBody()
-                != null) {
-                container.removeChildBody((Shadow) child);
-            }
-            
-            // Update the group tree
-            recurseCheckRemove(child);
-            
-            // Remove the child from the tree
-            child.setParent(null);
-            children.removeElement(child);
-        }
-    }
-    
-    private void recurseCheckRemove(AttributeManager child) {
-        if (child instanceof Group) {
-            if (child.getRoot() != null) {
-                Group group = child.getRoot().getGroup();
-                if (group != null)
-                    group.remove((Group)child);
-                
-                ((Group)child).unsetParentBody();
-            }
-        } else if (child instanceof AMContainer) {
-            AMContainer cntr = (AMContainer)child;
-            Enumeration e = cntr.getChildList();
-            while (e.hasMoreElements())
-                recurseCheckRemove((AttributeManager)e.nextElement());
-        }
-    }
-    
-    /**
-     * Finds a child (by name.)
-     */
-    public AttributeManager getChild(String name) {
-        if (name != null) {
-            for (Enumeration e = children.elements();
-		 /* JSTYLED */
-		 e.hasMoreElements(); ) {
-		AttributeManager child = (AttributeManager)
-		    e.nextElement();
-		if (name.equals(child.get(/* NOI18N */"name")))
-		    return (child);
-	    }
-	}
-	return (null);
-    }
-
-    /**
-     * Create the container's children.
-     */
-    public void createChildren() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-        
-	    {
-		AttributeManager mgr = (AttributeManager) e.nextElement();
-        
-		// Don't create the child if it isn't visible
-		if (mgr.hasAttribute(/* NOI18N */"visible")) {
-		    Boolean v = (Boolean)mgr.get(/* NOI18N */"visible");
-		    if (v.booleanValue())
-			mgr.create();
-		}
-		else
-		    {
-			mgr.create();
-		    }
-	    }
-    }
-
-    /**
-     * Destroy all the children of the container.
-     */
-    public void destroyChildren() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-	    ((AttributeManager) e.nextElement()).destroy();
-    }
-
-    /**
-     * Reparent the children of the container.  This is called when the
-     * container is being recreated.
-     */
-    public void reparentChildren() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-        
-	    {
-		AttributeManager child = (AttributeManager)e.nextElement();
-		if ((child instanceof Shadow) && ((Shadow)child).getBody()
-		    != null) {
-		    container.addChildBody((Shadow) child);
-		}
-	    }
-    }
-
-    //
-    // Layout and Preview mode
-    //
-
-    public void layoutMode() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-        
-	    {
-		AttributeManager child = (AttributeManager)e.nextElement();
-		child.layoutMode();
-	    }
-    }
-
-    public void previewMode() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-        
-	    {
-		AttributeManager child = (AttributeManager)e.nextElement();
-		child.previewMode();
-	    }
-    }
-
-    public void preValidate() {
-	for (Enumeration e = children.elements(); e.hasMoreElements(); )
-        
-	    {
-		AttributeManager child = (AttributeManager)e.nextElement();
-		child.preValidate();
-	    }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Attribute.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
- * 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.
- *
- * @(#) Attribute.java 1.25 - last change made 07/30/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-/**
- * Storage for a single attribute.
- *
- * @version 	1.25, 07/30/96
- */
-public class Attribute implements Cloneable {
-    /**
-     * Name of this attribute.
-     */
-    private String name;
-    
-    /**
-     * The full class name of the type of the value of this attribute.
-     */
-    private String type;
-    
-    /**
-     * The actual value of this attribute.  It is of the type specified
-     * by the type field.
-     */
-    private Object value;
-    
-    /**
-     * The default value of this attribute.  It is of the type specified
-     * by the type field.
-     */
-    private Object defaultValue;
-    
-    /**
-     * Contains description flags about the nature of this attribute.
-     */
-    private int flags;
-    
-    /**
-     * The constructor initializes the value for the attribute.
-     * The initial value of the attribute is set to be the same
-     * as the default value.  If the default value is not a simple
-     * type, you
-     * may want to set the value again after cloning the default value,
-     * otherwise, directly setting internal members of the value will
-     * change
-     * the default value as well.
-     */
-    public Attribute(String name, String type, Object defaultValue,
-		     int flags) {
-        this.name = name;
-        this.type = type;
-        
-        // throwOnBadType is commented out for performance reasons.
-        // Shadow class construction is 15% faster with this
-        // commented out.
-        //
-        // throwOnBadType(defaultValue);
-        
-        this.value = defaultValue;
-        this.defaultValue = defaultValue;
-        this.flags = flags;
-    }
-    
-    private void throwOnBadType(Object checkee) {
-        // allow null
-        if (checkee == null)
-            return;
-        
-        if (checkee.getClass().getName().equals(type))
-            return; // FIX  for 4059234
-        
-        // type must pass "instance of" test (except for null)
-        Class typeClass = null;
-        try {
-            typeClass = Global.util.getClassLoader().loadClass(type);
-        } catch (ClassNotFoundException e) {
-            throw new Error(Global.fmtMsg(
-	    "sunsoft.jws.visual.rt.base.Attribute.ClassNotFound", type));
-        }
-        
-        if (typeClass.isInstance(checkee))
-            return;
-        
-        throw new Error(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.base.Attribute.IllegalAttribute",
-		      name, type, checkee.getClass().getName(), checkee));
-    }
-    
-    public String getName() {
-        return (name);
-    }
-    
-    public String getType() {
-        return (type);
-    }
-    
-    public Object getDefaultValue() {
-        return (defaultValue);
-    }
-    
-    void setDefaultValue(Object value) {
-        defaultValue = value;
-    }
-    
-    public boolean isModified() {
-        if (value == null)
-            return (defaultValue != null);
-        else
-            return (!value.equals(defaultValue));
-    }
-    
-    /**
-     * Resets the value to the default
-     */
-    public void reset() {
-        setValue(defaultValue);
-    }
-    
-    public Object getValue() {
-        return (value);
-    }
-    
-    /**
-     * Sets the value of the attribute.
-     */
-    public void setValue(Object value) {
-        // Commented out the "does new value equal old value"
-        // check, because:
-        // 1) Setting a value to "null" can cause a null pointer
-        //  exception
-        // 2) Some attributes may not implement equals properly
-        throwOnBadType(value);
-        
-        
-        this.value = value;
-    }
-    
-    public int getFlags() {
-        return (flags);
-    }
-    
-    public void addFlags(int flags) {
-        this.flags = (this.flags | flags);
-    }
-    
-    public boolean flagged(int flags) {
-        return ((flags & this.flags) != 0);
-    }
-    
-    /**
-     * Shallow clone for this attribute.  It's not a deep clone,
-     * only the
-     * references to the value and default value are cloned,
-     * not the actual
-     * values themselves.
-     */
-    public Object clone() {
-        Object retval;
-        try {
-            retval = super.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            throw new Error(e.getMessage());
-        }
-        return (retval);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AttributeList.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
- * 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.
- *
- * @(#) AttributeList.java 1.31 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.util.Hashtable;
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * Class for storing information about the attributes available on a
- * particular type of GUI object.
- *
- * @version 	1.31, 07/25/97
- */
-public class AttributeList implements Cloneable {
-    private Hashtable table;
-    private Hashtable aliasTable;
-    
-    public AttributeList() {
-        table = new Hashtable();
-        aliasTable = new Hashtable();
-    }
-    
-    public void add(Attribute attr) {
-        table.put(attr.getName(), attr);
-    }
-    
-    public void add(String name, String type, Object defaultValue) {
-        Attribute a = lookup(name);
-        if (a == null)
-            add(new Attribute(name, type, defaultValue, 0));
-        else
-            add(new Attribute(name, type, defaultValue, a.getFlags()));
-    }
-    
-    public void add(String name, String type, Object defaultValue,
-		    int flags) {
-        table.put(name, (new Attribute(name, type, defaultValue,
-				       flags)));
-    }
-    
-    public void alias(String name1, String name2) {
-        aliasTable.put(name1, name2);
-    }
-    
-    public Enumeration aliasKeys() {
-        return aliasTable.keys();
-    }
-    
-    public String resolveAlias(String name) {
-        String s1, s2;
-        
-        s1 = name;
-        s2 = s1;
-        while (s1 != null) {
-            s2 = s1;
-            s1 = (String)aliasTable.get(s1);
-        }
-        
-        return s2;
-    }
-    
-    public void remove(String name) {
-        table.remove(name);
-        aliasTable.remove(name);
-    }
-    
-    private Attribute lookup(String name) {
-        Attribute attr = (Attribute)table.get(name);
-        if (attr == null) {
-            name = resolveAlias(name);
-            attr = (Attribute)table.get(name);
-        }
-        return attr;
-    }
-    
-    public Attribute get(String name) {
-        return lookup(name);
-    }
-    
-    public boolean contains(String name) {
-        return (lookup(name) != null);
-    }
-    
-    /**
-     * Returns an enumeration of attributes with the given flags.
-     */
-    public Enumeration attributesWithFlags(int flags) {
-        Attribute s;
-        Vector set = new Vector();
-        for (Enumeration e = table.elements(); e.hasMoreElements(); ) {
-            s = (Attribute) e.nextElement();
-            if ((s.getFlags() & flags) != 0) {
-                set.addElement(s);
-            }
-        }
-        return (set.elements());
-    }
-    
-    /**
-     * Returns an enumeration of attributes that do not have
-     * the given flags.
-     */
-    public Enumeration attributesWithoutFlags(int flags) {
-        Attribute s;
-        Vector set = new Vector();
-        for (Enumeration e = table.elements(); e.hasMoreElements(); ) {
-            s = (Attribute) e.nextElement();
-            if ((s.getFlags() & flags) == 0) {
-                set.addElement(s);
-            }
-        }
-        return (set.elements());
-    }
-    
-    /**
-     * Returns an enumeration of all elements in the attribute list.
-     */
-    public Enumeration elements() {
-        return (table.elements());
-    }
-    
-    /**
-     * Returns the number of elements in the attribute list.
-     */
-    public int size() {
-        return (table.size());
-    }
-    
-    /**
-     * Merge the contents of the given list with this one.  New elements
-     * by the same name will overwrite old ones.  Attributes are cloned
-     * before merging with this list.
-     */
-    public void merge(AttributeList list) {
-        if (list != null) {
-            for (Enumeration e = list.elements(); e.hasMoreElements(); )
-                
-		{
-		    add((Attribute) ((Attribute) e.nextElement()).clone());
-		}
-            for (Enumeration e = list.aliasKeys();
-		 /* JSTYLED */
-		 e.hasMoreElements(); ) {
-		String s = (String)e.nextElement();
-		alias(s, list.resolveAlias(s));
-	    }
-	}
-    }
-
-    /**
-     * Returns an alphabetized enumeration of attributes.
-     */
-    public static Enumeration alphabetize(Enumeration e) {
-	Vector v = new Vector();
-	for (; e.hasMoreElements(); ) {
-	    int i;
-	    Attribute a = (Attribute) e.nextElement();
-	    for (i = 0; i < v.size(); i++) {
-		if (((Attribute)
-		     v.elementAt(i)).getName().compareTo(a.getName()) > 0)
-            
-		    {
-			v.insertElementAt(a, i);
-			break;
-		    }
-	    }
-	    if (i >= v.size()) {
-		v.addElement(a);
-	    }
-	}
-	return (v.elements());
-    }
-
-    /**
-     * Clones the attribute list.  The attributes in the list
-     * are cloned, but the attribute's value is not cloned (see
-     * the comment for the clone method in Attribute).
-     *
-     * @see Attribute
-     */
-    public Object clone() {
-	AttributeList retval = new AttributeList();
-	retval.merge(this);
-	return (retval);
-    }
-
-    public String toString() {
-	StringBuffer buf = new StringBuffer();
-    
-	for (Enumeration e = table.keys(); e.hasMoreElements(); ) {
-	    String key = (String) e.nextElement();
-	    buf.append(key + /* NOI18N */"(" + ((Attribute)
-				table.get(key)).getType() + /* NOI18N */") ");
-	}
-    
-	for (Enumeration e = aliasTable.keys(); e.hasMoreElements(); ) {
-	    String alias = (String) e.nextElement();
-	    buf.append(/* NOI18N */"alias:" + alias + /* NOI18N */"->"
-		       + (String) aliasTable.get(alias) + /* NOI18N */" ");
-	}
-    
-	return (buf.toString());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/AttributeManager.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,806 +0,0 @@
-/*
- * 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.
- *
- * @(#) AttributeManager.java 1.83 - last change made 07/29/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.type.Op;
-
-import java.awt.Event;
-import java.util.*;
-
-/*
- * NOTE: Whenever a new public or protected variable is added to this
- * class
- * the name of the variable must be added to the reserved words list
- * in the
- * Root class so that the user doesn't use it in one of the
- * generated Root
- * sub-classes.
- */
-
-/**
- * The AttributeManager class is a base class for objects that
- * have attributes.  The Shadow and Group classes are sub-classed
- * from AttributeManager.
- * <p>
- * 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
- * -----------------------------------------------------------------------
- * name            java.lang.String          null
-*  < /pre>
-*
-* @version 1.83, 07/29/97
-*/
-public class AttributeManager {
-    /**
-     * Flags
-     */
-    
-    /**
-     * Indicates a readonly attribute.  An attempt
-     * to set the attribute will result in an error.
-     */
-    public static final int READONLY = 0x1;
-    
-    /**
-     * Flags attributes that will not be shown in the Visual Java
-     * attribute editor.
-     */
-    public static final int HIDDEN = 0x2;
-    
-    /**
-     * Flags attributes that will not be stored in the
-     * save file.
-     */
-    public static final int TRANSIENT = 0x4;
-    
-    /**
-     * The parent will be notified by calling updateContainerAttribute
-     * on the parent whenever a CONTAINER attribute is changed.
-     */
-    public static final int CONTAINER = 0x8;
-    
-    /**
-     * This flag indicates that the default value for the attribute
-     * matches the default value for the AWT body.  If this flag is
-     * set, the setOnBody method will not be called during
-     * creation unless the value is actually changed.
-     * <p>
-     * Similarly for groups, if the DEFAULT flag is set, then
-     * setOnGroup will only be called during initialization if the
-     * attribute has actually changed.  Otherwise setOnGroup will
-     * be called regardless of whether the attribute has changed.
-     * <p>
-     * Note: This flag should only be used where performance is a
-     * concern, since resetting the default value on the AWT body
-     * should not change its behavior.
-     * <p>
-     */
-    public static final int DEFAULT = 0x10;
-    
-    /**
-     * This flag tells the attribute manager to not refetch the value
-     * of the attribute list during the refetchAttributes call.  This
-     * is useful for the AWT component fonts and colors that are
-     * inherited from their parent when set to null.
-     * If this flag were not set for those attributes, then they
-     * would end up everywhere in the save file.
-     */
-    public static final int DONTFETCH = 0x20;
-    
-    /**
-     * This flag tells the attribute editor's slot that it should
-     * not use
-     * a type editor for this attribute, even if there is one
-     * registered.
-     */
-    public static final int NOEDITOR = 0x400;
-    
-    /**
-     * The table where attributes are stored.
-     * Attributes may be added to this list during construction, but
-     * should not be added at any other time.
-     */
-    protected AttributeList attributes;
-    
-    /**
-     * The parent of this object.
-     */
-    AMContainer parent;
-    
-    /**
-     * A flag that is true once create() has been performed on a shadow
-     * object and remains so until destroy() is called.
-     */
-    boolean isCreated = false;
-    
-    /**
-     * Flag for storing the return value of inDesignerRoot while we
-     * are created.  This speeds up the check in sendToOps.
-     */
-    private Boolean inDesignerRoot = null;
-    
-    /**
-     * Creates the attributes list and assigns a unique name to this
-     * attribute manager.  Attributes may be added to the list of
-     * attributes
-     * in sub-class constructors, but should not be added at any
-     * other time.
-     */
-    public AttributeManager() {
-        attributes = new AttributeList();
-        
-        // name will be set around the time this object is added
-        // to a container
-        attributes.add(/* NOI18N */"name",
-		       /* NOI18N */"java.lang.String", null,
-		       Shadow.NONBODY | NOEDITOR);
-        
-        // operations for defining callbacks
-        attributes.add(/* NOI18N */"operations",
-		       /* NOI18N */"[Lsunsoft.jws.visual.rt.type.Op;", null,
-		       Shadow.NONBODY);
-    }
-    
-    /**
-     * Returns the parent for this attribute manager.
-     */
-    public AMContainer getParent() {
-        return parent;
-    }
-    
-    /**
-     * Sets the parent for this attribute manager.
-     */
-    public void setParent(AMContainer parent) {
-        this.parent = parent;
-    }
-    
-    /**
-     * Returns true if we are not running inside the designer.
-     */
-    public boolean isLive() {
-        Root r = getRoot();
-        while (r != null) {
-            if (r.isLoadedRoot())
-                return false;
-            
-            Group group = r.getGroup();
-            if (group == null)
-                break;
-            
-            r = group.getRoot();
-        }
-        
-        return true;
-    }
-    
-    /**
-     * Returns true if this instance is a direct descendant
-     * of the designer root.  Being a direct descendant means
-     * that there are no intermediate groups between this
-     * attribute manager and the root.
-     * The designer root is the root that is built inside
-     * Visual Java.
-     */
-    public boolean inDesignerRoot() {
-        if (inDesignerRoot != null)
-            return inDesignerRoot.booleanValue();
-        else
-            return checkDesignerRoot();
-    }
-    
-    private boolean checkDesignerRoot() {
-        Root myRoot = getRoot();
-        return (myRoot != null && myRoot.isLoadedRoot());
-    }
-    
-    /**
-     * Returns a type name suitable for use in making unique names for
-     * instances of this class (or one of its sub-classes).  This should
-     * be overridden in sub-classes to give more useful names.
-     */
-    protected String getUserTypeName() {
-        return (/* NOI18N */"manager");
-    }
-    
-    /**
-     * Puts an attribute's value directly into the attribute table.
-     */
-    protected final void putInTable(String key, Object value) {
-        Attribute a = attributes.get(key);
-        if (a == null)
-            throw new Error(Global.fmtMsg(
-"sunsoft.jws.visual.rt.base.AttributeManager.SetInvalidAttribute", key));
-        if (a.flagged(READONLY))
-            throw new Error(Global.fmtMsg(
-"sunsoft.jws.visual.rt.base.AttributeManager.ReadonlyAttribute", key));
-        
-        a.setValue(value);
-    }
-    
-    /**
-     * Gets an attribute's value directly from the attribute table.
-     */
-    protected final Object getFromTable(String key) {
-        Attribute a = attributes.get(key);
-        if (a == null)
-            throw new Error(Global.fmtMsg(
-"sunsoft.jws.visual.rt.base.AttributeManager.GetInvalidAttribute", key));
-        
-        return (a.getValue());
-    }
-    
-    /**
-     * Sets an attribute in this object's attribute list.  This may be
-     * overridden in sub-classes to introduce special behavior for the
-     * setting of some attributes.
-     */
-    public void set(String key, Object value) {
-        putInTable(key, value);
-        
-        // update the the global register for unsaved changes
-        if (inDesignerRoot())
-            DesignerAccess.setChangesMade(true);
-    }
-    
-    /**
-     * Gets an attribute from this shadow object's attribute list.  This
-     * may be overridden in sub-classes to introduce special behavior
-     * for the getting of some attributes.
-     */
-    public Object get(String key) {
-        return (getFromTable(key));
-    }
-    
-    /**
-     * Returns the type string for the attribute,
-     * or null if the attribute does not exist.
-     */
-    public String getType(String key) {
-        Attribute attr = attributes.get(key);
-        if (attr != null)
-            return attr.getType();
-        else
-            return null;
-    }
-    
-    /**
-     * Returns true if the attribute has the flag set, otherwise false.
-     */
-    public int getFlags(String key) {
-        Attribute attr = attributes.get(key);
-        if (attr != null)
-            return attr.getFlags();
-        else
-            return 0;
-    }
-    
-    /**
-     * Returns true if the attribute exists, otherwise return false.
-     */
-    public boolean hasAttribute(String key) {
-        return (attributes.get(key) != null);
-    }
-    
-    /**
-     * Return true if the attribute exists and the type matches,
-     * otherwise return false.
-     */
-    public boolean hasAttribute(String key, String type) {
-        Attribute attr = attributes.get(key);
-        if (attr != null)
-            return attr.getType().equals(type);
-        else
-            return false;
-    }
-    
-    /**
-     * Apply all the CONTAINER attributes in the child to the
-     * given parent.
-     */
-    public void updateContainerAttributes(AMContainer parent,
-					  AttributeManager child)
-    {
-        Enumeration e = child.attributes.elements();
-        while (e.hasMoreElements()) {
-            Attribute a = (Attribute)e.nextElement();
-            if (a.flagged(CONTAINER))
-                parent.updateContainerAttribute(child, a.getName(),
-						a.getValue());
-        }
-    }
-    
-    /**
-     * Return a reference to the entire table of attributes.
-     */
-    public AttributeList getAttributeList() {
-        refetchAttributeList();
-        
-        // Perhaps the attribute list should be cloned here.
-        // But this would
-        // cause a performance loss.  Anyone using getAttributeList
-        // should NOT modify the values of any of the attributes,
-        // especially those
-        // that have the DONTFETCH flag set.
-        return attributes;
-    }
-    
-    Attribute getAttribute(String name) {
-        return (Attribute)attributes.get(name);
-    }
-    
-    /**
-     * Calls get for all the attributes, and then stores the values
-     * directly in the attribute hash table.  This ensures that the
-     * list of attributes is up to date.
-     */
-    public void refetchAttributeList() {
-        Enumeration e = attributes.elements();
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            if (!attr.flagged(DONTFETCH | READONLY)) {
-                String name = attr.getName();
-                putInTable(name, get(name));
-            }
-        }
-    }
-    
-    /*
-     * Finds a component recursively by name.
-     */
-    public AttributeManager resolve(String name) {
-        if (name == null)
-            return null;
-        
-        if (name.equals(getFromTable(/* NOI18N */"name")))
-            return this;
-        
-        if (this instanceof AMContainer) {
-            for (Enumeration e = ((AMContainer) this).getChildList();
-		 /* JSTYLED */
-		 e.hasMoreElements(); ) {
-		AttributeManager child = (AttributeManager)
-		    e.nextElement();
-		AttributeManager s = child.resolve(name);
-		if (s != null)
-		    return s;
-	    }
-	}
-    
-	return null;
-    }
-
-    /**
-     * Finds a component from its full path name.
-     */
-    public AttributeManager resolveFullName(String name) {
-	Group group = getGroup();
-	if (group != null)
-	    return group.resolveFullName(name);
-	else
-	    return null;
-    }
-
-    /**
-     * Returns the body for a shadow after resolving it.
-     */
-    public Object resolveBody(String name) {
-	AttributeManager obj = resolve(name);
-	if (obj == null)
-	    return null;
-	if (!(obj instanceof Shadow))
-	    return null;
-    
-	return ((Shadow)obj).getBody();
-    }
-
-    /**
-     * Returns the name for this attribute manager.
-     */
-    public String getName() {
-	return (String)get(/* NOI18N */"name");
-    }
-
-    /**
-     * Returns a hierarchy name based on the group tree.
-     */
-    public String getFullName() {
-	String name = getName();
-    
-	Group group = getGroup();
-	if (group != null) {
-	    String groupName = group.getFullName();
-	    if (groupName != null)
-		name = groupName + /* NOI18N */"." + name;
-	}
-    
-	return name;
-    }
-
-    /**
-     * Initialize the object.  Only useful for groups.
-     */
-    public void initialize() {
-    }
-
-    /**
-     * Create the object.  The AWT components are constructed
-     * during creation.
-     */
-    public void create() {
-	isCreated = true;
-	inDesignerRoot = new Boolean(checkDesignerRoot());
-    
-	// if this is a container create its children
-	if (this instanceof AMContainer)
-	    ((AMContainer) this).createChildren();
-    }
-
-    /**
-     * Returns true if the attribute manager is created.
-     */
-    public boolean isCreated() {
-	return isCreated;
-    }
-
-    /**
-     * Recreates this object after a CONSTRUCTOR attribute has been set
-     * (overridden in Shadow).
-     */
-    public void recreate() {
-    }
-
-    /**
-     * This method is overridden in most sub-classes.  It should be the
-     * opposite of create() and should have the same ability to be
-     * called safely multiple times.
-     */
-    public void destroy() {
-	isCreated = false;
-	inDesignerRoot = null;
-    
-	// destroy all the children of this shadow object
-	if (this instanceof AMContainer)
-	    ((AMContainer) this).destroyChildren();
-    }
-
-    /**
-     * Returns a string that shows the hierarchy of shadow objects.
-     * Starts first one (the caller) off as the top level.
-     */
-    public String hierarchy() {
-	return (hierarchy(0));
-    }
-
-    /**
-     * Returns a string that shows the hierarchy of shadow objects.
-     */
-    private String hierarchy(int level) {
-	String indent = /* NOI18N */"";
-	for (int i = 0; i < level; i++)
-	    indent = indent + /* NOI18N */"    ";
-    
-	String kids = /* NOI18N */"";
-	if (this instanceof AMContainer) {
-	    for (Enumeration e = ((AMContainer) this).getChildList();
-		 /* JSTYLED */
-		 e.hasMoreElements(); )
-		kids = kids + ((AttributeManager)
-			       e.nextElement()).hierarchy(level + 1);
-	}
-    
-	return (indent + getFromTable(/* NOI18N */"name")
-		+ Global.newline() + kids);
-    }
-
-    /**
-     * Returns a String that represents the value of this Object.
-     */
-    public String toString() {
-	return (super.toString() + /* NOI18N */"["
-		+ ((this instanceof AMContainer) ?
-		   /* NOI18N */"container" : /* NOI18N */"nonContainer")
-		+ /* NOI18N */"]");
-    }
-
-    /**
-     * Returns the root for this object, or null if these is no root.
-     */
-    public Root getRoot() {
-	AttributeManager mgr = this;
-    
-	while (mgr != null && !(mgr instanceof Root))
-	    mgr = (AttributeManager)mgr.getParent();
-    
-	return (Root)mgr;
-    }
-
-    /**
-     * Returns the group for this object, or null if there is none.
-     */
-    public Group getGroup() {
-	Root root = getRoot();
-	if (root != null)
-	    return root.getGroup();
-	else
-	    return null;
-    }
-
-    /**
-     * Returns the group that is forwarding the specified attribute
-     * to this attribute manager.  Return null if the attribute is not
-     * being forwarded from any group.
-     */
-    protected Group getForwardingGroup(String attributeName) {
-	Root root = getRoot();
-	Group group = root.getGroup();
-	Group parent;
-    
-	if (group != null) {
-	    if (group.hasAttributeForward(this, attributeName)) {
-		parent = group.getParentGroup();
-		while (parent != null &&
-		       parent.hasAttributeForward(group, attributeName)) {
-		    group = parent;
-		    parent = group.getParentGroup();
-		}
-		return group;
-	    }
-	}
-    
-	return null;
-    }
-
-    /**
-     * replicate is used by Visual Java for cut and paste.
-     */
-    public AttributeManager replicate() {
-	// Create a new instance of the AttributeManager
-	AttributeManager newMgr = null;
-	try {
-	    newMgr = (AttributeManager)getClass().newInstance();
-	}
-	catch (InstantiationException ex) {
-	    // Perhaps this should be an Exception?
-	    System.out.println(ex.getMessage()
-			       + /* NOI18N */" " + this);
-	}
-	catch (IllegalAccessException ex) {
-	    // Perhaps this should be an Exception?
-	    System.out.println(ex.getMessage()
-			       + /* NOI18N */" " + this);
-	}
-	if (newMgr == null)
-	    return null;
-    
-	// Copy the attribute list
-	AttributeList list = getAttributeList();
-	Enumeration e = list.elements();
-	while (e.hasMoreElements()) {
-	    Attribute attr = (Attribute)e.nextElement();
-	    if (!attr.flagged(TRANSIENT | READONLY))
-		newMgr.set(attr.getName(), attr.getValue());
-	}
-    
-	// Replicate the children
-	if (this instanceof AMContainer) {
-	    AMContainer newCntr = (AMContainer)newMgr;
-	    e = ((AMContainer)this).getChildList();
-        
-	    while (e.hasMoreElements()) {
-		AttributeManager child = (AttributeManager)
-		    e.nextElement();
-		newCntr.add(child.replicate());
-	    }
-	}
-    
-	return newMgr;
-    }
-
-    //
-    // Events
-    //
-
-    /**
-     * Posts a message to this object's parent.
-     */
-    public void postMessageToParent(Message msg) {
-	if (parent != null)
-	    ((AttributeManager)parent).postMessage(msg);
-    }
-
-    /**
-     * Posts a message to this object.
-     */
-    public void postMessage(Message msg) {
-	if (inDesignerRoot())
-	    sendToOps(msg);
-    
-	if (!handleMessage(msg) && parent != null)
-	    ((AttributeManager)parent).postMessage(msg);
-    }
-
-    private void sendToOps(Message msg) {
-	Op ops[] = (Op[])get(/* NOI18N */"operations");
-	if (ops != null) {
-	    for (int i = 0; i < ops.length; i++) {
-		ops[i].filter.target = this;
-            
-		if (ops[i].scope == null)
-		    ops[i].scope = getRoot();
-            
-		// Don't handle GROUP actions
-		if (ops[i].action != null &&
-		    ops[i].action.target != null &&
-		    ops[i].action.target.getName() != null &&
-		    ops[i].action.target.getName().equals(/* NOI18N */"GROUP"))
-		    continue;
-            
-		ops[i].handleMessage(msg);
-	    }
-	}
-    }
-
-    /**
-     * May be overridden by subclasses that want to act
-     * on messages that are sent to this object.
-     */
-    public boolean handleMessage(Message msg) {
-	if (msg.isAWT)
-	    return handleEvent(msg, (Event)msg.arg);
-	else
-	    return false;
-    }
-
-    /**
-     * May be overridden by subclasses that want to act
-     * on AWT events that are sent to this object.
-     */
-    public boolean handleEvent(Message msg, Event evt) {
-	switch (evt.id) {
-        case Event.MOUSE_ENTER:
-	    return mouseEnter(msg, evt, evt.x, evt.y);
-        case Event.MOUSE_EXIT:
-	    return mouseExit(msg, evt, evt.x, evt.y);
-        case Event.MOUSE_MOVE:
-	    return mouseMove(msg, evt, evt.x, evt.y);
-        case Event.MOUSE_DOWN:
-	    return mouseDown(msg, evt, evt.x, evt.y);
-        case Event.MOUSE_DRAG:
-	    return mouseDrag(msg, evt, evt.x, evt.y);
-        case Event.MOUSE_UP:
-	    return mouseUp(msg, evt, evt.x, evt.y);
-        
-        case Event.KEY_PRESS:
-        case Event.KEY_ACTION:
-	    return keyDown(msg, evt, evt.key);
-        case Event.KEY_RELEASE:
-        case Event.KEY_ACTION_RELEASE:
-	    return keyUp(msg, evt, evt.key);
-        
-        case Event.ACTION_EVENT:
-	    return action(msg, evt, evt.arg);
-        case Event.GOT_FOCUS:
-	    return gotFocus(msg, evt, evt.arg);
-        case Event.LOST_FOCUS:
-	    return lostFocus(msg, evt, evt.arg);
-        
-        default:
-	    return false;
-	}
-    }
-
-    public boolean mouseDown(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean mouseDrag(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean mouseUp(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean mouseMove(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean mouseEnter(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean mouseExit(Message msg, Event evt, int x, int y) {
-	return false;
-    }
-
-    public boolean keyDown(Message msg, Event evt, int key) {
-	return false;
-    }
-
-    public boolean keyUp(Message msg, Event evt, int key) {
-	return false;
-    }
-
-    public boolean action(Message msg, Event evt, Object what) {
-	return false;
-    }
-
-    public boolean gotFocus(Message msg, Event evt, Object what) {
-	return false;
-    }
-
-    public boolean lostFocus(Message msg, Event evt, Object what) {
-	return false;
-    }
-
-    /**
-     * isLayoutMode - Are we in layout mode?
-     */
-    private boolean layoutMode = false;
-
-    /**
-     * Returns a boolean indicating if this object is in layout mode.
-     */
-    public boolean isLayoutMode() {
-	return layoutMode;
-    }
-
-    /**
-     * Called when Visual Java switches to layout mode.
-     */
-    public void layoutMode() {
-	layoutMode = true;
-    }
-
-    /**
-     * Called when Visual Java switches to preview mode.
-     */
-    public void previewMode() {
-	layoutMode = false;
-    }
-
-    /**
-     * Called after addNotify and before the window is reshaped.
-     */
-    protected void preValidate() {
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/BeanSerialization.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * 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
- */
-/*
- * Copyright 2001 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- *
- * ident	"%Z%%M%	%I%	%E% SMI"
- *
- */
-
-/*
- * @(#) BeanSerialization.java 1.5 - last change made 08/06/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.io.*;
-
-import sunsoft.jws.visual.rt.encoding.*;
-
-public class BeanSerialization {
-    
-    final static private boolean debug = false;
-    final static private boolean test = false;
-    
-    static public String serializeObject(Object obj) {
-        if (debug) System.out.println(/* NOI18N */"\nserializeObject: entered");
-        
-        /*
-	** serialize the bean
-	*/
-        
-        ByteArrayOutputStream byteOutStrm = new ByteArrayOutputStream();
-        try {
-            ObjectOutputStream objOutStrm = new ObjectOutputStream(byteOutStrm);
-            objOutStrm.writeObject(obj);
-            objOutStrm.flush();
-        } catch (NotSerializableException ex) {
-            // skip it since it is not serializable - not an err
-            if (debug) System.out.println(ex.toString());
-            return null;
-        } catch (Exception ex) {
-            throw new VJException(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.base.BeanSerialization.serExcpt",
-						obj, ex.toString()));
-        }
-        byte[] buf = byteOutStrm.toByteArray();
-        
-        if (debug) System.out.println(/* NOI18N */
-				      "serializeObject: serialized");
-        
-        /*
-	** encode the string
-	*/
-        
-        UCEncoder encoder = new UCEncoder();
-        String str = encoder.encodeBuffer(buf);
-        
-        if (debug) System.out.println(/* NOI18N */"serializeObject: encoded");
-        
-        return str;
-    }
-    
-    static public Object deserializeObject(String value, String objName) {
-        if (debug) System.out.println(/* NOI18N */
-				      "\ndeserializeObject: entered");
-        
-        if (value == null || value.length() == 0) {
-            if (debug) { 
-/* JSTYLED */ 
-                System.out.println(/* NOI18N */"deserializeObject: value is null");
-            }
-            return null;
-        }
-        
-        /*
-	** decode the string first
-	*/
-        
-        byte buf[] = null;
-        try {
-            UCDecoder decoder = new UCDecoder();
-            buf = decoder.decodeBuffer(value);
-        } catch (Exception ex) {
-            if (debug) System.out.println(ex.toString());
-            throw new VJException(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.base.BeanSerialization.decoderExcpt",
-						objName));
-        }
-        if (debug) System.out.println(/* NOI18N */"deserializeObject: decoded");
-        
-        /*
-	** deserialize the object
-	*/
-        
-        Object newBody = null;
-        try {
-            ByteArrayInputStream byteInStrm = new ByteArrayInputStream(buf);
-            ObjectInputStream objInStrm = new ObjectInputStream(byteInStrm);
-            newBody = objInStrm.readObject();
-        } catch (Exception ex) {
-            // ClassNotFoundException   from readObject
-            // OptionalDataException    from readObject
-            // StreamCorruptedException from ObjectInputStream
-            // IOException              from ObjectInputStream
-            String errMsg = Global.fmtMsg(
-		  "sunsoft.jws.visual.rt.base.BeanSerialization.deserExcpt",
-					  objName, ex.toString());
-            if (java.beans.Beans.isDesignTime()) {
-                DesignerAccess.reportInstantiationError(errMsg);
-            }
-            else
-		{
-		    throw new VJException(errMsg);
-		}
-        }
-        if (debug) {
-            System.out.println(/* NOI18N */"deserializeObject: deserialized");
-        }
-        return newBody;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/CustomClassLoader.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * 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"
- *
- * @(#) CustomClassLoader.java 1.1 - last change made 04/25/97
- *
- * Copyright (c) 1995, 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
- * SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
- * LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- * SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT
- * OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.lang.Class;
-
-public interface CustomClassLoader {
-    /**
-     * This method is called to load a class indicated by the
-     * className argument.
-     *
-     * @param   className  the name of the class to load
-     */
-    Class loadClass(String className) throws ClassNotFoundException;
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/DesignerAccess.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-/*
- * 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.
- *
- * @(#) DesignerAccess.java 1.25 - last change made 08/07/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import java.util.Hashtable;
-import java.awt.Insets;
-
-/**
- * Accessor class for use by Visual Java.  Gives
- * access to specific methods in the rt package that are package
- * private.  The methods in this class should not be used by any other
- * application; they are for use by Visual Java only and are subject
- * to change.
- *
- * @version 08/07/97, 1.25
- */
-public class DesignerAccess {
-    //
-    // Constants
-    //
-    public static final int STATUS_BAR = 2002;
-    
-    //
-    // Internal "Group" methods
-    //
-    public static ContainerShadow getContainer(Group group) {
-        return group.getContainer();
-    }
-    
-    public static PanelShadow getPanel(Group group) {
-        return group.getPanel();
-    }
-    
-    public static WindowShadow getWindow(Group group) {
-        return group.getWindow();
-    }
-    
-    public static void internalShowGroup(Group group) {
-        group.internalShowGroup();
-    }
-    
-    public static void internalHideGroup(Group group) {
-        group.internalHideGroup();
-    }
-    
-    public static boolean doingShow(Group group) {
-        return group.doingShow();
-    }
-    
-    public static void preValidate(Group group) {
-        group.preValidate();
-    }
-    
-    //
-    // Internal "AttributeManager" methods
-    //
-    public static AttributeManager replicate(AttributeManager mgr) {
-        return mgr.replicate();
-    }
-    
-    //
-    // Internal "Root" methods
-    //
-    public static void setMainChild(Root root, AttributeManager
-				    container, boolean isPanel) {
-        root.setMainChild(container, isPanel);
-    }
-    
-    public static void addRootObserver(Root root, RootObserver observer)
-    
-    {
-        root.addRootObserver(observer);
-    }
-    
-    public static void removeRootObserver(Root root, RootObserver
-					  observer) {
-        root.removeRootObserver(observer);
-    }
-    
-    public static void disableEventForwarding(Root root) {
-        root.disableEventForwarding();
-    }
-    
-    public static void enableEventForwarding(Root root) {
-        root.enableEventForwarding();
-    }
-    
-    public static void clearUniqueNameTable(Root root) {
-        root.clearUniqueNameTable();
-    }
-    
-    public static boolean isValidName(String name) {
-        return Root.isValidName(name);
-    }
-    
-    public static boolean isUniqueName(Root root, String name) {
-        return root.isUniqueName(name);
-    }
-    
-    public static boolean isUniqueName(Root root, String name,
-				       AttributeManager skip) {
-        return root.isUniqueName(name, skip);
-    }
-    
-    public static boolean isUniqueName(Root root, String name,
-				       AttributeManager skip,
-				       AttributeManager prune) {
-        return root.isUniqueName(name, skip, prune);
-    }
-    
-    public static String getUniqueName(Root root, AttributeManager
-				       child) {
-        return root.getUniqueName(child);
-    }
-    
-    public static String getUniqueName(Root root, AttributeManager
-				       child, Root otherTree) {
-        return root.getUniqueName(child, otherTree);
-    }
-    
-    public static String getProblemWithName(Root root, String name) {
-        return root.getProblemWithName(name);
-    }
-    
-    public static void setCursor(Root root, int cursor) {
-        root.setCursor(cursor);
-    }
-    
-    //
-    // LOADED ROOT
-    //
-    
-    /*
-     * Sets the loaded root flag.
-     */
-    public static void setLoadedRoot(Root root, boolean flag) {
-        root.setLoadedRoot(flag);
-    }
-    
-    //
-    // Designer classes used by FrameShadow, DialogShadow,
-    // GBPanel, RootFrame
-    // and RootDialog.
-    //
-    
-    private static Class frameClass;
-    private static Class dialogClass;
-    private static Class gbPanelClass;
-    private static Class rootWindowHelperClass;
-    
-    public static void setFrameClass(Class fc) {
-        frameClass = fc;
-    }
-    
-    public static Class getFrameClass() {
-        return frameClass;
-    }
-    
-    public static void setDialogClass(Class dc) {
-        dialogClass = dc;
-    }
-    
-    public static Class getDialogClass() {
-        return dialogClass;
-    }
-    
-    public static void setGBPanelClass(Class gbc) {
-        gbPanelClass = gbc;
-    }
-    
-    public static Class getGBPanelClass() {
-        return gbPanelClass;
-    }
-    
-    public static void setRootWindowHelperClass(Class c) {
-        rootWindowHelperClass = c;
-    }
-    
-    public static Class getRootWindowHelperClass() {
-        return rootWindowHelperClass;
-    }
-    
-    //
-    // The current working directory for the designer
-    //
-    private static String cwd;
-    
-    public static void setCWD(String cwd) {
-        DesignerAccess.cwd = cwd;
-    }
-    
-    public static String getCWD() {
-        return cwd;
-    }
-    
-    //
-    // UNSAVED EDITS REGISTRY
-    //
-    
-    /**
-     * Is true when there are unsaved changes.  Isn't going to get used
-     * unless the visual designer is running.
-     */
-    private static boolean changesMade = false;
-    
-    /*
-     * Returns whether there have been any changes made
-     * since the last save.
-     */
-    public static boolean getChangesMade() {
-        return (changesMade);
-    }
-    
-    /*
-     * Sets the changes made flag.  Set to true when a change is made.
-     * This needs to set to false at the top-level of the designer's GUI
-     * whenever a file is opened, a "New" is done, a file is saved, etc.
-     * This doesn't work all the time, so we might replace it with
-     * something else in the future.
-     */
-    public static void setChangesMade(boolean b) {
-        // if (b != changesMade) {
-        //   Error e = new Error("DesignerAccess.changesMade
-        // switched to " + b);
-        //   e.printStackTrace();
-        // }
-        changesMade = b;
-    }
-    
-    //
-    // COMPONENT -> SHADOW HASHTABLE
-    //
-    
-    /*
-     * Storage to map components (keys) to their shadow objects (values)
-     */
-    private static Hashtable shadowTable = new Hashtable();
-    
-    /*
-     * Returns the shadow table, which contains components (as keys) and
-     * their associated shadow objects (as the values.)  This one table
-     * is shared by all of runtime and the visual designer.
-     *  It is used to
-     * find the Group that should handle the event for a particular
-     * component
-     * and to find the shadow object for components in the designer.
-     */
-    public static Hashtable getShadowTable() {
-        return (shadowTable);
-    }
-    
-    /**
-     * Global lock (for paint workaround.)
-     */
-    public static Object mutex = new Object();
-    
-    /*
-     *
-     */
-    
-    private static DesignerErrorInterface designerError = null;
-    
-    static public void
-	setDesignerErrorInterface(DesignerErrorInterface obj) {
-        designerError = obj;
-    }
-    
-    static public void reportInstantiationError(String msg) {
-        if (!java.beans.Beans.isDesignTime())
-            return;
-        
-        if (designerError != null) {
-            designerError.reportInstantiationError(msg);
-        }
-        else
-	    {
-		System.out.println(msg);
-	    }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/DesignerErrorInterface.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * 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
- */
-/*
- * Copyright 2001 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- *
- * ident	"%Z%%M%	%I%	%E% SMI"
- *
- */
-
-/*
- * @(#) DesignerErrorInterface.java 1.1 - last change made 08/06/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-public interface DesignerErrorInterface {
-    public void reportInstantiationError(String errMsg);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/ExternalCallOut.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * 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.
- *
- * @(#) ExternalCallOut.java 1.3 - last change made 04/29/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-/**
- * An interface for an external call-out classes that know how to do
- * something with a Group object once its been created
- * and initialized
- * in the main.
- *
- * @version 	1.3, 04/29/96
- */
-public interface ExternalCallOut {
-    /**
-     * Set the Group that the main class has loaded and initialized.
-     */
-    public void initExternal(Group group);
-    
-    /**
-     * Start the operations of the external class.
-     */
-    public void startExternal();
-    
-    
-    /**
-     * Stop the operations of the external class.
-     */
-    public void stopExternal();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Global.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-/*
- * 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.
- *
- * @(#) Global.java 1.53 - last change made 08/12/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.util.StringTokenizer;
-import sunsoft.jws.visual.rt.props.MessageCatalog;
-
-/**
- * Globals for runtime area.
- *
- * @version 	1.53, 08/12/97
- */
-public class Global {
-    private static final double version = 1.0;
-    private static final String vendor = /* NOI18N */"SunSoft, Inc.";
-    private static final char   PERIOD = /* NOI18N */ '.';
-    
-    /**
-     * Returns the version number of this runtime package.
-     */
-    public static double getVersion() { return (version); }
-    
-    /**
-     * Returns the vendor of this runtime package.
-     */
-    public static String getVendor() { return (vendor); }
-    
-    /**
-     * A convenient instance of the Util class,
-     * easy access to the utility
-     * functions there.
-     */
-    public static Util util = new Util();
-    
-    // Which OS are we running?
-    // If we know we can work-around some AWT bugs.
-    private static boolean isWindows;
-    private static boolean isWindows95;
-    private static boolean isWindowsNT;
-    private static boolean isSolaris;
-    private static boolean isUnix;
-    private static boolean isIrix;
-    private static boolean isMotif;
-    
-    // What version of java are we using?
-    private static double javaVersion;
-    
-    // What do we use for new lines (when printing, generating, etc.)
-    private static String newline;
-    
-    // current message catalog for the current locale
-    private static MessageCatalog messageCatalog;
-    
-    static {
-        String osname = System.getProperty(/* NOI18N */"os.name");
-        isWindows = osname.startsWith(/* NOI18N */"Windows");
-        isWindows95 = osname.startsWith(/* NOI18N */"Windows 95");
-        isWindowsNT = osname.startsWith(/* NOI18N */"Windows NT");
-        isSolaris = osname.startsWith(/* NOI18N */"Solaris");
-        isUnix = !osname.startsWith(/* NOI18N */"Windows");
-        isIrix = osname.startsWith(/* NOI18N */"Irix");
-        isMotif = isUnix;
-        
-        // work-around for the fact that newline character
-        // sequences are different on Unix and Windows
-        newline = (isWindows ? /* NOI18N */"\r\n" : /* NOI18N */"\n");
-        
-        initJavaVersion();
-        
-        // ORIGINAL CODE
-        // load the msg catalog for the runtime classes for
-        // the current locale
-        // messageCatalog = new MessageCatalog(
-        // /* NOI18N */"sunsoft.jws.visual.rt.VisualRTProperties");
-        // END OFF ORIGINAL CODE
-        
-        // WORKAROUND
-        // XXX To workaround the JDK bug 4071131,
-        // which reports bogus errors,
-        // we always load VisualRTProperties_en_US for the
-        // Atlantis release.
-        // Since we don't have localized catalogs for
-        // any other locale in
-        // the Atlantis release, this works for Atlantis.  For releases
-        // after Atlantis, we have to undo this workaround
-        // and fix the real
-        // JDK problem.
-        messageCatalog = new MessageCatalog(
-	    /* NOI18N */"sunsoft.jws.visual.rt.props.VisualRTProperties",
-					    java.util.Locale.US);
-        // END OF WORKAROUND
-    }
-    
-    private static void initJavaVersion() {
-        String jv;
-        int i, len;
-        
-        javaVersion = 0.0;
-        jv = System.getProperty(/* NOI18N */"java.version");
-        
-        // Strip everything off starting at the first non-numeric
-        // character.
-        // The JWS java version will soon look like
-        // this: "1.0.1ss:<date-time>"
-        len = jv.length();
-        for (i = 0; i < len; i++) {
-            char c = jv.charAt(i);
-            if (!Character.isDigit(c) && c != PERIOD)
-                break;
-        }
-        jv = jv.substring(0, i);
-        
-        // JWS screws up the "java.version" property.  This will
-        // be fixed soon.
-        if (jv.equals(/* NOI18N */"")) {
-            javaVersion = 1.01;
-            return;
-        }
-        
-        // Count up the number of dot characters.
-        //  This is necessary because
-        // the JDK java version looks like this: "1.0.2"
-        int dotcount = 0;
-        len = jv.length();
-        for (i = 0; i < len; i++) {
-            if (jv.charAt(i) == PERIOD)
-                dotcount++;
-        }
-        
-        // The netscape java version looks like this: "1.021"
-        if (dotcount <= 1) {
-            try {
-                javaVersion = Double.valueOf(jv).doubleValue();
-                return;
-            }
-            catch (NumberFormatException ex) {
-            }
-        }
-        
-        // The JDK java version looks like this: "1.0.2"
-        double mult = 1;
-        StringTokenizer st = new StringTokenizer(jv, /* NOI18N */".");
-        while (st.hasMoreTokens()) {
-            javaVersion += Integer.parseInt(st.nextToken()) * mult;
-            mult *= 0.1;
-        }
-    }
-    
-    /**
-     * Returns true if running on Windows 95 or NT.
-     */
-    public static boolean isWindows() { return isWindows; }
-    
-    /**
-     * Returns true if running on Windows 95.
-     */
-    public static boolean isWindows95() { return isWindows95; }
-    
-    /**
-     * Returns true if running on Windows NT.
-     */
-    public static boolean isWindowsNT() { return isWindowsNT; }
-    
-    /**
-     * Returns true if running on Solaris.
-     */
-    public static boolean isSolaris() { return isSolaris; }
-    
-    /**
-     * Returns true if running on Unix.
-     */
-    public static boolean isUnix() { return isUnix; }
-    
-    /**
-     * Returns true if running on SGI Irix.
-     */
-    public static boolean isIrix() { return isIrix; }
-    
-    /**
-     * Returns true if using Motif.
-     */
-    public static boolean isMotif() { return isMotif; }
-    
-    /**
-     * Returns a string that can be used as a newline.
-     *  This string includes
-     * a carriage return if we are running on Windows.
-     */
-    public static String newline() { return newline; }
-    
-    /**
-     * Appends a newline to buf.  This also appends a carriage return
-     * if we are running on Windows.
-     */
-    public static void newline(StringBuffer buf)
-    { buf.append(newline); }
-    
-    /**
-     * Returns the version of Java we are using.
-     */
-    public static double javaVersion() {
-        return javaVersion;
-    }
-    
-    /**
-     * Returns a msg string from the current msg catalog
-     */
-    public static String getMsg(String key) {
-        return messageCatalog.getKeyMessage(key, null);
-    }
-    
-    public static String fmtMsg(String key, Object arg1) {
-        return messageCatalog.getFormattedKeyMessage(key, null, arg1);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2) {
-        return messageCatalog.getFormattedKeyMessage(key, null, arg1,
-						     arg2);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2,
-				Object arg3) {
-        return messageCatalog.getFormattedKeyMessage(key, null, arg1,
-						     arg2, arg3);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2,
-				Object arg3, Object arg4)
-    {
-        Object [] args = { arg1, arg2, arg3, arg4 };
-        return messageCatalog.getFormattedKeyMessage(key, null, args);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2,
-				Object arg3, Object arg4, Object arg5)
-    {
-        Object [] args = { arg1, arg2, arg3, arg4, arg5 };
-        return messageCatalog.getFormattedKeyMessage(key, null, args);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2,
-				Object arg3, Object arg4, Object arg5,
-				Object arg6)
-    {
-        Object [] args = { arg1, arg2, arg3, arg4, arg5, arg6 };
-        return messageCatalog.getFormattedKeyMessage(key, null, args);
-    }
-    
-    public static String fmtMsg(String key, Object arg1, Object arg2,
-				Object arg3, Object arg4, Object arg5,
-				Object arg6, Object arg7)
-    {
-        Object [] args = { arg1, arg2, arg3, arg4, arg5, arg6, arg7 };
-        return messageCatalog.getFormattedKeyMessage(key, null, args);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Group.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1716 +0,0 @@
-/*
- * 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.
- *
- * @(#) Group.java 1.143 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.awt.RootFrame;
-import sunsoft.jws.visual.rt.shadow.*;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.type.Converter;
-import sunsoft.jws.visual.rt.type.AMConverter;
-import sunsoft.jws.visual.rt.type.AMRef;
-import sunsoft.jws.visual.rt.base.Global;
-
-
-import java.awt.*;
-import java.util.*;
-import java.net.URL;
-import java.applet.Applet;
-
-/**
- * The base class for every kind of group.
- * <p>
- * 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
- * ---------------------------------------------------------------
- * visible         java.lang.Boolean         true
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @version 	1.143, 07/25/97
-*/
-public abstract class Group extends AttributeManager {
-    
-    // Print the warning message only once.
-    private boolean warned = false;
-    
-    /**
-     * This flag is used to detect when showGroup is called
-     * recursively during create.
-     * We don't want to execute the showGroup code twice
-     * because modal dialogs block during "show".
-     * This means that if
-     * show is called twice, the modal dialog will pop up
-     * again after it is hidden.
-     */
-    private boolean doingShow = false;
-    
-    /**
-     * This flag indicates whether or not the group is
-     * currently shown.
-     */
-    private boolean isShowing = false;
-    
-    /**
-     * This flag is set for forwarded attributes in a group.
-     */
-    public static final int FORWARD = 0x100;
-    
-    /**
-     * This flag is set for forwarded attributes that will
-     * be removed during initialization if the group's
-     * container does not define the attribute.
-     */
-    public static final int FORWARD_REMOVE = 0x200;
-    
-    /**
-     * This constant can be passed to the setCursor call.
-     * It indicates
-     * that the cursor should be restored to its previous value.
-     */
-    public static final int RESTORE_CURSOR = 50000;
-    
-    public static final int BACKSPACE_KEY = 8;
-    public static final int TAB_KEY = 9;
-    public static final int RETURN_KEY = 10;
-    public static final int ESCAPE_KEY = 27;
-    public static final int DELETE_KEY = 127;
-    
-    // The root of the shadow tree.
-    private Root root;
-    
-    /**
-     * Set to true when this group is initialized.
-     */
-    private boolean isInitialized;
-    
-    /**
-     * Set to true when this group has been started, but
-     * has not yet been stopped.
-     */
-    private boolean isStarted = false;
-    
-    /**
-     * Parent group for this group.
-     */
-    private Group parentGroup = null;
-    
-    private Vector children = new Vector();
-    
-    // Operations
-    private Vector operations = null;
-    
-    /**
-     * Time Bomb
-     */
-    private void checkDate() {
-        // August 1, 1996   : 838882801
-        // August 15, 1996  : 840092401
-        // October 15, 1996 : 845362801
-        
-        Date date = new Date(840092401000L);
-        if (System.currentTimeMillis() >= 840092401000L) {
-            throw new Error(Global.getMsg(
-		    "sunsoft.jws.visual.rt.base.Group.ExpiredVersion"));
-        } else if (!warned) {
-            warned = true;
-            System.out.println(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Group.ExpiredVersionDate",
-		    date.toString()));
-        }
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the lib/visual/gen/group.java file.
-    /**
-     * All the attributes used by this group must be defined in the
-     * constructor.  setOnGroup is called at initialization for all
-     * the attributes.  If the attribute has not been set prior to
-     * initialization, setOnGroup is called with the default value.
-     */
-    public Group() {
-        // The "visible" attribute MUST have the DEFAULT
-        // flag set!  We don't want "visible"
-        // being set during initialization.
-        attributes.add(/* NOI18N */"visible",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE, DEFAULT);
-    }
-    
-    /**
-     * Initialize the group.  The shadow tree for the group
-     * is created during initialization.
-     */
-	public void initialize() {
-		boolean wasInitialized = isInitialized;
-        
-		if (!isInitialized) {
-			if (!hasEnvironment()) {
-				throw new Error(Global.getMsg(
-"sunsoft.jws.visual.rt.base.Group.GroupInitializationWarning"));
-			}
-            
-			isInitialized = true;
-            
-			/**
-			 * AMREF: We could have started a recording of all
-			 * new AMRef's
-			 * here, but it's a performance hit that doesn't buy us
-			 * anything, the user shouldn't be making AMRef's
-			 * that point to
-			 * an object by a certain name, changing the name
-			 * of that object, and expecting it to work.
-			 *  The stopRecording call
-			 * further down goes with this call.
-			 */
-			// AMRef.startRecording();
-            
-			root = initRoot();
-            
-			if (root == null && !(this instanceof NVGroup))
-				throw new Error(Global.fmtMsg(
-"sunsoft.jws.visual.rt.base.Group.RootIsNull", this.getClass().getName()));
-            
-			/** AMREF: resolves all AMRef's loaded */
-			// AMRef.stopRecording(root);
-
-			removeForwardedAttributes();
-	     
-			initGroup();
-	     
-			if (operations != null) {
-				Enumeration e = operations.elements();
-				while (e.hasMoreElements()) {
-					Operations ops =
-						(Operations)e.nextElement();
-					ops.setRoot(root);
-				}
-			}
-		}
-	 
-		// Initialize the visible sub-groups
-		Enumeration e = getChildList();
-		while (e.hasMoreElements()) {
-			Group child = (Group)e.nextElement();
-			if (wouldBeVisible(child))
-				child.initialize();
-		}
-	 
-		if (!wasInitialized) {
-			// Set attributes on the newly initialized group
-			e = attributes.elements();
-			while (e.hasMoreElements()) {
-				Attribute a = (Attribute) e.nextElement();
-				String name = a.getName();
-      
-				if (a.isModified() ||
-				    !a.flagged(DEFAULT | READONLY)) {
-					set(name, a.getValue());
-				}
-			}
-  
-			if (isLayoutMode()) {
-				WindowShadow s = getWindow();
-				if (s != null)
-					s.setLayout(true);
-			}
-		}
-	}
-     
-	/**
-	 * Returns true if the group is currently initialized.
-	 */
-    public boolean isInitialized() {
-        return isInitialized;
-    }
-    
-    // NOTE: Any changes made to this comment should
-    // also be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * initRoot must be overridden in group subclasses to
-     * initialize the shadow tree.  The return value must be the
-     * root of the newly initialized shadow tree.
-     */
-    protected abstract Root initRoot();
-    
-    // NOTE: Any changes made to this comment should
-    // also be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * Called during initialization.  It is called just after
-     * initRoot is called, but before the sub-groups
-     * are initialized and
-     * before the attributes are sent to the setOnGroup method.
-     *
-     * initGroup is only called once in the lifetime of the Group.
-     * This is because groups cannot be uninitialized.
-     * Anything that
-     * needs to be cleaned up should be created in
-     * createGroup instead
-     * of initGroup, and then can be cleaned up in destroyGroup.
-     * createGroup and destroyGroup may be called multiple
-     * times during
-     * the lifetime of a group.
-     */
-    protected void initGroup() {};
-    
-    /**
-     * Returns a type name for this group to be used by visual java.
-     * May be overridden in sub-classes to give more useful names.
-     */
-    protected String getUserTypeName() {
-        return (Converter.shortClassName(getClass().getName()).toLowerCase());
-    }
-    
-    /**
-     * Returns the main container for this group.  This can
-     * be either a WindowShadow or a PanelShadow.
-     */
-    public ContainerShadow getContainer() {
-        if (root == null)
-            return null;
-        
-        AttributeManager mgr = root.getMainChild();
-        if (mgr == null)
-            return null;
-        else if (mgr instanceof ContainerShadow)
-            return (ContainerShadow)mgr;
-        else if (mgr instanceof Group)
-            return ((Group)mgr).getContainer();
-        else
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Group.UnexpectedMainChildType",
-		    mgr));
-    }
-    
-    /**
-     * Returns the main panel for this group.  Returns
-     * null if the main container is not a panel.
-     */
-    public PanelShadow getPanel() {
-        ContainerShadow c = getContainer();
-        if (c instanceof PanelShadow)
-            return (PanelShadow)c;
-        else
-            return null;
-    }
-    
-    /**
-     * Returns the main window for this group.  Returns
-     * null if the main container is not a window.
-     */
-    public WindowShadow getWindow() {
-        ContainerShadow c = getContainer();
-        if (c instanceof WindowShadow)
-            return (WindowShadow)c;
-        else
-            return null;
-    }
-    
-    /**
-     * Calls show or hide, depending on the value of cond.
-     */
-    public void show(boolean cond) {
-        if (cond)
-            show();
-        else
-            hide();
-    }
-    
-    /**
-     * Shows the group by setting the visible attribute to true.
-     */
-    public void show() {
-        set(/* NOI18N */"visible", Boolean.TRUE);
-    }
-    
-    /**
-     * Hides the group by setting the visible attribute to false.
-     */
-    public void hide() {
-        set(/* NOI18N */"visible", Boolean.FALSE);
-    }
-    
-    /**
-     * Returns true if the group is currently visible.
-     *
-     * If the application has not yet been fully initialized
-     * and created,
-     * then isVisible may return true for a group that is  not yet
-     * visible on the screen.  This means that by the time the
-     * initialization is complete, the group will be visible
-     * on the screen.
-     */
-    public boolean isVisible() {
-        Group base = getBase();
-        if (base == null)
-            return false;
-        else
-            return base.wouldBeVisible(this);
-    }
-    
-    /**
-     * Returns true if the child group passed as a parameter
-     * will be visible
-     * when this group is made visible.  If the group parameter
-     * is not a
-     * child of this group, then the return value will be false.
-     */
-    public boolean wouldBeVisible(Group group) {
-        while (group != null && group != this) {
-            Boolean v = (Boolean)group.get(/* NOI18N */"visible");
-            if (!v.booleanValue())
-                return false;
-            
-            AttributeManager mgr = (AttributeManager)group.getParent();
-            while (!(mgr instanceof Root)) {
-                v = (Boolean)mgr.get(/* NOI18N */"visible");
-                if (!v.booleanValue())
-                    return false;
-                mgr = (AttributeManager)mgr.getParent();
-            }
-            
-            if (mgr == null)
-                return false;
-            
-            group = ((Root)mgr).getGroup();
-        }
-        
-        if (group == null)
-            return false;
-        
-        return true;
-    }
-    
-    /**
-     * Returns true if the group is currently showing.
-     */
-    public boolean isShowing() {
-        return isShowing;
-    }
-    
-    /**
-     * The only reason that this method exists if because
-     *  the FrameEditor
-     * bypasses the visible attribute, and calls internalShowGroup
-     * directly.  This means that the group becomes visible 
-     * even though
-     * the visible attribute is set to false.  In this situation, we
-     * still want the isVisible call for child groups to
-     * return true,
-     * hence the need for the isContainerVisible method.
-     */
-    private boolean isContainerVisible() {
-        if (inDesignerRoot()) {
-            ComponentShadow s = getContainer();
-            if (s == null)
-                return false;
-            
-            Component comp = (Component)s.getBody();
-            if (comp == null)
-                return false;
-            
-            return comp.isVisible();
-        } else {
-            return false;
-        }
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by group subclasses that want
-     * to know when the group becomes visible.
-     *  It is called just before
-     * the group becomes visible.
-     *  The group will already be initialized
-     * and created at this point.
-     */
-    protected void showGroup() {
-    }
-    
-    /**
-     * Shows the group.  Calling internalShowGroup does
-     * not affect the
-     * value of the visible attribute.
-     */
-    void internalShowGroup() {
-        Group base = null;
-        
-        // Initialize ourselves if we haven't been initialized yet
-        if (!isInitialized) {
-            base = getBase();
-            if (base != null)
-                base.setCursor(Frame.WAIT_CURSOR);
-            
-            initialize();
-        }
-        
-        // Create ourselves if we haven't been created yet
-        if (!isCreated) {
-            doingShow = true;
-            create();
-            doingShow = false;
-        }
-        
-        if (!isShowing) {
-            isShowing = true;
-            
-            if (root != null)
-                showGroup();
-            
-            // showGroup might call hide (trust me, it can happen)
-            if (!isShowing)
-                return;
-        }
-        
-        //
-        // Invoke "show" on all the child groups that
-        // are not directly
-        // descended from the root.  This solves two problems:
-        //
-        // 1) Panel groups are not immediate children of the root,
-        //    therefore showRoot does not show the panel groups.
-        //
-        // 2) Some of the groups may not yet be created due
-        // to delayed
-        // instantiation.  Calling internalShowGroup
-        // on these groups
-        // will cause them to be initialized and created, as well as
-        // shown. For example, say that this group was created while
-        // its visible attribute was set to false.  This means that
-        //   none of its child groups would be created because
-        // isVisible
-        //    would return false for them.
-        //  Now say that visibile is set
-        //   to true for this group, causing internalShowGroup to be
-        //    called.  At this point, the child groups need to be
-        //    initialized, created and shown, because now
-        // isVisible will
-        //    return true for them.
-        //
-        // Note that this needs to be done before the call
-        // to showRoot.
-        // This is because panel groups must be created
-        // before the frames
-        // that contain them are shown in showRoot,or else the frame
-	// will come up the wrong size.
-        //
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            Group child = (Group)e.nextElement();
-            if (wouldBeVisible(child) && child.getParent() != root)
-                child.internalShowGroup();
-        }
-        
-        // Invoke "show" on all the children of the root
-        if (root != null)
-            root.showRoot();
-        
-        // Start the group if it isn't already started
-        if (hasStarted() && !isStarted)
-            start();
-        
-        // Revert the cursor
-        if (base != null)
-            base.setCursor(RESTORE_CURSOR);
-    }
-    
-    // NOTE: Any changes made to this comment should
-    // also be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by group subclasses that want
-     * to know when the group becomes non-visible.
-     *  It is called just
-     * before the group becomes non-visible.
-     */
-    protected void hideGroup() {
-    }
-    
-    /**
-     * Hides the group.  Calling hideGroup does not affect the
-     * value of the visible attribute.
-     *  You should normally use "hide"
-     * instead of "hideGroup" so that the visible attribute is
-     * properly
-     * updated.
-     */
-    void internalHideGroup() {
-        if (!isInitialized)
-            return;
-        
-        if (isShowing) {
-            isShowing = false;
-            if (root != null)
-                hideGroup();
-        }
-        
-        // Invoke "hide" on all the child groups
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            Group group = (Group)e.nextElement();
-            if (group.getParent() != root)
-                group.internalHideGroup();
-        }
-        
-        // Invoke "hide" on all the children of the root
-        if (root != null)
-            root.hideRoot();
-    }
-    
-    //
-    // Create and Destroy - Life span of the shadow bodies
-    //
-    
-    /**
-     * Create the group.  Creating the group causes
-     * all the AWT components
-     * to be created.  Also, the createGroup method is called during
-     * group creation.
-     */
-    public void create() {
-        // Initialize ourselves if we haven't been initialized yet
-        if (!isInitialized)
-            initialize();
-        
-        if (!hasBase()) {
-            throw new Error(Global.getMsg(
-		    "sunsoft.jws.visual.rt.base.Group.GroupCreationWarning"));
-        }
-        
-        boolean wasCreated = isCreated;
-        boolean tmpShow = doingShow;
-        boolean shouldShow = false;
-        
-        if (!wasCreated && !doingShow() && isVisible()) {
-            // Set the doingShow flag to true so that the windows
-            // under the
-            // root will not show while they are being created.
-            //  We want to
-            // have them wait to be shown until internalShowGroup
-            // is called.
-            doingShow = true;
-            shouldShow = true;
-        }
-        
-        super.create();
-        
-        if (root == null && !(this instanceof NVGroup))
-            throw new Error(Global.getMsg(
-		    "sunsoft.jws.visual.rt.base.Group.RootIsNull2"));
-        
-        if (root != null)
-            root.create();
-        
-        if (!wasCreated) {
-            createGroup();
-            
-            // Show the group if it is visible
-            if (shouldShow)
-                internalShowGroup();
-        }
-        
-        doingShow = tmpShow;
-    }
-    
-    // NOTE: Any changes made to this comment should
-    // also be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * Called during group creation.  Groups can be
-     * created and destroyed multiple times during their lifetime.
-     * Anything that is created in createGroup should be cleaned up
-     * in destroyGroup.  createGroup is called just after the group
-     * has been created.  Anything that needs to be done before the
-     * group is created should be done in initGroup.
-     */
-    protected void createGroup() {}
-    
-    /**
-     * Destroy the group.  This will destroy all AWT components, but
-     * does not destroy the shadow tree or the group tree. The group
-     * can be created again after a destroy by calling the "create"
-     * method.
-     */
-    public void destroy() {
-        if (!isInitialized)
-            return;
-        
-        stop();
-        
-        if (isCreated)
-            destroyGroup();
-        
-        super.destroy();
-        
-        if (root != null)
-            root.destroy();
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * Called during the destroy operation.  Groups can
-     * be created and destroyed multiple times during their
-     * lifetime.
-     * Anything that has been created in createGroup should be
-     * cleaned up
-     * in destroyGroup.  destroyGroup is called just before the
-     * group
-     * is destroyed.
-     */
-    protected void destroyGroup() {}
-    
-    //
-    // start/stop
-    //
-    
-    /**
-     * This method should not be overridden by group subclasses.
-     * The "startGroup" method should be overridden instead.
-     */
-    public void start() {
-        if (!isInitialized)
-            return;
-        
-        if (!isCreated)
-            create();
-        
-        if (!isStarted) {
-            isStarted = true;
-            startGroup();
-        }
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            Group child = (Group)e.nextElement();
-            if (wouldBeVisible(child))
-                child.start();
-        }
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by group subclasses that want
-     * to be informed when the application is starting.
-     *  This method is
-     * only called after the entire application has been
-     * initialized and created.
-     *
-     * For applets, startGroup is called whenever start
-     * is called on the  applet.
-     */
-    protected void startGroup() {}
-    
-    /**
-     * Returns true if the group is currently started.
-     */
-    public boolean isStarted() {
-        return isStarted;
-    }
-    
-    /**
-     * This method should not be overridden by group subclasses.
-     * The "stopGroup" method should be overridden instead.
-     */
-    public void stop() {
-        if (!isInitialized)
-            return;
-        
-        if (isStarted) {
-            isStarted = false;
-            stopGroup();
-        }
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements())
-            ((Group)e.nextElement()).stop();
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by group subclasses that want
-     * to be informed when the application is stopping.  This method
-     * will be called before a destroy is done.
-     *
-     * For applets, stopGroup is called whenever stop is called
-     * on the applet.
-     */
-    protected void stopGroup() {}
-    
-    /**
-     * Returns true if the base group has been started.
-     */
-    protected boolean hasStarted() {
-        if (isBase()) {
-            return isStarted;
-        } else if (parentGroup != null) {
-            return parentGroup.hasStarted();
-        } else {
-            return false;
-        }
-    }
-    
-    //
-    // Group tree - An group can be either a node or a leaf.
-    //
-    
-    void add(Group child) {
-        if (!children.contains(child)) {
-            child.setParentGroup(this);
-            children.addElement(child);
-        }
-    }
-    
-    void remove(Group child) {
-        if (children.contains(child)) {
-            child.setParentGroup(null);
-            children.removeElement(child);
-        }
-    }
-    
-    void addRootChildren(Root root) {
-        addChildren((AMContainer)root);
-    }
-    
-    private void addChildren(AMContainer cntr) {
-        Enumeration e = cntr.getChildList();
-        while (e.hasMoreElements()) {
-            AttributeManager child = (AttributeManager)e.nextElement();
-            if (child instanceof Group)
-                add((Group)child);
-            if (child instanceof AMContainer)
-                addChildren((AMContainer)child);
-        }
-    }
-    
-    void removeRootChildren(Root root) {
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            Group child = (Group)e.nextElement();
-            if (child.getRoot() == root)
-                remove(child);
-        }
-    }
-    
-    /**
-     * Looks up a named child group of this group.  Not recursive.
-     */
-    public Group getChild(String name) {
-        for (Enumeration e = children.elements(); e.hasMoreElements(); )
-	    {
-		Group child = (Group)e.nextElement();
-		if (name.equals(child.get(/* NOI18N */"name")))
-		    return (child);
-	    }
-        return (null);
-    }
-    
-    /**
-     * Returns an enumerated list of this group's children. The list
-     * is cloned because the caller might use it for removing child
-     * groups from this group.
-     */
-    public Enumeration getChildList() {
-        return ((Vector)children.clone()).elements();
-    }
-    
-    private void setParentGroup(Group parent) {
-        parentGroup = parent;
-    }
-    
-    /**
-     * Returns this group's parent.
-     */
-    public Group getParentGroup() {
-        return parentGroup;
-    }
-    
-    /**
-     * Returns this group (overrides the behavior of getGroup
-     * as defined in AttributeManager).
-     */
-    public Group getGroup() {
-        return this;
-    }
-    
-    /**
-     * Returns a hierarchy name based on the group tree.
-     */
-    public String getFullName() {
-        String name = getName();
-        if (name == null)
-            return null;
-        
-        if (parentGroup != null) {
-            String parentName = parentGroup.getFullName();
-            if (parentName != null)
-                name = parentName + /* NOI18N */"." + name;
-        }
-        
-        return name;
-    }
-    
-    /**
-     * Find a component from its full path name.
-     */
-    public AttributeManager resolveFullName(String name) {
-        AttributeManager mgr = null;
-        Group group = this;
-        Group newGroup;
-        
-        while (group != null && !group.isBase())
-            group = group.parentGroup;
-        if (group == null)
-            return null;
-        
-        StringTokenizer st = new StringTokenizer(name, /* NOI18N */".");
-        
-        if (group.getName() != null) {
-            if (!st.hasMoreTokens())
-                return null;
-            
-            name = st.nextToken();
-            if (!name.equals(group.getName()))
-                return null;
-        }
-        
-        while (st.hasMoreTokens()) {
-            name = st.nextToken();
-            newGroup = group.resolveGroup(name);
-            
-            if (newGroup == null) {
-                if (group.root == null)
-                    return null;
-                
-                mgr = group.root.resolve(name);
-                break;
-            } else {
-                group = newGroup;
-            }
-        }
-        
-        if (st.hasMoreTokens())
-            return null;
-        
-        return mgr;
-    }
-    
-    /**
-     * Recursively looks for a named sub-group of this group.
-     */
-    public Group resolveGroup(String name) {
-        Group group;
-        String groupName;
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            group = (Group)e.nextElement();
-            groupName = group.getName();
-            if (groupName != null &&
-		groupName.equals(name)) {
-                return group;
-            }
-        }
-        
-        return null;
-    }
-    
-    //
-    // AWT parenting
-    //
-    
-    void setParentBody() {
-        if (root != null)
-            root.addChildBody(getContainer());
-    }
-    
-    void unsetParentBody() {
-        if (root != null)
-            root.removeChildBody(getContainer());
-    }
-    
-    /**
-     * Add an operations class.
-     */
-    public synchronized void addOperations(Operations ops) {
-        if (operations == null)
-            operations = new Vector();
-        
-        if (!operations.contains(ops)) {
-            ops.setGroup(this);
-            if (root != null)
-                ops.setRoot(root);
-            operations.addElement(ops);
-        }
-    }
-    
-    /**
-     * Remove an operations class.
-     */
-    public synchronized void removeOperations(Operations ops) {
-        if (operations != null)
-            operations.removeElement(ops);
-    }
-    
-    //
-    // Events
-    //
-    
-    /**
-     * Posts a message to this group's parent.  This method should
-     * be used when sending a message from within this group.
-     */
-    public void postMessageToParent(Message msg) {
-        if (parentGroup != null)
-            parentGroup.postMessage(msg);
-    }
-    
-    /**
-     * Posts a message to this group.  This method should
-     * be used when sending a message to this group.
-     */
-    public void postMessage(Message msg) {
-        // Distribute the message to the operations classes
-        if (operations != null) {
-            Enumeration e = operations.elements();
-            while (e.hasMoreElements()) {
-                Operations ops = (Operations)e.nextElement();
-                if (ops.handleMessage(msg))
-                    return;
-            }
-        }
-        
-        // Handle the message
-        if (handleMessage(msg))
-            return;
-        
-        // Don't pass AWT events up to the parent.  If you want
-        // an AWT event
-        // to go to the parent group, call
-        // "parent.postEvent()" directly.
-        if (!msg.isAWT && parentGroup != null)
-            parentGroup.postMessage(msg);
-    }
-    
-    // NOTE: Any changes made to this comment should also be
-    // made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by subclasses that want to act
-     * on messages that are sent to the group.
-     * Typically, messages are
-     * either AWT events that have been translated to
-     * messages, or they
-     * are messages that have been sent by other groups.
-     * super.handleMessage should be called for any messages
-     * that aren't handled.  If super.handleMessage is not
-     * called, then handleEvent
-     * will not be called.
-     * <p>
-     * AWT events are not propagated regardless of the return
-     * value from
-     * handleEvent.  If you want an AWT event to go to the parent
-     * group, you need to call postMessageToParent()
-     * with the event message.
-     * <p>
-     */
-    public boolean handleMessage(Message msg) {
-        if (msg.isAWT) {
-            Event evt = (Event)msg.arg;
-            
-            handleEvent(msg, evt);
-            
-            // Post AcceleratorKey messages for certain keys
-            if (evt.id == Event.KEY_PRESS && evt.key != 0 &&
-		(evt.key < 32 || evt.key >= 127)) {
-                postMessage(new Message(this,
-					/* NOI18N */"AcceleratorKey", evt));
-            }
-            
-            return true;
-        }
-        
-        return false;
-    }
-    
-    // NOTE: Any changes made to this comment should also be
-    // made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by subclasses that want to get
-     * notified when AWT events that are sent by the gui components.
-     * The return value should be true for handled events, and
-     * super.handleEvent should be called for unhandled events.
-     * If super.handleEvent is not called, then the specific event
-     * handling methods will not be called.
-     * <p>
-     * The message's target is set to the shadow that sent
-     * the event.
-     * The event's target is set to the AWT component that
-     * sent the event.
-     * <p>
-     * The following more specific methods may also be overridden:
-     * <pre>
-     * public boolean mouseDown(Message msg,
-     * Event evt, int x, int y);
-     * public boolean mouseDrag(Message msg, Event evt,
-     * int x, int y);
-     * public boolean mouseUp(Message msg, Event evt, int x, int y);
-     * public boolean mouseMove(Message msg, Event evt,
-     * int x, int y);
-     * public boolean mouseEnter(Message msg, Event evt,
-     * int x, int y);
-     * public boolean mouseExit(Message msg, Event evt,
-     * int x, int y);
-     * public boolean keyDown(Message msg, Event evt, int key);
-     * public boolean keyUp(Message msg, Event evt, int key);
-     * public boolean action(Message msg, Event evt, Object what);
-     * public boolean gotFocus(Message msg, Event evt, Object what);
-     * public boolean lostFocus(Message msg,
-     * Event evt, Object what);
-     * </pre>
-     */
-    public boolean handleEvent(Message msg, Event evt) {
-        if (super.handleEvent(msg, evt))
-            return true;
-        
-        // Intercept some of the WINDOW events.
-        //  Sub-groups that want to do
-        // something different with these WINDOW events
-        // should return true
-        // after handling the event.
-        
-        switch (evt.id) {
-	case Event.WINDOW_DESTROY:
-            windowDestroy(msg);
-            return true;
-            
-	case Event.WINDOW_ICONIFY:
-            if (evt.target instanceof Window) {
-                if (isBaseWindow((Window)evt.target)) {
-                    hide();
-                    return true;
-                }
-            }
-            return false;
-            
-	case Event.WINDOW_DEICONIFY:
-            if (evt.target instanceof Window) {
-                if (isBaseWindow((Window)evt.target)) {
-                    show();
-                    return true;
-                }
-            }
-            return false;
-        }
-        
-        return false;
-    }
-    
-    /**
-     * Exit the application with no error code.
-     */
-    public void exit() {
-        exit(0);
-    }
-    
-    /**
-     * Exit the application.  Calls exit on the parent
-     * if there is a parent.
-     * Only calls System.exit() if there is no applet.
-     */
-    public void exit(int errCode) {
-        if (isBase()) {
-            destroy();
-            if (applet == null)
-                System.exit(errCode);
-        } else if (parentGroup != null) {
-            parentGroup.exit(errCode);
-        } else {
-            destroy();
-        }
-    }
-    
-    /**
-     * Called when a WINDOW_DESTROY event is received by this group.
-     * The default behavior for WINDOW_DESTROY events is to
-     * set the visible
-     * attribute to false for the target of the event.
-     * If the target of
-     * the event is the main window, then set this group's
-     * visible attribute
-     * to false.  If this group is the base group, then exit the
-     * application.
-     */
-    protected void windowDestroy(Message msg) {
-        if (msg.target == getContainer()) {
-            if (inDesignerRoot())
-                internalHideGroup();
-            else if (isBase())
-                exit();
-            else
-                hide();
-        } else {
-            if (msg.target instanceof AttributeManager)
-                ((AttributeManager)msg.target).set(/* NOI18N */"visible",
-						Boolean.FALSE);
-            else if (msg.target instanceof Component)
-                ((Component)msg.target).hide();
-        }
-    }
-    
-    /**
-     * Attribute forwarding
-     */
-    
-    private Vector forwardVector = new Vector();
-    
-    /**
-     * Adds the attribute manager to the list of forwards.  When
-     * an attribute is set and is flagged FORWARD, the value for the
-     * attribute will be forwarded to every matching attribute
-     * manager
-     * in the list of forwards.
-     */
-    protected void addAttributeForward(AttributeManager mgr) {
-        if (forwardVector.contains(mgr))
-            return;
-        
-        // Add this guy to the list of attribute forwards
-        forwardVector.addElement(mgr);
-        
-        // Override values in mgr with values from forwards
-        Enumeration e = attributes.attributesWithFlags(FORWARD);
-        
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            String name = attr.getName();
-            String type = attr.getType();
-            
-            if (mgr.hasAttribute(name, type)) {
-                Object value = mgr.get(name);
-                
-                if (!attr.flagged(READONLY)) {
-                    if (!attr.isModified())
-                        putInTable(name, value);
-                    else
-                        if (!mgr.getAttribute(name).flagged(READONLY))
-			    mgr.set(name, attr.getValue());
-                }
-                
-                attr.setDefaultValue(value);
-            }
-        }
-    }
-    
-    /**
-     * Adds a set of attributes to this group that
-     * are suitable for forwarding to a frame, dialog or panel.
-     */
-    protected void addForwardedAttributes() {
-        if (genericAttrList == null) {
-            genericAttrList = new AttributeList();
-            mergeForward(genericAttrList, new VJPanelShadow());
-            mergeForward(genericAttrList, new FrameShadow());
-            mergeForward(genericAttrList, new DialogShadow());
-        }
-        
-        Enumeration e = genericAttrList.elements();
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            if (!hasAttribute(attr.getName()))
-                attributes.add((Attribute)attr.clone());
-        }
-        
-        if (!hasAttribute(/* NOI18N */"text"))
-            attributes.alias(/* NOI18N */"text", /* NOI18N */"title");
-    }
-    
-    private void mergeForward(AttributeList list, Shadow shadow) {
-        AttributeList shadowList =
-	    (AttributeList)shadow.getAttributeList().clone();
-        Enumeration e = shadowList.elements();
-        
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            if (!list.contains(attr.getName())) {
-                // System.out.println(/* NOI18N */"add " +
-                // attr.getName() + /* NOI18N */" " + attr.getType());
-                attr.addFlags(FORWARD | FORWARD_REMOVE);
-                list.add(attr);
-            }
-        }
-    }
-    
-    private void removeForwardedAttributes() {
-        ContainerShadow cntr = getContainer();
-        if (cntr == null)
-            return;
-        
-        Enumeration e = attributes.attributesWithFlags(FORWARD_REMOVE);
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            if (!cntr.hasAttribute(attr.getName())) {
-                attributes.remove(attr.getName());
-            }
-        }
-    }
-    
-    /**
-     * Return true if we are forwarding the attribute "attrName"
-     * to "mgr",
-     * otherwise return false.
-     */
-    boolean hasAttributeForward(AttributeManager mgr, String attrName) {
-        return (forwardVector.contains(mgr) &&
-		attributes.get(attrName).flagged(FORWARD));
-    }
-    
-    /**
-     * These are helper routines for the group.
-     * If you are fowarding
-     * attributes to a component, dialog or frame, you should call
-     * one of these methods in the constructor.
-     */
-    
-    private static AttributeList genericAttrList = null;
-    
-    /**
-     * Compatibility method - do not use!
-     */
-    protected void addComponentAttributes() {
-        addForwardedAttributes();
-    }
-    
-    /**
-     * Compatibility method - do not use!
-     */
-    protected void addPanelAttributes() {
-        addForwardedAttributes();
-    }
-    
-    /**
-     * Compatibility method - do not use!
-     */
-    protected void addFrameAttributes() {
-        addForwardedAttributes();
-    }
-    
-    /**
-     * Compatibility method - do not use!
-     */
-    protected void addDialogAttributes() {
-        addForwardedAttributes();
-    }
-    
-    //
-    // Attributes - get and set
-    //
-    
-    /**
-     * Get the value of a named attribute.
-     */
-    public Object get(String key) {
-        Attribute attr = attributes.get(key);
-        
-        if (key.equals(/* NOI18N */"name")) {
-            return super.get(key);
-        } else if (key.equals(/* NOI18N */"visible")) {
-            return super.get(key);
-        } else if (!isInitialized) {
-            return super.get(key);
-        } else if (attr != null && attr.flagged(FORWARD)) {
-            Enumeration e = forwardVector.elements();
-            AttributeManager mgr;
-            
-            while (e.hasMoreElements()) {
-                mgr = (AttributeManager)e.nextElement();
-                if (mgr.hasAttribute(key, attr.getType())) {
-                    return mgr.get(key);
-                }
-            }
-            
-            return null;
-        } else {
-            return getOnGroup(key);
-        }
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by sub-groups that
-     * store attribute values themselves, and do not depend on the
-     * group superclass to store them. 
-     * This method should be overridden
-     * instead of "get".  Any attributes handled in setOnGroup where
-     * super.setOnGroup is not called must also be handled
-     * in getOnGroup.
-     * <p>
-     * The default implementation of getOnGroup retrieves the value
-     * from the attribute table.
-     * <p>
-     * The reason that "getOnGroup" should be overridden instead
-     * of "get" is that "getOnGroup" is guaranteed not to be called
-     * until the group class is initialized.
-     * This means that initRoot
-     * will always be called before any calls to getOnGroup
-     * are made.
-     * <p>
-     * Also, this method is only for attributes that are defined
-     * in the
-     * sub-groups.  It is not called for forwarded attributes.
-     * <p>
-     */
-    protected Object getOnGroup(String key) {
-        return super.get(key);
-    }
-    
-    /**
-     * Set the value of a named attribute.
-     */
-    public void set(String key, Object value) {
-        Attribute attr = attributes.get(key);
-        
-        if (key.equals(/* NOI18N */"name")) {
-            super.set(key, value);
-        } else if (key.equals(/* NOI18N */"visible")) {
-            super.set(key, value);
-            if (((Boolean)value).booleanValue()) {
-                if (isVisible())
-                    internalShowGroup();
-            } else
-                internalHideGroup();
-        } else if (!isInitialized) {
-            super.set(key, value);
-        } else if (attr != null && attr.flagged(FORWARD)) {
-            super.set(key, value);
-            
-            Enumeration e = forwardVector.elements();
-            AttributeManager mgr;
-            boolean set = false;
-            
-            while (e.hasMoreElements()) {
-                mgr = (AttributeManager)e.nextElement();
-                if (mgr.hasAttribute(key, attr.getType())) {
-                    mgr.set(key, value);
-                    set = true;
-                }
-            }
-            
-            if (set) {
-                // update the the global register for unsaved changes
-                if (inDesignerRoot())
-                    DesignerAccess.setChangesMade(true);
-            }
-        } else {
-            setOnGroup(key, value);
-        }
-    }
-    
-    // NOTE: Any changes made to this comment should also
-    // be made in the
-    // lib/visual/gen/group.java file.
-    /**
-     * May be overridden by sub-groups that
-     * want notification when attributes are changed.  This method
-     * should be overridden instead of "set".  
-     * Any attributes handled
-     * in setOnGroup where super.setOnGroup is not called
-     * must also be
-     * handled in getOnGroup.
-     * <p>
-     * The default implementation of setOnGroup puts the value
-     * in the attribute table.
-     * <p>
-     * The reason that "setOnGroup" should be overridden instead
-     * of "set" is that "setOnGroup" is guaranteed not to be called
-     * until the group class is initialized.
-     * This means that initRoot
-     * will always be called before any calls to setOnGroup
-     * are made.
-     * <p>
-     * During initialization, "setOnGroup" will be called for all
-     * the group's attributes even if they have not be changed from
-     * the default value.  But for attributes that have the DEFAULT
-     * flag set, "setOnGroup" will only be called if the value
-     * of the attribute has changed from the default.
-     * <p>
-     * Also, this method is only called when attributes defined
-     * in the
-     * sub-groups are updated.  It is not called for forwarded
-     * attributes.
-     * <p>
-     */
-    protected void setOnGroup(String key, Object value) {
-        super.set(key, value);
-    }
-    
-    /**
-     * Base group information.
-     */
-    
-    private Applet applet = null;
-    private String cmdLineArgs[];
-    private Frame topLevel = null;
-    private Registry registry = null;
-    
-    private boolean hasEnvironment = false;
-    
-    private boolean hasEnvironment() {
-        if (hasEnvironment)
-            return true;
-        else if (parentGroup != null)
-            return parentGroup.hasEnvironment();
-        else
-            return false;
-    }
-    
-    /**
-     * Returns true if this group is the base group.
-     */
-    public boolean isBase() {
-        return hasEnvironment;
-    }
-    
-    /**
-     * Returns true if the given window this group's base window.
-     */
-    protected boolean isBaseWindow(Window win) {
-        WindowShadow shadow =
-	    (WindowShadow)DesignerAccess.getShadowTable().get(win);
-        return (isBase() && (getWindow() == shadow));
-    }
-    
-    /**
-     * Returns true if this group is either the base group
-     * or is a descendant
-     * of the base group.
-     */
-    public boolean hasBase() {
-        if (hasEnvironment)
-            return true;
-        else if (parentGroup != null)
-            return parentGroup.hasBase();
-        else
-            return false;
-    }
-    
-    /**
-     * Returns the base group.
-     */
-    public Group getBase() {
-        if (hasEnvironment)
-            return this;
-        else if (parentGroup != null)
-            return parentGroup.getBase();
-        else
-            return null;
-    }
-    
-    /**
-     * Returns true if we are doing a create operation in the
-     * middle of a show operation.  Create likes to call show if the
-     * visible attribute is set to true, but create shouldn't call
-     * show if show caused create to be called if the first place.
-     */
-    boolean doingShow() {
-        if (doingShow)
-            return true;
-        else if (parentGroup != null)
-            return parentGroup.doingShow();
-        else
-            return false;
-    }
-    
-    /**
-     * Sets the environment information for the group. 
-     * This method should
-     * be invoked only on the top-most group in the application.
-     * Invoking
-     * setEnvironmentInfo and setTopLevel on a group makes 
-     * it the base group.
-     */
-    public void setEnvironmentInfo(Applet applet, String args[]) {
-        // checkDate();
-        this.applet = applet;
-        this.cmdLineArgs = args;
-        hasEnvironment = true;
-    }
-    
-    /**
-     * Sets the top level frame for the group.  This method should
-     * be invoked only on the top most group in the application.
-     * Invoking setEnvironmentInfo and setTopLevel on a group
-     * makes it
-     * the base group.
-     */
-    public void setTopLevel(Frame topLevel) {
-        this.topLevel = topLevel;
-    }
-    
-    /**
-     * Sets the cursor for all of the group's frames to the given
-     * cursor value.  Calls setCursor on all the child groups.
-     */
-    public void setCursor(int cursor) {
-        if (root != null)
-            root.setCursor(cursor);
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            Group child = (Group)e.nextElement();
-            child.setCursor(cursor);
-        }
-    }
-    
-    /**
-     * Accessor method for the applet. Null is returned
-     * when you're not
-     * running as an applet.
-     */
-    public Applet getApplet() {
-        if (applet != null)
-            return applet;
-        else if (parentGroup != null)
-            return parentGroup.getApplet();
-        else
-            return null;
-    }
-    
-    /**
-     * Accessor method for the command line arguments.
-     * Null is returned
-     * when you're not running from the command line.
-     */
-    public String[] getCmdLineArgs() {
-        if (cmdLineArgs != null)
-            return cmdLineArgs;
-        else if (parentGroup != null)
-            return parentGroup.getCmdLineArgs();
-        else
-            return null;
-    }
-    
-    /**
-     * Returns the first frame found while traversing up the
-     * group tree.  If no frame is found, then the top level
-     * frame is returned.
-     */
-    public Frame getFrame() {
-        WindowShadow win = getWindow();
-        if (win != null && win.getBody() != null)
-	    {
-		if (win instanceof DialogShadow)
-		    return (Frame)((Window) win.getBody()).getParent();
-		else
-		    return (Frame)win.getBody();
-	    } else if (parentGroup != null)
-		return parentGroup.getFrame();
-        else
-            return getTopLevel();
-    }
-    
-    /**
-     * Accessor method for the top level frame.  This will not
-     * return null providing that the base group has been 
-     * initialized  properly.
-     */
-    public Frame getTopLevel() {
-        if (topLevel != null)
-            return topLevel;
-        else if (parentGroup != null)
-            return parentGroup.getTopLevel();
-        else
-            return null;
-    }
-    
-    /**
-     * Accessor method for the registry.  The registry is
-     * created when
-     * the application starts.
-     */
-    public Registry getRegistry() {
-        if (isBase()) {
-            initRegistry();
-            return registry;
-        } else if (parentGroup != null)
-            return parentGroup.getRegistry();
-        else
-            return null;
-    }
-    
-    private synchronized void initRegistry() {
-        if (registry == null)
-            registry = new Registry();
-    }
-    
-    public void layoutMode() {
-        super.layoutMode();
-        
-        WindowShadow s = getWindow();
-        if (s != null)
-            s.setLayout(true);
-    }
-    
-    public void previewMode() {
-        super.previewMode();
-        
-        WindowShadow s = getWindow();
-        if (s != null)
-            s.setPreview(true);
-    }
-    
-    protected void preValidate() {
-        PanelShadow panel = getPanel();
-        if (panel != null)
-            panel.preValidate();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/MainHelper.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-/*
- * 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.
- *
- * @(#) MainHelper.java 1.29 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.awt.RootFrame;
-import sunsoft.jws.visual.rt.awt.GBLayout;
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.shadow.java.awt.PanelShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.DialogShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.FrameShadow;
-import sunsoft.jws.visual.rt.shadow.java.awt.WindowShadow;
-
-import java.awt.*;
-import java.util.Date;
-import java.applet.Applet;
-
-/**
- * Helper class for the generated main class.
- *
- * @version 1.29, 07/25/97
- */
-public class MainHelper {
-    /**
-     * The base group
-     */
-    private Group baseGroup;
-    
-    /**
-     * Name of an external call-out class if there is one.
-     */
-    private String ecoClassName;
-    
-    /**
-     * Pointer to an external call-out class if there is one.
-     */
-    private ExternalCallOut eco;
-    
-    
-    /**
-     * Checks the version of the runtime.
-     */
-    public void checkVersion(double version) {
-        if (Global.getVersion() < version) {
-            Double d1 = new Double(version);
-            Double d2 = new Double(Global.getVersion());
-            System.out.println(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.MainHelper.NeedRuntimeVersion",
-		    d1, d2));
-        }
-    }
-    
-    /**
-     * Accepts the command line arguments.
-     * Sets an external class callout
-     * name if there is one.  Registers the remaining
-     * command line arguments
-     * with the Global class.
-     */
-    private String[] parseCmdLineArgs(String args[]) {
-        String registerArgs[] = args;
-        // args that will be registered
-        
-        if (args.length >= 2) {
-            for (int i = 0; i < args.length - 1; i++) {
-                if (args[i].equals(/* NOI18N */"-external")) {
-                    // set the class name for use in external callout later
-                    ecoClassName = args[i + 1];
-                    
-                    // create a new argument list from the remaining
-                    // cmd line args
-                    registerArgs = new String[args.length - 2];
-                    int count = 0;
-                    for (int j = 0; j < args.length; j++) {
-                        if (j < i || j > i + 1) {
-                            registerArgs[count] = args[j];
-                            count++;
-                        }
-                    }
-                    break;
-                }
-            }
-        }
-        
-        return registerArgs;
-    }
-    
-    /**
-     * Called when application is run from the command line.
-     */
-    public void main(Group group, String args[]) {
-        // Set the base group
-        baseGroup = group;
-        
-        RootFrame frame = null;
-        
-        // Set the environment information. This must be done before
-        // initialization.
-        args = parseCmdLineArgs(args);
-        baseGroup.setEnvironmentInfo(null, args);
-        
-        // Initialize the group
-        baseGroup.initialize();
-        
-        WindowShadow win = baseGroup.getWindow();
-        
-        // The top level frame must be set before the group
-        // is created.
-        if (win instanceof FrameShadow) {
-            win.createBody();
-            baseGroup.setTopLevel((Frame)win.getBody());
-        } else if (win instanceof DialogShadow) {
-            // Create a frame for the dialog
-            // if there are no other frames
-            String title = win.getName();
-            if (title == null || title.equals(/* NOI18N */""))
-                title = /* NOI18N */"Unnamed";
-            
-            RootFrame f = new RootFrame(title);
-            f.setSubGroup(baseGroup);
-            
-            // SGI and Windows have bad defaults for
-            // font and background
-            if (Global.isIrix()) {
-                f.setFont(new Font(/* NOI18N */"Sansserif",
-				   Font.PLAIN, 12));
-            }
-            if (Global.isWindows()) {
-                f.setBackground(Color.lightGray);
-                f.setFont(new Font(/* NOI18N */"Dialog",
-				   Font.PLAIN, 12));
-            }
-            
-            baseGroup.setTopLevel(f);
-            
-            f.resize(25, 25);
-            f.show();
-            f.reshape(20, 20, 120, 80);
-            f.validate();
-        } else if (baseGroup.getPanel() != null) {
-            // Put a frame around the group's panel
-            // if it is a panel group
-            String title = group.getPanel().getName();
-            if (title == null || title.equals(/* NOI18N */""))
-                title = /* NOI18N */"Unnamed";
-            
-            frame = new RootFrame(title);
-            frame.setSubGroup(baseGroup);
-            
-            // SGI and Windows have bad defaults for
-            // font and background
-            if (Global.isIrix()) {
-                frame.setFont(new Font(/* NOI18N */"Sansserif",
-				       Font.PLAIN, 12));
-            }
-            if (Global.isWindows()) {
-                frame.setBackground(Color.lightGray);
-                frame.setFont(new Font(/* NOI18N */"Dialog",
-				       Font.PLAIN, 12));
-            }
-            
-            baseGroup.setTopLevel(frame);
-        } else {
-            throw new Error(Global.fmtMsg(
-	        "sunsoft.jws.visual.rt.base.MainHelper.BaseGroupMustBeNonVis",
-	        group));
-        }
-        
-        // Create the group
-        baseGroup.create();
-        
-        // This part needs to happen after the group is created
-        if (frame != null) {
-            frame.add(/* NOI18N */"Center",
-		      (Panel)baseGroup.getPanel().getBody());
-            // Window managers get confused when a window is shown with
-            // zero width and height
-            frame.resize(25, 25);
-            frame.show();
-            Dimension d = frame.preferredSize();
-            frame.reshape(20, 20, d.width, d.height);
-            frame.validate();
-        }
-        
-        // Start the group
-        baseGroup.start();
-        
-        if (ecoClassName != null) {
-            initExternalCallOut(ecoClassName, baseGroup);
-            startExternalCallOut();
-            stopExternalCallOut();
-        }
-    }
-    
-    /**
-     * Called when the applet is loaded.
-     */
-    public void init(Applet applet, Group group) {
-        // Set the base group
-        baseGroup = group;
-        
-        // Set the environment information. This must be done before
-        // initialization.
-        baseGroup.setEnvironmentInfo(applet, null);
-        
-        // Initialize the group
-        baseGroup.initialize();
-        
-        WindowShadow win = baseGroup.getWindow();
-        
-        // The top level frame must be set before the
-        // group is created.
-        if (win instanceof FrameShadow) {
-            win.createBody();
-            baseGroup.setTopLevel((Frame)win.getBody());
-        } else {
-            // Figure out the applet's frame
-            Component comp = applet;
-            while (comp != null && !(comp instanceof Frame))
-                comp = comp.getParent();
-            
-            baseGroup.setTopLevel((Frame)comp);
-        }
-        
-        // Create the group
-        baseGroup.create();
-        
-        // Adjust the font of the panel
-        if (Global.isIrix())
-            applet.setFont(new Font(/* NOI18N */"Sansserif",
-				    Font.PLAIN, 12));
-        else if (Global.isWindows())
-            applet.setFont(new Font(/* NOI18N */"Dialog",
-				    Font.PLAIN, 12));
-        
-        // Set up the layout for the Applet panel
-        GBLayout gridbag = new GBLayout();
-        applet.setLayout(gridbag);
-        GBConstraints c = new GBConstraints();
-        c.fill = GBConstraints.BOTH;
-        c.weightx = 1;
-        c.weighty = 1;
-        
-        // Add the group panel to the applet
-        PanelShadow panelshadow = baseGroup.getPanel();
-        if (panelshadow != null) {
-            Panel panel = (Panel)panelshadow.getBody();
-            gridbag.setConstraints(applet.add(panel), c);
-        }
-        
-        // Check for and initialize an external call-out class
-        ecoClassName = applet.getParameter(/* NOI18N */"external");
-        if (ecoClassName != null)
-            initExternalCallOut(ecoClassName, baseGroup);
-    }
-    
-    /**
-     * Called whenever the applet's page is visited.
-     */
-    public void start() {
-        if (baseGroup != null)
-            baseGroup.start();
-        startExternalCallOut();
-    }
-    
-    /**
-     * Called by the browser when the user leaves the page.
-     */
-    public void stop() {
-        if (baseGroup != null)
-            baseGroup.stop();
-        stopExternalCallOut();
-    }
-    
-    /**
-     * Called by the browser when the applet should be destroyed.
-     */
-    public void destroy() {
-        if (baseGroup != null)
-            baseGroup.destroy();
-    }
-    
-    /**
-     * Initializes a call-out to an external class. 
-     * Gives the external
-     * class a reference to this main's Group object.
-     */
-    private void initExternalCallOut(String name, Group group) {
-        try {
-            Class c = Global.util.getClassLoader().loadClass(name);
-            eco = (ExternalCallOut) c.newInstance();
-        }
-        catch (ClassNotFoundException e) {
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.MainHelper.ClassNotFound",
-		    name));
-        }
-        catch (InstantiationException e) {
-            throw new Error(Global.fmtMsg(
-	    "sunsoft.jws.visual.rt.base.MainHelper.InstantiationException",
-	    name));
-        }
-        catch (IllegalAccessException e) {
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.MainHelper.illegalAccess",
-		    name));
-        }
-        if (eco != null)
-            eco.initExternal(group);
-    }
-    
-    /**
-     * Starts the external call-out class, if there is one.
-     */
-    private void startExternalCallOut() {
-        if (eco != null)
-            eco.startExternal();
-    }
-    
-    /**
-     * Stops the external call-out class, if there is one.
-     */
-    private void stopExternalCallOut() {
-        if (eco != null)
-            eco.stopExternal();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= AMContainer AMContainerHelper Attribute AttributeList \
-	AttributeManager BeanSerialization CustomClassLoader \
-	DesignerAccess DesignerErrorInterface ExternalCallOut \
-	Global Group MainHelper Message NVGroup Operations \
-	QSortCompare Registry RegistryEntry Root RootObserver \
-	Shadow Util VBClassLoader VJException
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Message.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * 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.
- *
- * @(#) Message.java 1.14 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-/**
- * An event structure that can hold either an AWT event
- * or a specialized
- * event passed between Group objects.
- *
- * @version 	1.7, 23 Apr 1996
- */
-public class Message {
-    public String name;
-    public Object arg;
-    public Object target;
-    public long when;
-    
-    public String type;
-    public String targetName;
-    public boolean isAWT;
-    
-    public Message() {
-        this(null, null, null, /* NOI18N */"", null);
-    }
-    
-    public Message(Object target, String name, Object arg) {
-        this(target, null, null, name, arg);
-    }
-    
-    public Message(Object target, String name, Object arg, boolean isAWT) {
-        this(target, null, null, name, arg);
-        this.isAWT = isAWT;
-    }
-    
-    public Message(Object target, String targetName, String type, String name,
-		   Object arg) {
-        this.target = target;
-        this.name = name;
-        this.arg = arg;
-        this.when = System.currentTimeMillis();
-        this.type = type;
-        this.targetName = targetName;
-        this.isAWT = false;
-    }
-    
-    public Message(Message msg) {
-        this(msg.target, msg.targetName, msg.type, msg.name, msg.arg);
-        this.isAWT = msg.isAWT;
-        this.when = msg.when;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/NVGroup.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * 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.
- *
- * @(#) NVGroup.java 1.11 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-public abstract class NVGroup extends Group {
-    
-    public NVGroup() {
-        attributes.add(/* NOI18N */"visible", /* NOI18N */
-		       "java.lang.Boolean", Boolean.TRUE, HIDDEN | TRANSIENT);
-        attributes.add(/* NOI18N */"initialized",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-    }
-    
-    public Object get(String key) {
-        if (key.equals(/* NOI18N */"initialized"))
-            key = /* NOI18N */"visible";
-        
-        return super.get(key);
-    }
-    
-    public void set(String key, Object value) {
-        if (key.equals(/* NOI18N */"initialized"))
-            key = /* NOI18N */"visible";
-        
-        super.set(key, value);
-    }
-    
-    protected Root initRoot() {
-        return null;
-    }
-    
-    public void setParentBody() {
-    }
-    
-    public void unsetParentBody() {
-    }
-    
-    protected void removeForwardedAttributes() {
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Operations.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
- * 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.
- *
- * @(#) Operations.java 1.2 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.awt.Event;
-
-public abstract class Operations {
-    
-    /**
-     * Set the group class.
-     */
-    public abstract void setGroup(Group group);
-    
-    /**
-     * Set the root from the group class.
-     * This is called as soon as the root
-     * becomes available.
-     */
-    public abstract void setRoot(Root root);
-    
-    //
-    // Events
-    //
-    
-    public boolean handleMessage(Message msg) {
-        if (msg.isAWT)
-            return handleEvent(msg, (Event)msg.arg);
-        else
-            return false;
-    }
-    
-    public boolean handleEvent(Message msg, Event evt) {
-        switch (evt.id) {
-	case Event.MOUSE_ENTER:
-            return mouseEnter(msg, evt, evt.x, evt.y);
-	case Event.MOUSE_EXIT:
-            return mouseExit(msg, evt, evt.x, evt.y);
-	case Event.MOUSE_MOVE:
-            return mouseMove(msg, evt, evt.x, evt.y);
-	case Event.MOUSE_DOWN:
-            return mouseDown(msg, evt, evt.x, evt.y);
-	case Event.MOUSE_DRAG:
-            return mouseDrag(msg, evt, evt.x, evt.y);
-	case Event.MOUSE_UP:
-            return mouseUp(msg, evt, evt.x, evt.y);
-            
-	case Event.KEY_PRESS:
-	case Event.KEY_ACTION:
-            return keyDown(msg, evt, evt.key);
-	case Event.KEY_RELEASE:
-	case Event.KEY_ACTION_RELEASE:
-            return keyUp(msg, evt, evt.key);
-            
-	case Event.ACTION_EVENT:
-            return action(msg, evt, evt.arg);
-	case Event.GOT_FOCUS:
-            return gotFocus(msg, evt, evt.arg);
-	case Event.LOST_FOCUS:
-            return lostFocus(msg, evt, evt.arg);
-            
-	default:
-            return false;
-        }
-    }
-    
-    public boolean mouseDown(Message msg, Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean mouseDrag(Message msg, Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean mouseUp(Message msg, Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean mouseMove(Message msg, Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean mouseEnter(Message msg,
-			      Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean mouseExit(Message msg, Event evt, int x, int y) {
-        return false;
-    }
-    
-    public boolean keyDown(Message msg, Event evt, int key) {
-        return false;
-    }
-    
-    public boolean keyUp(Message msg, Event evt, int key) {
-        return false;
-    }
-    
-    public boolean action(Message msg, Event evt, Object what) {
-        return false;
-    }
-    
-    public boolean gotFocus(Message msg, Event evt, Object what) {
-        return false;
-    }
-    
-    public boolean lostFocus(Message msg, Event evt, Object what) {
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/QSortCompare.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * 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.
- *
- * @(#) QSortCompare.java 1.1 - last change made 10/17/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-public interface QSortCompare {
-    public int qsortCompare(Object obj1, Object obj2);
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Registry.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/*
- * 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.
- *
- * @(#) Registry.java 1.9 - last change made 07/16/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.util.Vector;
-
-/**
- * The event registry
- *
- * @version 	1.9, 07/16/97
- */
-public class Registry implements Runnable {
-    
-    private static final char STAR = /* NOI18N */ '*';
-    
-    /**
-     * Constructor.
-     */
-    public Registry() {
-        // Initialize publisher records
-        num_pubs =  0;
-        pubs =  new RegistryEntry[0];
-        
-        // Initialize subscriber records
-        num_subs =  0;
-        sub_events =  new Message[0];
-        sub_objects =  new AttributeManager[0];
-        
-        // The thread
-        publish_thread = null;
-        queue = new Vector(1);
-    }
-    
-    // Data Members
-    private int num_pubs;
-    private RegistryEntry pubs[];
-    private int num_subs;
-    private Message sub_events[];
-    private AttributeManager sub_objects[];
-    private Thread publish_thread;
-    private Vector queue;
-    
-    
-    /**
-     * Subscribe to events using the supplied Message as a
-     * template for
-     * requested events.  <br>
-     * Only 'name', 'type' and 'targetName' can be set on the
-     * template event.
-     * (all other fields should be null, zero or false as
-     * appropriate).
-     * The strings are compared for equality.  If the last
-     * character of the
-     * string is '*', then all strings beginning with the
-     * rest of the string
-     * are considered to be matching. <br>
-     * <b>Note:</b> the callback object should be written to
-     *  handle callbacks
-     * on multiple threads.
-     */
-    public synchronized int subscribe(Message msg,
-				      AttributeManager obj) {
-        // Check for bad params
-        if ((obj == null) || (msg == null))
-            return -1;
-        
-        // Look for empty subscription ID
-        int i;
-        for (i = 0; i < sub_events.length; ++i) {
-            if (sub_events[i] == null) {
-                // Found it
-                break;
-            }
-        }
-        if (i >= sub_events.length) {
-            // None found, so grow the arrays
-            Message new_events[] = new Message[sub_events.length + 5];
-            AttributeManager new_objects[] = new AttributeManager[
-		                            sub_events.length +5];
-            
-            System.arraycopy(sub_events, 0, new_events, 0, sub_events.length);
-            System.arraycopy(sub_objects, 0, new_objects, 0, sub_events.length);
-            
-            sub_events = new_events;
-            sub_objects = new_objects;
-        }
-        
-        // Add the entry
-        sub_events[i] = new Message(msg);
-        sub_objects[i] = obj;
-        
-        return i;
-    }
-    
-    /**
-     * Cancel a subscription.The 'id' is the value returned from the
-     * subscribe call.
-     */
-    public synchronized void unsubscribe(int id) {
-        if ((id < 0) || (id >= sub_events.length))
-            return;
-        sub_events[id] = null;
-        sub_objects[id] = null;
-    }
-    
-    /**
-     * Send an event via the registry to all subscribers.
-     */
-    public synchronized void publish(Message msg) {
-        if (publish_thread == null) {
-            publish_thread = new Thread(this);
-            publish_thread.setDaemon(true);
-            publish_thread.start();
-        }
-        
-        queue.addElement(msg);
-        notify();
-    }
-    
-    /**
-     * The actual run method
-     */
-    public void run()
-    {
-        Message msg =  null;
-        
-        while (true) {
-            synchronized (this) {
-                if (queue.size() == 0) {
-                    try {
-                        wait();
-                    } catch (Exception ex) {
-                    }
-                }
-                if (queue.size() != 0) {
-                    msg = (Message)queue.firstElement();
-                    queue.removeElementAt(0);
-                } else {
-                    msg = null;
-                }
-            }
-            if (msg != null) {
-                // Look for matching subscriptions
-                for (int i = 0; i < sub_events.length; ++i) {
-                    // Match events code is here
-                    if ((sub_events[i] != null) &&
-			matchString(sub_events[i].name, msg.name) &&
-			matchString(sub_events[i].type, msg.type) &&
-			matchString(sub_events[i].targetName,
-				    msg.targetName)) {
-                        // Call the object
-                        sub_objects[i].postMessage(msg);
-                    }
-                }
-            }
-        }
-    }
-    
-    /**
-     * Compare strings.  A filter value of 'null' matches anything.
-     * A filter
-     * string ending in '*' matches any string beginning with
-     * the filter's
-     * string.
-     */
-    private boolean matchString(String filter, String actual) {
-        if ((filter == null) || (filter.equals(actual)))
-            return true;
-        try {
-            if (filter.charAt(filter.length()-1) == STAR) {
-                if ((actual != null) &&
-		    (actual.startsWith(filter.substring(0, filter.length()-1))))
-		    {
-			return true;
-		    }
-            }
-        } catch (java.lang.Exception ex) { /* do nothing */ }
-        return false;
-    }
-    
-    /**
-     * Register a publisher with the registry. 
-     * This is not necessary in order
-     * to actually publish.  It is just used to advertise
-     * yourself in the
-     * publishers list.
-     */
-    public synchronized void register(String publisher_name,
-				      String description,
-				      Object obj) {
-        // Check for illegal params
-        if (publisher_name == null)
-            return;
-        
-        // Look for empty publication entry
-        int i;
-        for (i = 0; i < pubs.length; ++i) {
-            if (pubs[i] == null) {
-                // Found it
-                break;
-            }
-        }
-        if (i >= pubs.length) {
-            // None found, so grow the array
-            RegistryEntry new_pubs[] = new RegistryEntry[pubs.length + 5];
-            
-            System.arraycopy(pubs, 0, new_pubs, 0, pubs.length);
-            
-            pubs = new_pubs;
-        }
-        
-        // Add the entry
-        pubs[i] = new RegistryEntry(publisher_name, description, obj);
-    }
-    
-    /**
-     * Unregister a publisher.
-     */
-    public synchronized void unregister(String publisher_name) {
-        // Look for the entry
-        for (int i = 0; i < pubs.length; ++i) {
-            if ((pubs[i] != null) && (publisher_name.equals(pubs[i].name)))
-		{
-		    // Found it
-		    pubs[i] = null;
-		}
-        }
-    }
-    
-    /**
-     * Get the list of registered publishers.
-     */
-    public synchronized RegistryEntry[] getPublishers() {
-        // First count the entries
-        int count = 0;
-        for (int i = 0; i < pubs.length; ++i) {
-            if (pubs[i] != null) ++count;
-        }
-        
-        // Then copy them
-        RegistryEntry rc[] = new RegistryEntry[count];
-        count = 0;
-        for (int i = 0; i < pubs.length; ++i) {
-            if (pubs[i] != null) {
-                rc[count] = new RegistryEntry(pubs[i]);
-                ++count;
-            }
-        }
-        return rc;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/RegistryEntry.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- * 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.
- *
- * @(#) RegistryEntry.java 1.3 - last change made 04/25/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-/**
- * The Registry publisher entry.
- */
-public class RegistryEntry {
-    public RegistryEntry(String pub_name,
-			 String pub_description,
-			 Object pub_object) {
-        name = pub_name;
-        description = pub_description;
-        obj = pub_object;
-    }
-    
-    public RegistryEntry(RegistryEntry re) {
-        name = re.name;
-        description = re.description;
-    }
-    
-    String name;
-    String description;
-    Object obj;
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Root.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,755 +0,0 @@
-/*
- * 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.
- *
- * @(#) Root.java 1.88 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-
-import java.awt.Event;
-import java.awt.Frame;
-import java.util.*;
-
-/*
- * NOTE: Whenever a new public or protected variable is added to this
- * class the name of the variable must be added to the reservedWords
- * list, so that the user doesn't use it in one of the generated Root
- * sub-classes.
- */
-
-/**
- * Instances of the Root class are used for the root of the group's
- * shadow tree.  The direct child shadows of an instantiation of this
- * object will typically be top-level windows or the top panel of an
- * applet.
- *
- * @version 1.88, 07/25/97
- */
-public class Root extends AttributeManager implements AMContainer {
-    
-    private AMContainerHelper containerHelper = new AMContainerHelper(this);
-    
-    /**
-     * This flag is set to true if this is the loaded root.
-     */
-    private boolean isLoadedRoot = false;
-    
-    /**
-     * The constructor defines the Root's attributes.
-     */
-    public Root() {
-        attributes.add(/* NOI18N */"generateClass",
-		    /* NOI18N */"java.lang.String", null, 0);
-        attributes.add(/* NOI18N */"generateDirectory",
-		    /* NOI18N */"java.lang.String", null, 0);
-        attributes.add(/* NOI18N */"generatePackage",
-		    /* NOI18N */"java.lang.String", null, 0);
-        attributes.add(/* NOI18N */"willGenerateGUI",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"willGenerateMain",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"willGenerateGroup",
-		    /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"willGenerateHTML",
-		    /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"suffixForGUIClass",
-		    /* NOI18N */"java.lang.String", /* NOI18N */"Root", 0);
-        attributes.add(/* NOI18N */"suffixForMainClass",
-		    /* NOI18N */"java.lang.String", /* NOI18N */"Main", 0);
-        attributes.add(/* NOI18N */"suffixForOpsClass",
-		    /* NOI18N */"java.lang.String", /* NOI18N */"Ops", 0);
-        attributes.add(/* NOI18N */"suffixForGroupClass",
-		    /* NOI18N */"java.lang.String", /* NOI18N */"", 0);
-        attributes.add(/* NOI18N */"showGenerateConsole",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        
-        attributes.add(/* NOI18N */"groupType",
-		    /* NOI18N */"java.lang.String", null, 0);
-        attributes.add(/* NOI18N */"appletSize",
-		    /* NOI18N */"java.awt.Dimension", null, 0);
-        
-        /**
-         * When autoNaming is true, new shadows added somewhere
-         * under the
-         * root will automatically be assigned unique names if their
-         * name
-         * attribute is null (see AMContainerHelper.)
-         */
-        attributes.add(/* NOI18N */"autoNaming",
-		    /* NOI18N */"java.lang.Boolean", Boolean.TRUE,
-		       HIDDEN | TRANSIENT);
-        
-        set(/* NOI18N */"name", getUniqueName(this));
-    }
-    
-    protected String getUserTypeName() {
-        return (/* NOI18N */"root");
-    }
-    
-    /**
-     * Sets the loaded root flag for this root.
-     */
-    void setLoadedRoot(boolean flag) {
-        isLoadedRoot = flag;
-    }
-    
-    /**
-     * Returns the value of the loaded root flag.
-     */
-    public boolean isLoadedRoot() {
-        return isLoadedRoot;
-    }
-    
-    /**
-     * The first child in the children vector is the main container.
-     * To set the main child, we simply move the item to be selected
-     * to the top of the list.
-     *
-     * This method should only called by the builder because this method
-     * assumes that panels are wrapped with a window shadow.
-     */
-    void setMainChild(AttributeManager container, boolean isPanel) {
-        AttributeManager prev = getMainChild();
-        
-        // menubar should be removed from a frame about to become the
-        // surrounder for a main panel
-        if ((container instanceof FrameShadow) &&
-	    !((FrameShadow)container).isPanel() &&
-	    isPanel && container.get(/* NOI18N */"menubar") != null) {
-            container.set(/* NOI18N */"menubar", null);
-        }
-        
-        WindowShadow win = null;
-        WindowShadow prevwin = null;
-        
-        if (container instanceof WindowShadow)
-            win = (WindowShadow)container;
-        if (prev instanceof WindowShadow)
-            prevwin = (WindowShadow)prev;
-        
-        if (prev == container) {
-            if (win != null) {
-                win.isPanel(isPanel);
-                win.show();
-            }
-        } else {
-            if (prevwin != null)
-                prevwin.isPanel(false);
-            
-            // Select the prev so that the NameEditor will
-            // load prev's "title"
-            // attribute.  This way, when we switch off of prev,
-            // prev's title won't
-            // be wiped out by the name editor.
-            observerSelect(prev);
-            
-            if (win != null) {
-                win.isPanel(isPanel);
-                win.show();
-            }
-            
-            Vector children = containerHelper.getChildren();
-            if (!children.removeElement(container))
-                throw new Error(Global.fmtMsg(
-			"sunsoft.jws.visual.rt.base.Root.RootMissingContainer",
-					      getName(), container.getName()));
-            children.insertElementAt(container, 0);
-        }
-        
-        observerReload();
-        observerSelect(container);
-    }
-    
-    /**
-     * Returns the main child of the root.  This will typically be
-     * either a window or a panel.
-     */
-    public AttributeManager getMainChild() {
-        Vector children = containerHelper.getChildren();
-        if (children.size() > 0)
-            return (AttributeManager)children.elementAt(0);
-        else
-            return null;
-    }
-    
-    // List of root observers
-    private Hashtable observers = new Hashtable();
-    
-    /**
-     * Registers an observer for this root object.
-     * The observer will receive
-     * updates concerning groups or window shadows that are
-     * added or removed
-     * from this root.
-     */
-    void addRootObserver(RootObserver observer) {
-        if (observer == null)
-            return;
-        
-        if (observers.put(observer, observer) != null)
-            return;
-        
-        observer.clear();
-        Enumeration e = getChildList();
-        while (e.hasMoreElements()) {
-            AttributeManager mgr = (AttributeManager)e.nextElement();
-            observer.add(mgr);
-        }
-    }
-    
-    /**
-     * Unregisters an observer for this root object.
-     */
-    void removeRootObserver(RootObserver observer) {
-        if (observer == null)
-            return;
-        
-        observers.remove(observer);
-    }
-    
-    private void observerAdd(AttributeManager mgr) {
-        if (!(mgr instanceof WindowShadow) && !(mgr instanceof Group) &&
-	    !(mgr instanceof BeanShadow))
-	    return;
-        
-        Enumeration e = observers.elements();
-        while (e.hasMoreElements())
-            ((RootObserver)e.nextElement()).add(mgr);
-    }
-    
-    private void observerRemove(AttributeManager mgr) {
-        if (!(mgr instanceof WindowShadow) && !(mgr instanceof Group) &&
-	    !(mgr instanceof BeanShadow))
-	    return;
-        
-        Enumeration e = observers.elements();
-        while (e.hasMoreElements())
-            ((RootObserver)e.nextElement()).remove(mgr);
-    }
-    
-    private void observerSelect(AttributeManager mgr) {
-        Enumeration e = observers.elements();
-        
-        while (e.hasMoreElements())
-            ((RootObserver)e.nextElement()).select(mgr);
-    }
-    
-    private void observerReload() {
-        Enumeration e1 = observers.elements();
-        
-        while (e1.hasMoreElements()) {
-            RootObserver observer = (RootObserver)e1.nextElement();
-            
-            observer.clear();
-            Enumeration e2 = containerHelper.getChildren().elements();
-            while (e2.hasMoreElements())
-                observer.add((AttributeManager)e2.nextElement());
-        }
-    }
-    
-    // Naming children validly and uniquely
-    
-    /**
-     * A table containing ever-increasing counters for unique new names.
-     * Isn't needed in runtime mode, only when the designer is running.
-     */
-    private Hashtable uniqueNameTable = null;
-    
-    /**
-     * Clears the hashtable of unique name counters.
-     * Should only be used when
-     * restarting (user selects "File->New").
-     */
-    void clearUniqueNameTable() {
-        uniqueNameTable = null;
-    }
-    
-    /**
-     * Returns true if the name chosen is unique and has not already
-     * been used by one of the descendants of this root object.
-     */
-    boolean isUniqueName(String name) {
-        return isUniqueName(this, name, null, null);
-    }
-    
-    /**
-     * Returns true if the name chosen is unique and has not already
-     * been used by something under this root.  When encountered, the
-     * "self" object is not compared, so you can also use this function
-     * to test whether the name of an object that is within the tree is
-     * unique unto itself.
-     */
-    boolean isUniqueName(String name, AttributeManager skip) {
-        return isUniqueName(this, name, skip, null);
-    }
-    
-    boolean isUniqueName(String name,
-			 AttributeManager skip, AttributeManager prune) {
-        return isUniqueName(this, name, skip, prune);
-    }
-    
-    /**
-     * Returns true if the name chosen is unique and has not already
-     * been used by one of the descendants of the given AMContainer
-     * object.  When encountered, the "self" object is not compared,
-     * so you can also use this function to test whether the name of an
-     * object that is within the tree is unique unto itself.
-     */
-    private boolean isUniqueName(AttributeManager mgr,
-				 String name,
-				 AttributeManager skip,
-				 AttributeManager prune)
-    {
-        if (mgr == prune)
-            return true;
-        
-        if ((mgr != skip) && name.equals(mgr.get(/* NOI18N */"name")))
-            return false;
-        
-        if (mgr instanceof AMContainer) {
-            AMContainer cntr = (AMContainer)mgr;
-            Enumeration e = cntr.getChildList();
-            while (e.hasMoreElements()) {
-                mgr = (AttributeManager)e.nextElement();
-                if (!isUniqueName(mgr, name, skip, prune))
-                    return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    /**
-     * The list of reserved words.  The java language reserved words and
-     * also instance variable names already taken in the
-     * AttributeManager or Root classes that cannot be used in names of
-     * objects in the designer.
-     */
-    private static final String reservedWords[] = {
-        /* NOI18N */"abstract", /* NOI18N */"boolean",
-		    /* NOI18N */"break", /* NOI18N */"byte",
-		    /* NOI18N */"byvalue",
-		    /* NOI18N */"case", /* NOI18N */"cast",
-	    /* NOI18N */"catch", /* NOI18N */"char", /* NOI18N */"class",
-		    /* NOI18N */"const", /* NOI18N */"continue",
-		    /* NOI18N */"default", /* NOI18N */"do",
-		    /* NOI18N */"double", /* NOI18N */"else",
-		    /* NOI18N */"extends",
-		    /* NOI18N */"false", /* NOI18N */"final",
-		    /* NOI18N */"finally", /* NOI18N */"float",
-		    /* NOI18N */"for", /* NOI18N */"future",
-		    /* NOI18N */"generic", /* NOI18N */"goto",
-		    /* NOI18N */"if",
-		    /* NOI18N */"implements", /* NOI18N */"import",
-		    /* NOI18N */"inner", /* NOI18N */"instanceof",
-		    /* NOI18N */"int",
-		    /* NOI18N */"interface", /* NOI18N */"long",
-		    /* NOI18N */"native",
-		    /* NOI18N */"new", /* NOI18N */"null",
-		    /* NOI18N */"operator", /* NOI18N */"outer",
-		    /* NOI18N */"package",
-		    /* NOI18N */"private",
-		    /* NOI18N */"protected", /* NOI18N */"public",
-		    /* NOI18N */"rest", /* NOI18N */"return",
-		    /* NOI18N */"short", /* NOI18N */"static",
-		    /* NOI18N */"super", /* NOI18N */"switch",
-		    /* NOI18N */"synchronized", /* NOI18N */"this",
-		    /* NOI18N */"throw",
-		    /* NOI18N */"throws",
-	    /* NOI18N */"transient", /* NOI18N */"true", /* NOI18N */"try",
-	    /* NOI18N */"var", /* NOI18N */"void", /* NOI18N */"volatile",
-		    /* NOI18N */"while",
-		    /* NOI18N */"containerHelper", /* NOI18N */"READONLY",
-		    /* NOI18N */"HIDDEN", /* NOI18N */"TRANSIENT",
-		    /* NOI18N */"CONTAINER", /* NOI18N */"attributes",
-		    /* NOI18N */"parent", /* NOI18N */"isCreated",
-		    /* NOI18N */"GROUP", /* NOI18N */"ROOT" };
-        
-    // valid characters in variable names
-    // I18N bug
-    //  private static final String
-    // validNameStarters="$abcdefghijklmnopqrstuvwxyz";
-    // private static final String
-    // validNameAnys=validNameStarters + "_0123456789";
-        
-    /**
-     * Returns true if the given name could be legally
-     * placed in generated
-     * code where it would be compiled as a variable name.
-     */
-    static boolean isValidName(String name) {
-	// check that the name isn't blank
-	if (name == null || name.length() == 0)
-	    return (false);
-            
-	// check that the name is not a reserved word (case counts!)
-	for (int i = 0; i < reservedWords.length; i++)
-	    if (name.equals(reservedWords[i]))
-                return (false);
-	/* JSTYLED */
-	/*  I18n BUG
-            // check that the name starts with a valid start
-            // character (not a number)
-            String s = name.toLowerCase();
-            if (validNameStarters.indexOf(s.substring(0, 1)) == -1)
-	    return (false);
-            
-            // check that the rest of the characters in the name
-            // are valid
-            for (int i = 1; i < name.length(); i++)
-	    if (validNameAnys.indexOf(s.substring(i, i+1)) == -1)
-	    return (false);
-	*/
-            
-	for (int i = 0; i < name.length(); i++) {
-	    if ((i == 0) &&
-                (!Character.isJavaIdentifierStart(name.charAt(i))))
-                return false;
-	    else
-		if (!Character.isJavaIdentifierPart(name.charAt(i)))
-                    return false;
-	}
-	return (true);
-    }
-        
-    /**
-     * Returns a unique name that can be used for a new
-     * shadow object.
-     * The names are guaranteed to be valid variable names for a
-     * generated Root sub-class later on.
-     */
-    String getUniqueName(AttributeManager child) {
-	// delayed creation of the table (this routine never
-	// called in runtime)
-	if (uniqueNameTable == null)
-	    uniqueNameTable = new Hashtable();
-            
-	String type = child.getUserTypeName();
-	String retval = null;
-            
-	while (retval == null || !isUniqueName(retval) ||
-	        !isValidName(retval)) {
-	    if (uniqueNameTable.containsKey(type)) {
-		int count = ((Integer)
-			     uniqueNameTable.get(type)).intValue();
-		uniqueNameTable.put(type, new Integer(count + 1));
-		retval = type + Integer.toString(count);
-	    } else {
-		uniqueNameTable.put(type, new Integer(2));
-		retval = type + /* NOI18N */"1";
-	    }
-	}
-	return (retval);
-    }
-        
-    /**
-     * Returns a name that is unique not only within this root,
-     * but within
-     * another as well.  This is useful when merging two roots.
-     */
-    String getUniqueName(AttributeManager child, Root otherTree) {
-	// because of the unique name counters, we can repeatedly call
-	// getUniqueName without getting the same name over again
-	String newName = getUniqueName(child);
-	while (!otherTree.isUniqueName(newName))
-	    newName = getUniqueName(child);
-	return (newName);
-    }
-        
-    /**
-     * Returns a string describing what is wrong with given
-     * name choice.
-     * The string can be used in an error popup or status bar line.
-     * Null is returned when there is no problem with the name.
-     */
-    String getProblemWithName(String name) {
-	String errorMsg = null;
-            
-	if (name == null || name.length() == 0)
-	    errorMsg = Global.getMsg(
-		    "sunsoft.jws.visual.rt.base.Root.NeedName");
-	else if (!isUniqueName(name))
-	    errorMsg = Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Root.NotUniqueName", name);
-	else if (!isValidName(name))
-	    errorMsg = Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Root.NotValidName", name);
-            
-	return (errorMsg);
-    }
-        
-    //
-    // Overridden to deal with the special "GROUP" and "ROOT" names.
-    //
-    public AttributeManager resolve(String name) {
-	if (name == null)
-	    return null;
-	else if (name.equals(/* NOI18N */"GROUP"))
-	    return group;
-	else if (name.equals(/* NOI18N */"ROOT"))
-	    return this;
-	else
-	    return super.resolve(name);
-    }
-        
-    // AMContainer interfaces
-        
-    public void add(AttributeManager child) {
-	containerHelper.add(child);
-	observerAdd(child);
-    }
-        
-    public void remove(AttributeManager child) {
-	containerHelper.remove(child);
-	observerRemove(child);
-    }
-        
-    //
-    // The root's "addChildBody" and "removeChildBody"
-    // methods are only
-    // called when the root has a panel as a child.
-    //  In this case, it should
-    // add the panel as a child of the group's parent.
-    //
-        
-    public void addChildBody(Shadow child) {
-	// Don't add frames and dialogs to the group's parent
-	if (child instanceof WindowShadow)
-	    return;
-            
-	if (group == null)
-	    return;
-            
-	AMContainer parent = group.getParent();
-	if (parent == null)
-	    return;
-            
-	if (child != null && child.getBody() != null)
-	    parent.addChildBody(child);
-    }
-        
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-	if (group == null)
-	    return;
-            
-	AMContainer parent = (AMContainer)group.getParent();
-	if (parent == null)
-	    return;
-            
-	parent.updateContainerAttribute(child, key, value);
-    }
-        
-    public void removeChildBody(Shadow child) {
-	// Don't need to remove frames and dialogs from
-	// the group's parent
-	if (child instanceof WindowShadow)
-	    return;
-            
-	if (group == null)
-	    return;
-            
-	AMContainer parent = group.getParent();
-	if (parent == null)
-	    return;
-            
-	if (child != null && child.getBody() != null)
-	    parent.removeChildBody(child);
-    }
-        
-    public void createChildren() {
-	containerHelper.createChildren();
-    }
-        
-    public void reparentChildren() {
-	containerHelper.reparentChildren();
-    }
-        
-    public void destroyChildren() {
-	containerHelper.destroyChildren();
-    }
-        
-    public AttributeManager getChild(String name) {
-	return (containerHelper.getChild(name));
-    }
-        
-    public Enumeration getChildList() {
-	return (containerHelper.getChildList());
-    }
-        
-    public int getChildCount() {
-	return (containerHelper.getChildCount());
-    }
-        
-    /**
-     * Groups
-     */
-        
-    private Group group;
-        
-    public void setGroup(Group group) {
-	if (this.group != null)
-	    this.group.removeRootChildren(this);
-            
-	this.group = group;
-            
-	if (this.group != null)
-	    this.group.addRootChildren(this);
-    }
-        
-    public Group getGroup() {
-	return group;
-    }
-        
-    /**
-     * Sets the cursor for all of the root's frames.  This method is
-     * declared package private so that it won't be
-     * confused with the
-     * group's setCursor method.
-     */
-    void setCursor(int cursor) {
-	Enumeration e = getChildList();
-	while (e.hasMoreElements()) {
-	    AttributeManager mgr = (AttributeManager)e.nextElement();
-	    if (mgr instanceof FrameShadow) {
-		FrameShadow fs = (FrameShadow)mgr;
-		Frame f = (Frame)fs.getBody();
-                    
-		if (f != null) {
-		    int prevCursor = f.getCursorType();
-		    if (cursor == prevCursor) {
-			JAShadowAccess.incrCursor(fs);
-		    } else if (cursor == Group.RESTORE_CURSOR) {
-			if (JAShadowAccess.decrCursor(fs) == 0) {
-			    f.setCursor(
-					JAShadowAccess.getPrevCursor(fs));
-			    JAShadowAccess.setPrevCursor(fs,
-							 Frame.DEFAULT_CURSOR);
-			}
-		    } else {
-			JAShadowAccess.setPrevCursor(fs, prevCursor);
-			f.setCursor(cursor);
-			f.getToolkit().sync();
-		    }
-		}
-	    }
-	}
-    }
-        
-    /**
-     * Maps all the visible children of the root.  Do not call this
-     * method directly.  It is called from the Group class when the
-     * group is shown.
-     */
-    public void showRoot() {
-	AttributeManager mgr;
-	Enumeration e = getChildList();
-            
-	while (e.hasMoreElements()) {
-	    mgr = (AttributeManager)e.nextElement();
-	    if (mgr instanceof ComponentShadow) {
-		ComponentShadow comp = (ComponentShadow)mgr;
-		Boolean v = (Boolean)comp.get(/* NOI18N */"visible");
-		if (v.booleanValue())
-		    comp.showComponent();
-	    } else if (mgr instanceof Group) {
-		Group group = (Group)mgr;
-		Boolean v = (Boolean)group.get(/* NOI18N */"visible");
-		if (v.booleanValue())
-		    group.internalShowGroup();
-	    }
-	}
-    }
-        
-    /**
-     * Unmaps all the children of the root.  Do not call this
-     * method directly.  It is called from the Group class when the
-     * group is hidden.
-     */
-    public void hideRoot() {
-	AttributeManager mgr;
-	Enumeration e = getChildList();
-            
-	while (e.hasMoreElements()) {
-	    mgr = (AttributeManager)e.nextElement();
-	    if (mgr instanceof ComponentShadow)
-		((ComponentShadow)mgr).hideComponent();
-	    else if (mgr instanceof Group)
-		((Group)mgr).internalHideGroup();
-	}
-    }
-        
-    /**
-     * Events
-     */
-        
-    private boolean eventForwardingDisabled;
-        
-    public void postMessageToParent(Message msg) {
-	if (group != null && !eventForwardingDisabled)
-	    group.postMessage(msg);
-    }
-        
-    public void postMessage(Message msg) {
-	if (!handleMessage(msg) && group != null &&
-            !eventForwardingDisabled)
-            group.postMessage(msg);
-    }
-        
-    public void postEvent(Message msg) {
-	if (handleMessage(msg))
-	    return;
-            
-	if (group != null && !eventForwardingDisabled)
-	    group.postMessage(msg);
-    }
-        
-    void disableEventForwarding() {
-	eventForwardingDisabled = true;
-    }
-        
-    void enableEventForwarding() {
-	eventForwardingDisabled = false;
-    }
-        
-    public void layoutMode() {
-	super.layoutMode();
-	containerHelper.layoutMode();
-    }
-        
-    public void previewMode() {
-	super.previewMode();
-	containerHelper.previewMode();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/RootObserver.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- * 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.
- *
- * @(#) RootObserver.java 1.4 - last change made 04/25/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-/**
- * Interface to be provided by those who which to watch
- * the comings and
- * goings of WindowShadows and Groups in a particular Root
- * object.  This
- * is used in the visual designer to keep a list of the
- * top-level windows
- * currently under the main application root.
- * It registers itself as an
- * observer with the root object and then through this
- * interface receives
- * updates.
- *
- * @version 	1.4, 04/25/96
- */
-public interface RootObserver {
-    public void add(AttributeManager mgr);
-    public void remove(AttributeManager mgr);
-    public void select(AttributeManager mgr);
-    public void clear();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Shadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-/*
- * 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.
- *
- * @(#) Shadow.java 1.89 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.util.Enumeration;
-import java.util.StringTokenizer;
-
-/**
- * This class implements the basic interfaces
- * that Visual Java requires
- * for its visual components.  Objects that wish to be added to
- * the Visual Java palette must be sub-classed from Shadow.
- * <p>
- * The attributes this class adds to an AttributeManager
- * 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
- * --------------------------------------------------------------------
- * none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @version 1.89, 07/25/97
-*/
-public class Shadow extends AttributeManager {
-    /**
-     * Flags
-     */
-    
-    /**
-     * When this flag is set, a provision must be made in order
-     * to set
-     * the attribute in the body's constructor.  It is up to the
-     * caller to call
-     * recreate on the shadow and validate on the shadow's
-     * parent after
-     * a constructor attribute has been set.
-     */
-    public static final int CONSTRUCTOR = 0x40;
-    
-    /**
-     * This flag signifies that the attribute has nothing to
-     * do with a shadow 'body' and therefore
-     * <a href="sunsoft.jws.visual.rt.base.Shadow.html
-     * #getOnBody(java.lang.String)">getOnBody</a> and
-     * <a href="sunsoft.jws.visual.rt.base.Shadow.html
-     * #setOnBody(java.lang.String, java.lang.Object)">setOnBody</a>
-     * will not be called for this attribute.
-     */
-    public static final int NONBODY = 0x80;
-    
-    /**
-     * Constructor
-     */
-    public Shadow() {
-        super();
-    }
-    
-    /**
-     * The AWT component for this shadow.
-     */
-    protected Object body;
-    
-    /**
-     * Returns the AWT component for this shadow.
-     * The return value is of
-     * type Object, therefore the caller must do a cast to the
-     * appropriate AWT component type.
-     */
-    public Object getBody() {
-        return (body);
-    }
-    
-    /**
-     * Returns a type name suitable for use in naming instances of
-     * shadow sub-classes (i.e. names that make sense to a user.)
-     *  This
-     * can be overridden in sub-classes to give more useful
-     * names when
-     * this (default) algorithm comes up with something ugly.
-     */
-    protected String getUserTypeName() {
-        // get the final word after the last '.'
-        String last = /* NOI18N */"unknown";
-        StringTokenizer st = new StringTokenizer(
-			 getClass().getName(), /* NOI18N */".", false);
-        while (st.hasMoreTokens()) {
-            last = st.nextToken();
-        }
-        
-        // remove "Shadow" from the end of the string
-        int index = last.lastIndexOf(/* NOI18N */"Shadow");
-        if (index != -1) {
-            last = last.substring(0, index);
-        }
-        
-        // always return a lower case word
-        if (last.length() > 0)
-            return (last.toLowerCase());
-        else
-            return (/* NOI18N */"shadow");
-    }
-    
-    /**
-     * Gets attributes from this shadow's body.
-     * Should be overridden in each sub-class which has its own
-     * attributes.  There should be an entry for every
-     * attribute that
-     * doesn't have the NONBODY flag, even if it's just to return
-     * the value from the attribute list when a certain attribute
-     * can't
-     * be looked up from the body.
-     */
-    protected Object getOnBody(String key) {
-        throw new Error(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.base.Shadow.NoSuchKey", key));
-    }
-    
-    /**
-     * Gets an attribute either from the body (if available)
-     * or from the
-     * shadow's attribute list.
-     */
-    public Object get(String key) {
-        key = attributes.resolveAlias(key);
-        if (attributes.contains(key)) {
-            Attribute a = attributes.get(key);
-            if (body != null && !a.flagged(NONBODY))
-                return (getOnBody(key));
-            else
-                return (a.getValue());
-        } else {
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Shadow.UnknownAttribute",
-					  key, getClass().getName()));
-        }
-    }
-    
-    /**
-     * Sets attributes on this shadow's body.
-     * Should be overridden in each sub-class which has its own
-     * attributes. There should be an entry for every attribute that
-     * doesn't have the NONBODY flag, even if it's just to set the
-     * value in the attribute list when a certain attribute
-     * can't be set on the body.
-     */
-    protected void setOnBody(String key, Object value) {
-        throw new Error(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.base.Shadow.NoSuchKey2", key));
-    }
-    
-    /**
-     * Sets an attribute either in the body (if available) or in the
-     * shadow's attribute list.  Destroys the body when
-     * a CONSTRUCTOR attribute is set.
-     * It is up to the caller to call
-     * recreate on the shadow and validate on the shadow's
-     * parent after a constructor attribute has been set.
-     */
-    public void set(String key, Object value) {
-        key = attributes.resolveAlias(key);
-        Attribute a = attributes.get(key);
-        if (a == null)
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Shadow.InvalidAttributeSet",
-		    key));
-        if (a.flagged(READONLY))
-            throw new Error(Global.fmtMsg(
-		    "sunsoft.jws.visual.rt.base.Shadow.ReadOnlyAttributeSet",
-		    key));
-        
-        if (a.flagged(CONSTRUCTOR)) {
-            if (isCreated) {
-                isCreated = false;
-                refetchAttributeList();
-                unregisterBody();
-                destroyBody();
-                if (body != null)
-                    throw new Error(Global.getMsg(
-		    "sunsoft.jws.visual.rt.base.Shadow.BodyNotDestroyed"));
-            }
-        }
-        
-        // Save the previous value
-        Object prev = a.getValue();
-        a.setValue(value);
-        
-        if (body != null && !a.flagged(NONBODY)) {
-            // If setOnBody throws a VJException, then restore
-            // the old value.  I couldn't just move the setValue
-            // to be after
-            // setOnBody, because many shadows depend on the value
-            // being set first.
-            try {
-                setOnBody(key, value);
-            }
-            catch (VJException ex) {
-                a.setValue(prev);
-                throw ex;
-            }
-        }
-        
-        // update the the global register for unsaved changes
-        if (inDesignerRoot())
-            DesignerAccess.setChangesMade(true);
-        
-        if (parent != null && a.flagged(CONTAINER))
-            ((AMContainer)parent).updateContainerAttribute(this,
-							   key, value);
-    }
-    
-    /**
-     * Creates this shadow.
-     * It is safe to call create multiple times on a shadow object.
-     */
-    public void create() {
-        if (!isCreated) {
-            isCreated = true;
-            
-            if (getGroup() == null || !getGroup().hasBase()) {
-                throw new Error(Global.getMsg(
-		"sunsoft.jws.visual.rt.base.Group.ShadowCreationWarning"));
-            }
-            
-            if (body == null)
-                createBody();
-            if (body == null)
-                throw new Error(Global.getMsg(
-			"sunsoft.jws.visual.rt.base.Group.BodyNotCreated"));
-            
-            registerBody();
-            
-            super.create();
-            if (parent != null && body != null)
-                parent.addChildBody(this);
-            
-            postCreate();
-        } else {
-            super.create();
-            if (parent != null && body != null)
-                parent.addChildBody(this);
-        }
-    }
-    
-    /**
-     * Called just after this shadow has been created.
-     */
-    protected void postCreate() {};
-    
-    /**
-     * Creates the AWT component for this shadow.
-     * Sub-classes must override this method.
-     */
-    public void createBody() {};
-    
-    /**
-     * Registers newly created shadows. 
-     * Sub-classes should not override
-     * this method.
-     */
-    protected void registerBody() {
-        // Add this shadow's body to the global shadow table.
-        DesignerAccess.getShadowTable().put(body, this);
-        
-        // Set attributes on the new body
-        for (Enumeration e = attributes.attributesWithoutFlags(
-					       NONBODY|READONLY);
-	     /* JSTYLED */
-	     e.hasMoreElements(); ) {
-	    Attribute a = (Attribute) e.nextElement();
-	    if (a.isModified() || !a.flagged(DEFAULT)) {
-		setOnBody(a.getName(), a.getValue());
-	    }
-	}
-    
-	// System.out.println("Shadow created: " + toString());
-    }
-
-    /**
-     * Creates this shadow again after a constructor
-     * attribute has been set.
-     */
-    public void recreate() {
-	if (!isCreated) {
-	    isCreated = true;
-        
-	    createBody();
-        
-	    // Reparent the children
-	    if (this instanceof AMContainer)
-		((AMContainer)this).reparentChildren();
-        
-	    registerBody();
-        
-	    postCreate();
-	}
-    
-	if (parent != null && body != null)
-	    parent.addChildBody(this);
-    }
-
-    /**
-     * Destroys this shadow and all its children.
-     */
-    public void destroy() {
-	if (isCreated) {
-	    isCreated = false;
-        
-	    preDestroy();
-        
-	    super.destroy();
-        
-	    unregisterBody();
-        
-	    destroyBody();
-	    if (body != null)
-		throw new Error(Global.getMsg(
-			"sunsoft.jws.visual.rt.base.Shadow.BodyNotDestroyed"));
-	} else {
-	    super.destroy();
-	}
-    }
-
-    /**
-     * Called during destroy, but before the children are 
-     * destroyed.  By the time destroyBody is called, all
-     * the children have already been destroyed.
-     */
-    protected void preDestroy() {
-    }
-
-    /**
-     * Destroys the body for this shadow.
-     * Sub-classes are not required  to override this method.
-     */
-    protected void destroyBody() {
-	body = null;
-    }
-
-    /**
-     * Unregisters destroyed shadows.  Sub-classes should not
-     * override this method.
-     */
-    protected void unregisterBody() {
-	// remove this shadow's body from its container and from the
-	// global shadow table
-	if (body != null) {
-	    if (parent != null && body != null)
-		parent.removeChildBody(this);
-	    DesignerAccess.getShadowTable().remove(body);
-	}
-    }
-
-    public String toString() {
-	return (super.toString() + /* NOI18N */"["
-		+ /* NOI18N */"," + /* NOI18N */"body=" +
-		((body == null) ? /* NOI18N */"null" : body.toString())
-		+ /* NOI18N */"]");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/Util.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,683 +0,0 @@
-/*
- * 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) 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/*
- *        Copyright (C) 1996  Active Software, Inc.
- *                  All rights reserved.
- *
- * @(#) Util.java 1.43 - last change made 07/16/97
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.awt.*;
-import java.util.*;
-import java.io.*;
-
-import java.awt.image.RGBImageFilter;
-import java.awt.image.FilteredImageSource;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.applet.Applet;
-
-/**
- * Utilities needed by run-time.
- *
- * @version 	1.32, 03/09/97
- */
-public class Util {
-	// Relief constants
-	public static final int RELIEF_FLAT   = 0;
-	public static final int RELIEF_RAISED = 1;
-	public static final int RELIEF_SUNKEN = 2;
-	public static final int RELIEF_RIDGE  = 3;
-	public static final int RELIEF_GROOVE = 4;
-	public static final int WIN95_RAISED = 6;
-	public static final int WIN95_SUNKEN = 7;
-	public static final int WIN95_FIELD_BORDER = 8;
-	public static final int WIN95_WINDOW_BORDER = 9;
-	public static final int BLACK_BORDER = 10;
-    
-	// Character constants
-	public static final char BACKSLASH	= /* NOI18N */ '\\';
-	public static final char COLON	= /* NOI18N */ ':';
-	public static final char NEWLINE	= /* NOI18N */ '\n';
-	public static final char RETURN	= /* NOI18N */ '\r';
-	public static final char SLASH	= /* NOI18N */ '/';
-	public static final char SPACE	= /* NOI18N */ ' ';
-    
-    
-	// codebase the user specified in the project - used at design time
-	private String codebaseStr = null;
-    
-	// default class loader
-	private CustomClassLoader classLoader;
-    
-	// Darkness constants
-	private static final double BFACTOR = 0.82;
-	private static final double DFACTOR = 0.7;
-    
-	// Buffer size for reading files
-	private static final int BUFSIZE = 2048;
-    
-	public Util() {
-		classLoader = new VBClassLoader();
-	}
-    
-	/**
-	 * Returns a brighter version of this color.
-	 *
-	 * This version is adjusted to compensate for border cases:
-	 * If the base is white, the brighter color sometimes gets lost
-	 * against the background, so the border of the panel (or whatever)
-	 * is not seen. (Sun Bug # 4035733)
-	 * The solution is to check if the "brighter" color
-	 * is too bright, and if
-	 * so, set it to a light grey.
-	 *
-	 */
-    
-	public Color brighter(Color c) {
-		int r = c.getRed();
-		int g = c.getGreen();
-		int b = c.getBlue();
-        
-		r = Math.min((int)(r * (1/BFACTOR)), 255);
-		g = Math.min((int)(g * (1/BFACTOR)), 255);
-		b = Math.min((int)(b * (1/BFACTOR)), 255);
-        
-		if (r > 250 && g > 250 && b > 250) {
-			// note: we use the JDK darker, which simply makes
-			// the color darker,
-			//       rather than this.darker, which will turn
-			// values of 255 into
-			//       128.
-			return new Color(225, 225, 225);
-		}
-		/* JSTYLED */
-		return new Color(r, g, b);
-	}
-    
-	/**
-	 * Returns a darker version of this color.
-	 */
-	public Color darker(Color c) {
-		int r = c.getRed();
-		int g = c.getGreen();
-		int b = c.getBlue();
-        
-		if (r == 255)
-			r = 128;
-		else
-			r = Math.max((int)(r * DFACTOR), 0);
-        
-		if (g == 255)
-			g = 128;
-		else
-			g = Math.max((int)(g * DFACTOR), 0);
-        
-		if (b == 255)
-			b = 128;
-		else
-			b = Math.max((int)(b * DFACTOR), 0);
-        
-		return new Color(r, g, b);
-	}
-    
-	/**
-	 * Draw a 3D rectable with the given relief and border width.
-	 */
-	public void draw3DRect(Graphics g, int x, int y, int w, int h,
-			    int relief, int bd) {
-		int bd2 = (bd+1)/2;
-		for (int i = 0; i < bd; i++)
-			draw3DRect(g, x+i, y+i, w-2*i, h-2*i, relief,
-				(i < bd2));
-	}
-    
-	/**
-	 * Draw a 3D rectable with the given relief and outer boolean.
-	 */
-	private void draw3DRect(Graphics g, int x, int y, int w, int h,
-				int relief, boolean isOuter) {
-		Color color = g.getColor();
-        
-		g.setColor(getEdgeColor(color, relief, true, isOuter));
-		g.drawLine(x, y, x+w, y);
-		g.drawLine(x, y, x, y+h);
-        
-		g.setColor(getEdgeColor(color, relief, false, isOuter));
-		g.drawLine(x, y+h, x+w, y+h);
-		g.drawLine(x+w, y, x+w, y+h);
-        
-		g.setColor(color);
-	}
-    
-    
-	/**
-	 * Returns an adjusted color for the given
-	 * edge and the given relief.
-	 */
-	private Color getEdgeColor(Color base, int relief,
-				boolean isTopEdge, boolean isOuter) {
-        
-		Color color = null;
-        
-		switch (relief) {
-		case RELIEF_RAISED:
-			if (isTopEdge)
-				color = brighter(base);
-			else
-				color = darker(base);
-			break;
-            
-		case RELIEF_SUNKEN:
-			if (isTopEdge)
-				color = darker(base);
-			else
-				color = brighter(base);
-			break;
-            
-		case RELIEF_RIDGE:
-			if (isTopEdge) {
-				if (isOuter)
-					color = brighter(base);
-				else
-					color = darker(base);
-			} else {
-				if (isOuter)
-					color = darker(base);
-				else
-					color = brighter(base);
-			}
-			break;
-            
-		case RELIEF_GROOVE:
-			if (isTopEdge) {
-				if (isOuter)
-					color = darker(base);
-				else
-					color = brighter(base);
-			} else {
-				if (isOuter)
-					color = brighter(base);
-				else
-					color = darker(base);
-			}
-			break;
-            
-		case WIN95_RAISED:
-			if (isTopEdge) {
-				if (isOuter)
-					color = Color.white;
-				else
-					color = brighter(base);
-			} else {
-				if (isOuter)
-					color = Color.black;
-				else
-					color = darker(base);
-			}
-			break;
-            
-		case WIN95_SUNKEN:
-			if (isTopEdge) {
-				if (isOuter)
-					color = Color.black;
-				else
-					color = darker(base);
-			} else {
-				if (isOuter)
-					color = Color.white;
-				else
-					color =  brighter(base);
-                
-			}
-			break;
-            
-		case WIN95_FIELD_BORDER:
-			if (isTopEdge) {
-				if (isOuter)
-					color = darker(base);
-				else
-					color = Color.black;
-			} else {
-				if (isOuter)
-					color = Color.white;
-				else
-					color = brighter(base);
-				// was: base; // brighter(base);
-			}
-			break;
-            
-		case WIN95_WINDOW_BORDER:
-			if (isTopEdge) {
-				if (isOuter)
-					color =  brighter(base);
-				else
-					color = Color.white;
-			} else {
-				if (isOuter)
-					color = Color.black;
-				else
-					color = darker(base);
-			}
-			break;
-            
-		case BLACK_BORDER:
-			color = Color.black;
-			break;
-            
-		case RELIEF_FLAT:
-		default:
-			color = base;
-			break;
-		}
-        
-		return color;
-	}
-    
-	/**
-	 * Get an image given a url.  If we are on Windows 95, then we
-	 * need to use a filter to get around the transparency bugs.
-	 */
-	public Image getWorkaroundImage(URL url, Component comp) {
-		Image image = comp.getToolkit().getImage(url);
-		return getWorkaroundImage(image, comp);
-	}
-    
-	/**
-	 * Get an image given another.  If we are on Windows 95, then we
-	 * need to use a filter to get around the transparency bugs.
-	 * Otherwise, just return the image directly.
-	 */
-	public Image getWorkaroundImage(Image image, Component comp) {
-		if (image == null)
-			return null;
-        
-		if (Global.isWindows95() && Global.javaVersion() == 1.0) {
-			RGBImageFilter filter = new TransFilter(comp);
-			image = comp.createImage(
-				new FilteredImageSource(image.getSource(),
-							filter));
-		}
-        
-		return image;
-	}
-    
-	/**
-	 * When the user specifies/changes the codebase attribute
-	 * in the project, 
-	 * this method is called to update the value of "codebase" here.
-	 * When  we calculate an URL relative to codebase(such as the
-	 * ImageLabel "image"  attribute at design time, we use this
-	 * codebase value.
-	 */
-	public boolean setUserCodebase(String newCodebase) {
-		codebaseStr = newCodebase;
-		return true;
-	}
-    
-	public CustomClassLoader getClassLoader() {
-		return (classLoader);
-	}
-    
-	public void setClassLoader(CustomClassLoader newLoader) {
-		classLoader = newLoader;
-	}
-    
-	/**
-	 * Returns a URL based on a relative path to a file or directory.
-	 * If we are running under a browser, then a URL is created based
-	 * off of the code base.  Otherwise, a file URL will be created
-	 * by searching the CLASSPATH for the file.
-	 */
-	public URL pathToURL(String path, Applet applet) {
-		// general info: determine delimiter and urlPrefix
-		String delimiter, urlPrefix;
-		if (Global.isWindows()) {
-			delimiter = /* NOI18N */";";
-			urlPrefix = /* NOI18N */"file:/";
-		} else {
-			delimiter = /* NOI18N */":";
-			urlPrefix = /* NOI18N */"file:";
-		}
-        
-		// First see if the path is a full URL path
-		// Note that the user must specify "file:" for files
-		try {
-			URL url = new URL(path);
-			// System.out.println(
-			// "           detected full URL - URL=" + url);
-			return url;
-		}
-		catch (MalformedURLException ex) {
-		}
-        
-		// Are we running as an applet?  If running as the Visual Java
-		// applet in JWS can't use applet.getCodeBase because it is the
-		// codebase of Visual Java, not the users applet, so fall
-		// through
-		// and use the CLASSPATH
-		// Note: There's probably a better way to check if we're the
-		// Visual Java applet than checking for classname starting
-		// with "sun.jws"
-		if ((applet != null) &&
-		    !(applet.getClass().getName().startsWith(/* NOI18N */
-			    "sun.jws"))) {
-			String s = applet.getCodeBase().toExternalForm();
-			if (s.charAt(s.length()-1) != SLASH)
-				path = /* NOI18N */"/" + path;
-            
-			URL url;
-			try {
-				url = new URL(applet.getCodeBase(), path);
-			}
-			catch (MalformedURLException ex) {
-				url = null;
-			}
-			// System.out.println("           based on codebase="
-			// + s + " URL=" + url);
-			return url;
-		}
-        
-// Search the CLASSPATH for the file
-		String classpath;
-		try {
-			classpath = System.getProperty(
-					/* NOI18N */"java.class.path");
-		}
-		catch (SecurityException ex) {
-			throw new Error(Global.fmtMsg(
-			"sunsoft.jws.visual.rt.base.Util.NeedAppletparam",
-				Global.newline()));
-		}
-        
-		classpath = DesignerAccess.getCWD() + delimiter + classpath;
-        
-		StringTokenizer st = new StringTokenizer(classpath, delimiter);
-		boolean keepGoing = true;
-		while (st.hasMoreTokens() && keepGoing) {
-			String p = st.nextToken();
-            
-			if (p == /* NOI18N */"")
-				p = /* NOI18N */".";
-            
-			p = makeAbsolute(p);
-            
-			char c = p.charAt(p.length()-1);
-			if (c != SLASH && c != BACKSLASH)
-				p = p + separator;
-            
-			p = p + path;
-            
-			if (Global.isWindows()) {
-// Java allows the use of SLASH in the classpath,
-// so we need
-// convert SLASH to BACKSLASH.
-				char buf[] = p.toCharArray();
-				for (int i = 0; i < buf.length; i++) {
-					if (buf[i] == SLASH)
-						buf[i] = BACKSLASH;
-				}
-				p = new String(buf);
-			}
-            
-			File f = new File(p);
-			if (f.exists()) {
-				try {
-					URL url = new URL(urlPrefix + p);
-// System.out.println("           based on
-// classpath; found in " + p
-//			+ "; URL=" + url +
-// " classpath=" + classpath);
-					return url;
-				}
-				catch (MalformedURLException ex) {
-			// System.out.println("           based on
-			// classpath=" + classpath
-			//						+
-			// " URL=null");
-					keepGoing = false;
-				}
-			}
-		}
-        
-// Search relative to project's codebase attrib
-// (meant for design time only)
-		if (codebaseStr != null) {
-			URL url;
-			String tmpPath;
-			if (!codebaseStr.endsWith(/* NOI18N */"/") &&
-			    !codebaseStr.endsWith(File.separator)) {
-				tmpPath = codebaseStr + /* NOI18N */"/" + path;
-			} else {
-				tmpPath = codebaseStr + path;
-			}
-			File f = new File(tmpPath);
-			if (f.exists()) {
-				tmpPath = urlPrefix + tmpPath;
-			}
-			try {
-				url = new URL(tmpPath);
-				// System.out.println("           based on proj
-				// codebase=" + codebase + " URL=" + url);
-				return url;
-			}
-			catch (MalformedURLException e) {
-				url = null;
-			}
-		}
-        
-// System.out.println("           all attempts
-// failed - returning null");
-		return null;
-	}
-    
-	private static String separator;
-	private static String cwd;
-    
-	private String makeAbsolute(String path) {
-		if (separator == null) {
-			separator = System.getProperty(/* NOI18N */
-				"file.separator");
-		}
-        
-		if (cwd == null) {
-			cwd = System.getProperty(/* NOI18N */"user.dir");
-			if (cwd.charAt(cwd.length()-1) != separator.charAt(0))
-				cwd = cwd + separator;
-		}
-        
-		if (Global.isWindows()) {
-			if (path.length() < 3 ||
-			    (path.charAt(1) != COLON ||
-			    (path.charAt(2) != SLASH && path.charAt(2)
-			    		!= BACKSLASH))) {
-				path = cwd + path;
-			}
-		} else {
-			if (path.charAt(0) != SLASH)
-				path = cwd + path;
-		}
-        
-		return path;
-	}
-    
-/**
- * Compares two objects and returns if they are equal.
- * Will work with
- * null objects
- */
-    
-	public boolean isEqual(Object o1, Object o2) {
-		if (o1 == null) {
-			return (o2 == null);
-		} else {
-			return (o1.equals(o2));
-		}
-	}
-    
-/**
- * Quicksort for strings.  Could not get James Gosling's
- * example working
- * properly, or the "fixed" example, so wrote my own using
- * algorithms
- * book.
- */
-    
-	public void qsort(String[] list) {
-		quicksort(list, 0, list.length-1);
-	}
-    
-	private void quicksort(String[] list, int p, int r) {
-		if (p < r) {
-			int q = partition(list, p, r);
-			if (q == r) {
-				q--;
-			}
-			quicksort(list, p, q);
-			quicksort(list, q+1, r);
-		}
-	}
-    
-	private int partition(String[] list, int p, int r) {
-		String pivot = list[p];
-		int lo = p;
-		int hi = r;
-        
-		while (true) {
-			while (list[hi].compareTo(pivot) >= 0 &&
-			    lo < hi) {
-				hi--;
-			}
-			while (list[lo].compareTo(pivot) < 0 &&
-			    lo < hi) {
-				lo++;
-			}
-			if (lo < hi) {
-				String T = list[lo];
-				list[lo] = list[hi];
-				list[hi] = T;
-			} else return hi;
-		}
-	}
-    
-/** 
- * Quicksort for objects.  The is a parameter for a
- * QSortCompare object that is used to do the sorting.
- */
-    
-	public void qsort(Object[] list, QSortCompare comp) {
-		if (list != null)
-			quicksort(list, 0, list.length-1, comp);
-	}
-    
-	private void quicksort(Object[] list, int p, int r,
-			    QSortCompare comp) {
-		if (p < r) {
-			int q = partition(list, p, r, comp);
-			if (q == r) {
-				q--;
-			}
-			quicksort(list, p, q, comp);
-			quicksort(list, q+1, r, comp);
-		}
-	}
-    
-	private int partition(Object[] list, int p, int r,
-			    QSortCompare comp) {
-		Object pivot = list[p];
-		int lo = p;
-		int hi = r;
-        
-		while (true) {
-			while (comp.qsortCompare(list[hi], pivot) >= 0 &&
-			    lo < hi) {
-				hi--;
-			}
-			while (comp.qsortCompare(list[lo], pivot) < 0 &&
-			    lo < hi) {
-				lo++;
-			}
-			if (lo < hi) {
-				Object T = list[lo];
-				list[lo] = list[hi];
-				list[hi] = T;
-			} else return hi;
-		}
-	}
-    
-/**
- * A workaround routine for the Windows95 pack bug in 1.0.2
- *
- * @param c The component to pack
- */
-	static public void pack(Window c) {
-		c.pack();
-		if (Global.isWindows95() || Global.isWindowsNT()) {
-			Thread.yield();
-			c.pack();
-		}
-	}
-}
-
-
-/**
-* A Work-around filter.
-*
-* Transparent gifs don't display properly on Windows 95. 
-* The work-around
-* is to replace transparent pixels with the background color of the
-* component they're being displayed in before drawing them.
-*/
-class TransFilter extends RGBImageFilter {
-	private Color bg;
-	private Component comp;
-    
-	TransFilter(Component comp) {
-		if (comp == null)
-			throw new Error(Global.fmtMsg(
-				"sunsoft.jws.visual.rt.base.Util.NullComp",
-						    "TransWorkAroundFilter"));
-        
-		this.comp = comp;
-		canFilterIndexColorModel = false;
-	}
-    
-	public int filterRGB(int x, int y, int rgb) {
-		if (bg == null)
-			bg = comp.getBackground();
-        
-		if ((rgb & 0xff000000) == 0)
-			return (bg.getRGB());
-		else
-			return (rgb);
-	}
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/VBClassLoader.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * 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"
- *
- * @(#) VBClassLoader.java 1.1 - last change made 04/25/97
- *
- * Copyright (c) 1995, 2001 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
- * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE
- * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
- * USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
-
-package sunsoft.jws.visual.rt.base;
-
-import java.lang.Class;
-
-public class VBClassLoader implements CustomClassLoader {
-    /**
-     * This method is called to load a class indicated by the
-     * className argument.
-     *
-     * @param   className  the name of the class to load
-     */
-    public Class loadClass(String className)
-	throws ClassNotFoundException {
-        Class c = Class.forName(className);
-        return (c);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/base/VJException.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJException.java 1.1 - last change made 04/27/96
- */
-
-package sunsoft.jws.visual.rt.base;
-
-public class VJException extends RuntimeException {
-    public VJException() {
-        super();
-    }
-    
-    public VJException(String s) {
-        super(s);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/CEStreamExhausted.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.encoding;
-
-import java.io.IOException;
-
-public class CEStreamExhausted extends IOException
-{
-    
-    public CEStreamExhausted()
-    {
-        super();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/CRC16.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.encoding;
-
-
-public class CRC16
-{
-    
-    public CRC16()
-    {
-        super();
-        value = 0;
-    }
-    
-    public void update(byte aByte)
-    {
-        int a = aByte;
-        for (int count = 7; count >= 0; count--)
-	    {
-		a <<= 1;
-		int b = a >>> 8 & 0x1;
-		if ((value & 0x8000) != 0)
-		    value = (value << 1) + b ^ 0x1021;
-		else
-		    value = (value << 1) + b;
-	    }
-        
-        value = value & 0xffff;
-    }
-    
-    public void reset()
-    {
-        value = 0;
-    }
-    
-    public int value;
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= CEStreamExhausted CRC16 UCDecoder UCEncoder
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/UCDecoder.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.encoding;
-
-import java.io.*;
-
-// Referenced classes of package sunsoft.jws.visual.rt.encoding:
-//            CEStreamExhausted, CRC16
-
-public class UCDecoder
-{
-    
-    protected int bytesPerAtom()
-    {
-        return 2;
-    }
-    
-    protected int bytesPerLine()
-    {
-        return 48;
-    }
-    
-    protected void decodeAtom(InputStream inStream,
-			      OutputStream outStream, int l)
-	throws IOException
-    {
-        byte a = -1;
-        byte b = -1;
-        byte c = -1;
-        byte tmp[] = new byte[3];
-        int i = inStream.read(tmp);
-        if (i != 3)
-            throw new CEStreamExhausted();
-        for (i = 0; i < 64 && (a == -1 || b == -1 || c == -1); i++)
-	    {
-		if (tmp[0] == map_array[i])
-		    a = (byte)i;
-		if (tmp[1] == map_array[i])
-		    b = (byte)i;
-		if (tmp[2] == map_array[i])
-		    c = (byte)i;
-	    }
-        
-        byte high_byte = (byte)(((a & 0x38) << 2) + (b & 0x1f));
-        byte low_byte = (byte)(((a & 0x7) << 5) + (c & 0x1f));
-        int p1 = 0;
-        int p2 = 0;
-        for (i = 1; i < 256; i *= 2)
-	    {
-		if ((high_byte & i) != 0)
-		    p1++;
-		if ((low_byte & i) != 0)
-		    p2++;
-	    }
-        
-        int np1 = (b & 0x20) / 32;
-        int np2 = (c & 0x20) / 32;
-        if ((p1 & 0x1) != np1)
-            throw new IOException("UCDecoder: High byte parity error.");
-        if ((p2 & 0x1) != np2)
-            throw new IOException("UCDecoder: Low byte parity error.");
-        outStream.write(high_byte);
-        crc.update(high_byte);
-        if (l == 2)
-	    {
-		outStream.write(low_byte);
-		crc.update(low_byte);
-	    }
-    }
-    
-    protected void decodeBufferPrefix(InputStream inStream,
-				      OutputStream outStream)
-    {
-        sequence = 0;
-    }
-    
-    protected int decodeLinePrefix(InputStream inStream,
-				   OutputStream outStream)
-	throws IOException
-    {
-        crc.value = 0;
-        do
-	    {
-		int c = inStream.read(tmp, 0, 1);
-		if (c == -1)
-		    throw new CEStreamExhausted();
-	    }
-        while (tmp[0] != 42);
-        lineAndSeq.reset();
-        decodeAtom(inStream, lineAndSeq, 2);
-        byte xtmp[] = lineAndSeq.toByteArray();
-        int nLen = xtmp[0] & 0xff;
-        int nSeq = xtmp[1] & 0xff;
-        if (nSeq != sequence)
-	    {
-		throw new IOException("UCDecoder: Out of sequence line.");
-	    }
-        else
-	    {
-		sequence = sequence + 1 & 0xff;
-		return nLen;
-	    }
-    }
-    
-    protected void decodeLineSuffix(InputStream inStream,
-				    OutputStream outStream)
-	throws IOException
-    {
-        int lineCRC = crc.value;
-        lineAndSeq.reset();
-        decodeAtom(inStream, lineAndSeq, 2);
-        byte tmp[] = lineAndSeq.toByteArray();
-        int readCRC = (tmp[0] << 8 & 0xff00) + (tmp[1] & 0xff);
-        if (readCRC != lineCRC)
-            throw new IOException("UCDecoder: CRC check failed.");
-        else
-            return;
-    }
-    
-    public void decodeBuffer(InputStream aStream, OutputStream bStream)
-	throws IOException
-    {
-        int totalBytes = 0;
-        decodeBufferPrefix(aStream, bStream);
-        try
-	    {
-		do
-		    {
-			int length = decodeLinePrefix(aStream, bStream);
-			int i;
-			for (i = 0; i + bytesPerAtom() < length;
-			     i += bytesPerAtom())
-			    {
-				decodeAtom(aStream, bStream, bytesPerAtom());
-				totalBytes += bytesPerAtom();
-			    }
-                
-			if (i + bytesPerAtom() == length)
-			    {
-				decodeAtom(aStream, bStream, bytesPerAtom());
-				totalBytes += bytesPerAtom();
-			    }
-			else
-			    {
-				decodeAtom(aStream, bStream, length - i);
-				totalBytes += length - i;
-			    }
-			decodeLineSuffix(aStream, bStream);
-		    }
-		while (true);
-	    }
-        catch (CEStreamExhausted ex)
-	    {
-		decodeBufferSuffix(aStream, bStream);
-	    }
-    }
-    
-    public byte[] decodeBuffer(String inputString)
-	throws IOException
-    {
-        byte inputBuffer[] = new byte[inputString.length()];
-        inputString.getBytes(0, inputString.length(), inputBuffer, 0);
-        ByteArrayInputStream inStream =
-	    new ByteArrayInputStream(inputBuffer);
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        decodeBuffer(inStream, outStream);
-        return outStream.toByteArray();
-    }
-    
-    protected void decodeBufferSuffix(InputStream inputstream,
-				      OutputStream outputstream)
-	throws IOException
-    {
-    }
-    
-    public UCDecoder()
-    {
-        super();
-        tmp = new byte[2];
-        crc = new CRC16();
-        lineAndSeq = new ByteArrayOutputStream(2);
-    }
-    
-    private static final byte map_array[] = {
-        48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-        65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
-        75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-        85, 86, 87, 88, 89, 90, 97, 98, 99, 100,
-        101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-        111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
-        121, 122, 40, 41
-    };
-    private int sequence;
-    private byte tmp[];
-    CRC16 crc;
-    private ByteArrayOutputStream lineAndSeq;
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/encoding/UCEncoder.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.encoding;
-
-import java.io.*;
-
-// Referenced classes of package sunsoft.jws.visual.rt.encoding:
-//            CRC16
-
-public class UCEncoder
-{
-    
-    protected int bytesPerAtom()
-    {
-        return 2;
-    }
-    
-    protected int bytesPerLine()
-    {
-        return 48;
-    }
-    
-    protected void encodeAtom(OutputStream outStream, byte data[],
-			      int offset, int len)
-	throws IOException
-    {
-        byte a = data[offset];
-        byte b;
-        if (len == 2)
-            b = data[offset + 1];
-        else
-            b = 0;
-        crc.update(a);
-        if (len == 2)
-            crc.update(b);
-        outStream.write(map_array[(a >>> 2 & 0x38) + (b >>> 5 & 0x7)]);
-        int p1 = 0;
-        int p2 = 0;
-        for (int i = 1; i < 256; i *= 2)
-	    {
-		if ((a & i) != 0)
-		    p1++;
-		if ((b & i) != 0)
-		    p2++;
-	    }
-        
-        p1 = (p1 & 0x1) * 32;
-        p2 = (p2 & 0x1) * 32;
-        outStream.write(map_array[(a & 0x1f) + p1]);
-        outStream.write(map_array[(b & 0x1f) + p2]);
-    }
-    
-    protected void encodeLinePrefix(OutputStream outStream, int length)
-	throws IOException
-    {
-        outStream.write(42);
-        crc.value = 0;
-        tmp[0] = (byte)length;
-        tmp[1] = (byte)sequence;
-        sequence = sequence + 1 & 0xff;
-        encodeAtom(outStream, tmp, 0, 2);
-    }
-    
-    protected void encodeLineSuffix(OutputStream outStream)
-	throws IOException
-    {
-        tmp[0] = (byte)(crc.value >>> 8 & 0xff);
-        tmp[1] = (byte)(crc.value & 0xff);
-        encodeAtom(outStream, tmp, 0, 2);
-        pStream.println();
-    }
-    
-    protected void encodeBufferPrefix(OutputStream a)
-	throws IOException
-    {
-        sequence = 0;
-        pStream = new PrintStream(a);
-    }
-    
-    public void encodeBuffer(InputStream inStream,
-			     OutputStream outStream)
-	throws IOException
-    {
-        byte tmpbuffer[] = new byte[bytesPerLine()];
-        encodeBufferPrefix(outStream);
-        int numBytes;
-        do
-	    {
-		numBytes = readFully(inStream, tmpbuffer);
-		if (numBytes == -1)
-		    break;
-		encodeLinePrefix(outStream, numBytes);
-		for (int j = 0; j < numBytes; j += bytesPerAtom())
-		    if (j + bytesPerAtom() <= numBytes)
-			encodeAtom(outStream, tmpbuffer, j, bytesPerAtom());
-		    else
-			encodeAtom(outStream, tmpbuffer, j, numBytes - j);
-            
-		encodeLineSuffix(outStream);
-	    }
-        while (numBytes >= bytesPerLine());
-        encodeBufferSuffix(outStream);
-    }
-    
-    protected int readFully(InputStream in, byte buffer[])
-	throws IOException
-    {
-        for (int i = 0; i < buffer.length; i++)
-	    {
-		int q = in.read();
-		if (q == -1)
-		    return i;
-		buffer[i] = (byte)q;
-	    }
-        
-        return buffer.length;
-    }
-    
-    protected void encodeBufferSuffix(OutputStream outputstream)
-	throws IOException
-    {
-    }
-    
-    public String encodeBuffer(byte aBuffer[])
-    {
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        ByteArrayInputStream inStream =
-	    new ByteArrayInputStream(aBuffer);
-        try
-	    {
-		encodeBuffer(inStream, outStream);
-	    }
-        catch (Exception ex)
-	    {
-		throw new Error("encodeBuffer internal error");
-	    }
-        return outStream.toString();
-    }
-    
-    public UCEncoder()
-    {
-        super();
-        tmp = new byte[2];
-        crc = new CRC16();
-    }
-    
-    private PrintStream pStream;
-    private static final byte map_array[] = {
-        48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-        65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
-        75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-        85, 86, 87, 88, 89, 90, 97, 98, 99, 100,
-        101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-        111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
-        121, 122, 40, 41
-    };
-    private int sequence;
-    private byte tmp[];
-    private CRC16 crc;
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= MessageCatalog VisualRTProperties \
-	VisualRTProperties_en VisualRTProperties_en_US
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/MessageCatalog.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.props;
-
-import java.text.Format;
-import java.text.MessageFormat;
-import java.util.*;
-
-public class MessageCatalog
-{
-    
-    public MessageCatalog(String domainname, Locale locale)
-	{
-	    super();
-	    this.domainname = domainname;
-	    this.locale = locale;
-	    try
-	    {
-		resource = ResourceBundle.getBundle(domainname, locale);
-	    }
-	    catch (Exception e)
-	    {
-		e.printStackTrace();
-	    }
-	}
-    
-    public MessageCatalog(String domainname)
-	{
-	    this(domainname, Locale.getDefault());
-	}
-    
-    public String getMessage(String defaultMessage)
-	{
-	    return getKeyMessage(defaultMessage, defaultMessage);
-	}
-    
-    public String getFormattedMessage(String defaultMessage,
-				      Object arg)
-	{
-	    return getFormattedKeyMessage(defaultMessage, defaultMessage,
-					  arg);
-	}
-    
-    public String getFormattedMessage(String defaultMessage,
-				      Object arg1, Object arg2)
-	{
-	    return getFormattedKeyMessage(defaultMessage, defaultMessage,
-					  arg1, arg2);
-	}
-    
-    public String getFormattedMessage(String defaultMessage,
-				      Object arg1, Object arg2,
-				      Object arg3)
-	{
-	    return getFormattedKeyMessage(defaultMessage, defaultMessage,
-					  arg1, arg2, arg3);
-	}
-    
-    public String getFormattedMessage(String defaultMessage,
-				      Object arg[])
-	{
-	    return getFormattedKeyMessage(defaultMessage, defaultMessage,
-					  arg);
-	}
-    
-    public String getKeyMessage(String key, String defaultMessage)
-	{
-	    String result = null;
-	    if (resource == null)
-		result = defaultMessage;
-	    else
-		try
-		{
-		    result = resource.getString(key);
-		}
-	    catch (MissingResourceException ex)
-	    {
-		result = defaultMessage;
-	    }
-	    catch (Exception ex)
-	    {
-		result = defaultMessage;
-	    }
-	    return result;
-	}
-    
-    public String getFormattedKeyMessage(String key,
-					 String defaultMessage,
-					 Object arg)
-	{
-	    String result = getKeyMessage(key, defaultMessage);
-	    Object rarg[] = {
-		arg
-	    };
-	    return new MessageFormat(result).format(rarg);
-	}
-    
-    public String getFormattedKeyMessage(String key,
-					 String defaultMessage,
-					 Object arg1, Object arg2)
-	{
-	    String result = getKeyMessage(key, defaultMessage);
-	    Object arg[] = {
-		arg1, arg2
-	    };
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String getFormattedKeyMessage(String key,
-					 String defaultMessage,
-					 Object arg1, Object arg2,
-					 Object arg3)
-	{
-	    String result = getKeyMessage(key, defaultMessage);
-	    Object arg[] = {
-		arg1, arg2, arg3
-	    };
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String getFormattedKeyMessage(String key,
-					 String defaultMessage,
-					 Object arg[])
-	{
-	    String result = getKeyMessage(key, defaultMessage);
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String noTranslation(String message)
-	{
-	    return message;
-	}
-    
-    public String noTranslation(String message, Object arg1)
-	{
-	    String result = noTranslation(message);
-	    Object arg[] = {
-		arg1
-	    };
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String noTranslation(String message, Object arg1,
-				Object arg2)
-	{
-	    String result = noTranslation(message);
-	    Object arg[] = {
-		arg1, arg2
-	    };
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String noTranslation(String message, Object arg1,
-				Object arg2, Object arg3)
-	{
-	    String result = noTranslation(message);
-	    Object arg[] = {
-		arg1, arg2, arg3
-	    };
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    public String noTranslation(String message, Object arg[])
-	{
-	    String result = noTranslation(message);
-	    return new MessageFormat(result).format(arg);
-	}
-    
-    private String domainname;
-    private ResourceBundle resource;
-    private Locale locale;
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,609 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-        
-/**
- * Copyright 1996 Active Software Inc. 
- */
-        
-package sunsoft.jws.visual.rt.props;
-        
-import java.util.ListResourceBundle;
-        
-public class VisualRTProperties extends ListResourceBundle
-{
-            
-    public Object[][] getContents()
-	{
-	    return contents;
-	}
-            
-    public VisualRTProperties()
-	{
-	    super();
-	}
-            
-    static final Object contents[][] = {
-/* BEGIN JSTYLED */
-	{
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.Class__not__found",
-	    "Class not found: "
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.FMT.1",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.NotAComponentSubclass",
-	    "\" {0}\" is not a sublcass of Component"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.IllegalAccess",
-	    "Illegal access: \" {0}\""
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.InstantiationException",
-	    "\" {0}\" could not be instantiated"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.Noconstructor",
-	    "\" {0}\" does not have a null constructor"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericWindowShadow.Class__not__found",
-	    "\"Class not found: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericWindowShadow.NotARootSubclass",
-	    "\" {0}\" is not a subclass of RootFrame or RootDialog"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericWindowShadow.IllegalAccess",
-	    "Illegal access: \" {0}\""
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.GenericWindowShadow.InstantiationException",
-	    "\" {0}\" could not be instantiated"
-	},
-	{
-	    "sunsoft.jws.visual.rt.shadow.GenericWindowShadow.Noconstructor",
-	    "\" {0}\" does not have a null constructor"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.Error", "Error: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.FlowPanelShadow.DefaultText",
-	    "Flow Layout"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.ColumnListShadow.Column__Format",
-	    "\"Column format must be(l)eft, (r)ight or (c)enter only"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.MultiLineLabelShadow.DefaultText",
-	    "MultiLineLabel"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.java.awt.ButtonShadow.button",
-	    "button"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.java.awt.LabelShadow.text",
-	    "label"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.java.awt.CheckboxShadow.text",
-	    "checkbox"
-	}, {
-	    "sunsoft.jws.visual.rt.shadow.java.awt.DialogShadow.title",
-	    "Unnamed Dialog"
-	}, {
-            "sunsoft.jws.visual.rt.shadow.java.awt.FileDialogShadow.title",
-	    "File Dialog (not viewable)"
-	},
-	{
-	    "sunsoft.jws.visual.rt.shadow.java.awt.FrameShadow.title",
-	    "Unnamed Frame"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.FMT.0", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.FMT.1", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.FMT.2", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.FMT.3", "{0}{1}"
-	}, {
-            "sunsoft.jws.visual.rt.type.AMConverter.AMConverter__convertF.0",
-	    "AMConverter convertFromString needs a version"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.________Incomplete__attri.1",
-	    "    Incomplete attribute manager line:"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.____________type__-eq-__",
-	    "      type = "
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.____________name__-eq-__",
-	    "      name = "
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.____________attr__-eq-__",
-	    "      attr = "
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.AMConverter.Could__not__access__",
-	    "Could not access "
-	}, {
-            "sunsoft.jws.visual.rt.type.AMConverter.Could__not__instantiat.2",
-	    "Could not instantiate "
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.________Incomplete__attri.3",
-	    "    Incomplete attribute manager line:"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AMConverter.will__not__generate__co.4",
-	    "will not generate code,"
-	}, {
-            "sunsoft.jws.visual.rt.type.AMConverter.implementation__of__th.5",
-	    "implementation of this is in the GUI builder"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.4",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.5",
-	    "{0}{1}{2}{3}{4}{5}{6}{7}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.6",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.7",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.AttributeConverter__n.6",
-	    "AttributeConverter needs a shadow object "
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.argument__to__operate",
-	    "argument to operate"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.internal__error__-__",
-	    "internal error - "
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.convertToCode__with__m.11",
-	    "convertToCode with minimal arguments cannot be called"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeListConverter.AttributeListConvert.12",
-	    "AttributeListConverter cannot work without a shadow object argument"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeListConverter.________Incomplete__attri.13",
-	    "    Incomplete attribute line:"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BaseEnum.FMT.8", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BaseEnum.FMT.9", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BaseEnum.invalid__int__choice__",
-	    "invalid int choice "
-	}, {
-            "sunsoft.jws.visual.rt.type.BaseEnum.__given__to__Enum__class.14",
-	    " given to Enum class"
-	}, {
-            "sunsoft.jws.visual.rt.type.BaseEnum.invalid__string__choic.15",
-	    "invalid string choice "
-	},
-	{
-            "sunsoft.jws.visual.rt.type.BaseEnum.__given__to__Enum__class.16",
-	    " given to Enum class"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BooleanConverter.FMT.10", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BooleanConverter.Illegal__boolean__valu.17",
-	    "Illegal boolean value: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.ColorConverter.FMT.11", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ColorConverter.FMT.12", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ColorConverter.Illegal__color__value-co-.18",
-	    "Illegal color value: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.ColorConverter.Badly__formatted__colo.19",
-	    "Badly formatted color value: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.Converter.FMT.13", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.Converter.FMT.14", "{0}{1}{2}"
-	}, {
-            "sunsoft.jws.visual.rt.type.Converter.FMT.15", "{0}{1}{2}{3}{4}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.Converter.FMT.16", "{0}{1}{2}"
-	}, {
-            "sunsoft.jws.visual.rt.type.Converter.No__converter__defined.20",
-	    "No converter defined for the \"unknown\" type."
-	}, {
-	    "sunsoft.jws.visual.rt.type.Converter.Class__not__found__for__.21",
-	    "Class not found for type \""
-	}, {
-            "sunsoft.jws.visual.rt.type.Converter.Sub-classes__of__Conve.22",
-	    "Sub-classes of Converter MUST override at least one "
-	}, {
-	    "sunsoft.jws.visual.rt.type.Converter.of__the__-ba--qu-convertToSt.23",
-	    "of the \"convertToString\" methods, and at least one "
-	}, {
-	    "sunsoft.jws.visual.rt.type.Converter.of__the__-ba--qu-convertToCo.24",
-	    "of the \"convertToCode\" methods."
-	}, {
-            "sunsoft.jws.visual.rt.type.Converter.Convert__exit__without.25",
-	    "Convert exit without enter"
-	}, {
-            "sunsoft.jws.visual.rt.type.Converter.isBuffered__mismatch__.26",
-	    "isBuffered mismatch in exitConvert"
-	}, {
-	    "sunsoft.jws.visual.rt.type.DimensionConverter.FMT.17",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.DimensionConverter.FMT.18",
-	    "{0}{1}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.DimensionConverter.Badly__formatted__dime.27",
-	    "Badly formatted dimension value: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.DoubleArrayConverter.FMT.19",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.DoubleArrayConverter.Badly__formatted__doub.28",
-	    "Badly formatted double: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.FMT.20", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.FMT.21", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.FMT.22", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.FMT.23", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.FMT.24", "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.Warning-co-__unknown__fon.29",
-	    "Warning: unknown font style: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.Missing__font__name-co-__",
-	    "Missing font name: "
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.FontConverter.Invalid__font__style-co-__.30",
-	    "Invalid font style: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.Invalid__font__size-co-__",
-	    "Invalid font size: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.FontConverter.Negative__font__size-co-__.31",
-	    "Negative font size: "
-	}, {
-            "sunsoft.jws.visual.rt.type.GBConstraintsConverter.FMT.25",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.GBConstraintsConverter.FMT.26",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.FMT.27", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.FMT.28", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.could__not__find__file__.32",
-	    "could not find file \""
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.-ba--qu-__relative__to__class.33",
-	    "\" relative to classpath/codebase"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.Error-co-__could__not__loa.34",
-	    "Error: could not load image \""
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.GBConstraintsConverter.FMT.29",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.GBConstraintsConverter.unknown__constant",
-	    "unknown constant"
-	}, {
-	    "sunsoft.jws.visual.rt.type.BaseEnum.FMT.30", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.DimensionConverter.FMT.31",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.DimensionConverter.illegal__dimension__value",
-	    "Illegal dimension value: "
-	}, {
-	    "sunsoft.jws.visual.rt.type.ImageRef.FMT.32", "{0}{1}{2}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.33",
-	    "Unknown attribute {0}\n\nclass {1}\ntype {2}\nkey {3}\nvalue {4}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.34",
-	    "Unknown attribute type {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.35",
-	    "Type in gui file {0} \ndoes not match expected type {1}."
-	}, {
-	    "sunsoft.jws.visual.rt.base.AMContainerHelper.adding__container's__p.0",
-	    "adding container's parent to itself"
-	},
-	{
-	    "sunsoft.jws.visual.rt.base.BeanSerialization.serExcpt",
-	    "The following error occured during serialization of \" {0}\":\n\" {1}\"."
-	}, {
-	    "sunsoft.jws.visual.rt.base.BeanSerialization.decoderExcpt",
-	    "An error occured during deserialization of \" {0}\"."
-	}, {
-	    "sunsoft.jws.visual.rt.base.BeanSerialization.deserExcpt",
-	    "The following error occured during deserialization of \" {0}\":\n\" {1}\"."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Attribute.ClassNotFound",
-	    "Class \" {0}\" not found"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Attribute.IllegalAttribute",
-	    "Illegal attribute value for {0}. Expected type : {1} Actual type : {2} value = {3}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.AttributeManager.SetInvalidAttribute",
-	    "Attempt to set invalid attribute {0}"
-	}, {
-            "sunsoft.jws.visual.rt.base.AttributeManager.ReadonlyAttribute",
-	    "Attempt to set read-only attribute {0}"
-	}, {
-            "sunsoft.jws.visual.rt.base.AttributeManager.GetInvalidAttribute",
-	    "Attempt to get invalid attribute {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Group.ExpiredVersion",
-	    "This version of Visual Java GUI Builder has expired"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Group.ExpiredVersionDate",
-	    "Warning: This version of Visual Java GUI Builder has expires on {0}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.base.Group.GroupInitializationWarning",
-	    "Warning: A group must be a child of another group before it can be initialized."
-	}, {
-            "sunsoft.jws.visual.rt.base.Group.GroupCreationWarning",
-	    "Warning: A group must be a child of another group before it can be created."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Group.RootIsNull",
-	    "\"Root\" is null. {0} is returning null from initRoot."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Group.RootIsNull2",
-	    "\"Root\" is null. Make sure that initialize is called before create"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Group.UnexpectedMainChildType",
-	    "Unexpected type for main child: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.MainHelper.NeedRuntimeVersion",
-	    "Warning: need runtime version {0}, version {1} is what is available, continuing..."
-	}, {
-	    "sunsoft.jws.visual.rt.base.MainHelper.BaseGroupMustBeNonVis",
-	    "The base group cannot be a non-visual group: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.MainHelper.ClassNotFound",
-	    "Could not find external class {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.MainHelper.InstantiationException",
-	    "Could not instantiate external class {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.MainHelper.illegalAccess",
-	    "Could not construct external class {0}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.base.Root.RootMissingContainer",
-	    "Root {0} does not contain {1}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Root.NeedName",
-	    "Every component must have a name."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Root.NotUniqueName",
-	    "Name {0} is not unique"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Root.NotValidName",
-	    "Name {0} isn't a valid variable name."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.NoSuchKey",
-	    "No match for {0} in getOnBody()"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.UnknownAttribute",
-	    "Unknown attribute {0} for class [1}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.NoSuchKey2",
-	    "No match for {0} in setOnBody()"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.InvalidAttributeSet",
-	    "Attempt to set invalid attribute {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.ReadOnlyAttributeSet",
-	    "Attempt to set read-only attribute {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.BodyNotDestroyed",
-	    "Shadow body was not destroyed"
-	},
-	{
-	    "sunsoft.jws.visual.rt.base.Group.ShadowCreationWarning",
-	    "Warning: A shadow must be a child of another shadow before it can be created."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Shadow.BodyNotCreated",
-	    "Shadow body was not created"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Util.NeedAppletparam",
-	    "You must provide a non-null applet parameter to \"pathToURL\" {0} when running as an applet."
-	}, {
-	    "sunsoft.jws.visual.rt.base.Util.SecurityException",
-	    "SECURITY EXCEPTION1: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.base.Util.NullComp",
-	    "null comp argument to {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.encoder.UCDecoder.HighByteparity",
-	    "UCDecoder: High byte parity error."
-	}, {
-	    "sunsoft.jws.visual.rt.encoder.UCDecoder.LowByteparity",
-	    "UCDecoder: Low byte parity error."
-	}, {
-	    "sunsoft.jws.visual.rt.encoder.UCDecoder.OutOfSequence",
-	    "UCDecoder: Out of sequence line."
-	}, {
-	    "sunsoft.jws.visual.rt.encoder.UCDecoder.CRCFailed",
-	    "UCDecoder: CRC check failed."
-	}, {
-	    "sunsoft.jws.visual.rt.type.InsetsConverter.BadInsets",
-	    "Badly formatted insets value: {0}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.InsetsConverter.IllegalInsets",
-	    "Illegal inset value: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.IntArrayConverter.BadFormatInteger",
-	    "Badly formatted integer: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ListParser.SpaceExpected",
-	    "list element in braces followed by {0} instead of space"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ListParser.SpaceExpected2",
-	    "list element in quotes followed by \" {0}\" {1} instead of space"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ListParser.UnmatchedBrace",
-	    "unmatched open brace in list"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ListParser.UnmatchedQuote",
-	    "unmatched open quote in list"
-	}, {
-	    "sunsoft.jws.visual.rt.type.ListParser.ExpectingTwoElements",
-	    "Expecting two list elements: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.OpAction.NumberFormatException",
-	    "Number format exception: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.OpAction.ValWithoutType",
-	    "Got a value without a valueType: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.OpAction.NoConverter",
-	    "Could not find converter for {0}"
-	},
-	{
-	    "sunsoft.jws.visual.rt.type.PointConverter.IllegalPoint",
-	    "Illegal point value: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.PointConverter.BadFormattedValue",
-	    "Badly formatted point value: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.TypeEditor.AddChildError",
-	    "Adding type editor's parent to itself"
-	}, {
-	    "sunsoft.jws.visual.rt.type.TypeEditor.Error", "Error"
-	}, {
-            "sunsoft.jws.visual.rt.type.UnknownTypeConverter.NoTypeConverter",
-	    "Warning: no type converter for type: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.type.UnknownTypeConverter.CantConvert",
-	    "Warning: don't know what type to convert this to: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.CardPanel.FMT.0", "{0}{1}{2}{3}{4}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.CardPanel.Card__Panel", "Card Panel"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.CardPanel.________There__is__no__tab__.0",
-	    "    There is no tab for \""
-	}, {
-	    "sunsoft.jws.visual.rt.awt.CardPanel.________You__must__call__ad.1",
-	    "    You must call addTab before addCard."
-	},
-	{
-	    "sunsoft.jws.visual.rt.awt.ColumnListThread.FMT.1",
-	    "{0}{1}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.ColumnListThread.Exception__in__sleep-co-__.2",
-	    "Exception in sleep: "
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBConstraints.FMT.2",
-	    "{0}{1}{2}{3}{4}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBConstraints.-ba-r-ba-n-ba-tSyntax__error__i.3",
-	    "\r\n\tSyntax error in GBConstraints string:\r\n"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.4",
-	    "illegal anchor value"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.5",
-	    "illegal anchor value"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.6",
-	    "illegal anchor value"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBLayout.illegal__anchor__value.7",
-	    "illegal anchor value"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.GBPanel.null__constraints",
-	    "null constraints"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.ImageLabel.nullColor",
-	    "null color argument to "
-	},
-	{
-	    "sunsoft.jws.visual.rt.awt.ImageLabel.ImproperAlignment",
-	    "Improper alignment"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.ScrollPanel.OnlyOneInstance",
-	    "Can only add an instance of Scrollable to the ScrollPanel"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.TabbedFolder.Empty", "<Empty>"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.TabbedFolder.NewCardLabel",
-	    "TabbedFolder"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.VJErrorDialog.OK", "OK"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.VJPanel.UnmarkedEvent",
-	    "{0} was called with an unmarked event"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.VJScrollbar.CantAdd",
-	    "Cannot add components to a VJScrollbar"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.VJScrollbar.CantRemove",
-	    "Cannot remove components from a VJScrollbar"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.WinScrollbar.IllegalOrientation",
-	    "Illegal scrollbar orientation"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.ComponentShadow.IllegalSetVisible",
-	    "It is illegal to set a container's visible attribute to false if it is the main container for its group."
-	},
-	{
-            "sunsoft.jws.visual.rt.awt.java.awt.DialogShadow.NullFrameShadow",
-	    "FrameShadow reference is null"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.DialogShadow.NullFrame",
-	    "Frame is null"
-	}, {
-            "sunsoft.jws.visual.rt.awt.java.awt.FrameShadow.AlreadyHasMenubar",
-	    "frame already has a menubar while trying to add {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.FrameShadow.MenubarNotInstalled",
-	    "This menubar was never installed: {0}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.MenuBarShadow.CantResolveHelpMenu",
-	    "Menu bar {0} ould not resolve help menu {1}"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.ScrollbarShadow.NoLayoutConstraints",
-	    "scrollbar does not have layout constraints!"
-	}, {
-	    "sunsoft.jws.visual.rt.awt.java.awt.WindowShadow.IllegalSetVisible",
-	    "It is illegal to set a window's visible attribute to false if it is the main window for its group."
-	}, {
-            "the last line cannot have a comma so this has been added to make",
-	    "automatic code generation easier.  it is never used."
-	}
-    };
-/* END JSTYLED */            
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties_en.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.props;
-
-
-// Referenced classes of package sunsoft.jws.visual.rt:
-//            VisualRTProperties
-
-public class VisualRTProperties_en extends VisualRTProperties
-{
-    
-    public VisualRTProperties_en()
-    {
-        super();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/props/VisualRTProperties_en_US.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * 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) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/**
- * Copyright 1996 Active Software Inc. 
- */
-
-package sunsoft.jws.visual.rt.props;
-
-
-// Referenced classes of package sunsoft.jws.visual.rt:
-//            VisualRTProperties
-
-public class VisualRTProperties_en_US extends VisualRTProperties
-{
-    
-    public VisualRTProperties_en_US()
-    {
-        super();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/BorderPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
- * 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.
- *
- * @(#) BorderPanelShadow.java 1.19 - last change made 06/12/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.VJPanel;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.shadow.GBPanelShadow;
-import java.awt.*;
-import java.util.Enumeration;
-
-/**
- * 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
------------------------------------------------------------------------
-useCenter       java.lang.Boolean         true
-useEast         java.lang.Boolean         true
-useNorth        java.lang.Boolean         true
-useSouth        java.lang.Boolean         true
-useWest         java.lang.Boolean         true
-*  < /pre>
-*
-* The attributes for this class allow you to select which of the five
-* border panel cells are going to be used.  When you set them to
-* false, whatever was in that cell is deleted and the cell will no
-* longer appear in the border layout for use in arranging components.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see BorderLayout
-* @version 1.19, 06/12/97
-*/
-public class BorderPanelShadow extends VJPanelShadow {
-    public BorderPanelShadow() {
-        attributes.add(/* NOI18N */"useCenter",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"useNorth",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"useSouth",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"useEast",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"useWest",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        Panel panel = (Panel)body;
-        
-        if (key.equals(/* NOI18N */"useCenter") ||
-	    key.equals(/* NOI18N */"useNorth") ||
-	    key.equals(/* NOI18N */"useSouth") ||
-	    key.equals(/* NOI18N */"useEast") ||
-	    key.equals(/* NOI18N */"useWest")) {
-            return getFromTable(key);
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Panel panel = (Panel)body;
-        
-        if (key.equals(/* NOI18N */"useCenter") ||
-	    key.equals(/* NOI18N */"useNorth") ||
-	    key.equals(/* NOI18N */"useSouth") ||
-	    key.equals(/* NOI18N */"useEast") ||
-	    key.equals(/* NOI18N */"useWest")) {
-            // border names differ from the keys "useWest" -> "West"
-            adjustChild(key.substring(3),
-			((Boolean)value).booleanValue());
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    private void adjustChild(String borderName, boolean create) {
-        AttributeManager mgr = lookupChild(borderName);
-        
-        if (create) {
-            if (mgr != null)
-                return;
-            
-            double wx[] = {1};
-            double wy[] = {1};
-            
-            GBPanelShadow panel = new GBPanelShadow();
-            panel.set(/* NOI18N */"layoutName", borderName);
-            panel.set(/* NOI18N */"columnWeights", wx);
-            panel.set(/* NOI18N */"rowWeights", wy);
-            
-            add(panel);
-            panel.create();
-        } else {
-            if (mgr == null)
-                return;
-            
-            GBPanelShadow panel = (GBPanelShadow)mgr;
-            panel.destroy();
-            remove(panel);
-        }
-    }
-    
-    private AttributeManager lookupChild(String borderName) {
-        Enumeration e = getChildList();
-        while (e.hasMoreElements()) {
-            AttributeManager mgr = (AttributeManager)e.nextElement();
-            String name = (String)mgr.get(/* NOI18N */"layoutName");
-            
-            if (name == null)
-                continue;
-            
-            if (name.equals(borderName))
-                return mgr;
-        }
-        
-        return null;
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        if (!key.equals(/* NOI18N */"layoutName"))
-            return;
-        
-        Shadow s = (Shadow)child;
-        Component comp = (Component)s.getBody();
-        if (comp == null)
-            return;
-        
-        String borderName = (String)value;
-        if (borderName == null)
-            borderName = /* NOI18N */"Center";
-        
-        Panel panel = (Panel)body;
-        BorderLayout bd = (BorderLayout)panel.getLayout();
-        
-        bd.addLayoutComponent(borderName, comp);
-    }
-    
-    public void createBody() {
-        Panel panel = new VJPanel();
-        panel.setLayout(new BorderLayout());
-        body = panel;
-    }
-    
-    protected void postCreate() {
-        Enumeration e = getChildList();
-        while (e.hasMoreElements()) {
-            AttributeManager mgr = (AttributeManager)e.nextElement();
-            String borderName =
-		(String)mgr.get(/* NOI18N */"layoutName");
-            
-            if (borderName == null)
-                continue;
-            
-            if (borderName.equals(/* NOI18N */"Center"))
-                set(/* NOI18N */"useCenter", Boolean.TRUE);
-            else if (borderName.equals(/* NOI18N */"North"))
-                set(/* NOI18N */"useNorth", Boolean.TRUE);
-            else if (borderName.equals(/* NOI18N */"South"))
-                set(/* NOI18N */"useSouth", Boolean.TRUE);
-            else if (borderName.equals(/* NOI18N */"East"))
-                set(/* NOI18N */"useEast", Boolean.TRUE);
-            else if (borderName.equals(/* NOI18N */"West"))
-                set(/* NOI18N */"useWest", Boolean.TRUE);
-        }
-        
-        super.postCreate();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/CardPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,495 +0,0 @@
-/*
- * 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.
- *
- * @(#) CardPanelShadow.java 1.33 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-
-import java.awt.*;
-import java.util.*;
-
-/**
- * CardPanelShadow - Panel with card layout.
- * 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
------------------------------------------------------------------------
-cards           [Lrt.shadow.GBPanelShadow initial label
-delayedCreation java.lang.Boolean         true
-currentCard     java.lang.String          null
-*  < /pre>
-*
-* Check the super class for additional attributes. < p>
-*
-* The "delayedCreation" attribute delays the creation of cards until
-* after they are shown.  This is good for performance.  But it is bad
-* because the initial size of the card panel will be determined by the
-* first card, and not by the largest card in the panel.  So if
-* "delayedCreation" is set to true, you need to make sure that the
-* initial card is bigger than all the other cards.
-*
-* @see CardLayout
-* @version 	1.33, 07/25/97
-*/
-public class CardPanelShadow extends VJPanelShadow {
-    
-    protected CardPanel cardPanel;
-    private GBPanelShadow cards[];
-    
-    // Layout mode stuff
-    private boolean inDesignerRoot;
-    private Choice cardMenu;
-    private GBLayout gridbag;
-    private GBConstraints cardMenuConstraints;
-    
-    public CardPanelShadow() {
-        attributes.add(/* NOI18N */"cards",
-	       /* NOI18N */"[Lsunsoft.jws.visual.rt.shadow.GBPanelShadow;",
-		       null, DEFAULT | TRANSIENT);
-        attributes.add(/* NOI18N */"delayedCreation",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"currentCard",
-		       /* NOI18N */"java.lang.String", null,
-		       HIDDEN | TRANSIENT);
-    }
-    
-    //
-    // Public methods
-    //
-    
-    public void show(String name) {
-        set(/* NOI18N */"currentCard", name);
-    }
-    
-    public GBPanelShadow getCard(String name) {
-        GBPanelShadow cards[] = getCards();
-        String str;
-        
-        for (int i = 0; i < cards.length; i++) {
-            str = (String)cards[i].get(/* NOI18N */"layoutName");
-            if (str != null && str.equals(name))
-                return cards[i];
-        }
-        
-        return null;
-    }
-    
-    //
-    // Attributes
-    //
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"cards")) {
-            return getCards();
-        } else if (key.equals(/* NOI18N */"delayedCreation")) {
-            return getFromTable(key);
-        } else if (key.equals(/* NOI18N */"currentCard")) {
-            return cardPanel.getCurrentCard();
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"cards")) {
-            setCards((GBPanelShadow[])value);
-        } else if (key.equals(/* NOI18N */"delayedCreation")) {
-            putInTable(key, value);
-            if (!((Boolean)value).booleanValue())
-                create();
-        } else if (key.equals(/* NOI18N */"currentCard")) {
-            if (value != null)
-                cardPanel.show((String)value);
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        if (!key.equals(/* NOI18N */"layoutName"))
-            return;
-        
-        GBPanelShadow cards[] = getCards();
-        int i;
-        for (i = 0; i < cards.length; i++) {
-            if (cards[i] == child)
-                break;
-        }
-        
-        String name = (String)value;
-        if (name == null)
-            name = /* NOI18N */"null";
-        
-        if (cardPanel != null) {
-            Component comp = (Component)((Shadow)child).getBody();
-            if (comp != null)
-                cardPanel.renameTab(cardPanel.getCardName(comp), name);
-            else
-                cardPanel.renameTab(cardPanel.getTab(i), name);
-        }
-    }
-    
-    //
-    // Private methods
-    //
-    
-    private void createCard(String name) {
-        GBPanelShadow card = getCard(name);
-        if (card != null) {
-            if (!card.isCreated()) {
-                Group base = null;
-                Group g = getGroup();
-                if (g != null)
-                    base = g.getBase();
-                
-                if (base != null)
-                    base.setCursor(Frame.WAIT_CURSOR);
-                card.create();
-                if (base != null)
-                    base.setCursor(Group.RESTORE_CURSOR);
-            }
-        }
-    }
-    
-    private void updateCards() {
-        GBPanelShadow cards[] = getCards();
-        Component comp;
-        
-        for (int i = 0; i < cards.length; i++) {
-            comp = (Component)cards[i].getBody();
-            
-            boolean shadowVisible =
-		/* JSTYLED */
-		((Boolean)cards[i].get(/* NOI18N */"visible")).booleanValue();
-            boolean compVisible =
-		(comp == null) ? false : comp.isVisible();
-            
-            
-            if (shadowVisible != compVisible) {
-                // Update the card in the option menu
-                if (compVisible && cardMenu != null)
-                    cardMenu.select(i);
-                
-                cards[i].set(/* NOI18N */"visible",
-			     new Boolean(compVisible));
-            }
-        }
-    }
-    
-    protected synchronized GBPanelShadow[] getCards() {
-        if (cards == null) {
-            int i = 0;
-            cards = new GBPanelShadow[getChildCount()];
-            
-            Enumeration e = getChildList();
-            while (e.hasMoreElements())
-                cards[i++] = (GBPanelShadow)e.nextElement();
-        }
-        
-        return cards;
-    }
-    
-    protected void setCards(GBPanelShadow cards[]) {
-        boolean showFirst = false;
-        GBPanelShadow currentCard = getCard(cardPanel.getCurrentCard());
-        
-        // Remove all cards, and destroy cards that are no longer used.
-        Enumeration e = getChildList();
-        while (e.hasMoreElements()) {
-            GBPanelShadow s = (GBPanelShadow)e.nextElement();
-            
-            remove(s);
-            
-            if (cards == null) {
-                if (s == currentCard)
-                    showFirst = true;
-                s.destroy();
-            } else {
-                int i;
-                for (i = 0; i < cards.length; i++) {
-                    if (cards[i] == s)
-                        break;
-                }
-                if (i == cards.length) {
-                    if (s == currentCard)
-                        showFirst = true;
-                    s.destroy();
-                }
-            }
-        }
-        
-        if (cards != null) {
-            boolean createFirst = true;
-            
-            for (int i = 0; i < cards.length; i++) {
-                if (cards[i].getParent() != this) {
-                    // All new cards start out non-visible
-                    cards[i].set(/* NOI18N */"visible", Boolean.FALSE);
-                    add(cards[i]);
-                    
-                    // Make sure the card is created if we
-                    // are not delaying creation.
-                    if (!isDelayed()) {
-                        cards[i].create();
-                    }
-                } else if (cards[i] == currentCard) {
-                    createFirst = false;
-                }
-            }
-            
-            if (createFirst && cards.length > 0 && isDelayed()) {
-                cards[0].create();
-            }
-        }
-        
-        this.cards = cards;
-        
-        if (showFirst && cards.length > 0) {
-            cardPanel.show(
-		(String)cards[0].get(/* NOI18N */"layoutName"));
-        }
-        
-        resetChoice();
-    }
-    
-    private boolean isDelayed() {
-        return (
-	    (Boolean)get(/* NOI18N */"delayedCreation")).booleanValue();
-    }
-    
-    private void resetChoice() {
-        if (inDesignerRoot) {
-            GBPanelShadow cards[] = getCards();
-            Panel panel = (Panel)body;
-            
-            if (cardMenu != null) {
-                panel.remove(cardMenu);
-                cardMenu.removeNotify();
-                cardMenu = null;
-            }
-            
-            if (cards != null && cards.length != 0) {
-                cardMenu = new Choice();
-                
-                for (int i = 0; i < cards.length; i++)
-                    cardMenu.addItem(
-			(String)cards[i].get(/* NOI18N */"layoutName"));
-                
-                gridbag.setConstraints(((Panel)body).add(cardMenu),
-				       cardMenuConstraints);
-                
-                String current = cardPanel.getCurrentCard();
-                if (current != null)
-                    cardMenu.select(current);
-            }
-        }
-    }
-    
-    public void add(AttributeManager child) {
-        if (cardPanel != null)
-            cardPanel.addTab(
-		(String)child.get(/* NOI18N */"layoutName"));
-        cards = null;
-        
-        super.add(child);
-    }
-    
-    public void remove(AttributeManager child) {
-        if (cardPanel != null)
-            cardPanel.removeTab(
-		(String)child.get(/* NOI18N */"layoutName"));
-        cards = null;
-        
-        super.remove(child);
-    }
-    
-    public void addChildBody(Shadow child) {
-        if (body != null) {
-            cardPanel.addCard(
-		(String)child.get(/* NOI18N */"layoutName"),
-		(Component)child.getBody());
-            updateContainerAttributes((AMContainer)this, child);
-        }
-    }
-    
-    public void removeChildBody(Shadow child) {
-        if (body != null) {
-            // Cause the card to be removed, but not the tab
-            //  (if the tab is still there).
-            String name = (String)child.get(/* NOI18N */"layoutName");
-            int index = cardPanel.getTabIndex(name);
-            if (index != -1) {
-                cardPanel.removeTab(name);
-                cardPanel.addTab(name, index);
-            }
-        }
-    }
-    
-    public void createChildren() {
-        if (isDelayed()) {
-            super.createChildren();
-        } else {
-            // Force creation of all the children
-            Enumeration e = getChildList();
-            while (e.hasMoreElements()) {
-                AttributeManager mgr =
-		    (AttributeManager) e.nextElement();
-                mgr.create();
-            }
-        }
-    }
-    
-    public void createBody() {
-        inDesignerRoot = inDesignerRoot();
-        
-        if (inDesignerRoot) {
-            gridbag = new GBLayout();
-            GBConstraints c = new GBConstraints();
-            
-            VJPanel panel = new VJPanel();
-            panel.setLayout(gridbag);
-            
-            c.insets = new Insets(2, 2, 3, 5);
-            c.gridx = 0;
-            c.gridy = 0;
-            cardMenuConstraints = (GBConstraints)c.clone();
-            
-            cardPanel = new CardPanel();
-            c.insets = new Insets(2, 2, 2, 2);
-            c.gridx = 0;
-            c.gridy = 1;
-            c.weightx = 1;
-            c.weighty = 1;
-            c.fill = GBConstraints.BOTH;
-            gridbag.setConstraints(panel.add(cardPanel), c);
-            
-            body = panel;
-        } else {
-            cardPanel = new CardPanel();
-            body = cardPanel;
-        }
-    }
-    
-    public CardPanel getCardPanel() {
-        return cardPanel;
-    }
-    
-    protected void registerBody() {
-        GBPanelShadow cards[] = getCards();
-        for (int i = 0; i < cards.length; i++) {
-            cardPanel.addTab(
-		(String)cards[i].get(/* NOI18N */"layoutName"));
-        }
-        
-        super.registerBody();
-    }
-    
-    protected void postCreate() {
-        super.postCreate();
-        
-        if (inDesignerRoot)
-            resetChoice();
-    }
-    
-    protected void destroyBody() {
-        super.destroyBody();
-        cardPanel = null;
-        cardMenu = null;
-    }
-    
-    //
-    // Layout and preview modes
-    //
-    
-    public void layoutMode() {
-        super.layoutMode();
-        
-        if (inDesignerRoot) {
-            VJPanel panel = (VJPanel)body;
-            
-            if (cardMenu != null)
-                cardMenu.show();
-            
-            GBConstraints c = gridbag.getConstraints(cardPanel);
-            c.insets = new Insets(2, 2, 2, 2);
-            gridbag.setConstraints(cardPanel, c);
-        }
-    }
-    
-    public void previewMode() {
-        super.previewMode();
-        
-        if (inDesignerRoot) {
-            if (cardMenu != null)
-                cardMenu.hide();
-            
-            GBConstraints c = gridbag.getConstraints(cardPanel);
-            c.insets = null;
-            gridbag.setConstraints(cardPanel, c);
-        }
-    }
-    
-    //
-    // Events
-    //
-    
-    public boolean handleEvent(Message msg, Event evt) {
-        if (evt.target == cardPanel) {
-            if (evt.id == CardPanel.CURRENTCARD) {
-                updateCards();
-            } else if (evt.id == CardPanel.FETCHCARD) {
-                if (isDelayed())
-                    createCard((String)evt.arg);
-            }
-        }
-        
-        return super.handleEvent(msg, evt);
-    }
-    
-    public boolean action(Message msg, Event evt, Object what) {
-        if (cardMenu != null && msg.target == cardMenu) {
-            cardPanel.show((String)what);
-        }
-        
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/CheckboxPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * 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.
- *
- * @(#) CheckboxPanelShadow.java 1.7 - last change made 06/03/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.CheckboxPanel;
-import sunsoft.jws.visual.rt.shadow.GBPanelShadow;
-
-/**
- * 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
------------------------------------------------------------------------
-none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see CheckboxPanel
-* @version 	1.7, 06/03/97
-*/
-public class CheckboxPanelShadow extends GBPanelShadow {
-    
-    /* added -kp bug id */
-    static final int minColumnWidth = 14;
-    static final int minRowHeight = 14;
-    static final int columns = 2;
-    static final int rows = 2;
-    /* end added -kp */
-    
-    
-    public void createBody() {
-        body = new CheckboxPanel();
-    }
-    /* added -kp */
-    protected void postCreate() {
-        super.postCreate();
-        if (inDesignerRoot())
-        {
-            CheckboxPanel c = (CheckboxPanel)body;
-            int gw[] = c.getColumnWidths();
-            int gh[] = c.getRowHeights();
-            int w[] = new int[columns];
-            int h[] = new int[rows];
-            double ww[] = new double[columns];
-            double hh[] = new double[rows];
-            for (int x = 0; x < columns; x++)
-            {
-                w[x] = minColumnWidth;
-                ww[x] = 0.0;
-            }
-            for (int y = 0; y < rows; y++)
-            {
-                h[y] = minRowHeight;
-                hh[y] = 0.0;
-            }
-            if ((gw ==  null) || (gw.length <= 1))
-            {
-                if (c.getComponentCount() <= 0)
-                {
-                    c.setColumnWidths(w);
-                    c.setColumnWeights(ww);
-                }
-            }
-            if ((gh ==  null) || (gh.length <= 1))
-            {
-                if (c.getComponentCount() <= 0)
-                {
-                    c.setRowHeights(h);
-                    c.setRowWeights(hh);
-                }
-            }
-        }
-    }
-    /* end added -kp */
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ColumnListShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-/*
- * 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.
- *
- * @(#) ColumnListShadow.java 1.39 - last change made 08/12/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.ColumnList;
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.base.VJException;
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.Color;
-import java.awt.Font;
-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
------------------------------------------------------------------------
-autoWidth           java.lang.Boolean       true
-visibleChars        java.lang.Integer       0
-visibleRows         java.lang.Integer       5
-headers             [Ljava.lang.String;     header1, header2, header3
-formats             java.lang.String        lll
-highlightItems      java.lang.Boolean       false
-selectable          java.lang.Boolean       true
-editable            java.lang.Boolean         true
-showHeaders         java.lang.Boolean       true
-showVerticalLines   java.lang.Boolean       false
-showHorizontalLines java.lang.Boolean       false
-sortColumns         [Ljava.lang.String;     null
-*  < /pre>
-*
-* headers: An array of Strings. The size of this array determines the
-* number of columns in the list. There will be one additional, hidden
-* column that can be used for any Object. The length of the header
-* string defines the initial width of the column. To make it wider,
-* add spaces to the end of the string. If a header field is of the
-* form "name=header", then only the "header" part will actually be
-* used for the visible header. The "name" part is available through
-* getNames() or getNameColumn() interfaces on the ColumnList widget.
-* If the "name" part is started with a '*', then that column is
-* considered a "key column."  When addItem() is used to add a new row
-* of data to the column list, a check is made to see if the key
-* columns of data in the new item exactly match all of the key
-* columns in any of the current rows.  If there is a match, the new
-* data replaces what was in the matched row, rather than the new data
-* being added to the end in a new row.
-*  < p>
-* formats: A string with format characters for each column. The default
-* is to left justify each column. 'l' left justifies, 'c' centers,
-* and 'r' right justifies.
-*  < p>
-* selectable: If true, records(rows) can be selected with the
-* mouse. A LIST_EVENT gets posted.
-*  < p>
-* editable: If true, records can be edited with the mouse.  Columns
-* containing a checkbox are currently the only editable columns.
-*  < p>
-* highlight_items: If true, new entries will be highlighted in
-* orange, slowly fading out.
-*  < p>
-* showHeaders: If set to false, the headers will not be shown.
-*  < p>
-* showVerticalLines: If set to true, columns will be separated by lines
-*  < p>
-* showHorizontalLines: If set to true, rows will be separated by lines
-*  < p>
-* sortColumns: an array of column names(see headers), optionally
-*  preceded with a '+' f o r ascending(default) or '-' for descending
-*  sort. Affects where new entries will be added.
-*  < p>
-* autoWidth: when set to true, a column will automatically become
-* wider to accomodate a new piece of data in that column that doesn't
-* fit within the current width of the column.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see ColumnList
-* @version 1.39, 08/12/97
-*/
-public class ColumnListShadow extends CanvasShadow {
-    public ColumnListShadow() {
-        String sa[] = { /* NOI18N */"header1",
-				    /* NOI18N */"header2",
-				    /* NOI18N */"header3"};
-        attributes.add(/* NOI18N */"headers",
-		       /* NOI18N */"[Ljava.lang.String;", sa, 0);
-        attributes.add(/* NOI18N */"formats",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"lll", 0);
-        attributes.add(/* NOI18N */"showHeaders",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"showHorizontalLines",
-		       /* NOI18N */"java.lang.Boolean",
-		       Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"showVerticalLines",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"visibleRows",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(5), 0);
-        attributes.add(/* NOI18N */"visibleChars",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(0), 0);
-        attributes.add(/* NOI18N */"selectable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"editable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"highlightItems",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-        attributes.add(/* NOI18N */"autoWidth",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"sortColumns",
-		       /* NOI18N */"[Ljava.lang.String;", null, 0);
-        
-        GBConstraints c =
-	    (GBConstraints)get(/* NOI18N */"GBConstraints");
-        c.fill = GBConstraints.BOTH;
-        attributes.add(/* NOI18N */"GBConstraints",
-	       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints", c);
-        // 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 */"headers"))
-            return (getFromTable(/* NOI18N */"headers"));
-        else if (key.equals(/* NOI18N */"formats"))
-            return (getFromTable(/* NOI18N */"formats"));
-        else if (key.equals(/* NOI18N */"showHeaders"))
-            return (getFromTable(/* NOI18N */"showHeaders"));
-        else if (key.equals(/* NOI18N */"showHorizontalLines"))
-            return (getFromTable(/* NOI18N */"showHorizontalLines"));
-        else if (key.equals(/* NOI18N */"showVerticalLines"))
-            return (getFromTable(/* NOI18N */"showVerticalLines"));
-        else if (key.equals(/* NOI18N */"visibleRows"))
-            return (getFromTable(/* NOI18N */"visibleRows"));
-        else if (key.equals(/* NOI18N */"visibleChars"))
-            return (getFromTable(/* NOI18N */"visibleChars"));
-        else if (key.equals(/* NOI18N */"selectable"))
-            return (getFromTable(/* NOI18N */"selectable"));
-        else if (key.equals(/* NOI18N */"editable"))
-            return (getFromTable(/* NOI18N */"editable"));
-        else if (key.equals(/* NOI18N */"highlightItems"))
-            return (getFromTable(/* NOI18N */"highlightItems"));
-        else if (key.equals(/* NOI18N */"autoWidth"))
-            return (getFromTable(/* NOI18N */"autoWidth"));
-        else if (key.equals(/* NOI18N */"foreground"))
-            return (((ColumnList)body).getCanvasForeground());
-        else if (key.equals(/* NOI18N */"background"))
-            return (((ColumnList)body).getCanvasBackground());
-        else if (key.equals(/* NOI18N */"font"))
-            return (((ColumnList)body).getCanvasFont());
-        else if (key.equals(/* NOI18N */"sortColumns"))
-            return (getFromTable(/* NOI18N */"sortColumns"));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"headers"))
-            ((ColumnList) body).setHeaders((String []) value);
-        else if (key.equals(/* NOI18N */"sortColumns"))
-            ((ColumnList) body).setSort((String []) value);
-        else if (key.equals(/* NOI18N */"formats"))
-        {
-            // check if the string consists only of
-            // l, c, r characters..
-            String s = (String) value;
-            for (int i = 0; i < s.length(); i++)
-            {
-                char c = s.charAt(i);
-                if ((c == /* NOI18N */ 'c') ||
-		    (c == /* NOI18N */ 'l') ||
-		    (c == /* NOI18N */ 'r'))
-		    continue;
-                else
-/* BEGIN JSTYLED */
-		    throw new VJException(Global.getMsg("sunsoft.jws.visual.rt.shadow.ColumnListShadow.Column__Format"));
-	    }
-	    ((ColumnList) body).setFormats(s);
-	}
-	else if (key.equals(/* NOI18N */"showHeaders"))
-	    ((ColumnList) body).setShowHeaders(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"showHorizontalLines"))
-	    ((ColumnList) body).setShowHorizontalLines(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"showVerticalLines"))
-	    ((ColumnList) body).setShowVerticalLines(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"visibleRows"))
-	    ((ColumnList) body).setVisibleRows(((Integer) value).intValue());
-	else if (key.equals(/* NOI18N */"visibleChars"))
-	{
-	    if(((Integer) value).intValue () < 0)
-		throw new VJException(/* NOI18N */"visibleChars value cannot be negative");
-	    ((ColumnList) body).setVisibleChars(((Integer) value).intValue());
-	}
-	else if (key.equals(/* NOI18N */"selectable"))
-	    ((ColumnList) body).setSelectable(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"editable"))
-	    ((ColumnList) body).setEditable(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"highlightItems"))
-	    ((ColumnList) body).setHighlightItems(((Boolean) value).booleanValue());
-	else if (key.equals(/* NOI18N */"autoWidth"))
-	    ((ColumnList) body).setAutoWidth(((Boolean) value).booleanValue());
-/* END JSTYLED */
-	else if (key.equals(/* NOI18N */"foreground"))
-	    ((ColumnList)body).setCanvasForeground((Color)value);
-	else if (key.equals(/* NOI18N */"background"))
-	    ((ColumnList)body).setCanvasBackground((Color)value);
-	else if (key.equals(/* NOI18N */"font"))
-	    ((ColumnList)body).setCanvasFont((Font)value);
-	else
-	    super.setOnBody(key, value);
-    }
-            
-    public void createBody() {
-	body = new ColumnList(
-	    (String[]) getFromTable(/* NOI18N */"headers"),
-/* BEGIN JSTYLED */
-	    ((Boolean) getFromTable(/* NOI18N */"selectable")).booleanValue(),
-	    ((Boolean) getFromTable(/* NOI18N */"highlightItems")).booleanValue());
-	((ColumnList) body).setFormats((String) getFromTable(/* NOI18N */"formats"));
-	((ColumnList) body).setVisibleRows(((Integer) getFromTable(/* NOI18N */"visibleRows")).intValue());
-	((ColumnList) body).setVisibleChars(((Integer) getFromTable(/* NOI18N */"visibleChars")).intValue());
-	((ColumnList) body).setShowHeaders(((Boolean) getFromTable(/* NOI18N */"showHeaders")).booleanValue());
-	((ColumnList) body).setShowHorizontalLines(((Boolean) getFromTable(/* NOI18N */"showHorizontalLines")).booleanValue());
-	((ColumnList) body).setShowVerticalLines(((Boolean) getFromTable(/* NOI18N */"showVerticalLines")).booleanValue());
-	((ColumnList) body).setAutoWidth(((Boolean) getFromTable(/* NOI18N */"autoWidth")).booleanValue());
-	((ColumnList) body).setSort((String []) getFromTable(/* NOI18N */"sortColumns"));
-/* END JSTYLED */
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/FlowPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
- * 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.
- *
- * @(#) FlowPanelShadow.java 1.21 - last change made 07/29/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.type.AlignmentEnum;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.*;
-
-/**
- * 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
------------------------------------------------------------------------
-alignment       rt.type.AlignmentEnum     left
-hgap            java.lang.Integer         5
-items           [Lrt.shadow.GBPanelShadow initial label
-vgap            java.lang.Integer         5
-*  < /pre>
-* alignment: left, center, or right; determines how each row will be
-* aligned if it doesn't require all of the horizontal space
-* available.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see FlowLayout
-* @version 1.21, 07/29/97
-*/
-public class FlowPanelShadow extends VJPanelShadow {
-    
-    private GBPanelShadow items[];
-    
-    public FlowPanelShadow() {
-        GBConstraints c =
-	    (GBConstraints)get(/* NOI18N */"GBConstraints");
-        c.fill = GBConstraints.BOTH;
-        c.shrinkx = true;
-        c.shrinky = false;
-        attributes.add(/* NOI18N */"GBConstraints",
-	       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints", c);
-        
-        attributes.add(/* NOI18N */"items",
-	       /* NOI18N */"[Lsunsoft.jws.visual.rt.shadow.GBPanelShadow;",
-		       null, DEFAULT | TRANSIENT);
-        attributes.add(/* NOI18N */"alignment",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AlignmentEnum",
-		       new AlignmentEnum(VJFlowLayout.LEFT), 0);
-        attributes.add(/* NOI18N */"hgap",
-		       /* NOI18N */"java.lang.Integer", new Integer(5), 0);
-        attributes.add(/* NOI18N */"vgap",
-		       /* NOI18N */"java.lang.Integer", new Integer(5), 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        Panel panel = (Panel)body;
-        VJFlowLayout flow = (VJFlowLayout)panel.getLayout();
-        
-        if (key.equals(/* NOI18N */"items")) {
-            return getItems();
-        } else if (key.equals(/* NOI18N */"alignment")) {
-            return new AlignmentEnum(flow.getAlignment());
-        } else if (key.equals(/* NOI18N */"hgap")) {
-            return new Integer(flow.getHGap());
-        } else if (key.equals(/* NOI18N */"vgap")) {
-            return new Integer(flow.getVGap());
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Panel panel = (Panel)body;
-        Component parent = panel.getParent();
-        VJFlowLayout flow = (VJFlowLayout)panel.getLayout();
-        
-        if (key.equals(/* NOI18N */"items")) {
-            setItems((GBPanelShadow[])value);
-        } else if (key.equals(/* NOI18N */"alignment")) {
-            flow.setAlignment(((AlignmentEnum)value).intValue());
-        } else if (key.equals(/* NOI18N */"hgap")) {
-            flow.setHGap(((Integer)value).intValue());
-        } else if (key.equals(/* NOI18N */"vgap")) {
-            flow.setVGap(((Integer)value).intValue());
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void add(AttributeManager child) {
-        super.add(child);
-        items = null;
-    }
-    
-    public void remove(AttributeManager child) {
-        super.remove(child);
-        items = null;
-    }
-    
-    private synchronized GBPanelShadow[] getItems() {
-        if (items == null) {
-            int i = 0;
-            Enumeration e = getChildList();
-            while (e.hasMoreElements()) {
-                if (e.nextElement() instanceof GBPanelShadow)
-                    i++;
-            }
-            
-            items = new GBPanelShadow[i];
-            
-            i = 0;
-            e = getChildList();
-            while (e.hasMoreElements()) {
-                ComponentShadow s = (ComponentShadow)e.nextElement();
-                if (s instanceof GBPanelShadow)
-                    items[i++] = (GBPanelShadow)s;
-            }
-        }
-        
-        return items;
-    }
-    
-    private void setItems(GBPanelShadow items[]) {
-        Enumeration e = getChildList();
-        while (e.hasMoreElements()) {
-            ComponentShadow s = (ComponentShadow)e.nextElement();
-            remove(s);
-            
-            // Destroy items that are no longer used
-            if (items == null) {
-                s.destroy();
-            } else {
-                int i;
-                for (i = 0; i < items.length; i++) {
-                    if (items[i] == s)
-                        break;
-                }
-                if (i == items.length)
-                    s.destroy();
-            }
-        }
-        
-        if (items == null || items.length == 0) {
-            addLabel();
-        } else {
-            for (int i = 0; i < items.length; i++) {
-                add(items[i]);
-                
-                // Make sure the item is created
-                items[i].create();
-            }
-        }
-        
-        this.items = items;
-    }
-    
-    public void createBody() {
-        Panel panel = new VJPanel();
-        panel.setLayout(new VJFlowLayout());
-        body = panel;
-    }
-    
-    protected void postCreate() {
-        super.postCreate();
-        
-        if (getChildCount() == 0)
-            addLabel();
-    }
-    
-    private void addLabel() {
-        LabelShadow s = new LabelShadow();
-        s.set(/* NOI18N */"layoutName", /* NOI18N */"");
-        s.set(/* NOI18N */"text",
-	      /* JSTYLED */
-	      Global.getMsg("sunsoft.jws.visual.rt.shadow.FlowPanelShadow.DefaultText"));
-        add(s);
-        s.create();
-        s.show();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GBPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/*
- * 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.
- *
- * @(#) GBPanelShadow.java 1.49 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.PanelShadow;
-import sunsoft.jws.visual.rt.base.AttributeManager;
-import sunsoft.jws.visual.rt.base.Group;
-import sunsoft.jws.visual.rt.base.Shadow;
-import sunsoft.jws.visual.rt.awt.GBPanel;
-import sunsoft.jws.visual.rt.awt.GBLayout;
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.type.AnchorEnum;
-
-import java.awt.*;
-
-/**
- * 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
------------------------------------------------------------------------
-none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see GBConstraints
-* @see VJPanelShadow
-* @see PanelShadow
-* @version 	1.49, 07/25/97
-*/
-public class GBPanelShadow extends VJPanelShadow {
-    public GBPanelShadow() {
-        attributes.add(/* NOI18N */"columnWidths",
-		       /* NOI18N */"[I", null, HIDDEN);
-        attributes.add(/* NOI18N */"rowHeights",
-		       /* NOI18N */"[I", null, HIDDEN);
-        attributes.add(/* NOI18N */"columnWeights",
-		       /* NOI18N */"[D", null, HIDDEN);
-        attributes.add(/* NOI18N */"rowWeights",
-		       /* NOI18N */"[D", null, HIDDEN);
-    }
-    
-    protected Object getOnBody(String key) {
-        GBPanel panel = (GBPanel)body;
-        
-        if (key.equals(/* NOI18N */"columnWidths"))
-            return panel.getColumnWidths();
-        else if (key.equals(/* NOI18N */"rowHeights"))
-            return panel.getRowHeights();
-        else if (key.equals(/* NOI18N */"columnWeights"))
-            return panel.getColumnWeights();
-        else if (key.equals(/* NOI18N */"rowWeights"))
-            return panel.getRowWeights();
-        else
-            return super.getOnBody(key);
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        GBPanel panel = (GBPanel)body;
-        
-        if (key.equals(/* NOI18N */"columnWidths"))
-            panel.setColumnWidths((int[])value);
-        else if (key.equals(/* NOI18N */"rowHeights"))
-            panel.setRowHeights((int[])value);
-        else if (key.equals(/* NOI18N */"columnWeights"))
-            panel.setColumnWeights((double[])value);
-        else if (key.equals(/* NOI18N */"rowWeights"))
-            panel.setRowWeights((double[])value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        if (key.equals(/* NOI18N */"anchor")) {
-            GBConstraints c =
-		(GBConstraints)child.get(/* NOI18N */"GBConstraints");
-            if (c == null)
-                return;
-            
-            int anchor = ((AnchorEnum)value).intValue();
-            if (anchor != c.anchor) {
-                c.anchor = anchor;
-                child.set(/* NOI18N */"GBConstraints", c);
-            }
-        } else if (key.equals(/* NOI18N */"insets")) {
-            GBConstraints c =
-		(GBConstraints)child.get(/* NOI18N */"GBConstraints");
-            if (c == null)
-                return;
-            
-            Insets insets = (Insets)value;
-            if (c.insets != insets) {
-                c.insets = insets;
-                child.set(/* NOI18N */"GBConstraints", c);
-            }
-        } else if (key.equals(/* NOI18N */"GBConstraints")) {
-            GBConstraints c = (GBConstraints)value;
-            if (c == null)
-                c = new GBConstraints();
-            
-            Shadow s = (Shadow)child;
-            Component comp = (Component)s.getBody();
-            if (comp == null)
-                return;
-            
-            int anchor =
-		((AnchorEnum)child.get(/* NOI18N */"anchor")).intValue();
-            c.anchor = anchor;
-            c.insets = (Insets)child.get(/* NOI18N */"insets");
-            
-            ((GBPanel)body).setConstraints(comp, c);
-        }
-    }
-    
-    public void createBody() {
-        body = new GBPanel();
-    }
-    
-    protected void postCreate() {
-        super.postCreate();
-        if (isLayoutMode())
-            ((GBPanel)body).layoutMode();
-        else
-            ((GBPanel)body).previewMode();
-    }
-    
-    /**
-     * Set the runtime flag in registerBody so that subclasses of
-     * GBPanelShadow will work properly.
-     */
-    protected void registerBody() {
-        ((GBPanel)body).setRuntime(!inDesignerRoot());
-        super.registerBody();
-    }
-    
-    public void layoutMode() {
-        super.layoutMode();
-        if (body != null)
-            ((GBPanel)body).layoutMode();
-    }
-    
-    public void previewMode() {
-        super.previewMode();
-        if (body != null)
-            ((GBPanel)body).previewMode();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GenericComponentShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
- * 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.
- *
- * @(#) GenericComponentShadow.java 1.14 - last change made 07/25/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.awt.GBPanel;
-import sunsoft.jws.visual.rt.base.VJException;
-import sunsoft.jws.visual.rt.base.Global;
-        
-import java.awt.Button;
-import java.awt.Component;
-        
-/**
-         * 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
-        -----------------------------------------------------------------------
-        class           java.lang.String          java.awt.Button
-        *  < /pre>
-        *
-        * class: the java class(that must be a sub-class of
-        * java.awt.Component and have a null constructor) of a user-written
-        * AWT class that there is no wrapper shadow class for yet.
-        * GenericComponentShadow is useful for quickly incorporating a user's
-        * existing custom AWT components in a Visual Java GUI.
-        *  < p>
-        * Check the super class for additional attributes.
-        *
-        * @see Component
-        * @see GenericWindowShadow
-        * @version 1.14, 07/25/97
-        */
-public class GenericComponentShadow extends CanvasShadow {
-    private String className;
-    private Class genericClass;
-            
-    public GenericComponentShadow() {
-	attributes.add(/* NOI18N */"class",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"java.awt.Button", NOEDITOR);
-    }
-            
-    protected Object getOnBody(String key) {
-	if (key.equals(/* NOI18N */"class"))
-	    return getFromTable(/* NOI18N */"class");
-	else
-	    return super.getOnBody(key);
-    }
-            
-    protected void setOnBody(String key, Object value) {
-	if (key.equals(/* NOI18N */"class")) {
-	    // Don't create a new instance unless the
-	    // class name has changed
-	    if (className.equals((String)value))
-		return;
-                    
-	    Object obj = loadClass((String)value);
-	    destroy();
-	    body = obj;
-	    create();
-	}
-	else
-	    super.setOnBody(key, value);
-    }
-            
-    public void createBody() {
-	body = loadClass((String)get(/* NOI18N */"class"));
-    }
-            
-    private Object loadClass(String name) {
-	Class c;
-	Object obj;
-                
-	// Load the class if the name doesn't match the previous name
-	if (!name.equals(className)) {
-	    try {
-		c = Class.forName(name);
-	    }
-	    catch (ClassNotFoundException ex) {
-		throw new VJException(Global.fmtMsg(
-/* JSTYLED */
-		    "sunsoft.jws.visual.rt.shadow.GenericComponentShadow.FMT.1",
-		    Global.getMsg(
-/* JSTYLED */
-			"sunsoft.jws.visual.rt.shadow.GenericComponentShadow.Class__not__found"),
-		    name));
-	    }
-	} else {
-	    c = genericClass;
-	}
-                
-	// Create a new instance from the class
-	try {
-	    obj = c.newInstance();
-	    if (!(obj instanceof Component)) {
-		throw new VJException(
-/* JSTYLED */
-		    Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericComponentShadow.NotAComponentSubclass", name));
-	    }
-	}
-	catch (IllegalAccessException ex) {
-	    throw new VJException(
-/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericComponentShadow.IllegalAccess", name));
-	}
-	catch (InstantiationException ex) {
-	    throw new VJException(
-/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericComponentShadow.InstantiationException", name));
-	}
-	catch (NoSuchMethodError ex) {
-	    throw new VJException(
-/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericComponentShadow.Noconstructor", name));
-	}
-                
-	// No errors occurred, so update the name and class variables.
-	genericClass = c;
-	className = name;
-                
-	// Set the runtime flag for GBPanel instances
-	if ((obj instanceof GBPanel) && inDesignerRoot())
-	    ((GBPanel)obj).setRuntime(false);
-                
-	return obj;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/GenericWindowShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-/*
- * 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.
- *
- * @(#) GenericWindowShadow.java 1.13 - last change made 05/02/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.WindowShadow;
-import sunsoft.jws.visual.rt.awt.RootFrame;
-import sunsoft.jws.visual.rt.awt.RootDialog;
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.VJException;
-import sunsoft.jws.visual.rt.base.Message;
-
-
-import java.awt.*;
-
-/**
- * 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
------------------------------------------------------------------------
-class           java.lang.String          rt.awt.RootFrame
-title           java.lang.String          "Generic Window"
-*  < /pre>
-*
-* class: the java class(that must be a sub-class of
-* sunsoft.jws.visual.rt.awt.RootFrame and have a null constructor) of
-* a user-written window class.  The GenericWindowShadow class can be
-* used for quickly incorporating user's existing windows into a
-* Visual Java GUI.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see RootFrame
-* @see RootDialog
-* @see GenericComponentShadow
-* @version 1.13, 05/02/97
-*/
-public class GenericWindowShadow extends WindowShadow {
-    private String className;
-    private Class genericClass;
-    
-    public GenericWindowShadow() {
-        attributes.add(/* NOI18N */"class",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.RootFrame",
-		       NOEDITOR);
-        attributes.add(/* NOI18N */"title",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"Generic Window", NOEDITOR);
-        attributes.alias(/* NOI18N */"text", /* NOI18N */"title");
-        
-        if (Global.isIrix())
-            attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Sansserif", Font.PLAIN, 12),
-			   DONTFETCH);
-        
-        if (Global.isWindows()) {
-            attributes.add(/* NOI18N */"background",
-			   /* NOI18N */"java.awt.Color",
-			   Color.lightGray, DONTFETCH);
-            attributes.add(/* NOI18N */"font",
-			   /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Dialog", Font.PLAIN, 12),
-			   DONTFETCH);
-        }
-    }
-    
-    protected boolean useLayoutSize() {
-        return false;
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"class"))
-            return getFromTable(/* NOI18N */"class");
-        else if (key.equals(/* NOI18N */"title")) {
-            if (body instanceof RootFrame)
-                return ((RootFrame)body).getTitle();
-            else
-                return ((RootDialog)body).getTitle();
-        }
-        else
-            return super.getOnBody(key);
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"class")) {
-            // Don't create a new instance unless
-            // the class name has changed
-            if (className.equals((String)value))
-                return;
-            
-            Object obj = loadClass((String)value);
-            destroy();
-            body = obj;
-            create();
-        } else if (key.equals(/* NOI18N */"title")) {
-            if (body instanceof RootFrame)
-                ((RootFrame)body).setTitle((String)value);
-            else
-                ((RootDialog)body).setTitle((String)value);
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = loadClass((String)get(/* NOI18N */"class"));
-    }
-    
-    protected void registerBody() {
-        super.registerBody();
-        
-        Window win = (Window)body;
-        if (win.countComponents() == 0)
-            win.add(new Label(/* NOI18N */"Generic Window"));
-    }
-    
-    private Object loadClass(String name) {
-        Class c;
-        Object obj;
-        
-        // Load the class if the name doesn't match the previous name
-        if (!name.equals(className)) {
-            try {
-                c = Class.forName(name);
-            }
-            catch (ClassNotFoundException ex) {
-                throw new VJException(
-		    /* JSTYLED */
-		    Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericWindowShadow.Class__not__found", name));
-            }
-        } else {
-            c = genericClass;
-        }
-        
-        // Create a new instance from the class
-        try {
-            obj = c.newInstance();
-            if (!(obj instanceof RootFrame)
-                && !(obj instanceof RootDialog)) {
-                throw new VJException(
-		    /* JSTYLED */
-		    Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericWindowShadow.NotARootSubclass", name));
-            }
-        }
-        catch (IllegalAccessException ex) {
-            throw new VJException(
-		/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericWindowShadow.IllegalAccess", name));
-        }
-        catch (InstantiationException ex) {
-            throw new VJException(
-		/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericWindowShadow.InstantiationException", name));
-        }
-        catch (NoSuchMethodError ex) {
-            throw new VJException(
-		/* JSTYLED */
-		Global.fmtMsg("sunsoft.jws.visual.rt.shadow.GenericWindowShadow.Noconstructor", name));
-        }
-        
-        // No errors occurred, so update the name and class variables.
-        genericClass = c;
-        className = name;
-        
-        return obj;
-    }
-    
-    public boolean handleEvent(Message msg, Event evt)
-	{
-	    if (msg.target == this && evt.id == Event.WINDOW_DESTROY)
-	    {
-		Window win = (Window)body;
-		win.hide();
-		return true;
-	    } else
-		return super.handleEvent(msg, evt);
-	}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ImageButtonShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageButtonShadow.java 1.28 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.type.ImageRef;
-import sunsoft.jws.visual.rt.awt.ImageButton;
-
-/**
- * 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
------------------------------------------------------------------------
-lineWidth       java.lang.Integer         2
-+ padWidth        java.lang.Integer         2
-pressMovement   java.lang.Integer         1
-*  < /pre>
-*
-* + = this attribute overrides one inherited from an ancestor class.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see ImageButton
-* @version 	1.28, 07/25/97
-*/
-public class ImageButtonShadow extends ImageLabelShadow {
-    public ImageButtonShadow() {
-        attributes.add(/* NOI18N */"padWidth",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(2), 0);
-        attributes.add(/* NOI18N */"lineWidth",
-		       /* NOI18N */"java.lang.Integer", new Integer(2), 0);
-        attributes.add(/* NOI18N */"pressMovement",
-		       /* NOI18N */"java.lang.Integer", new Integer(1), 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        ImageButton button = (ImageButton)body;
-        
-        if (key.equals(/* NOI18N */"lineWidth"))
-            return (new Integer(button.getLineWidth()));
-        else if (key.equals(/* NOI18N */"pressMovement"))
-            return (new Integer(button.getPressMovement()));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        ImageButton button = (ImageButton)body;
-        
-        if (key.equals(/* NOI18N */"lineWidth"))
-            button.setLineWidth(((Integer) value).intValue());
-        else if (key.equals(/* NOI18N */"pressMovement"))
-            button.setPressMovement(((Integer) value).intValue());
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = new ImageButton(null);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ImageLabelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageLabelShadow.java 1.30 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.base.VJException;
-import sunsoft.jws.visual.rt.type.ImageRef;
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.awt.ImageLabel;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.applet.Applet;
-import java.awt.Color;
-
-/**
- * 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
------------------------------------------------------------------------
-image           rt.type.ImageRef          null
-padWidth        java.lang.Integer         0
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see ImageLabel
-* @version 	1.30, 07/25/97
-*/
-public class ImageLabelShadow extends CanvasShadow {
-    public ImageLabelShadow() {
-        attributes.add(/* NOI18N */"image",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.ImageRef",
-		       null, 0);
-        attributes.add(/* NOI18N */"padWidth",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(0), 0);
-        
-        // foreground color is meaningless to an image label or button
-        // so don't let it be user editable
-        attributes.add(/* NOI18N */"foreground",
-		       /* NOI18N */"java.awt.Color", Color.black, HIDDEN);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"padWidth"))
-            return (new Integer(((ImageLabel) body).getPadWidth()));
-        else if (key.equals(/* NOI18N */"image"))
-            // no value available from body
-	    return (getFromTable(/* NOI18N */"image"));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        ImageLabel label = (ImageLabel)body;
-        
-        if (key.equals(/* NOI18N */"padWidth"))
-            label.setPadWidth(((Integer) value).intValue());
-        else if (key.equals(/* NOI18N */"image")) {
-            ImageRef ref = (ImageRef)value;
-            if (ref == null)
-                label.setImage(null);
-            else {
-                Applet applet = getGroup().getApplet();
-                try {
-                    label.setImage(ref.getImage(label, applet));
-                    label.setDefaultWidth(ref.getWidth(label, applet));
-                    label.setDefaultHeight(
-			ref.getHeight(label, applet));
-                }
-                catch (VJException ex) {
-                    // XXX If the image file is not found
-                    // while loading the root, then
-                    //     isLive() will return false even
-                    //     though it should return true.
-                    //     Throwing an exception can cause the
-                    //     whole root not to load, which is
-                    //     too drastic.  The layout windows
-                    //     has to come up so that the user can
-                    //     fix the problem.
-                    // if (isLive())
-		    System.out.println(
-			Global.fmtMsg("sunsoft.jws.visual.rt.shadow.Error",
-				      ex.getMessage()));
-                    // else
-		    //  throw ex;
-                }
-            }
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = new ImageLabel(null);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/LabelBarShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * 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.
- *
- * @(#) LabelBarShadow.java 1.27 - last change made 07/25/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.awt.LabelBar;
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.type.AlignmentEnum;
-        
-/**
- * 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
- *  -----------------------------------------------------------------------
- * alignment       rt.type.AlignmentEnum     left
- * text            java.lang.String          ""
- * textOffsetFromEdge java.lang.Integer      10
- *  < /pre>
- *
- * alignment: label bars can have a text label, if can be either
- * "left", "center", or "right"
- *  < p>
- * textOffsetFromEdge: if alignment is "left" or "right", this
- * attribute controls how many pixels from the edge the label will be
- *  < p>
- * Check the super class for additional attributes.
- *
- * @see LabelBar
- * @version 1.27, 07/25/97
- */
-public class LabelBarShadow extends CanvasShadow {
-    public LabelBarShadow() {
-	attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"", NOEDITOR);
-	attributes.add(/* NOI18N */"alignment",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AlignmentEnum",
-		       new AlignmentEnum(LabelBar.LEFT), 0);
-	attributes.add(/* NOI18N */"textOffsetFromEdge",
-		       /* NOI18N */"java.lang.Integer", new Integer(10),
-		       0);
-                
-	GBConstraints c =
-	    (GBConstraints)get(/* NOI18N */"GBConstraints");
-	c.fill = GBConstraints.HORIZONTAL;
-	attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		       c);
-    }
-            
-    protected Object getOnBody(String key) {
-	if (key.equals(/* NOI18N */"text"))
-	    return (((LabelBar) body).getLabel());
-	else if (key.equals(/* NOI18N */"alignment"))
-	    return (new AlignmentEnum(
-		((LabelBar) body).getAlignment()));
-	else if (key.equals(/* NOI18N */"textOffsetFromEdge"))
-	    return (new Integer(
-		((LabelBar) body).getLabelOffsetFromEdge()));
-	else
-	    return (super.getOnBody(key));
-    }
-            
-    protected void setOnBody(String key, Object value) {
-	if (key.equals(/* NOI18N */"text"))
-	    ((LabelBar) body).setLabel((String) value);
-	else if (key.equals(/* NOI18N */"alignment"))
-/* JSTYLED */
-	    ((LabelBar) body).setAlignment(((AlignmentEnum) value).intValue());
-	else if (key.equals(/* NOI18N */"textOffsetFromEdge"))
-/* JSTYLED */
-	    ((LabelBar) body).setLabelOffsetFromEdge(((Integer) value).intValue());
-	else
-	    super.setOnBody(key, value);
-    }
-            
-    public void createBody() {
-	body = new LabelBar(
-	    (String) (getFromTable(/* NOI18N */"text")));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= BorderPanelShadow CardPanelShadow \
-	CheckboxPanelShadow ColumnListShadow \
-	FlowPanelShadow GBPanelShadow \
-	GenericComponentShadow GenericWindowShadow \
-	ImageButtonShadow ImageLabelShadow \
-	LabelBarShadow MultiLineLabelShadow \
-	ScrollPanelShadow ScrollableAreaShadow \
-	TabbedFolderShadow TextListShadow \
-	VJCanvasShadow VJPanelShadow
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-	( cd java/awt ; $(MAKE) $@ )
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-	( cd java/awt ; $(MAKE) $@ )
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-	( cd java/awt ; $(MAKE) $@ )
-
-_msg: $(JFILES)
-	( cd java/awt ; $(MAKE) $@ )
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/MultiLineLabelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
- * 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.
- *
- * @(#) MultiLineLabelShadow.java 1.7 - last change made 08/04/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.awt.MultiLineLabel;
-import sunsoft.jws.visual.rt.type.AlignmentEnum;
-import sunsoft.jws.visual.rt.base.Global;
-        
-import java.util.*;
-import java.awt.*;
-        
-/*
- * 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
- * -----------------------------------------------------------------------
- * + text            java.lang.String          "MultiLineLabel"
- * alignment       rt.type.AlignmentEnum     left
- * maxColumns      java.lang.Integer         -1
- * < /pre>
- *
- * maxColumns: the maximum number of columns allowed in a single line.
- * If a line has more than this number it will be wrapped.  Set this to -1
- * do deactivate automatic line wrapping.
- *
- * Check the super class for additional attributes.
- *
- * @see MultiLineLabel
- * @version 	1.7, 08/04/97
- */
-public class MultiLineLabelShadow extends CanvasShadow {
-    public MultiLineLabelShadow() {
-	attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String",
-/* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.MultiLineLabelShadow.DefaultText"),
-		       0);
-	attributes.add(/* NOI18N */"alignment",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AlignmentEnum",
-		       new AlignmentEnum(Label.LEFT), 0);
-	attributes.add(/* NOI18N */"maxColumns",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(-1), 0);
-    }
-            
-    protected Object getOnBody(String key) {
-	MultiLineLabel label = (MultiLineLabel)body;
-                
-	if (key.equals(/* NOI18N */"text")) {
-	    return label.getLabel();
-	} else if (key.equals(/* NOI18N */"alignment")) {
-	    return new AlignmentEnum(label.getAlignment());
-	} else if (key.equals(/* NOI18N */"maxColumns")) {
-	    return new Integer(label.getMaxColumns());
-	} else
-	    return (super.getOnBody(key));
-    }
-            
-    protected void setOnBody(String key, Object value) {
-	MultiLineLabel label = (MultiLineLabel)body;
-                
-	if (key.equals(/* NOI18N */"text")) {
-	    label.setLabel((String)value);
-	} else if (key.equals(/* NOI18N */"alignment")) {
-	    label.setAlignment(((AlignmentEnum)value).intValue());
-	} else if (key.equals(/* NOI18N */"maxColumns")) {
-	    label.setMaxColumns(((Integer) value).intValue());
-	} else {
-	    super.setOnBody(key, value);
-	}
-    }
-            
-    public void createBody() {
-	body = new MultiLineLabel();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ScrollPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * 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.
- *
- * @(#) ScrollPanelShadow.java 1.7 - last change made 07/25/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.awt.ScrollPanel;
-import sunsoft.jws.visual.rt.base.Util;
-import sunsoft.jws.visual.rt.type.ReliefEnum;
-        
-import java.awt.Insets;
-import java.util.Enumeration;
-        
-/*
- * 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
- * -----------------------------------------------------------------------
- *    + borderRelief        rt.type.ReliefEnum    win95 field border
- *    scrollAreaInsets    java.awt.Insets       null
- *    scrollAreaWidth     java.awt.Integer      null
- *    scrollAreaHeight    java.awt.Integer      null
- *  < /pre>
- *
- * + = this attribute overrides one inherited from an ancestor class.
- *  < p>
- * borderRelief: There are a number of different border drawing styles
- * available for panels, and the user can see what they look like by
- * trying them out: "flat", "raised", "sunken", "ridge", "groove",
- * "win95 raised", "win95 sunken", "win95 field border", "win95 window
- * border"
- *  < p>
- * Check the super class for additional attributes.
- *
- * @see ScrollPanel
- * @see ScrollableAreaShadow
- * @version 1.7, 07/25/97
- */
-public class ScrollPanelShadow extends VJPanelShadow {
-    public ScrollPanelShadow() {
-	attributes.add(/* NOI18N */"borderRelief",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.ReliefEnum",
-		       new ReliefEnum(Util.WIN95_FIELD_BORDER), 0);
-	attributes.add(/* NOI18N */"scrollAreaInsets",
-		       /* NOI18N */"java.awt.Insets", null, 0);
-	attributes.add(/* NOI18N */"scrollAreaWidth",
-		       /* NOI18N */"java.lang.Integer", null, 0);
-	attributes.add(/* NOI18N */"scrollAreaHeight",
-		       /* NOI18N */"java.lang.Integer", null, 0);
-    }
-            
-    public Object getOnBody(String key) {
-	ScrollPanel scrollPanel = (ScrollPanel)body;
-                
-	if (key.equals(/* NOI18N */"scrollAreaInsets"))
-	    return scrollPanel.getScrollAreaInsets();
-	else if (key.equals(/* NOI18N */"scrollAreaWidth"))
-	    return new Integer(scrollPanel.getScrollAreaWidth());
-	else if (key.equals(/* NOI18N */"scrollAreaHeight"))
-	    return new Integer(scrollPanel.getScrollAreaHeight());
-	else
-	    return super.getOnBody(key);
-    }
-            
-    public void setOnBody(String key, Object value) {
-	ScrollPanel scrollPanel = (ScrollPanel)body;
-                
-	if (key.equals(/* NOI18N */"scrollAreaInsets")) {
-	    scrollPanel.setScrollAreaInsets((Insets)value);
-	} else if (key.equals(/* NOI18N */"scrollAreaWidth")) {
-	    int val = 0;
-	    if (value != null)
-		val = ((Integer)value).intValue();
-	    scrollPanel.setScrollAreaWidth(val);
-	} else if (key.equals(/* NOI18N */"scrollAreaHeight")) {
-	    int val = 0;
-	    if (value != null)
-		val = ((Integer)value).intValue();
-	    scrollPanel.setScrollAreaHeight(val);
-	} else {
-	    super.setOnBody(key, value);
-	}
-    }
-            
-    public void create() {
-	// Add a ScrollableAreaShadow child if there isn't one already.
-	if (inDesignerRoot()) {
-	    boolean found = false;
-                    
-	    Enumeration e = getChildList();
-	    while (e.hasMoreElements()) {
-		if (e.nextElement()
-		    instanceof ScrollableAreaShadow)
-		    found = true;
-	    }
-                    
-	    if (!found) {
-		add(new ScrollableAreaShadow());
-	    }
-	}
-                
-	super.create();
-    }
-            
-    public void createBody() {
-	body = new ScrollPanel();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/ScrollableAreaShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * 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.
- *
- * @(#) ScrollableAreaShadow.java 1.5 - last change made 07/25/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.awt.ScrollableArea;
-import sunsoft.jws.visual.rt.shadow.java.awt.PanelShadow;
-        
-import java.util.Enumeration;
-        
-/*
- * 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
- *    -----------------------------------------------------------------------
- *    lineHeight      java.lang.Integer         4
- *  < /pre>
- *
- * Check the super class for additional attributes.
- *
- * @see ScrollableArea
- * @see ScrollPanelShadow
- * @version 1.5, 07/25/97
- */
-public class ScrollableAreaShadow extends PanelShadow {
-            
-	public ScrollableAreaShadow() {
-                attributes.add(/* NOI18N */"lineHeight",
-			    /* NOI18N */"java.lang.Integer",
-			    new Integer(4), 0);
-	}
-            
-	protected Object getOnBody(String key) {
-                if (key.equals(/* NOI18N */"lineHeight"))
-			return new Integer(
-				((ScrollableArea)body).lineHeight());
-                else
-			return super.getOnBody(key);
-	}
-            
-	protected void setOnBody(String key, Object value) {
-                if (key.equals(/* NOI18N */"lineHeight"))
-			((ScrollableArea)body).setLineHeight(
-				((Integer)value).intValue());
-                else
-			super.setOnBody(key, value);
-	}
-            
-	public void create() {
-                // Add a GBPanelShadow child if there isn't one already.
-                if (inDesignerRoot()) {
-			boolean found = false;
-                    
-			Enumeration e = getChildList();
-			while (e.hasMoreElements()) {
-				if (e.nextElement() instanceof GBPanelShadow)
-					found = true;
-			}
-                    
-			if (!found) {
-				GBPanelShadow s = new GBPanelShadow();
-				int w[] = {14, 14};
-				s.set(/* NOI18N */"columnWidths", w);
-				int h[] = {14, 14};
-				s.set(/* NOI18N */"rowHeights", h);
-				add(s);
-			}
-                }
-                
-                super.create();
-	}
-            
-	public void createBody() {
-                body = new ScrollableArea();
-	}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/TabbedFolderShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * 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.
- *
- * @(#) TabbedFolderShadow.java 1.5 - last change made 07/19/96
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.TabbedFolder;
-
-/**
- * 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
------------------------------------------------------------------------
-none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see TabbedFolder
-* @version 	1.5, 07/19/96
-*/
-public class TabbedFolderShadow extends CardPanelShadow {
-    public void createBody() {
-        cardPanel = new TabbedFolder();
-        body = cardPanel;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/TextListShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
- * 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.
- *
- * @(#) TextListShadow.java 1.11 - last change made 08/12/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.awt.TextList;
-import sunsoft.jws.visual.rt.awt.StringVector;
-import sunsoft.jws.visual.rt.base.Global;
-        
-import java.util.*;
-import java.awt.SystemColor;
-import java.awt.*;
-        
-/*
- * 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
- *    -----------------------------------------------------------------------
- *    allowMultipleSelections java.lang.Boolean false
- *    items           [Ljava.lang.String;       item1, item2
- *    selectedItem    java.lang.String          null
- *    selectedItems   [Ljava.lang.String;       null
- *    visibleRows     java.lang.Integer         10
- *  < /pre>
- *
- * visibleRows: how many rows are visible in the list, changing the
- * number affects the size of the component in the vertical dimension.
- *  < p>
- * Check the super class for additional attributes.
- *
- * @see TextList
- * @see StringVector
- * @version 1.11, 08/12/97
- */
-public class TextListShadow extends CanvasShadow {
-    public TextListShadow() {
-	attributes.add(/* NOI18N */"allowMultipleSelections",
-		       /* NOI18N */"java.lang.Boolean",
-		       Boolean.FALSE, 0);
-	String sa[] = { /* NOI18N */"item1", /* NOI18N */"item2"};
-	attributes.add(/* NOI18N */"items",
-		       /* NOI18N */"[Ljava.lang.String;", sa, 0);
-	attributes.add(/* NOI18N */"selectedItem",
-		       /* NOI18N */"java.lang.String", null, HIDDEN);
-	attributes.add(/* NOI18N */"selectedItems",
-		       /* NOI18N */"[Ljava.lang.String;", null, HIDDEN);
-	attributes.add(/* NOI18N */"visibleRows",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(10), 0);
-                
-	// 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) {
-	TextList list = (TextList)body;
-                
-	if (key.equals(/* NOI18N */"allowMultipleSelections")) {
-	    return new Boolean(list.allowsMultipleSelections());
-	} else if (key.equals(/* NOI18N */"items")) {
-	    return getFromTable(/* NOI18N */"items");
-	} else if (key.equals(/* NOI18N */"visibleRows")) {
-	    return new Integer(list.getMinimumRows());
-	} else if (key.equals(/* NOI18N */"selectedItem")) {
-	    return list.getSelectedItem();
-	} else if (key.equals(/* NOI18N */"selectedItems")) {
-	    return list.getSelectedItems();
-	} else
-	    return (super.getOnBody(key));
-    }
-            
-    protected void setOnBody(String key, Object value) {
-	TextList list = (TextList)body;
-                
-	if (key.equals(/* NOI18N */"allowMultipleSelections")) {
-	    list.setMultipleSelections(
-		((Boolean)value).booleanValue());
-	} else if (key.equals(/* NOI18N */"items")) {
-	    String names[] = (String [])value;
-	    StringVector items = list.items();
-	    items.removeAllElements();
-                    
-	    if (names != null) {
-		for (int i = 0; i < names.length; i++)
-		    items.addElement(names[i]);
-	    }
-                    
-	    list.updateView();
-	} else if (key.equals(/* NOI18N */"visibleRows")) {
-	    list.setMinimumRows(((Integer)value).intValue());
-	} else if (key.equals(/* NOI18N */"selectedItem")) {
-	    int index = -1;
-	    if (value != null)
-		index = list.items().indexOf((String)value);
-	    list.select(index);
-	} else if (key.equals(/* NOI18N */"selectedItems")) {
-	    String items[] = (String[])value;
-	    if (list.allowsMultipleSelections()) {
-		list.deselectAll();
-		if (items != null) {
-		    for (int i = 0; i < items.length; i++)
-			list.select(items[i]);
-		}
-	    } else {
-		if (items != null && items.length != 0)
-		    list.select(items[0]);
-		else
-		    list.select(null);
-	    }
-	} else {
-	    super.setOnBody(key, value);
-	}
-    }
-            
-    public void createBody() {
-	body = new TextList();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/VJCanvasShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJCanvasShadow.java 1.8 - last change made 07/25/97
- */
-        
-package sunsoft.jws.visual.rt.shadow;
-        
-import sunsoft.jws.visual.rt.shadow.java.awt.CanvasShadow;
-import sunsoft.jws.visual.rt.awt.VJCanvas;
-        
-/*
- * 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
- *    -----------------------------------------------------------------------
- *    minHeight       java.lang.Integer         100
- *    minWidth        java.lang.Integer         100
- *  < /pre>
- *
- * Check the super class for additional attributes.
- *
- * @see VJCanvas
- * @version 	1.8, 07/25/97
- */
-public class VJCanvasShadow extends CanvasShadow {
-            
-    public VJCanvasShadow() {
-	attributes.add(/* NOI18N */"minWidth",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(100), 0);
-	attributes.add(/* NOI18N */"minHeight",
-		       /* NOI18N */"java.lang.Integer",
-		       new Integer(100), 0);
-    }
-            
-    protected Object getOnBody(String key) {
-	if (key.equals(/* NOI18N */"minWidth"))
-	    return (new Integer(((VJCanvas) body).getMinWidth()));
-	else if (key.equals(/* NOI18N */"minHeight"))
-	    return (new Integer(((VJCanvas) body).getMinHeight()));
-	else
-	    return (super.getOnBody(key));
-    }
-            
-    protected void setOnBody(String key, Object value) {
-	VJCanvas canvas = (VJCanvas)body;
-                
-	if (key.equals(/* NOI18N */"minWidth")) {
-	    canvas.setMinWidth(((Integer)value).intValue());
-	} else if (key.equals(/* NOI18N */"minHeight")) {
-	    canvas.setMinHeight(((Integer)value).intValue());
-	} else {
-	    super.setOnBody(key, value);
-	}
-    }
-            
-    public void createBody() {
-	body = new VJCanvas();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/VJPanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * 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.
- *
- * @(#) VJPanelShadow.java 1.7 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.shadow;
-
-import sunsoft.jws.visual.rt.awt.VJPanel;
-import sunsoft.jws.visual.rt.base.AttributeManager;
-import sunsoft.jws.visual.rt.type.AlignmentEnum;
-import sunsoft.jws.visual.rt.type.ReliefEnum;
-import sunsoft.jws.visual.rt.shadow.java.awt.PanelShadow;
-
-import java.awt.FlowLayout;
-
-/**
- * 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
------------------------------------------------------------------------
-borderLabel     java.lang.String           null
-borderLabelAlignment rt.type.AlignmentEnum left
-borderRelief    rt.type.ReliefEnum         flat
-borderWidth     java.lang.Integer          2
-*  < /pre>
-*
-* borderLabel: a recently added new feature: panels can have bevelled
-* borders and a labelin the top line somewhere, borderLabel is the
-* text of the label.  When null, there is no label.
-*  < p>
-* borderLabelAlignment: either "left", "center", or "right",
-* determines where
-* on the top bevel line the label goes.
-*  < p>
-* borderRelief: There are a number of different border drawing styles
-* available for panels, and the user can see what they look like by
-* trying them out: "flat", "raised", "sunken", "ridge", "groove",
-* "win95 raised", "win95 sunken", "win95 field border", "win95 window
-* border"
-*  < p>
-* borderWidth: the number of pixels wide the border will be drawn
-*  < p>
-*
-* Check the super class for additional attributes.
-*
-* @see VJPanel
-* @version 1.7, 07/25/97
-*/
-public class VJPanelShadow extends PanelShadow {
-    public VJPanelShadow() {
-        attributes.add(/* NOI18N */"borderLabel",
-		       /* NOI18N */"java.lang.String", null, NOEDITOR);
-        attributes.add(/* NOI18N */"borderRelief",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.ReliefEnum",
-		       new ReliefEnum(), 0);
-        attributes.add(/* NOI18N */"borderWidth",
-		       /* NOI18N */"java.lang.Integer", new Integer(2), 0);
-        attributes.add(/* NOI18N */"borderLabelAlignment",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AlignmentEnum",
-		       new AlignmentEnum(), 0);
-        
-        // These attributes are needed for top level panels
-        // that are loaded in the designer.  A frame is placed
-        // around the panel, and the frame needs to know what
-        // size to be.  The panel can ignore the settings for
-        // these attributes.
-        attributes.add(/* NOI18N */"layoutLocation",
-		       /* NOI18N */"java.awt.Point",
-		       null, HIDDEN | NONBODY);
-        attributes.add(/* NOI18N */"layoutSize",
-		       /* NOI18N */"java.awt.Dimension",
-		       null, HIDDEN | NONBODY);
-    }
-    
-    public void createBody() {
-        VJPanel panel = new VJPanel();
-        panel.setLayout(new FlowLayout());
-        body = panel;
-    }
-    
-    protected Object getOnBody(String key) {
-        VJPanel panel = (VJPanel)body;
-        
-        if (key.equals(/* NOI18N */"borderRelief")) {
-            return new ReliefEnum(panel.getRelief()); }
-	else if (key.equals(/* NOI18N */"borderWidth")) {
-	    return new Integer(panel.getBorderWidth());
-	} else if (key.equals(/* NOI18N */"borderLabel")) {
-	    return panel.getBorderLabel();
-	} else if (key.equals(/* NOI18N */"borderLabelAlignment")) {
-	    return new AlignmentEnum(panel.getLabelAlignment());
-	} else {
-	    return super.getOnBody(key);
-	}
-    }
-        
-    protected void setOnBody(String key, Object value) {
-	VJPanel panel = (VJPanel)body;
-            
-	if (key.equals(/* NOI18N */"borderRelief")) {
-	    panel.setRelief(((ReliefEnum)value).intValue());
-	} else if (key.equals(/* NOI18N */"borderWidth")) {
-	    panel.setBorderWidth(((Integer)value).intValue());
-	} else if (key.equals(/* NOI18N */"borderLabel")) {
-	    panel.setBorderLabel((String)value);
-	} else if (key.equals(/* NOI18N */"borderLabelAlignment")) {
-	    panel.setLabelAlignment(((AlignmentEnum)value).intValue());
-	} else {
-	    super.setOnBody(key, value);
-	}
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanComponentShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
- * 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.
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.base.Global;
-
-public abstract class BeanComponentShadow extends ComponentShadow
-    implements BeanableComponent {
-    
-    protected boolean bodyCreated = false;
-    protected Object beanBody = null;
-    
-    // boolean needsBeans() is defined in subclasses
-    // boolean needsJDK1_1() is defined in subclasses
-    
-    private boolean hasDeserialized = false;	// should only deserialize once
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"serializationData")) {
-            if (!bodyCreated || getBody() == null) {
-                return null;
-            }
-            return BeanSerialization.serializeObject(getBody());
-        } else {
-            return (super.getOnBody(key));
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"serializationData") && !hasDeserialized) {
-            if (!bodyCreated || getBody() == null) {
-                return;
-            }
-            Object newBody = BeanSerialization.deserializeObject(
-		    (String)value, getName());
-            if (newBody != null) {
-                body = beanBody = newBody;
-                hasDeserialized = true;
-                DesignerAccess.getShadowTable().put(body, this);
-            }
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * 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.
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.base.Global;
-
-public abstract class BeanShadow extends Shadow implements BeanableComponent {
-    
-    protected Object beanBody = null;
-    protected boolean bodyCreated = false;
-    
-    // boolean needsBeans() is defined in subclasses
-    // boolean needsJDK1_1() is defined in subclasses
-    
-    private boolean hasDeserialized = false;	// should only deserialize once
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"serializationData")) {
-            if (!bodyCreated || getBody() == null) {
-                return null;
-            }
-            return BeanSerialization.serializeObject(getBody());
-        } else {
-            return (super.getOnBody(key));
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"serializationData") && !hasDeserialized) {
-            if (!bodyCreated || getBody() == null) {
-                return;
-            }
-            Object newBody = BeanSerialization.deserializeObject(
-		    (String)value, getName());
-            if (newBody != null) {
-                body = beanBody = newBody;
-                hasDeserialized = true;
-                DesignerAccess.getShadowTable().put(body, this);
-            }
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/BeanableComponent.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * 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.
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-public interface BeanableComponent {
-    public boolean needsBeans();
-    public boolean needsJDK1_1();
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ButtonShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * 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.
- *
- * @(#) ButtonShadow.java 1.26 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.awt.*;
-
-import java.awt.Button;
-import java.awt.Insets;
-
-/**
- * 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
------------------------------------------------------------------------
-standard        java.lang.Boolean         true
-text            java.lang.String          button
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see Button
-* @version 	1.26, 06/17/97
-*/
-public class ButtonShadow extends ComponentShadow {
-    public ButtonShadow() {
-        attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.ButtonShadow.button"),
-		       NOEDITOR);
-        attributes.add(/* NOI18N */"standard",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        
-        if (Global.isWindows()) {
-            attributes.add(/* NOI18N */"insets", /* NOI18N */"java.awt.Insets",
-			   new Insets(2, 2, 2, 2), NONBODY | CONTAINER);
-        }
-    }
-    
-    protected Object getOnBody(String key) {
-        Button button = (Button)body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            return button.getLabel();
-        } else if (key.equals(/* NOI18N */"standard")) {
-            if (button instanceof VJButton)
-                return new Boolean(((VJButton)button).isStandard());
-            else
-                return Boolean.FALSE;
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Button button = (Button)body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            String text = button.getLabel();
-            if ((value == null && text != null)
-                || (value != null && !value.equals(text)))
-		button.setLabel((String) value);
-        } else if (key.equals(/* NOI18N */"standard")) {
-            if (button instanceof VJButton)
-                ((VJButton)button).setStandard(((Boolean)value).booleanValue());
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void createBody() {
-        body = new VJButton();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/CanvasShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * 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.
- *
- * @(#) CanvasShadow.java 1.11 - last change made 07/19/96
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import java.awt.Canvas;
-
-/**
- * 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
------------------------------------------------------------------------
-none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see Canvas
-* @see sunsoft.jws.visual.rt.shadow.VJCanvasShadow
-* @version 	1.11, 07/19/96
-*/
-public class CanvasShadow extends ComponentShadow {
-    public void createBody() {
-        body = new Canvas();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/CheckboxShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * 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.
- *
- * @(#) CheckboxShadow.java 1.22 - last change made 08/04/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import java.awt.Checkbox;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-state           java.lang.Boolean         false
-text            java.lang.String          checkbox
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see Checkbox
-* @version 	1.22, 08/04/97
-*/
-public class CheckboxShadow extends ComponentShadow {
-    public CheckboxShadow() {
-        // A bug in AWT keeps us from changing the label in a checkbox
-        // (the setLabel() method doesn't work.)  For now the "text" attribute
-        // is given the CONSTRUCTOR flag to work around this bug.
-        attributes.add(/* NOI18N */"text", /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.CheckboxShadow.text"),
-		       CONSTRUCTOR | NOEDITOR);
-        attributes.add(/* NOI18N */"state",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE, 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"text"))
-	    return (((Checkbox) body).getLabel());
-        else if (key.equals(/* NOI18N */"state"))
-            return (new Boolean((((Checkbox) body).getState())));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"text")) {
-            // WORK-AROUND: this is a constructor attribute because the
-            // call below doesn't actually work (it causes a Motif error)
-            // ((Checkbox) body).setLabel((String) value);
-        } else if (key.equals(/* NOI18N */"state")) {
-            if (((Checkbox) body).getState()
-		!= ((Boolean) value).booleanValue())
-		((Checkbox) body).setState(((Boolean) value).booleanValue());
-        } else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        String text = (String) get(/* NOI18N */"text");
-        if (text != null)
-            body = new Checkbox(text);
-        else
-            body = new Checkbox();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ChoiceShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
- * 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.
- *
- * @(#) ChoiceShadow.java 1.13 - last change made 05/02/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.*;
-
-/**
- * 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
------------------------------------------------------------------------
-items           [Ljava.lang.String;       item1, item2
-selectedItem    java.lang.String          ""
-*  < /pre>
-*
-* selectedItem: is the item(amoung the the strings in the "items"
-* attribute) that is currently showing in the choice field.  This
-* attribute is not available in the attribute editor, but is instead
-* expected to be used programmatically to change the setting on the
-* choice as the result of a callback or some such.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see Choice
-* @version 	1.13, 05/02/97
-*/
-public class ChoiceShadow extends ComponentShadow {
-    public ChoiceShadow() {
-        String items[] = { /* NOI18N */"item1", /* NOI18N */"item2"};
-        // changed for bugid 4006105 -kp
-        //   attributes.add("items", "[Ljava.lang.String;", items, CONSTRUCTOR);
-        attributes.add(/* NOI18N */"items",
-		       /* NOI18N */"[Ljava.lang.String;", items, 0);
-        attributes.add(/* NOI18N */"selectedItem",
-		       /* NOI18N */"java.lang.String", /* NOI18N */"", HIDDEN);
-        
-        // On WindowsNT, choice menus look bad because they have extra
-        // space on the bottom.  Setting the insets here tries to adjust
-        // for this problem.
-        if (Global.isWindowsNT()) {
-            attributes.add(/* NOI18N */"insets",
-			   /* NOI18N */"java.awt.Insets",
-			new Insets(2, 0, 0, 0));
-        } else if (Global.isMotif()) {
-            // Motif choice menus hang out over their bottom and right edges.
-            // The problem is worse on SGI than Sun.
-            if (Global.isIrix())
-		attributes.add(/* NOI18N */"insets",
-			       /* NOI18N */"java.awt.Insets",
-			    new Insets(0, 0, 4, 12));
-            else
-                attributes.add(/* NOI18N */"insets",
-			       /* NOI18N */"java.awt.Insets",
-			       new Insets(0, 0, 2, 6));
-        }
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"items")) {
-            Choice choice = (Choice)body;
-            int count = choice.countItems();
-            String value[] = new String[count];
-            
-            for (int i = 0; i < count; i++)
-                value[i] = choice.getItem(i);
-            return value;
-        } else if (key.equals(/* NOI18N */"selectedItem")) {
-            Choice choice = (Choice)body;
-            return choice.getSelectedItem();
-        }
-        else
-            return (super.getOnBody(key));
-    }
-    
-    /**
-     * This makes changes to the Choice body when the user changes
-     * items in it.  it updates the Choice body from the new data.
-     */
-    private void equalizeChoices(Object value) {
-        
-        String s[] = (String[])value;
-        Choice choice = (Choice) body;
-        int count = choice.countItems();
-        // remove all the items and add the new list...
-        if (count  > 0)
-            choice.removeAll();
-        // Motif workaround: Need to add at least one item to the choice menu
-        // or else Motif will cause a core dump.
-	if (s == null || s.length == 0)
-            choice.addItem(/* NOI18N */"     ");
-        else {
-            for (int i = 0; i < s.length; i++)
-                if (s[i] != null)
-		    choice.addItem(s[i]);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"items")) {
-            
-            // added -kp for bugid 4006105
-            equalizeChoices(value);
-            // end of addition -kp
-        } else if (key.equals(/* NOI18N */"selectedItem")) {
-            String str = (String)value;
-            if (str == null)
-                str = /* NOI18N */"";
-            
-            Choice choice = (Choice)body;
-            boolean selected = false;
-            int count = choice.countItems();
-            
-            for (int i = 0; i < count; i++) {
-                if (choice.getItem(i).equals(str)) {
-                    selected = true;
-                    choice.select(i);
-                    break;
-                }
-            }
-            
-            if (!selected && count != 0)
-                choice.select(0);
-        } else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        Choice choice = new Choice();
-        body = choice;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ComponentShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-/*
- * 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.
- *
- * @(#) ComponentShadow.java 1.82 - last change made 08/05/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.GBLayout;
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.type.AnchorEnum;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.Window;
-import java.awt.LayoutManager;
-import java.awt.SystemColor;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Frame;
-import java.awt.Panel;
-
-/**
- * Shadow class that wraps the AWT Component class.  The attributes
- * available for this class are listed below.  Check the super class
- * for additional attributes.
- *
- * <pre>
-name            type                      default value
------------------------------------------------------------------------
-anchor          rt.type.AnchorEnum        center
-background      java.awt.Color            null
-enabled         java.lang.Boolean         true
-font            java.awt.Font             null
-foreground      java.awt.Color            null
-GBConstraints   rt.awt.GBConstraints      new GBConstraints()
-insets          java.awt.Insets           null
-visible         java.lang.Boolean         true
-*  < /pre>
-*
-* All shadow classes(except for the menu-related ones) include the
-* attributes from the ComponentShadow class in addition to their own,
-* and they do so by subclassing it.  This class is a super class and
-* isn't available directly from the palette.
-*
-* @see Component
-* @version 1.75, 05/02/97
-*/
-public class ComponentShadow extends Shadow {
-    
-    // Set to true while a show operation is in progress
-    protected boolean doingShow = false;
-    
-    ComponentShadow() {
-        GBConstraints c = new GBConstraints();
-        c.gridx = 0;
-        c.gridy = 0;
-        attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		       c, HIDDEN | NONBODY | CONTAINER);
-        
-        attributes.add(/* NOI18N */"layoutName",
-		       /* NOI18N */"java.lang.String", null,
-		       HIDDEN | NONBODY | CONTAINER);
-        attributes.add(/* NOI18N */"anchor",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AnchorEnum",
-		       new AnchorEnum(GBConstraints.CENTER),
-		    NONBODY | CONTAINER);
-        attributes.add(/* NOI18N */"insets",
-		       /* NOI18N */"java.awt.Insets",
-		    null, NONBODY | CONTAINER);
-        
-        attributes.add(/* NOI18N */"visible",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE,
-		       HIDDEN | DEFAULT);
-        attributes.add(/* NOI18N */"enabled",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, DEFAULT);
-        
-        if (Global.isMotif()) {
-            // Default colors should be null for motif since they inherit the
-            // colors from the Containers.
-            attributes.add(/* NOI18N */"foreground",
-			   /* NOI18N */"java.awt.Color",
-			   null, DEFAULT | DONTFETCH);
-            attributes.add(/* NOI18N */"background",
-			   /* NOI18N */"java.awt.Color",
-			   null, DEFAULT | DONTFETCH);
-        } else {
-            // Component bg and fg must be explicitly set for
-            // Windows. Unfortunately, JDK implements setBackground
-            // and setForground the Motif way. That is, if the default
-            // color is null then retrieve the parent's color. This is
-            // not how the peer is implemented. For Windows, the
-            // container's colors are not inherited by the container.
-            attributes.add(/* NOI18N */"foreground",
-			   /* NOI18N */"java.awt.Color",
-			   SystemColor.controlText, DONTFETCH);
-            attributes.add(/* NOI18N */"background",
-			   /* NOI18N */"java.awt.Color",
-			   SystemColor.control, DONTFETCH);
-        }
-        attributes.add(/* NOI18N */"font",
-		       /* NOI18N */"java.awt.Font", null,
-		       DEFAULT | DONTFETCH);
-    }
-    
-    protected Object getOnBody(String key) {
-        Component comp = (Component)body;
-        
-        if (key.equals(/* NOI18N */"visible"))
-	    return (getFromTable(/* NOI18N */"visible"));
-        else if (key.equals(/* NOI18N */"enabled"))
-            return (new Boolean(comp.isEnabled()));
-        else if (key.equals(/* NOI18N */"foreground"))
-            return (comp.getForeground());
-        else if (key.equals(/* NOI18N */"background"))
-            return (comp.getBackground());
-        else if (key.equals(/* NOI18N */"font"))
-            return (comp.getFont());
-        else
-            return (super.getOnBody(key));
-    }
-    
-    public void set(String key, Object value) {
-        if (key.equals(/* NOI18N */"visible")) {
-            boolean oldValue =
-		((Boolean)getFromTable(/* NOI18N */"visible")).booleanValue();
-            boolean newValue = ((Boolean)value).booleanValue();
-            
-            if (newValue != oldValue) {
-                if (newValue) {
-                    if (!isCreated()) {
-                        doingShow = true;
-                        create();
-                        doingShow = false;
-                    }
-                    
-                    super.set(key, value);
-                    
-                    if (this instanceof ContainerShadow)
-                        ((ContainerShadow)this).showGroups();
-                } else {
-                    super.set(key, value);
-                    
-                    if (this instanceof ContainerShadow)
-                        ((ContainerShadow)this).hideGroups();
-                }
-                
-                return;
-            }
-        }
-        
-        super.set(key, value);
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Component comp = (Component)body;
-        
-        if (key.equals(/* NOI18N */"visible")) {
-            // Don't let visible be set to false if we are the main container
-            // and we are running inside vjava.
-            if (inDesignerRoot() && isMainContainer() &&
-		!((Boolean)value).booleanValue()) {
-		    /* JSTYLED */
-                throw new VJException(Global.getMsg("sunsoft.jws.visual.rt.awt.java.awt.ComponentShadow.IllegalSetVisible"));
-            }
-            
-            // We don't need to use the doingShow() method, because
-            // the "visible" attribute has the DEFAULT flag set,
-            // therefore setOnBody will be called during creation for
-            // the "visible" attribute only if the "visible" attribute
-            // is false.
-            if (!doingShow)
-                showComponent(((Boolean) value).booleanValue());
-        } else if (key.equals(/* NOI18N */"enabled"))
-            comp.setEnabled(((Boolean) value).booleanValue());
-        else if (key.equals(/* NOI18N */"foreground")) {
-            comp.setForeground((Color) value);
-        } else if (key.equals(/* NOI18N */"background")) {
-            comp.setBackground((Color) value);
-        } else if (key.equals(/* NOI18N */"font"))
-            comp.setFont((Font) value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    protected boolean isMainContainer() {
-        Root r = getRoot();
-        if (r == null)
-            return false;
-        
-        AttributeManager mgr = r.getMainChild();
-        if (mgr instanceof WindowShadow) {
-            WindowShadow win = (WindowShadow)mgr;
-            if (win.isPanel())
-		mgr = win.getPanel();
-        }
-        
-        return (mgr == this);
-    }
-    
-    public void createBody() {};
-    
-    /**
-     * Overrides destroyBody() in Shadow so that removeNotify() gets called on
-     * AWT components when there will be no more references to them.
-     */
-    protected void destroyBody() {
-        if (body != null) {
-            ((Component)body).removeNotify();
-            body = null;
-        }
-    }
-    
-    /**
-     * Calls show or hide, depending on the value of cond.
-     */
-    public void show(boolean cond) {
-        if (cond)
-            show();
-        else
-            hide();
-    }
-    
-    /**
-     * Sets the visible attribute to true.
-     */
-    public void show() {
-        set(/* NOI18N */"visible", Boolean.TRUE);
-    }
-    
-    /**
-     * Sets the visible attribute to false.
-     */
-    public void hide() {
-        set(/* NOI18N */"visible", Boolean.FALSE);
-    }
-    
-    /**
-     * Calls showComponent or hideComponent, depending on the value of cond.
-     */
-    public void showComponent(boolean cond) {
-        if (cond)
-            showComponent();
-        else
-            hideComponent();
-    }
-    
-    /**
-     * Shows the component.  Calling showComponent does not affect the
-     * value of the visible attrbute.  You should use "show" instead of
-     * "showComponent".  The only reason this method exists is that
-     * Visual Java needs to use it in certain situations.
-     */
-    public void showComponent() {
-        // Call create if it hasn't already been called.
-        if (!isCreated()) {
-            doingShow = true;
-            create();
-            doingShow = false;
-        }
-        
-        ((Component)body).show();
-        validateMain();
-    }
-    
-    /**
-     * Hides the component.  Calling hideComponent does not affect the
-     * value of the visible attrbute.  You should use "hide" instead of
-     * "hideComponent".  The only reason this method exists is that
-     * Visual Java needs to use it in certain situations.
-     */
-    public void hideComponent() {
-        if (body != null)
-	    {
-		((Component)body).hide();
-		validateMain();
-	    }
-    }
-    
-    /**
-     * Returns true if we are doing a create operation in the
-     * middle of a show operation.  Create likes to call show if the
-     * visible attribute is set to true, but create shouldn't call
-     * show if show caused create to be called if the first place.
-     */
-    protected boolean doingShow() {
-        if (doingShow) {
-            return true;
-        } else {
-            Group g = getGroup();
-            if (g != null)
-                return DesignerAccess.doingShow(g);
-            else
-                return false;
-        }
-    }
-    
-    /**
-     * Call validate to lay out the component and its children if they
-     * are not valid.
-     */
-    public void validate() {
-        if (body != null)
-            ((Component)body).validate();
-    }
-    
-    /**
-     * Call invalidate to force the component to not be valid, so that
-     * it will be layed out again when validate is called.
-     */
-    public void invalidate() {
-        if (body != null)
-            ((Component)body).invalidate();
-    }
-    
-    /**
-     * Returns the result from calling isShowing on the body.
-     */
-    public boolean isShowing() {
-        if (body != null)
-            return ((Component)body).isShowing();
-        else
-            return false;
-    }
-    
-    public void validateMain()
-    {
-        Root root = getRoot();
-        if (root == null)
-            return;
-        // Try the main container
-        AttributeManager mgr = root.getMainChild();
-        if (mgr instanceof Group)
-            mgr = DesignerAccess.getContainer((Group)mgr);
-        
-        if (mgr instanceof ContainerShadow)
-	    {
-		ContainerShadow fs = ((ContainerShadow)mgr);
-		Container f = (Container)fs.getBody();
-		f.validate();
-	    }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ContainerShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
- * 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.
- *
- * @(#) ContainerShadow.java 1.48 - last change made 08/05/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.GBLayout;
-import java.util.Enumeration;
-import java.awt.Container;
-import java.awt.Component;
-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
------------------------------------------------------------------------
-none
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see Container
-* @version 	1.48, 08/05/97
-*/
-public class ContainerShadow
-    extends ComponentShadow implements AMContainer
-{
-    private AMContainerHelper helper = new AMContainerHelper(this);
-    
-    ContainerShadow() {
-        attributes.add("enabled", "java.lang.Boolean", Boolean.TRUE, HIDDEN);
-        
-        if (Global.isMotif()) {
-            // Set the Container colors to use the system colors.  In
-            // Motif Components inherit colors from the Container.
-            // ComponentShadow, the bg and fg were set to null so all
-            // components will use these colors.
-            attributes.add(/* NOI18N */"foreground",
-			   /* NOI18N */"java.awt.Color",
-			   SystemColor.controlText, DONTFETCH);
-            attributes.add(/* NOI18N */"background",
-			   /* NOI18N */"java.awt.Color",
-			   SystemColor.control, DONTFETCH);
-        }
-    }
-    
-    public void createBody() {};
-    
-    void showGroups() {
-        AttributeManager mgr;
-        Enumeration e = getChildList();
-        
-        while (e.hasMoreElements()) {
-            mgr = (AttributeManager)e.nextElement();
-            if (mgr instanceof Group) {
-                if (((Boolean)mgr.get("visible")).booleanValue())
-		    DesignerAccess.internalShowGroup((Group)mgr);
-            } else if (mgr instanceof ContainerShadow) {
-                if (((Boolean)mgr.get("visible")).booleanValue())
-		    ((ContainerShadow)mgr).showGroups();
-            }
-        }
-    }
-    
-    void hideGroups() {
-        AttributeManager mgr;
-        Enumeration e = getChildList();
-        
-        while (e.hasMoreElements()) {
-            mgr = (AttributeManager)e.nextElement();
-            if (mgr instanceof Group) {
-                DesignerAccess.internalHideGroup((Group)mgr);
-            } else if (mgr instanceof ContainerShadow) {
-                ((ContainerShadow)mgr).hideGroups();
-            }
-        }
-    }
-    
-    // AMContainer interfaces
-    
-    public void add(AttributeManager child) {
-        helper.add(child);
-    }
-    
-    public void remove(AttributeManager child) {
-        helper.remove(child);
-    }
-    
-    public void addChildBody(Shadow child) {
-        if (body != null) {
-            Container cntr = (Container)body;
-            Component comp = (Component)child.getBody();
-            
-            if (comp.getParent() != cntr) {
-                cntr.add(comp);
-                updateContainerAttributes((AMContainer)this, child);
-            }
-        }
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        // Do nothing.  Sub-classes should override this method to deal with
-        // specific layout managers.
-    }
-    
-    public void removeChildBody(Shadow child) {
-        if (body != null) {
-            ((Container) body).remove((Component) child.getBody());
-        }
-    }
-    
-    public void createChildren() {
-        helper.createChildren();
-    }
-    
-    public void reparentChildren() {
-        helper.reparentChildren();
-    }
-    
-    public void destroyChildren() {
-        helper.destroyChildren();
-    }
-    
-    public AttributeManager getChild(String name) {
-        return (helper.getChild(name));
-    }
-    
-    public Enumeration getChildList() {
-        return (helper.getChildList());
-    }
-    
-    public int getChildCount() {
-        return (helper.getChildCount());
-    }
-    
-    public void layoutMode() {
-        super.layoutMode();
-        helper.layoutMode();
-    }
-    
-    public void previewMode() {
-        super.previewMode();
-        helper.previewMode();
-    }
-    
-    public void preValidate() {
-        helper.preValidate();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/DialogShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) DialogShadow.java 1.60 - last change made 08/11/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.type.AMRef;
-import sunsoft.jws.visual.rt.awt.RootDialog;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.*;
-import java.util.Enumeration;
-
-// This class makes the assumption that dialogClass is either null or a
-// subclass of Frame.  No error checking is done here to enforce this.
-
-/**
- * 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
------------------------------------------------------------------------
-frame           rt.type.AMRef             null
-modal           java.lang.Boolean         false
-resizable       java.lang.Boolean         true
-title           java.lang.String          "Unnamed Dialog"
-*  < /pre>
-*
-* modal: when set to true, the dialog's presence(its being visible)
-* keeps the user from doing anything else in the generated application
-    * until the dialog is popped down.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see Dialog
-* @version 	1.60, 08/11/97
-*/
-public class DialogShadow extends WindowShadow {
-    
-    protected Frame dialogFrame;
-    
-    public DialogShadow() {
-        attributes.add(/* NOI18N */"frame",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AMRef",
-		       null, CONSTRUCTOR | NONBODY | HIDDEN);
-        attributes.alias(/* NOI18N */"text", /* NOI18N */"title");
-        attributes.add(/* NOI18N */"title", /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.DialogShadow.title"),
-		       NOEDITOR);
-        attributes.add(/* NOI18N */"modal",
-		       /* NOI18N */"java.lang.Boolean",
-		       Boolean.FALSE, CONSTRUCTOR);
-        attributes.add(/* NOI18N */"resizable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-    }
-    
-    //
-    // getOnBody
-    //
-    protected Object getOnBody(String key) {
-        if (body instanceof Dialog)
-            return getOnDialogBody(key);
-        else
-            return getOnFrameBody(key);
-    }
-    
-    private Object getOnDialogBody(String key) {
-        Dialog dialog = (Dialog)body;
-        
-        if (key.equals(/* NOI18N */"modal")) {
-            if (isLive())
-		return new Boolean(dialog.isModal());
-            else
-                return getFromTable(/* NOI18N */"modal");
-        } else if (key.equals(/* NOI18N */"resizable"))
-            return (new Boolean(dialog.isResizable()));
-        else if (key.equals(/* NOI18N */"title"))
-            return (dialog.getTitle());
-        else
-            return (super.getOnBody(key));
-    }
-    
-    private Object getOnFrameBody(String key) {
-        Frame frame = (Frame)body;
-        
-        if (key.equals(/* NOI18N */"modal"))
-	    return (getFromTable(/* NOI18N */"modal"));
-        else if (key.equals(/* NOI18N */"resizable"))
-            return (new Boolean(frame.isResizable()));
-        else if (key.equals(/* NOI18N */"title"))
-            return (frame.getTitle());
-        else
-            return (super.getOnBody(key));
-    }
-    
-    //
-    // setOnBody
-    //
-    protected void setOnBody(String key, Object value) {
-        if (body instanceof Dialog)
-            setOnDialogBody(key, value);
-        else
-            setOnFrameBody(key, value);
-    }
-    
-    private void setOnDialogBody(String key, Object value) {
-        Dialog dialog = (Dialog)body;
-        
-        if (key.equals(/* NOI18N */"modal"))
-	    return; // cannot set modal once dialog is created
-        else if (key.equals(/* NOI18N */"resizable"))
-            dialog.setResizable(((Boolean)value).booleanValue());
-        else if (key.equals(/* NOI18N */"title"))
-            dialog.setTitle((String)value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    private void setOnFrameBody(String key, Object value) {
-        Frame frame = (Frame)body;
-        
-        if (key.equals(/* NOI18N */"modal"))
-	    return; // cannot set modal once dialog is created
-        else if (key.equals(/* NOI18N */"resizable"))
-            frame.setResizable(((Boolean)value).booleanValue());
-        else if (key.equals(/* NOI18N */"title"))
-            frame.setTitle((String)value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void create() {
-        if (!isCreated() && Global.isWindows()) {
-            createBody();
-            if (!(body instanceof Dialog)) {
-                if (attributes.get(/* NOI18N */"font").flagged(DEFAULT)) {
-                    attributes.add(/* NOI18N */"font",
-				/* NOI18N */"java.awt.Font",
-				   new Font(/* NOI18N */"Dialog",
-					    Font.PLAIN, 12), DONTFETCH);
-                }
-            }
-        }
-        
-        super.create();
-    }
-    
-    public void createBody() {
-        dialogFrame = getFrame();
-        
-        // Create the dialog
-        if (!inDesignerRoot()) {
-            boolean modal;
-            if (isLive())
-	        /* JSTYLED */
-	        modal = ((Boolean) getFromTable(/* NOI18N */"modal")).booleanValue();
-            else
-                modal = false;
-            
-            String title = (String) getFromTable(/* NOI18N */"title");
-            
-            Dialog dialog = new RootDialog(dialogFrame, title, modal);
-            body = dialog;
-        } else {
-            try {
-                body = DesignerAccess.getDialogClass().newInstance();
-            } catch (InstantiationException ex) {
-                throw new Error(ex.toString());
-            } catch (IllegalAccessException ex) {
-                throw new Error(ex.toString());
-            }
-        }
-    }
-    
-    public void showComponent() {
-        // Call addNotify on our frame if necessary.  Need to check for
-        // null because we might not be created yet.
-        if (dialogFrame != null && dialogFrame.getPeer() == null)
-	    dialogFrame.addNotify();
-        
-        super.showComponent();
-    }
-    
-    protected Frame getFrame() {
-        AMRef ref;
-        FrameShadow frameShadow;
-        Frame frame;
-        
-        // Determine the frame that this dialog hangs off of
-        ref = (AMRef) getFromTable(/* NOI18N */"frame");
-        if (ref != null) {
-            AttributeManager scope = getForwardingGroup(/* NOI18N */"frame");
-            if (scope == null)
-                scope = this;
-            
-            frameShadow = (FrameShadow)ref.getRef(scope);
-            
-            if (frameShadow == null)
-		    /* JSTYLED */
-                throw new Error(Global.getMsg("sunsoft.jws.visual.rt.awt.java.awt.DialogShadow.NullFrameShadow"));
-            
-            frame = getFrameBody(frameShadow);
-        } else {
-            frame = lookupFrame();
-        }
-        
-        if (frame == null)
-		/* JSTYLED */
-            throw new Error(Global.getMsg("sunsoft.jws.visual.rt.awt.java.awt.DialogShadow.NullFrame"));
-        
-        return frame;
-    }
-    
-    private Frame lookupFrame() {
-        Root root = getRoot();
-        
-        // Try the main container
-        AttributeManager mgr = root.getMainChild();
-        if (mgr instanceof Group)
-            mgr = DesignerAccess.getContainer((Group)mgr);
-        
-        if (mgr instanceof FrameShadow)
-            return getFrameBody((FrameShadow)mgr);
-        
-        // Try any other child of the root if we aren't the main container
-        if (mgr != this) {
-            Enumeration e = root.getChildList();
-            while (e.hasMoreElements()) {
-                mgr = (AttributeManager)e.nextElement();
-                if (mgr instanceof FrameShadow) {
-                    Boolean v = (Boolean)mgr.get(/* NOI18N */"visible");
-                    if (v.booleanValue())
-			return getFrameBody((FrameShadow)mgr);
-                }
-            }
-        }
-        
-        // Try for a shadow parent of the root
-        FrameShadow frameShadow = lookupGroupFrame(root.getGroup());
-        if (frameShadow != null) {
-            Boolean v = (Boolean)mgr.get(/* NOI18N */"visible");
-            if (v.booleanValue())
-		return getFrameBody(frameShadow);
-        }
-        
-        // Try the toplevel
-        return getGroup().getTopLevel();
-    }
-    
-    private Frame getFrameBody(FrameShadow frameShadow) {
-        Frame frame = (Frame)frameShadow.getBody();
-        
-        if (frame == null) {
-            frameShadow.createBody();
-            frame = (Frame)frameShadow.getBody();
-        }
-        
-        return frame;
-    }
-    
-    private FrameShadow lookupGroupFrame(Group group) {
-        if (group == null)
-            return null;
-        
-        AttributeManager mgr = DesignerAccess.getContainer(group);
-        if (mgr instanceof FrameShadow)
-            return (FrameShadow)mgr;
-        else
-            return lookupGroupFrame(group.getParentGroup());
-    }
-    
-    // Overridden AMContainer interfaces
-    
-    public void addChildBody(Shadow child) {
-        if (body != null) {
-            Container cntr = (Container)body;
-            if ((cntr.getLayout() instanceof BorderLayout)
-		&& getChildCount() == 1)
-		cntr.add(/* NOI18N */"Center", (Component) child.getBody());
-            else
-                super.addChildBody(child);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/FileDialogShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-/*
- * 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.
- *
- * @(#) FileDialogShadow.java 1.15 - last change made 08/09/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.type.ModeEnum;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.FileDialog;
-import java.io.FilenameFilter;
-
-/**
- * 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
------------------------------------------------------------------------
-directory       java.lang.String          null
-file            java.lang.String          null
-+ modal           java.lang.Boolean         true
-mode            rt.type.ModeEnum	      load
-+ title           java.lang.String          "Unnamed File Dialog"
-+ visible         java.lang.Boolean         false
-*  < /pre>
-*
-* + = this attribute overrides one inherited from an ancestor class.
-*  < p>
-* mode: can be "load" or "save", and determines whether the file dialog
-* is to be used for opening or saving a file, repectively(the text in
-* the lower left button of the file dialog will read either "Open" or
-* "Save" depending on the mode.)
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see FileFialog
-* @version 	1.15, 08/09/97
-*/
-public class FileDialogShadow extends DialogShadow {
-    
-    public FileDialogShadow() {
-        attributes.add(/* NOI18N */"title", /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.FileDialogShadow.title"),
-		       NOEDITOR);
-        attributes.add(/* NOI18N */"directory",
-		       /* NOI18N */"java.lang.String", null, NOEDITOR);
-        attributes.add(/* NOI18N */"file",
-		       /* NOI18N */"java.lang.String", null, NOEDITOR);
-        
-        // REMIND: This is commented out because Java WorkShop's version of
-        // the JDK does not implement the FileDialog.setFilenameFilter()
-        // method.
-        // attributes.add(/* NOI18N */"filenameFilter",
-	//  /* NOI18N */"java.io.FilenameFilter",
-        //		      null, HIDDEN);
-        
-        // which mode, load or save?
-        attributes.add(/* NOI18N */"mode",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.ModeEnum",
-		       new ModeEnum(FileDialog.LOAD), CONSTRUCTOR);
-        
-        // Always modal
-        attributes.add(/* NOI18N */"modal",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, HIDDEN);
-        
-        // Always resizeable
-        attributes.add(/* NOI18N */"resizable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, HIDDEN);
-        
-        // Not visible by default
-        attributes.add(/* NOI18N */"visible",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE,
-		       HIDDEN | NONBODY);
-    }
-    
-    public void showComponent() {
-        checkCreate();
-        ((FileDialog)body).show();
-        set(/* NOI18N */"visible", Boolean.FALSE);
-    }
-    
-    protected Object getOnBody(String key) {
-        FileDialog fd = (FileDialog)body;
-        
-        if (key.equals(/* NOI18N */"directory")) {
-            return fd.getDirectory();
-        } else if (key.equals(/* NOI18N */"file")) {
-            String file = fd.getFile();
-            
-            // WORK-AROUND: remove the .*.* that Win95 puts on filename
-            if (file != null && file.endsWith(/* NOI18N */".*.*"))
-		file = file.substring(0, file.length() - 4);
-            
-            return file;
-        }
-        
-        // REMIND: This is commented out because Java WorkShop's version of
-        // the JDK does not implement the FileDialog.setFilenameFilter()
-        // method.
-        // else if (key.equals(/* NOI18N */"filenameFilter"))
-	//   return fd.getFilenameFilter();
-        
-        else if (key.equals(/* NOI18N */"mode"))
-            return (new ModeEnum(fd.getMode()));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        FileDialog fd = (FileDialog)body;
-        
-        if (key.equals(/* NOI18N */"directory"))
-	    fd.setDirectory((String)value);
-        else if (key.equals(/* NOI18N */"file"))
-            fd.setFile((String)value);
-        
-        // REMIND: This is commented out because Java WorkShop's version of
-        // the JDK does not implement the FileDialog.setFilenameFilter()
-        // method.
-        // else if (key.equals(/* NOI18N */"filenameFilter"))
-	//   fd.setFilenameFilter((FilenameFilter)value);
-        
-        else if (key.equals(/* NOI18N */"mode")) {
-            // Do nothing ; constructor attribute
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        dialogFrame = getFrame();
-        String title = (String) getFromTable(/* NOI18N */"title");
-        int mode = ((ModeEnum) getFromTable(/* NOI18N */"mode")).intValue();
-        
-        body = new FileDialog(dialogFrame, title, mode);
-    }
-    
-    /**
-     * Disposes of the AWT top-level window so that window system
-     * resources are reclaimed.
-     */
-    protected void destroyBody() {
-        //
-        // Workaround for Motif bug during removeNotify
-        //
-        // java.lang.NullPointerException
-        //     at sun.awt.motif.MComponentPeer.dispose(MComponentPeer.java:175)
-        //        at sun.awt.motif.MDialogPeer.dispose(MDialogPeer.java:73)
-        //        at java.awt.Component.removeNotify(Component.java:1037)
-        //        at java.awt.Container.removeNotify(Container.java:385)
-        //        at java.awt.Window.dispose(Window.java:127)
-        //        at sunsoft.jws.visual.rt.shadow.java.awt.
-        //           FileDialogShadow.destroyBody(FileDialogShadow.java:103)
-        //
-        if (!Global.isMotif())
-	    ((FileDialog)body).dispose();
-        
-        body = null;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/FrameShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) FrameShadow.java 1.65 - last change made 08/11/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.DesignerAccess;
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.type.ImageRef;
-import sunsoft.jws.visual.rt.awt.RootFrame;
-
-import java.awt.*;
-
-/**
- * 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
------------------------------------------------------------------------
-+ background      java.awt.Color            #c0c0c0
-icon            rt.type.ImageRef          null
-menubar         rt.type.MenuBarRef        null
-resizable       java.lang.Boolean         true
-title           java.lang.String          "Unnamed Frame"
-*  < /pre>
-*
-* + = this attribute overrides one inherited from an ancestor class.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see Frame
-* @version 	1.65, 08/11/97
-*/
-public class FrameShadow extends WindowShadow {
-    
-    private int cursorCount = 0;
-    private int prevCursor = Frame.DEFAULT_CURSOR;
-    
-    public FrameShadow() {
-        attributes.add(/* NOI18N */"title", /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.FrameShadow.title"),
-		       NOEDITOR);
-        attributes.alias(/* NOI18N */"text", /* NOI18N */"title");
-        attributes.add(/* NOI18N */"resizable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"icon",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.ImageRef",
-		       null, 0);
-        attributes.add(/* NOI18N */"menubar",
-		    /* JSTYLED */
-		       /* NOI18N */"sunsoft.jws.visual.rt.shadow.java.awt.MenuBarShadow",
-		       null, DEFAULT | TRANSIENT);
-        
-        if (Global.isIrix())
-	    attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Sansserif",
-				    Font.PLAIN, 12), DONTFETCH);
-        
-        if (Global.isWindows()) {
-            attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Dialog",
-				    Font.PLAIN, 12), DONTFETCH);
-        }
-    }
-    
-    protected Object getOnBody(String key) {
-        Frame frame = (Frame)body;
-        
-        if (key.equals(/* NOI18N */"title"))
-	    return frame.getTitle();
-        else if (key.equals(/* NOI18N */"resizable"))
-            return new Boolean(frame.isResizable());
-        else if (key.equals(/* NOI18N */"icon"))
-            return getFromTable(/* NOI18N */"icon");
-        else if (key.equals(/* NOI18N */"menubar")) {
-            MenuBar menuBar = frame.getMenuBar();
-            if (menuBar == null)
-                return null;
-            else
-                return DesignerAccess.getShadowTable().get(menuBar);
-        } else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Frame frame = (Frame)body;
-        
-        if (key.equals(/* NOI18N */"title")) {
-            frame.setTitle((String) value);
-        } else if (key.equals(/* NOI18N */"resizable")) {
-            frame.setResizable(((Boolean) value).booleanValue());
-        } else if (key.equals(/* NOI18N */"menubar")) {
-            MenuBarShadow s = (MenuBarShadow)getOnBody(/* NOI18N */"menubar");
-            if (s != null) {
-                remove(s);
-                s.destroy();
-            }
-            
-            if (value != null) {
-                s = (MenuBarShadow)value;
-                add(s);
-                s.create();
-            }
-        } else if (key.equals(/* NOI18N */"icon")) {
-            if (value != null) {
-                try {
-                    frame.setIconImage(((ImageRef) value).
-				    getImage(frame, getGroup().getApplet()));
-                }
-                catch (VJException ex) {
-                    if (isLive())
-			    /* JSTYLED */
-			    System.out.println(/* NOI18N */"Error: " + ex.getMessage());
-                    else
-                        throw ex;
-                }
-            } else if (frame.getPeer() == null)
-                frame.setIconImage(null);
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    protected String getUserTypeName() {
-        return (/* NOI18N */"frame");
-    }
-    
-    public void createBody() {
-        if (!inDesignerRoot())
-	    body = new RootFrame();
-        else {
-            try {
-                body = DesignerAccess.getFrameClass().newInstance();
-            } catch (InstantiationException ex) {
-                throw new Error(ex.toString());
-            } catch (IllegalAccessException ex) {
-                throw new Error(ex.toString());
-            }
-        }
-    }
-    
-    // Overridden AMContainer interfaces
-    
-    public void addChildBody(Shadow child) {
-        // frames will have a single central child and maybe a menubar
-        if (body != null) {
-            Frame frame = (Frame)body;
-            
-            if (child instanceof MenuBarShadow) {
-                // add the menubar
-                MenuBar currentMenuBar = frame.getMenuBar();
-                if (currentMenuBar != null
-		    && currentMenuBar != child.getBody()) {
-			/* JSTYLED */
-                    throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.awt.java.awt.FrameShadow.AlreadyHasMenubar", child.get(/* NOI18N */"name")));
-                } else {
-                    frame.setMenuBar((MenuBar) child.getBody());
-                }
-            } else {
-                // add a component
-                if (frame.getLayout() instanceof BorderLayout) {
-                    frame.add(/* NOI18N */"Center",
-			      (Component) child.getBody());
-                } else {
-                    super.addChildBody(child);
-                }
-            }
-        }
-    }
-    
-    public void removeChildBody(Shadow child) {
-        if (body != null) {
-            if ((child instanceof MenuBarShadow)) {
-		/* JSTYLED */
-                if (!((Frame) body).getMenuBar().equals((MenuBar) child.getBody())) {
-			/* JSTYLED */
-                    throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.awt.java.awt.FrameShadow.MenubarNotInstalled", child.get(/* NOI18N */"name")));
-                } else {
-                    // remove the  menubar
-                    ((Frame) body).remove((MenuComponent) child.getBody());
-                }
-            } else {
-                // remove a component
-                ((Frame) body).remove((Component) child.getBody());
-            }
-        }
-    }
-    
-    int incrCursor() {
-        cursorCount++;
-        return cursorCount;
-    }
-    
-    int decrCursor() {
-        cursorCount--;
-        if (cursorCount < 0)
-            cursorCount = 0;
-        return cursorCount;
-    }
-    
-    void setPrevCursor(int cursor) {
-        prevCursor = cursor;
-    }
-    
-    int getPrevCursor() {
-        return prevCursor;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/JAShadowAccess.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * 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.
- *
- * @(#) JAShadowAccess.java 1.2 - last change made 07/25/96
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-
-/**
- * Accessor class for use only by graphical interface builders.  Gives
- * a GUI builder access to methods in this package which are package
- * private.  The methods in this class should not be used by any other
- * application, they are for use by Visual Java only and are subject
- * to change.
- *
- * @version 1.2, 07/25/96
- */
-public class JAShadowAccess {
-
-    //
-    // These instantiate methods are needed so that the ComponentShadow
-    // and ContainerShadow classes can be instantiated when we are
-    // generating the list of attribute names.
-    //
-
-    public static AttributeManager instantiate(String classname) {
-	Class c;
-	try {
-	    c = Class.forName(classname);
-	}
-	catch (Exception ex) {
-	    System.out.println(ex.toString());
-	    return null;
-	}
-	return instantiate(c);
-    }
-
-    public static AttributeManager instantiate(Class c) {
-	Object obj;
-	try {
-	    obj = c.newInstance();
-	}
-	catch (Exception ex) {
-	    System.out.println(ex.toString());
-	    return null;
-	}
-
-	if (obj instanceof AttributeManager)
-	    return (AttributeManager)obj;
-	else
-	    return null;
-    }
-
-    //
-    // Internal "FrameShadow" methods
-    //
-
-    public static int incrCursor(FrameShadow fs) {
-	return fs.incrCursor();
-    }
-
-    public static int decrCursor(FrameShadow fs) {
-	return fs.decrCursor();
-    }
-
-    public static void setPrevCursor(FrameShadow fs, int cursor) {
-	fs.setPrevCursor(cursor);
-    }
-
-    public static int getPrevCursor(FrameShadow fs) {
-	return fs.getPrevCursor();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/LabelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
- * 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.
- *
- * @(#) LabelShadow.java 1.26 - last change made 08/04/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.type.AlignmentEnum;
-import java.awt.Label;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-alignment       rt.type.AlignmentEnum     center
-text            java.lang.String          label
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see Label
-* @version 	1.26, 08/04/97
-*/
-public class LabelShadow extends ComponentShadow {
-    public LabelShadow() {
-        attributes.add(/* NOI18N */"text", /* NOI18N */"java.lang.String",
-		    /* JSTYLED */
-		       Global.getMsg("sunsoft.jws.visual.rt.shadow.java.awt.LabelShadow.text"),
-		       NOEDITOR);
-        attributes.add(/* NOI18N */"alignment",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AlignmentEnum",
-		       new AlignmentEnum(Label.CENTER), 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"text"))
-	    return (((Label) body).getText());
-        else if (key.equals(/* NOI18N */"alignment"))
-            return (new AlignmentEnum(((Label) body).getAlignment()));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Label label = (Label) body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            String text = label.getText();
-            if ((value == null && text != null)
-                || (value != null && !value.equals(text)))
-		label.setText((String) value);
-        } else if (key.equals(/* NOI18N */"alignment"))
-            label.setAlignment(((AlignmentEnum) value).intValue());
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = new Label();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ListShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) ListShadow.java 1.32 - last change made 08/12/97 
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import java.awt.List;
-import java.awt.SystemColor;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-allowMultipleSelections java.lang.Boolean false
-items           [Ljava.lang.String;       item1, item2
-selectedItem    java.lang.String          null
-selectedItems   [Ljava.lang.String;       null
-visibleRows     java.lang.Integer         4
-*  < /pre>
-*
-* selectedItem: is the item(amoung the the strings in the "items"
-* attribute) that is currently showing in the list.  This attribute is
-* not available in the attribute editor, but is instead expected to be
-* used programmatically to change or check the setting.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see List
-* @version 	1.32, 08/12/97
-*/
-public class ListShadow extends ComponentShadow {
-    public ListShadow() {
-        attributes.add(/* NOI18N */"allowMultipleSelections",
-		       /* NOI18N */"java.lang.Boolean",
-		       Boolean.FALSE, 0);
-        String sa[] = { /* NOI18N */"item1", /* NOI18N */"item2"};
-        attributes.add(/* NOI18N */"items",
-		       /* NOI18N */"[Ljava.lang.String;", sa, 0);
-        attributes.add(/* NOI18N */"selectedItem",
-		       /* NOI18N */"java.lang.String", null, HIDDEN);
-        attributes.add(/* NOI18N */"selectedItems",
-		       /* NOI18N */"[Ljava.lang.String;", null, HIDDEN);
-        attributes.add(/* NOI18N */"visibleRows",
-		       /* NOI18N */"java.lang.Integer", new Integer(4),
-		       CONSTRUCTOR);
-        
-        GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
-        c.fill = GBConstraints.BOTH;
-        attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		    c);
-        
-        // 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 */"visibleRows"))
-	    return (new Integer(((List) body).getRows()));
-        else if (key.equals(/* NOI18N */"allowMultipleSelections"))
-            return (new Boolean(((List) body).allowsMultipleSelections()));
-        else if (key.equals(/* NOI18N */"items")) {
-            if (((List) body).countItems() == 0)
-		return null;
-            else {
-                int index;
-                String[] listContents = new String[((List)body).countItems()];
-                for (index = 0; index < listContents.length; index++)
-                    listContents[index] = ((List)body).getItem(index);
-                return listContents;
-            }
-        } else if (key.equals(/* NOI18N */"selectedItem")) {
-            List list = (List)body;
-            return list.getSelectedItem();
-        } else if (key.equals(/* NOI18N */"selectedItems")) {
-            return ((List)body).getSelectedItems();
-        }
-        else
-            return (super.getOnBody(key));
-    }
-    
-    /**
-     * This efficiently makes changes to the List body when the user changes
-     * items in it.  it updates the List body from the new data.
-     */
-    private void equalizeLists(Object value) {
-        String[] newList = ((String[]) (value));
-        
-        int newListIndex = 0, oldListIndex = 0;
-        int dummyIndex;
-        
-        // If the user deleted all of the entries, the newList would be null
-        if (newList == null) {
-            if (((List) body).countItems() > 0) {
-                ((List) body).delItems(0, ((List)body).countItems()-1);
-            }
-        } else {
-            while (newListIndex < newList.length &&
-		   oldListIndex < ((List) body).countItems())
-		{
-		    String curOldItem = ((List) (body)).getItem(oldListIndex);
-                
-		    if (newList[newListIndex].equals(curOldItem)) {
-			newListIndex++;
-			oldListIndex++;
-		    } else {
-			for (dummyIndex = newListIndex;
-			     dummyIndex < newList.length; dummyIndex++) {
-			    if (curOldItem.equals(newList[dummyIndex])) {
-				((List) body).delItem(oldListIndex);
-				break;
-			    }
-			}
-			((List) body).addItem(newList[newListIndex],
-					    oldListIndex);
-			newListIndex++;
-			oldListIndex++;
-		    }
-		}
-            
-            if (oldListIndex < ((List) body).countItems()) {
-                ((List) body).delItems(oldListIndex,
-				       ((List)body).countItems()-1);
-            }
-            
-            while (newListIndex < newList.length) {
-                ((List) body).addItem(newList[newListIndex]);
-                newListIndex++;
-            }
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"allowMultipleSelections"))
-		/* JSTYLED */
-	    ((List) body).setMultipleSelections(((Boolean)value).booleanValue());
-        else if (key.equals(/* NOI18N */"items"))
-            equalizeLists(value);
-        else if (key.equals(/* NOI18N */"visibleRows"))
-            return;	// this must be set in constructor
-        else if (key.equals(/* NOI18N */"selectedItem")) {
-            List list = (List)body;
-            if (list.allowsMultipleSelections())
-		unselectAll(list);
-            select((List)body, (String)value);
-        } else if (key.equals(/* NOI18N */"selectedItems")) {
-            List list = (List)body;
-            String items[] = (String[])value;
-            if (list.allowsMultipleSelections()) {
-                unselectAll(list);
-                if (items != null) {
-                    for (int i = 0; i < items.length; i++)
-                        select(list, items[i]);
-                }
-            } else {
-                if (items != null && items.length != 0)
-                    select(list, items[0]);
-                else
-                    select(list, null);
-            }
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    private void select(List list, String s) {
-        if (s == null) {
-            int index = list.getSelectedIndex();
-            if (index != -1)
-                list.deselect(index);
-            return;
-        }
-        
-        int num = list.countItems();
-        for (int i = 0; i < num; i++) {
-            if (s.equals(list.getItem(i))) {
-                list.select(i);
-                break;
-            }
-        }
-    }
-    
-    private void unselectAll(List list) {
-        int indexes[] = list.getSelectedIndexes();
-        if (indexes != null) {
-            for (int i = 0; i < indexes.length; i++)
-                list.deselect(indexes[i]);
-        }
-    }
-    
-    public void createBody() {
-	    /* JSTYLED */
-        body = new List(((Integer) getFromTable(/* NOI18N */"visibleRows")).intValue(),
-			/* JSTYLED */
-			((Boolean) getFromTable(/* NOI18N */"allowMultipleSelections")).booleanValue());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../../../Makefile.com
-
-CLASSES= BeanComponentShadow BeanShadow BeanableComponent \
-	ButtonShadow CanvasShadow CheckboxShadow \
-	ChoiceShadow ComponentShadow ContainerShadow \
-	DialogShadow FileDialogShadow FrameShadow \
-	JAShadowAccess LabelShadow ListShadow \
-	MenuBarShadow MenuComponentShadow MenuItemShadow \
-	MenuShadow PanelShadow ScrollbarShadow \
-	TextAreaShadow TextComponentShadow TextFieldShadow \
-	WindowShadow
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuBarShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-/*
- * 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.
- *
- * @(#) MenuBarShadow.java 1.43 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.type.AMRef;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.Enumeration;
-import java.awt.MenuBar;
-import java.awt.MenuComponent;
-import java.awt.Menu;
-
-/**
- * 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
------------------------------------------------------------------------
-helpMenu        rt.type.AMRef             null
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see MenuBar
-*/
-public class MenuBarShadow extends MenuComponentShadow implements AMContainer {
-    private AMContainerHelper helper = new AMContainerHelper(this);
-    private boolean fHelpMenu = false;
-    private boolean fCreate = false;
-    private Menu helpMenu = null;
-    
-    public MenuBarShadow() {
-        attributes.add(/* NOI18N */"helpMenu",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.AMRef",
-		       null, 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"helpMenu"))
-	    // a menu shadow ref is returned
-	    return (getFromTable(/* NOI18N */"helpMenu"));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    public void create()
-    {
-        fCreate = true;
-        super.create();
-        fCreate = false;
-    }
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"helpMenu")) {
-            // Check to make sure value is set yet
-            if (value != null) {
-                // a reference to the help menu shadow is what is
-                // stored as attribute
-                MenuShadow ms = (MenuShadow)((AMRef)value).getRef(this);
-                // Create the body if it does not yet exist
-                if (ms != null && ms.getBody() == null)
-		    ms.createBody();
-                
-                if (ms != null && ms.getBody() != null)
-		    {
-                    
-                    
-			if (Global.isWindows())
-			    {
-				if (fCreate) // from create Menubar
-				    {
-					fHelpMenu = true;
-					helpMenu = (Menu) ms.getBody();
-				// no create just setting the help menu...
-				    } else
-					    /* JSTYLED */
-					((MenuBar) body).setHelpMenu((Menu) ms.getBody());
-			    }
-			else
-			    {
-				    /* JSTYLED */
-				((MenuBar) body).setHelpMenu((Menu) ms.getBody());
-			    }
-		    }
-                else
-			/* JSTYLED */
-                    System.out.println(Global.fmtMsg("sunsoft.jws.visual.rt.awt.java.awt.MenuBarShadow.CantResolveHelpMenu",
-						    getName(),
-						    ((AMRef)value).getName()));
-            }
-        }
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = new MenuBar();
-    }
-    
-    
-    
-    protected void postCreate() {
-        
-        /*
-         * note that the sethelpMenu call in the jdk creates and adds 
-         * it if the menu does not exists.
-         * so during the setOnBody the help menu is created first.
-         * and since on windows the menu appear as they are added we 
-         * see the help menu first. I believe it is 
-         * a bug in the windows peer. This is a workaround for that..
-         * we remove and add the help menu again..
-         * after all the menus are created.. bug id 4033014....-kp
-         */
-        
-        Menu m;
-        MenuBar menubar;
-        menubar = (MenuBar)body;
-        int i;
-        
-        if (Global.isWindows())
-	    {
-		if (fHelpMenu)  // help menu present so add it..
-		    {
-			if (helpMenu != null)
-			    menubar.setHelpMenu(helpMenu);
-		    }
-	    }
-        super.postCreate();
-    }
-    
-    // AMContainer interfaces
-    
-    public void add(AttributeManager child) {
-        helper.add(child);
-    }
-    
-    public void remove(AttributeManager child) {
-        helper.remove(child);
-    }
-    
-    public void addChildBody(Shadow child) {
-        if (body != null) {
-            MenuBar menubar = (MenuBar)body;
-            Menu menu = (Menu)child.getBody();
-            
-            if (menu.getParent() != menubar) {
-                menubar.add(menu);
-                updateContainerAttributes((AMContainer)this, child);
-            }
-        }
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        // Menus could have a layout constraint specifying their position
-        // in the menubar.  This is not yet implemented.
-    }
-    
-    public void removeChildBody(Shadow child) {
-        if (body != null) {
-            ((MenuBar) body).remove((MenuComponent) child.getBody());
-        }
-    }
-    
-    public void createChildren() {
-        helper.createChildren();
-    }
-    
-    public void reparentChildren() {
-        helper.reparentChildren();
-    }
-    
-    public void destroyChildren() {
-        helper.destroyChildren();
-    }
-    
-    public AttributeManager getChild(String name) {
-        return (helper.getChild(name));
-    }
-    
-    public Enumeration getChildList() {
-        return (helper.getChildList());
-    }
-    
-    public int getChildCount() {
-        return (helper.getChildCount());
-    }
-    
-    /**
-     * replicate is used by Visual Java for cut and paste.
-     */
-    //
-    // Normally this method resides in AttributeManager (super-duper class).
-    // We override it here to put in special handling for the helpMenu --
-    // fix for Sun Bug # 4043169: help menu getting duplicated on
-    // copy/paste frame with help menu.  -- Simran 5/16/97
-    //
-    public AttributeManager replicate() {
-        
-        // System.out.println("MenuBarShadow.replicate: ");
-        // System.out.println("       this: "+this);
-        
-        // Create a new instance of the AttributeManager
-        AttributeManager newMgr = null;
-        try {
-            newMgr = (AttributeManager)getClass().newInstance();
-        }
-        catch (InstantiationException ex) {
-            System.out.println(ex.getMessage() + /* NOI18N */" " + this);
-        }
-        catch (IllegalAccessException ex) {
-            System.out.println(ex.getMessage() + /* NOI18N */" " + this);
-        }
-        if (newMgr == null)
-            return null;
-        
-        // Copy the attribute list
-        AttributeList list = getAttributeList();
-        // System.out.println(" ----- attribute list: ");
-        // printAttList(list);
-        Enumeration e = list.elements();
-        String helpMenuName = null;
-        AttributeManager helpMenuMgr = null;
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            String aName = attr.getName();
-            
-            //
-            // Find the name of the helpMenu, don't set it until
-            // we replicate the help menu. Then set it to the name of the
-            // newly replicated helpMenu.
-            // Fix for Sun Bug # 4043169: help menu getting duplicated on
-            // copy/paste frame with help menu.  -- Simran 5/16/97
-            //
-            if (aName.equals(/* NOI18N */"helpMenu")) {
-                Object gv = attr.getValue();
-                AMRef helpMenuRef = (AMRef)gv;
-                if (helpMenuRef != null) {
-                    helpMenuMgr =  helpMenuRef.getRef(this);
-                    helpMenuName = helpMenuRef.getName();
-                }
-                
-                // System.out.println("FOund help menu
-                // attribute. *NOT* setting it in new mgr. (yet)");
-                
-            } else  if (!attr.flagged(TRANSIENT | READONLY)) {
-                newMgr.set(aName, attr.getValue());
-            }
-        }
-        
-        // Replicate the children
-        if (this instanceof AMContainer) {
-            AMContainer newCntr = (AMContainer)newMgr;
-            e = ((AMContainer)this).getChildList();
-            
-            // System.out.print("       childList: (isMenuBar: "+isMenuBar+")");
-            // printChildList(this);
-            while (e.hasMoreElements()) {
-                AttributeManager child = (AttributeManager)e.nextElement();
-                
-                // Check for helpmenu
-                //
-                
-                // System.out.println(); System.out.println("IS
-                // MENUBAR: child name="+child.getName());
-                // System.out.println(" looking for: "+helpMenuName);
-                
-                // Is the name test going to be sufficient for finding
-                // the help menu?  It seems that if we're restricted
-                // to doing the test only if isMenuBar, then we're
-                // OK. How unique do names have to be?
-                if (child.getName().equals(helpMenuName)) {
-                    // System.out.println(" replicating
-                    // (helpMenu)child: "+child);
-                    AttributeManager replicantChild = child.replicate();
-                    newMgr.set(/* NOI18N */"helpMenu",
-			       new AMRef(replicantChild));
-                    newCntr.add(replicantChild);
-                } else {
-                    // System.out.println(" replicating (normal) child
-                    // of MenuBar: "+child);
-                    newCntr.add(child.replicate());
-                }
-            }
-        }
-        
-        return newMgr;
-    }
-    
-    void printAttList(AttributeList list) {
-        Enumeration e = list.elements();
-        while (e.hasMoreElements()) {
-            Attribute attr = (Attribute)e.nextElement();
-            // System.out.println(" name: "+attr.getName()+"; value:
-            // "+(String)attr.getValue());
-            System.out.print(/* NOI18N */" name: "
-			     + attr.getName()+ /* NOI18N */"; ");
-            Object gv = attr.getValue();
-            System.out.println(/* NOI18N */"  value.toString(): "
-			       + ((gv != null) ? gv.toString()
-				  : /* NOI18N */"<null value>"));
-            if (attr.getName().equals(/* NOI18N */"helpMenu")) {
-                System.out.println();
-                System.out.println(/* NOI18N */"  found help menu att: "
-				   + ((gv != null) ? gv.toString()
-				      : /* NOI18N */"<null value>"));
-                System.out.println();
-            }
-        }
-    }
-    
-    void printChildList(AttributeManager mgr) {
-        int i = 0;
-        for (Enumeration e = ((AMContainer) this).getChildList();
-	     /* JSTYLED */
-	     e.hasMoreElements();) {
-            
-            System.out.print(/* NOI18N */"     child["+i+ /* NOI18N */"] ");
-            System.out.println(((AttributeManager)e.nextElement())
-			       + /* NOI18N */"");
-            i++;
-        }
-        System.out.println(/* NOI18N */"==============");
-        System.out.println();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuComponentShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * 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.
- *
- * @(#) MenuComponentShadow.java 1.22 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.Shadow;
-import java.awt.MenuComponent;
-import java.awt.Font;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-font            java.awt.Font             null
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see MenuComponent
-* @version 	1.22, 07/28/97
-*/
-public class MenuComponentShadow extends Shadow {
-    public MenuComponentShadow() {
-        attributes.add(/* NOI18N */"font",
-		       /* NOI18N */"java.awt.Font",
-		       null, DONTFETCH | CONSTRUCTOR);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"font"))
-	    return (((MenuComponent) body).getFont());
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"font"))
-	    ((MenuComponent) body).setFont((Font) value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {};
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuItemShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * 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.
- *
- * @(#) MenuItemShadow.java 1.28 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.Global;
-import java.awt.Font;
-import java.awt.MenuItem;
-
-/**
- * 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
------------------------------------------------------------------------
-enabled         java.lang.Boolean         true
-separator       java.lang.Boolean         false
-text            java.lang.String          menuitem
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see MenuItem
-* @version 	1.28, 07/28/97
-*/
-public class MenuItemShadow extends MenuComponentShadow {
-    boolean hasSeparator = false;
-    
-    public MenuItemShadow() {
-        attributes.add(/* NOI18N */"enabled",
-		       /* NOI18N */"java.lang.Boolean",
-		       Boolean.TRUE, 0);
-        attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String",
-		       /* NOI18N */"menuitem", NOEDITOR);
-        attributes.add(/* NOI18N */"separator",
-		       /* NOI18N */"java.lang.Boolean", Boolean.FALSE,
-		       NONBODY | CONTAINER);
-        
-        if (Global.isIrix())
-	    attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Sansserif",
-				    Font.PLAIN, 12), DONTFETCH);
-        else if (Global.isMotif())
-            attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Dialog",
-				    Font.PLAIN, 12), DONTFETCH);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"enabled"))
-	    return (new Boolean(((MenuItem) body).isEnabled()));
-        else if (key.equals(/* NOI18N */"text"))
-            return (((MenuItem) body).getLabel());
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        if (key.equals(/* NOI18N */"enabled"))
-	    ((MenuItem) body).enable(((Boolean) value).booleanValue());
-        else if (key.equals(/* NOI18N */"text"))
-            ((MenuItem) body).setLabel((String) value);
-        else
-            super.setOnBody(key, value);
-    }
-    
-    public void createBody() {
-        body = new MenuItem((String) getFromTable(/* NOI18N */"text"));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/MenuShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/*
- * 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.
- *
- * @(#) MenuShadow.java 1.40 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.util.Enumeration;
-import java.awt.*;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-canTearOff      java.lang.Boolean         true
-+ text            java.lang.String          menu
-*  < /pre>
-*
-* + = this attribute overrides one inherited from an ancestor class.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see Menu
-* @version 	1.40, 07/28/97
-*/
-public class MenuShadow extends MenuItemShadow implements AMContainer {
-    private AMContainerHelper helper = new AMContainerHelper(this);
-    
-    public MenuShadow() {
-        attributes.add(/* NOI18N */"canTearOff",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE,
-		       CONSTRUCTOR | NONBODY);
-        attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String", /* NOI18N */"menu",
-		       CONSTRUCTOR | NONBODY);
-        
-        if (Global.isIrix())
-	    attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Sansserif",
-				    Font.PLAIN, 12), DONTFETCH);
-        else if (Global.isMotif())
-            attributes.add(/* NOI18N */"font", /* NOI18N */"java.awt.Font",
-			   new Font(/* NOI18N */"Dialog",
-				    Font.PLAIN, 12), DONTFETCH);
-    }
-    
-    public void createBody() {
-        Boolean canTearOff = (Boolean) getFromTable(/* NOI18N */"canTearOff");
-        if (canTearOff != null)
-            body = new Menu((String) getFromTable(/* NOI18N */"text"),
-			    canTearOff.booleanValue());
-        else
-            body = new Menu((String) getFromTable(/* NOI18N */"text"));
-    }
-    
-    
-    // AMContainer interfaces
-    
-    public void add(AttributeManager child) {
-        helper.add(child);
-    }
-    
-    public void remove(AttributeManager child) {
-        helper.remove(child);
-    }
-    
-    public void addChildBody(Shadow child) {
-        if (body != null) {
-            Menu menu = (Menu)body;
-            MenuItem menuitem = (MenuItem)child.getBody();
-            
-            if (menuitem.getParent() != menu) {
-                menu.add(menuitem);
-                updateContainerAttributes((AMContainer)this, child);
-            }
-        }
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        if (key.equals(/* NOI18N */"separator")) {
-            Menu menu = (Menu)body;
-            MenuItemShadow menuItemShadow = (MenuItemShadow)child;
-            MenuItem menuItem = (MenuItem)menuItemShadow.getBody();
-            
-            if (menu == null || menuItem == null)
-                return;
-            
-            int count = menu.countItems();
-            boolean val = ((Boolean)value).booleanValue();
-            if (val == menuItemShadow.hasSeparator)
-                return;
-            
-            if (val) {
-                if (menu.getItem(count-1) == menuItem) {
-                    menuItemShadow.hasSeparator = true;
-                    ((Menu)body).addSeparator();
-                } else {
-                    menuItemShadow.hasSeparator = false;
-                    MenuBarShadow menubar = (MenuBarShadow)getParent();
-                    if (menubar != null) {
-                        menubar.destroy();
-                        menubar.create();
-                    }
-                }
-            } else {
-                menuItemShadow.hasSeparator = false;
-                MenuBarShadow menubar = (MenuBarShadow)getParent();
-                if (menubar != null) {
-                    menubar.destroy();
-                    menubar.create();
-                }
-            }
-        }
-    }
-    
-    public void removeChildBody(Shadow child) {
-        if (body != null) {
-            ((Menu) body).remove((MenuComponent) child.getBody());
-        }
-    }
-    
-    public void createChildren() {
-        helper.createChildren();
-    }
-    
-    public void reparentChildren() {
-        helper.reparentChildren();
-    }
-    
-    public void destroyChildren() {
-        helper.destroyChildren();
-    }
-    
-    public AttributeManager getChild(String name) {
-        return (helper.getChild(name));
-    }
-    
-    public Enumeration getChildList() {
-        return (helper.getChildList());
-    }
-    
-    public int getChildCount() {
-        return (helper.getChildCount());
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/PanelShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * 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.
- *
- * @(#) PanelShadow.java 1.15 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import java.awt.Panel;
-import java.awt.FlowLayout;
-import sunsoft.jws.visual.rt.base.Global;
-
-/* BEGIN JSTYLED */
-/**
- * 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
-    -----------------------------------------------------------------------
-    none
- * </pre>
- *
- * Check the super class for additional attributes.
- *
- * @see Panel
- * @see sunsoft.jws.visual.rt.shadow.VJPanelShadow
- * @version 	1.15, 07/28/97
- */
-/* END JSTYLED */
-public class PanelShadow extends ContainerShadow {
-    public PanelShadow() {
-	GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
-	c.fill = GBConstraints.BOTH;
-	attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		    c);
-    }
-
-    public void createBody() {
-	Panel panel = new Panel();
-	panel.setLayout(new FlowLayout());
-	body = panel;
-    }
-
-    protected Object getOnBody(String key) {
-	return super.getOnBody(key);
-    }
-
-    protected void setOnBody(String key, Object value) {
-	super.setOnBody(key, value);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/ScrollbarShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) ScrollbarShadow.java 1.32 - last change made 07/28/97 
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import sunsoft.jws.visual.rt.awt.VJScrollbar;
-import sunsoft.jws.visual.rt.type.OrientationEnum;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-lineIncrement   java.lang.Integer         10
-maximum         java.lang.Integer         100
-minimum         java.lang.Integer         0
-orientation     rt.type.OrientationEnum   vertical
-pageIncrement   java.lang.Integer         10
-value           java.lang.Integer         0
-visiblePageSize java.lang.Integer         50
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see VJScrollbar
-* @see Scrollbar
-* @version 	1.32, 07/28/97
-*/
-public class ScrollbarShadow extends ComponentShadow {
-    
-    public ScrollbarShadow() {
-        attributes.add(/* NOI18N */"orientation",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.OrientationEnum",
-		       new OrientationEnum(VJScrollbar.VERTICAL),
-		       CONSTRUCTOR);
-        attributes.add(/* NOI18N */"lineIncrement",
-		       /* NOI18N */"java.lang.Integer", new Integer(10), 0);
-        attributes.add(/* NOI18N */"maximum",
-		       /* NOI18N */"java.lang.Integer", new Integer(100), 0);
-        attributes.add(/* NOI18N */"minimum",
-		       /* NOI18N */"java.lang.Integer", new Integer(0), 0);
-        attributes.add(/* NOI18N */"pageIncrement",
-		       /* NOI18N */"java.lang.Integer", new Integer(10), 0);
-        attributes.add(/* NOI18N */"value",
-		       /* NOI18N */"java.lang.Integer", new Integer(0), 0);
-        attributes.add(/* NOI18N */"visiblePageSize",
-		       /* NOI18N */"java.lang.Integer", new Integer(50), 0);
-        
-        GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
-        c.fill = GBConstraints.VERTICAL;
-        attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		    c);
-    }
-    
-    /**
-     * A change in the orientation of a scrollbar should also result
-     * in a change of the fill mode in its GBConstraints.
-     */
-    private void setProperFill(int orientation) {
-        GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
-        
-        if (c == null)
-		/* JSTYLED */
-            throw new Error(Global.getMsg("sunsoft.jws.visual.rt.awt.java.awt.ScrollbarShadow.NoLayoutConstraints"));
-        else if ((c.fill == GBConstraints.VERTICAL
-		  && orientation == VJScrollbar.HORIZONTAL) ||
-		 (c.fill == GBConstraints.HORIZONTAL
-		  && orientation == VJScrollbar.VERTICAL)) {
-            c = (GBConstraints) c.clone();
-            if (orientation == VJScrollbar.VERTICAL)
-                c.fill = GBConstraints.VERTICAL;
-            else
-                c.fill = GBConstraints.HORIZONTAL;
-            set(/* NOI18N */"GBConstraints", c);
-        }
-    }
-    
-    protected Object getOnBody(String key) {
-        VJScrollbar sbar = (VJScrollbar)body;
-        
-        if (key.equals(/* NOI18N */"orientation"))
-	    return (new OrientationEnum(sbar.getOrientation()));
-        else if (key.equals(/* NOI18N */"lineIncrement"))
-            return (new Integer(sbar.getLineIncrement()));
-        else if (key.equals(/* NOI18N */"maximum"))
-            return (new Integer(sbar.getMaximum()));
-        else if (key.equals(/* NOI18N */"minimum"))
-            return (new Integer(sbar.getMinimum()));
-        else if (key.equals(/* NOI18N */"pageIncrement"))
-            return (new Integer(sbar.getPageIncrement()));
-        else if (key.equals(/* NOI18N */"value"))
-            return (new Integer(sbar.getValue()));
-        else if (key.equals(/* NOI18N */"visiblePageSize"))
-            return (new Integer(sbar.getVisible()));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        VJScrollbar sbar = (VJScrollbar)body;
-        
-        if (key.equals(/* NOI18N */"lineIncrement")) {
-            sbar.setLineIncrement(((Integer) value).intValue());
-        } else if (key.equals(/* NOI18N */"maximum")) {
-            sbar.setValues(sbar.getValue(), sbar.getVisible(),
-			   sbar.getMinimum(), ((Integer) value).intValue());
-        } else if (key.equals(/* NOI18N */"minimum")) {
-            sbar.setValues(sbar.getValue(), sbar.getVisible(),
-			   ((Integer) value).intValue(), sbar.getMaximum());
-        } else if (key.equals(/* NOI18N */"pageIncrement")) {
-            sbar.setPageIncrement(((Integer) value).intValue());
-        } else if (key.equals(/* NOI18N */"value")) {
-            sbar.setValue(((Integer) value).intValue());
-        } else if (key.equals(/* NOI18N */"visiblePageSize")) {
-            sbar.setValues(sbar.getValue(),
-			   ((Integer) value).intValue(),
-			   sbar.getMinimum(), sbar.getMaximum());
-        } else if (key.equals(/* NOI18N */"orientation")) {
-            setProperFill(((OrientationEnum) value).intValue());
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void createBody() {
-	    /* JSTYLED */
-        int orientation = ((OrientationEnum) getFromTable(/* NOI18N */"orientation")).intValue();
-        
-        // Use the VJScrollbar because it has workarounds for the broken
-        // scrollbars on Windows.
-        body = new VJScrollbar(orientation);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextAreaShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) TextAreaShadow.java 1.19 - last change made 08/12/97 
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-import java.awt.TextArea;
-import java.awt.SystemColor;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
-numRows         java.lang.Integer         10
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see TextArea
-* @version 	1.19, 08/12/97
-*/
-public class TextAreaShadow extends TextComponentShadow {
-    public TextAreaShadow() {
-        attributes.add(/* NOI18N */"numColumns",
-		       /* NOI18N */"java.lang.Integer", new Integer(10),
-		       CONSTRUCTOR);
-        attributes.add(/* NOI18N */"numRows",
-		       /* NOI18N */"java.lang.Integer", new Integer(10),
-		       CONSTRUCTOR);
-        
-        GBConstraints c = (GBConstraints)get(/* NOI18N */"GBConstraints");
-        c.fill = GBConstraints.BOTH;
-        attributes.add(/* NOI18N */"GBConstraints",
-		       /* NOI18N */"sunsoft.jws.visual.rt.awt.GBConstraints",
-		    c);
-        
-        // 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) {
-        TextArea textarea = (TextArea)body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            return textarea.getText();
-        } else if (key.equals(/* NOI18N */"numColumns")) {
-            return new Integer(textarea.getColumns());
-        } else if (key.equals(/* NOI18N */"numRows")) {
-            return new Integer(textarea.getRows());
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        TextArea textarea = (TextArea)body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            String text = (String)value;
-            String text2 = textarea.getText();
-            if (text == null)
-                text = /* NOI18N */"";
-            if (!text.equals(text2))
-		textarea.setText(text);
-        } else if (key.equals(/* NOI18N */"numColumns")) {
-            return;	// can't set this attribute dynamically
-        } else if (key.equals(/* NOI18N */"numRows")) {
-            return;	// can't set this attribute dynamically
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void createBody() {
-        boolean initText, initColumns, initRows;
-        String initTextValue;
-        Integer initColumnsValue, initRowsValue;
-        
-        initTextValue = (String)getFromTable(/* NOI18N */"text");
-        initText = (initTextValue != null);
-        
-        initColumnsValue = (Integer) (getFromTable(/* NOI18N */"numColumns"));
-        initColumns = (initColumnsValue != null);
-        
-        initRowsValue = (Integer) (getFromTable(/* NOI18N */"numRows"));
-        initRows = (initRowsValue != null);
-        
-        if (initText & initColumns & initRows) {
-            body = new TextArea(initTextValue, initRowsValue.intValue(),
-				initColumnsValue.intValue());
-        } else if (initColumns & initRows) {
-            body = new TextArea(initRowsValue.intValue(),
-				initColumnsValue.intValue());
-        } else if (initText) {
-            body = new TextArea(initTextValue);
-        } else {
-            body = new TextArea();
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextComponentShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) TextComponentShadow.java 1.20 - last change made 07/28/97 
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import java.awt.TextComponent;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * 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
------------------------------------------------------------------------
-editable        java.lang.Boolean         true
-text            java.lang.String          ""
-*  < /pre>
-*
-* Check the super class for additional attributes.
-*
-* @see TextComponent
-* @version 	1.20, 07/28/97
-*/
-public class TextComponentShadow extends ComponentShadow {
-    public TextComponentShadow() {
-        attributes.add(/* NOI18N */"text",
-		       /* NOI18N */"java.lang.String", /* NOI18N */"", 0);
-        attributes.add(/* NOI18N */"editable",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, 0);
-    }
-    
-    protected Object getOnBody(String key) {
-        if (key.equals(/* NOI18N */"text"))
-	    return ((((TextComponent) body).getText()));
-        else if (key.equals(/* NOI18N */"editable"))
-            return (new Boolean(((TextComponent) body).isEditable()));
-        else
-            return (super.getOnBody(key));
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        TextComponent textcomp = (TextComponent)body;
-        
-        if (key.equals(/* NOI18N */"text")) {
-            String text = textcomp.getText();
-            
-            if ((value == null && text != null && !text.equals(/* NOI18N */""))
-		|| (value != null && !value.equals(text))) {
-                textcomp.setText((String) value);
-            }
-        } else if (key.equals(/* NOI18N */"editable")) {
-            textcomp.setEditable(((Boolean) value).booleanValue());
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    public void createBody() {};
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/TextFieldShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) 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());
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/shadow/java/awt/WindowShadow.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,908 +0,0 @@
-/*
- * 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.
- *
- * @(#) WindowShadow.java 1.119 - last change made 07/28/97
- */
-
-package sunsoft.jws.visual.rt.shadow.java.awt;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.*;
-import sunsoft.jws.visual.rt.type.AnchorEnum;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.*;
-import java.awt.*;
-
-/* BEGIN JSTYLED */
-/**
- * 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
- -----------------------------------------------------------------------
- location        java.awt.Point            null
- size            java.awt.Dimension        null
- *  < /pre>
-*
-* location: location for the window, if the location is set before
-* the window is mapped, then when the window is mapped, it will come
-* up at the specified location.  If the location is set while the
-* window is mapped, then window will immediately be moved to the new
-* location.
-*  < p>
-* size: desired size for the window, if set before mapping, the
-* window will later be mapped with this size.  However, the size
-* dimensions are first checked to ensure that the dimensions are at
-* least as big as the preferredSize. If set after mapping and
-* non-null, the window will be resized to the new size after maxing
-* with preferredSize.  "get" returns the value for the desired size,
-* NOT the actual size of the window. The "size" attribute does not
-* take effect when in layout mode.
-*  < p>
-* Check the super class for additional attributes.
-*
-* @see Window
-* @version 1.119, 07/28/97
-*/
-/* END JSTYLED */
-
-public class WindowShadow extends ContainerShadow {
-    private static final int PADX = 100;
-    private static final int PADY = 100;
-    
-    private static Point defaultLocation = new Point(100, 100);
-    private static Dimension defaultSize = new Dimension(100, 100);
-    
-    private boolean packed = false;
-    
-    public static void setDefaultLocation(Point p) {
-        defaultLocation = p;
-    }
-    
-    public static Point getDefaultLocation() {
-        return defaultLocation;
-    }
-    
-    public static void setDefaultSize(Dimension d) {
-        defaultSize = d;
-    }
-    
-    public static Dimension getDefaultSize() {
-        return defaultSize;
-    }
-    
-    private boolean layoutMode = false;
-    
-    public WindowShadow() {
-        attributes.remove(/* NOI18N */"GBConstraints");
-        attributes.remove(/* NOI18N */"borderName");
-        attributes.remove(/* NOI18N */"flowRank");
-        attributes.remove(/* NOI18N */"anchor");
-        attributes.remove(/* NOI18N */"insets");
-        
-        attributes.add(/* NOI18N */"visible",
-		       /* NOI18N */"java.lang.Boolean", Boolean.TRUE, NONBODY);
-        
-        attributes.add(/* NOI18N */"location",
-		       /* NOI18N */"java.awt.Point", null, 0);
-        attributes.add(/* NOI18N */"layoutLocation",
-		       /* NOI18N */"java.awt.Point", null, HIDDEN);
-        attributes.add(/* NOI18N */"currentLocation",
-		       /* NOI18N */"java.awt.Point", null,
-		       HIDDEN | TRANSIENT | READONLY);
-        
-        attributes.add(/* NOI18N */"size",
-		       /* NOI18N */"java.awt.Dimension", null, 0);
-        attributes.add(/* NOI18N */"layoutSize",
-		       /* NOI18N */"java.awt.Dimension", null, HIDDEN);
-        attributes.add(/* NOI18N */"currentSize",
-		       /* NOI18N */"java.awt.Dimension", null,
-		       HIDDEN | TRANSIENT | READONLY);
-    }
-    
-    protected boolean useLayoutLocation() {
-        if (!layoutMode)
-            return false;
-        
-        if (inDesignerRoot())
-	    return true;
-        
-        Group g = getGroup();
-        if (g == null)
-            return false;
-        
-        if (DesignerAccess.getWindow(g) != this)
-	    return false;
-        
-        return (g.inDesignerRoot());
-    }
-    
-    protected boolean useLayoutSize() {
-        return (layoutMode && inDesignerRoot());
-    }
-    
-    protected Object getOnBody(String key) {
-        Window win = (Window)body;
-        
-        if (key.equals(/* NOI18N */"location")) {
-            return getFromTable(key);
-        } else if (key.equals(/* NOI18N */"layoutLocation")) {
-            if (useLayoutLocation()) {
-                // fix for Sun bug #4037679: layout window locations
-                // are not being remembered. This is because
-                // win.location() returns the location that the window
-                // was created with, rather than the screen location.
-                // So if the window moved, the location() method
-                // doesn't report the new location. However,
-                // locationOnScreen() only works if the window is
-                // actually showing. Otherwise it throws an exception.
-                //   -- Simran. 5/7/97
-                Point loc;
-                try {
-                    loc = win.getLocationOnScreen();
-                } catch (IllegalComponentStateException e) {
-                    loc = win.getLocation();
-                }
-                
-                return loc;
-            } else
-                return getFromTable(key);
-        } else if (key.equals(/* NOI18N */"currentLocation")) {
-            return win.location();
-        } else if (key.equals(/* NOI18N */"size")) {
-            return getFromTable(key);
-        } else if (key.equals(/* NOI18N */"layoutSize")) {
-            if (useLayoutSize())
-		return win.size();
-            else
-                return getFromTable(key);
-        } else if (key.equals(/* NOI18N */"currentSize")) {
-            return win.size();
-        } else {
-            return super.getOnBody(key);
-        }
-    }
-    
-    protected void setOnBody(String key, Object value) {
-        Window win = (Window)body;
-        
-        if (key.equals(/* NOI18N */"location")) {
-            putInTable(key, value);
-            if (value != null && !useLayoutLocation()) {
-                Point p = getWindowLocation(false);
-                win.move(p.x, p.y);
-            }
-        } else if (key.equals(/* NOI18N */"layoutLocation")) {
-            putInTable(key, value);
-            if (value != null && useLayoutLocation()) {
-                Point p = getWindowLocation(true);
-                win.move(p.x, p.y);
-            }
-        } else if (key.equals(/* NOI18N */"size")) {
-            putInTable(key, value);
-            if (value != null && !useLayoutSize())
-		win.resize(getWindowSize(win, false));
-        } else if (key.equals(/* NOI18N */"layoutSize")) {
-            putInTable(key, value);
-            if (value != null && useLayoutSize())
-		win.resize(getWindowSize(win, true));
-        } else {
-            super.setOnBody(key, value);
-        }
-    }
-    
-    // REMIND: if Window had a frame attribute like a dialog it could be
-    // instantiated here (but would probably only work on Windows 96 at
-    // the moment)
-    public void createBody() {};
-    
-    protected void registerBody() {
-        Window win = (Window)body;
-        if (!(win.getLayout() instanceof GBLayout)) {
-            GBLayout gridbag = new GBLayout();
-            double w[] = {1};
-            gridbag.columnWeights = w;
-            gridbag.rowWeights = w;
-            
-            win.setLayout(gridbag);
-        }
-        
-        super.registerBody();
-    }
-    
-    protected void postCreate() {
-        super.postCreate();
-        
-        if (body instanceof RootWindow) {
-            if (layoutMode)
-                ((RootWindow)body).layoutMode();
-            else
-                ((RootWindow)body).previewMode();
-        }
-        
-        if (!doingShow())
-	    showComponent(isVisible());
-    }
-    
-    protected void preDestroy() {
-        packed = false;
-    }
-    
-    /**
-     * Returns true if the window's group is currently visible,
-     * and the window's visible attribute is set to true.
-     */
-    public boolean isVisible() {
-        if (!hasAttribute(/* NOI18N */"visible"))
-	    return false;
-        
-        Boolean v = (Boolean) getFromTable(/* NOI18N */"visible");
-        if (!v.booleanValue())
-	    return false;
-        
-        Group g = getRoot().getGroup();
-        if (g != null)
-            return g.isShowing();
-        
-        return true;
-    }
-    
-    public void updateContainerAttribute(AttributeManager child,
-					 String key, Object value) {
-        if (key.equals(/* NOI18N */"anchor")) {
-            GBConstraints c =
-		(GBConstraints)child.get(/* NOI18N */"GBConstraints");
-            if (c == null)
-                return;
-            
-            int anchor = ((AnchorEnum)value).intValue();
-            if (anchor != c.anchor) {
-                c.anchor = anchor;
-                child.set(/* NOI18N */"GBConstraints", c);
-            }
-        } else if (key.equals(/* NOI18N */"insets")) {
-            GBConstraints c =
-		(GBConstraints)child.get(/* NOI18N */"GBConstraints");
-            if (c == null)
-                return;
-            
-            Insets insets = (Insets)value;
-            if (c.insets != insets) {
-                c.insets = insets;
-                child.set(/* NOI18N */"GBConstraints", c);
-            }
-        } else if (key.equals(/* NOI18N */"GBConstraints")) {
-            GBConstraints c = (GBConstraints)value;
-            if (c == null)
-                c = new GBConstraints();
-            
-            Shadow s = (Shadow)child;
-            Component comp = (Component)s.getBody();
-            if (comp == null)
-                return;
-            
-            int anchor =
-		((AnchorEnum)child.get(/* NOI18N */"anchor")).intValue();
-            c.anchor = anchor;
-            c.insets = (Insets)child.get(/* NOI18N */"insets");
-            
-            GBLayout gb = (GBLayout)((Window)body).getLayout();
-            gb.setConstraints(comp, c);
-        }
-    }
-    
-    public void pack() {
-        checkCreate();
-        
-        // Get the body AFTER the call to checkCreate
-        Window win = (Window)body;
-        
-        boolean hasPeer = (win.getPeer() != null);
-        
-        if (!hasPeer) {
-            //
-            // Workaround for SGI: When a frame is shown with size
-            // (0,0), it will fill the entire screen area momentarily
-            // until reshape is called.  This causes annoying
-            // flickering behavior.
-            //
-            if (Global.isIrix()) {
-                Dimension size = win.size();
-                if (size.width == 0 || size.height == 0)
-                    win.reshape(0, 0, 40, 40);
-            }
-            
-            win.addNotify();
-            
-            Group g = getGroup();
-            if (g != null && DesignerAccess.getWindow(g) == this)
-		DesignerAccess.preValidate(g);
-            
-            preValidate();
-        }
-        
-        // Reshape the window
-        resizePreferredSize(win, hasPeer);
-        
-        // Validate the window.
-        win.validate();
-        
-        // Set the packed flag to true
-        packed = true;
-    }
-    
-    /**
-     * Shows the component.  Calling showComponent does not affect the
-     * value of the visible attrbute.  You should use "show" instead of
-     * "showComponent".  The only reason this method exists is that
-     * Visual Java needs to use it in certain situations.
-     */
-    public void showComponent() {
-        checkCreate();
-        
-        // Pack the window if necessary
-        Window win = (Window)body;
-        
-        if (packed && win.getPeer() == null)
-	    packed = false;
-        
-        if (!packed)
-            pack();
-        
-        // Show the window
-        win.show();
-        
-        // Usually, calling show() on a visible Window will bring it
-        // to the front.  Unfortunately, it doesn't behave like this.
-        if (Global.isWindows()) {
-            win.toFront();
-        }
-        
-        // Make sure the window shows up right away.  This tends to make
-        // the user happier.
-        win.getToolkit().sync();
-    }
-    
-    protected void checkCreate() {
-        // Call create if it hasn't already been called.
-        if (!isCreated()) {
-            doingShow = true;
-            create();
-            doingShow = false;
-        }
-    }
-    
-    private void resizePreferredSize(Window win, boolean hasPeer) {
-        Point location = getWindowLocation(useLayoutLocation());
-        Dimension size = getWindowSize(win, useLayoutSize());
-        
-        constrainToScreen(win, location, size);
-        
-        if (win instanceof Dialog) {
-            // Adjust the location the first time the dialog is mapped
-            // after the peer has been created.  There is an AWT bug
-            // that screws up the location of the dialog, so we have
-            // to make this adjustment.
-            if (Global.isMotif() && !hasPeer) {
-                location.x -= size.width/2;
-                location.y -= size.height/2;
-            }
-            
-            win.reshape(location.x, location.y, size.width, size.height);
-        } else {
-            if (hasPeer)
-                win.resize(size.width, size.height);
-            else
-                win.reshape(location.x, location.y, size.width, size.height);
-        }
-    }
-    
-    private Point getDialogLocation(Dialog dialog) {
-        Frame frame = (Frame)dialog.getParent();
-        Point p = frame.location();
-        Dimension fsize = frame.size();
-        Dimension dsize = dialog.preferredSize();
-        
-        p.x += (fsize.width - dsize.width)/2;
-        p.y += (fsize.height - dsize.height)/2;
-        
-        return p;
-    }
-    
-    private Point getWindowLocation(boolean layoutLocation) {
-        if (body instanceof Dialog)
-            return getDialogLocation((Dialog)body);
-        
-        ContainerShadow panel = getPanel();
-        Point location = null;
-        
-        if (layoutLocation) {
-            if (panel != null)
-                location = (Point) panel.get(/* NOI18N */"layoutLocation");
-            else
-                location = (Point) getFromTable(/* NOI18N */"layoutLocation");
-            
-            if (location == null)
-                location = getDefaultLocation();
-        } else {
-            location = (Point) getFromTable(/* NOI18N */"location");
-            
-            if (location == null)
-                location = getDefaultLocation();
-        }
-        
-        return location;
-    }
-    
-    private Dimension getWindowSize(Window win, boolean layoutSize) {
-        ContainerShadow panel = getPanel();
-        Dimension size;
-        
-        if (layoutSize) {
-            if (panel != null)
-                size = (Dimension) panel.get(/* NOI18N */"layoutSize");
-            else
-                size = (Dimension) getFromTable(/* NOI18N */"layoutSize");
-            
-            if (size == null)
-                size = getDefaultSize();
-        } else {
-            Dimension prefSize = win.preferredSize();
-            size = (Dimension) getFromTable(/* NOI18N */"size");
-            
-            if (size == null) {
-                size = prefSize;
-            } else {
-                size.width = Math.max(size.width, prefSize.width);
-                size.height = Math.max(size.height, prefSize.height);
-            }
-        }
-        
-        return size;
-    }
-    
-    private void constrainToScreen(Window win, Point location, Dimension size) {
-        // Constrain the window to fit on the screen
-        Dimension screenSize = getScreenSize(win);
-        
-        int x = screenSize.width - size.width;
-        if (location.x > x)
-            location.x = x;
-        if (location.x < 0)
-            location.x = 0;
-        
-        int y = screenSize.height - size.height;
-        if (location.y > y)
-            location.y = y;
-        if (location.y < 0)
-            location.y = 0;
-        
-        int width = screenSize.width - location.x;
-        if (size.width > width)
-            size.width = width;
-        
-        int height = screenSize.height - location.y;
-        if (size.height > height)
-            size.height = height;
-    }
-    
-    private Dimension getScreenSize(Window win) {
-        Dimension d = win.getToolkit().getScreenSize();
-        d.width -= 6;
-        d.height -= 6;
-        
-        if (Global.isWindows95()) {
-            // Subtract some extra space for the icon bar
-            d.height -= 30;
-        }
-        
-        return d;
-    }
-    
-    private void recurseInvalidate(Component comp) {
-        comp.invalidate();
-        if (comp instanceof Container) {
-            Container cntr = (Container)comp;
-            int count = cntr.countComponents();
-            for (int i = 0; i < count; i++)
-                recurseInvalidate(cntr.getComponent(i));
-        }
-    }
-    
-    /**
-     * Disposes of the AWT top-level window so that window system
-     * resources are reclaimed.
-     */
-    protected void destroyBody() {
-        //
-        // Cache the location when the window is destroyed.
-        //
-        // "put" is called directly because "set" won't work if
-        // "isPanel" is true.
-        //
-        if (useLayoutLocation()) {
-            Point location = ((Window)body).location();
-            putInTable(/* NOI18N */"layoutLocation", location);
-        }
-        
-        ((Window)body).dispose();
-        body = null;
-    }
-    
-    /**
-     * "isPanel" flag.  If this flag is set, then this frame exists only
-     * to allow the panel to be edited in the builder.  When a saving or
-     * generation is performed, this window should be omitted.
-     */
-    
-    private boolean isPanel = false;
-    private String prevTitle = /* NOI18N */"Unnamed Window";
-    
-    public boolean isPanel() {
-        return isPanel;
-    }
-    
-    public void isPanel(boolean isPanel) {
-        if (this.isPanel != isPanel) {
-            if (isPanel) {
-                prevTitle = (String)get(/* NOI18N */"title");
-                set(/* NOI18N */"title", /* NOI18N */"PANEL");
-                this.isPanel = isPanel;		// this must be last
-            } else {
-                // Ordering is important here.  As soon as isPanel is
-                // changed, the nature of this window changes (and
-                // affects the isUniqueName call, for example.)  While
-                // isPanel is still true, get("name") returns the name
-                // of the surrounded panel.
-                //
-                this.isPanel = isPanel;		// this must be first
-                
-                // It is possible that a new frame has been imported
-                // or created that has the same name as this one (that
-                // was surrounding a panel and was invisible in the
-                // hierarchy.)  Until a frame has isPanel set to
-                // false, it is never included in a unique name check,
-                // so make sure that the window's name is unique in
-                // the Root tree.  If the frame isn't in a Root tree
-                // then don't worry about it.
-                //
-                if (getRoot() != null) {
-                    String name = (String) get(/* NOI18N */"name");
-                    if ((name == null)
-                        || !DesignerAccess.isUniqueName(getRoot(), name, this))
-			set(/* NOI18N */"name",
-			    DesignerAccess.getUniqueName(getRoot(), this));
-                }
-                
-                set(/* NOI18N */"title", prevTitle);
-            }
-        }
-    }
-    
-    /**
-     * If the "isPanel" flag is set, all the attributes should come from
-     * the child panel, not the frame.
-     */
-    
-    public ContainerShadow getPanel() {
-        if (!isPanel)
-            return null;
-        
-        if (getChildCount() == 0)
-	    return null;
-        
-        return (ContainerShadow)getChildList().nextElement();
-    }
-    
-    // Bug 4054883 Mark Davison July 9, 1997
-    // The next series of methods are implemented as a work around in which
-    // attributes are set on the VJLayout frame instead of the GBPanel
-    // if isPanel == false. This is just a quick and safe fix. The real solution
-    // is to get rid of the isPanel flag and associated behaviour altogether.
-    
-    private static Class enclosingFrame = null;
-    
-    /**
-     * Caching method which returns the enclosing frame (most likely VJLayout)
-     */
-    private Class getEnclosingFrameClass() {
-        if (enclosingFrame == null)
-            enclosingFrame = DesignerAccess.getFrameClass();
-        
-        return enclosingFrame;
-    }
-    
-    /**
-     * Tests to see if the object is an enclosing frame.
-     */
-    private boolean isEnclosingFrame(Object obj) {
-        Class frame = getEnclosingFrameClass();
-        if (frame != null && frame.isInstance(body))
-	    return true;
-        else
-            return false;
-    }
-    
-    /**
-     * Puts the attribute on the enclosed PanelShadow rather than on the 
-     * WindowShadow.
-     * This bypasses the getPanel method because if VJLayout represents
-     * a Frame
-     * or Dialog, the attributes will be set on the VJLayout (which
-     * is incorrect).
-     */
-    protected void setOnPanel(String key, Object value) {
-        ContainerShadow panel = (ContainerShadow)getChildList().nextElement();
-        if (panel != null && panel instanceof PanelShadow)
-            panel.set(key, value);
-    }
-    
-    /**
-     * Retrieves the attributes from the panel thereby bypassing the
-     * isPanel flag.
-     */
-    protected Object getOnPanel(String key) {
-        ContainerShadow panel = (ContainerShadow)getChildList().nextElement();
-        if (panel != null && panel instanceof PanelShadow)
-            return panel.get(key);
-        return null;
-    }
-    
-    public void set(String key, Object value) {
-        ContainerShadow panel = getPanel();
-        
-        if (panel != null &&
-	    !key.equals(/* NOI18N */"location") &&
-	    !key.equals(/* NOI18N */"layoutLocation") &&
-	    !key.equals(/* NOI18N */"size") &&
-	    !key.equals(/* NOI18N */"layoutSize")) {
-            panel.set(key, value);
-        } else if (key.equals(/* NOI18N */"visible")) {
-            if (!hasAttribute(/* NOI18N */"visible"))
-		return;
-            
-            Boolean oldValue, newValue;
-            
-            oldValue = (Boolean)get(/* NOI18N */"visible");
-            newValue = (Boolean)value;
-            
-            // Don't let visible be set to false if we are the main
-            // container and we are running inside vjava.
-            if (inDesignerRoot() && isMainContainer()
-		&& !newValue.booleanValue()) {
-		    /* JSTYLED */
-                throw new VJException(Global.getMsg("sunsoft.jws.visual.rt.awt.java.awt.WindowShadow.IllegalSetVisible"));
-            }
-            
-            super.set(key, value);
-            
-            if (!doingShow()) {
-                if (oldValue.booleanValue() != newValue.booleanValue()) {
-                    showComponent(isVisible());
-                }
-            }
-        } else {
-            // If the body is an enclosing frame, the atributes should not be
-            // set on the body.
-            if (isEnclosingFrame(body)) {
-                if (key.equals(/* NOI18N */"background") ||
-		    key.equals(/* NOI18N */"foreground")) {
-                    setOnPanel(key, value);
-                    return;
-                }
-            }
-            
-            super.set(key, value);
-        }
-    }
-    
-    public Object get(String key) {
-        ContainerShadow panel = getPanel();
-        if (panel != null &&
-	    !key.equals(/* NOI18N */"location") &&
-	    !key.equals(/* NOI18N */"layoutLocation") &&
-	    !key.equals(/* NOI18N */"size") &&
-	    !key.equals(/* NOI18N */"layoutSize"))
-	    return panel.get(key);
-        else {
-            // If the body is an enclosing frame, the atributes should
-            // be retrieved from the panel.
-            if (isEnclosingFrame(body)) {
-                if (key.equals(/* NOI18N */"background") ||
-		    key.equals(/* NOI18N */"foreground"))
-		    return getOnPanel(key);
-            }
-            
-            return super.get(key);
-        }
-    }
-    
-    public String getType(String key) {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            return panel.getType(key);
-        else
-            return super.getType(key);
-    }
-    
-    public int getFlags(String key) {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            return panel.getFlags(key);
-        else
-            return super.getFlags(key);
-    }
-    
-    public boolean hasAttribute(String key) {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            return panel.hasAttribute(key);
-        else
-            return super.hasAttribute(key);
-    }
-    
-    public boolean hasAttribute(String key, String type) {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            return panel.hasAttribute(key, type);
-        else
-            return super.hasAttribute(key, type);
-    }
-    
-    public AttributeList getAttributeList() {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            return panel.getAttributeList();
-        else
-            return super.getAttributeList();
-    }
-    
-    public void refetchAttributeList() {
-        ContainerShadow panel = getPanel();
-        if (panel != null)
-            panel.refetchAttributeList();
-        else
-            super.refetchAttributeList();
-    }
-    
-    public void layoutMode() {
-        super.layoutMode();
-        setLayout(true);
-    }
-    
-    public void previewMode() {
-        super.previewMode();
-        setPreview(true);
-    }
-    
-    public void setLayout(boolean shouldResize) {
-        if (layoutMode)
-            return;
-        
-        layoutMode = true;
-        
-        if (body != null) {
-            Window win = (Window)body;
-            
-            if (body instanceof RootWindow)
-                ((RootWindow)body).layoutMode();
-            
-            if (shouldResize) {
-                if (win.getPeer() != null) {
-                    if (useLayoutLocation() || useLayoutSize()) {
-                        Point p = getWindowLocation(useLayoutLocation());
-                        Dimension d = getWindowSize(win, useLayoutSize());
-                        win.reshape(p.x, p.y, d.width, d.height);
-                    }
-                }
-                
-                win.validate();
-            }
-        }
-    }
-    
-    public void setPreview(boolean shouldResize) {
-        if (!layoutMode)
-            return;
-        
-        if (body != null) {
-            Window win = (Window)body;
-            
-            if (win instanceof RootWindow)
-                ((RootWindow)win).previewMode();
-            
-            if (shouldResize) {
-                if (win.getPeer() != null) {
-                    if (useLayoutLocation()) {
-                        putInTable(/* NOI18N */"layoutLocation",
-				   win.location());
-                    }
-                    if (useLayoutSize()) {
-                        putInTable(/* NOI18N */"layoutSize", win.size());
-                    }
-                    
-                    if (useLayoutLocation() || useLayoutSize()) {
-                        // fix for bug id 1263220 -kp commented out
-                        // was in their originally
-                        //	    Point p = getWindowLocation(false);
-                        Point p = getWindowLocation(useLayoutLocation());
-                        Dimension d = getWindowSize(win, false);
-                        constrainToScreen(win, p, d);
-                        win.reshape(p.x, p.y, d.width, d.height);
-                    }
-                }
-                
-                win.validate();
-            }
-        }
-        
-        layoutMode = false;
-    }
-    
-    public Dimension previewSize() {
-        boolean isLayout = layoutMode;
-        
-        if (isLayout) {
-            setPreview(false);
-            super.previewMode();
-        }
-        
-        Dimension size = ((Window)body).preferredSize();
-        size = new Dimension(size.width, size.height);
-        
-        if (isLayout) {
-            setLayout(false);
-            super.layoutMode();
-        }
-        
-        return size;
-    }
-    
-    public boolean handleEvent(Message msg, Event evt) {
-        if (msg.target == this && evt.id == Event.WINDOW_MOVED) {
-            ContainerShadow panel = getPanel();
-            if (panel != null) {
-                boolean dirty = DesignerAccess.getChangesMade();
-                panel.set(/* NOI18N */"layoutLocation",
-			  get(/* NOI18N */"layoutLocation"));
-                panel.set(/* NOI18N */"layoutSize",
-			  get(/* NOI18N */"layoutSize"));
-                DesignerAccess.setChangesMade(dirty);
-            }
-        }
-        
-        return super.handleEvent(msg, evt);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,438 +0,0 @@
-/*
- * 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.
- *
- * @(#) AMConverter.java 1.63 - last change made 06/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.shadow.java.awt.*;
-import sunsoft.jws.visual.rt.awt.CardPanel;
-import sunsoft.jws.visual.rt.shadow.CardPanelShadow;
-import java.util.*;
-
-/**
- * This class can convert attribute managment trees to strings and
- * such strings back again to attribute management trees.  The string
- * produced is a complete description of an application, and so it can
- * be used to save a tree to a file.
- *
- * @see AttributeManager
- * @version 1.63, 06/25/97
- */
-public class AMConverter extends Converter {
-    
-    private static AttributeListConverter attrlistconv =
-	new AttributeListConverter();
-    
-    public AMConverter() {
-    }
-    
-    /**
-     * List of paths (package prefixes) to groups of Shadow classes
-     * also a few individual Shadow classes.  The Hashtables are for
-     * caching the matches after they are discovered.
-     */
-    private static Vector shadows = new Vector();
-    private static Hashtable shortShadowKeyed = new Hashtable();
-    private static Hashtable longShadowKeyed = new Hashtable();
-    
-    /**
-     * Caches the matches after they are discovered.
-     */
-    private static void cacheShadowPair(String shortName,
-					String longName) {
-        shortShadowKeyed.put(shortName, longName);
-        longShadowKeyed.put(longName, shortName);
-    }
-    
-    /**
-     * Adds the name of a package where custom shadow 
-     * classes can be found.
-     * Package names in this list always end with a "."
-     */
-    private static void addShadowPath(String pkgName) {
-        if (pkgName.endsWith(/* NOI18N */"."))
-            shadows.addElement(pkgName);
-        else
-            shadows.addElement(/* NOI18N */(pkgName + "."));
-    }
-    
-    /**
-     * Adds a specific shadow class to the list.  
-     * Specific shadow classes
-     * in the list never end with a "."
-     */
-    private static void addShadowItem(String className) {
-        cacheShadowPair(Converter.shortClassName(className),
-			className);
-    }
-    
-    static {
-        // add packages where shadow classes might be found
-        //
-        // Don't add any more of these or the quick
-        // code generation will
-        // be screwed!
-        addShadowPath(/* NOI18N */"sunsoft.jws.visual.rt.shadow");
-        
-        // add individual exceptions
-        addShadowItem
-	    (/* NOI18N */"sunsoft.jws.visual.rt.base.Root");
-    }
-    
-    /**
-     * Figures out the short name for a shadow class.  Removes the
-     * initial component of a class name if it's one of the currently
-     * listed paths for finding shadow classes.  The result is the
-     * abbreviated name for the shadow class that can be placed in the
-     * save file.
-     *
-     * Warning: you should not nest shadow packages in the path within
-     * each other, as this routine might return the wrong shortened 
-     * form
-     * of the class name.
-     */
-    private static String shortenShadowPath(String longClassName) {
-        // return the cached value if available
-        if (longShadowKeyed.containsKey(longClassName))
-            return ((String) longShadowKeyed.get(longClassName));
-        /* JSTYLED */
-	for (Enumeration e = shadows.elements(); e.hasMoreElements(); ) {
-	    String s = (String) e.nextElement();
-	    if (longClassName.startsWith(s))
-		return (longClassName.substring(s.length()));
-	}
-    
-	// the long class name was not found in any of the paths
-	return (longClassName);
-    }
-
-    /**
-     * Searches the currently listed shadow paths for the shadow class
-     * given.  Returns a runtime class reference to the shadow class
-     * once it finds that class under one of the paths (or, in the end,
-     * under the actual name given.)
-     *
-     * This is basically the reverse of shortenShadowPath.
-     */
-    private static Class searchShadowPath(String shortClassName) {
-	// return the cached value if available
-	if (shortShadowKeyed.containsKey(shortClassName)) {
-	    try {
-		return (Global.util.getClassLoader().loadClass
-			((String) shortShadowKeyed.get
-			 (shortClassName)));
-	    }
-	    catch (ClassNotFoundException ex) {
-		// that didn't work, silently try something else...
-            }
-	}
-    
-	Class retval = null;
-	/* JSTYLED */
-	for (Enumeration e = shadows.elements(); e.hasMoreElements(); ) {
-	    String path = (String) e.nextElement();
-	    try {
-		retval = Global.util.getClassLoader().loadClass
-		    (path + shortClassName);
-		break;
-	    }
-	    catch (ClassNotFoundException ex) {
-		// that didn't work, silently try again...
-	    }
-	}
-
-	if (retval == null) {
-	    try {
-		retval = Global.util.getClassLoader().loadClass
-		    (shortClassName);
-	    }
-	    catch (ClassNotFoundException ex) {
-		// that didn't work either, how sad
-		throw new ParseException(Global.fmtMsg
-			 ("sunsoft.jws.visual.rt.type.AMConverter.FMT.0",
-					  Global.newline(), /* NOI18N */"\t",
-					  ex.toString()));
-	    }
-	}
-
-	// cache this pairing so it won't have to be looked up again
-	if (retval != null && !shortShadowKeyed.containsKey
-	    (shortClassName))
-	    cacheShadowPair(retval.getName(), shortClassName);
-
-	return (retval);
-    }
-
-    /**
-     * Creates a string from the reference to the root or branch of the
-     * attribute management tree given.  Appends the string to the given
-     * string buffer.
-     *
-     * @param obj attribute management tree reference
-     * @param buf string buffer to append to
-     * @return string that describes the tree
-     */
-    public void convertToString(Object obj, StringBuffer buf) {
-	if (obj == null)
-	    return;
-    
-	// Make sure the first card is showing before saving the card panel.
-	if (obj instanceof CardPanelShadow) {
-	    CardPanel cardPanel = (CardPanel)
-		((CardPanelShadow)obj).getCardPanel();
-	    if (cardPanel != null)
-		cardPanel.first();
-	}
-    
-	AttributeManager tree = (AttributeManager) obj;
-    
-	//
-	// Skip over any windows that are marked as panels.
-	//
-	/* JSTYLED */
-	if ((tree instanceof WindowShadow) && ((WindowShadow)tree).isPanel()) {
-	    AttributeManager child = ((WindowShadow)tree).getPanel();
-	    if (child != null)
-		convertToString(child, buf);
-	    return;
-	}
-
-	// this object's own attributes
-	indent(buf);
-	buf.append(shortenShadowPath(tree.getClass().getName()));
-	buf.append(/* NOI18N */" ");
-
-	ListParser.quote(tree.getName(), buf, false);
-
-	buf.append(/* NOI18N */" {");
-	newline(buf);
-	incrIndent();
-	attrlistconv.convertToString(tree.getAttributeList(), buf);
-	decrIndent();
-
-	// children
-	if (tree instanceof AMContainer) {
-	    Enumeration e = ((AMContainer) tree).getChildList();
-	    AttributeManager child;
-    
-	    if (e.hasMoreElements()) {
-		incrIndent();
-		indent(buf);
-		buf.append(/* NOI18N */"child list {");
-		newline(buf);
-        
-		incrIndent();
-		while (e.hasMoreElements()) {
-		    child = (AttributeManager) e.nextElement();
-		    convertToString(child, buf);
-		}
-		decrIndent();
-        
-		indent(buf);
-		buf.append(/* NOI18N */"}");
-		newline(buf);
-		decrIndent();
-	    }
-	}
-
-	indent(buf);
-	buf.append(/* NOI18N */"}");
-	newline(buf);
-    }
-
-    /**
-     * Call the convertFromString function that takes a version number
-     * instead.  Tree conversion cannot take place without a version
-     * number (for the string description.)
-     *
-     * @exception Error when an attempt is made to call this method
-     */
-    public Object convertFromString(String s) {
-	throw new Error(Global.getMsg(
-		/* JSTYLED */
-				      "sunsoft.jws.visual.rt.type.AMConverter.AMConverter__convertF.0"));
-    }
-
-    /**
-     * Creates a new tree based upon the description string given.
-     * There should only be one object (as the root of the tree) in the
-     * string.  That root object may contain other objects, or children,
-     * as it were.
-     *
-     * @param version the version number for the gui description string
-     * @param s the string to convert to a tree @return new shadow tree
-     * @exception ParseException when there is an error in the string
-     */
-    public Object convertFromString(double version, String s) {
-	if (s == null)
-	    return null;
-    
-	// Parse the string
-	Enumeration e = ListParser.getListElements(s, 3);
-	String type = null, name = null, attr = null;
-    
-	try {
-	    type = (String)e.nextElement();
-	    name = (String)e.nextElement();
-	    attr = (String)e.nextElement();
-	}
-	catch (NoSuchElementException ex) {
-	    throw new ParseException(Global.newline() +
-				     /* BEGIN JSTYLED */
-				     Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.________Incomplete__attri.1") +
-				     /* END JSTYLED */
-		     Global.newline() + /* NOI18N */"      type = " + type +
-		     Global.newline() + /* NOI18N */"      name = " + name +
-		     Global.newline() + /* NOI18N */"      attr = " + attr);
-	}
-    
-	// Start recording AMRef's made during construction of tree
-	AMRef.startRecording();
-    
-	// Create the attribute manager
-	AttributeManager mgr = convertParent(type, name);
-	if (mgr == null)
-	    return null;
-    
-	// Parse the attributes and children
-	convertChildren(version, mgr, attr);
-    
-	// Stop recording and resolve all AMRef's that were made
-	AMRef.stopRecording(mgr);
-    
-	return mgr;
-    }
-
-    private AttributeManager convertParent(String type, String name) {
-	AttributeManager mgr = null;
-    
-	// Instantiate a new attribute manager
-	Class onLineType = searchShadowPath(type);
-	if (onLineType == null)
-	    return null;
-    
-	try {
-	    mgr = (AttributeManager) onLineType.newInstance();
-	}
-	catch (IllegalAccessException e) {
-	    /* BEGIN JSTYLED */
-	    throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.AMConverter.FMT.1", Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.Could__not__access__"), onLineType.getName()));
-	    /* END JSTYLED */
-	}
-	catch (InstantiationException e) {
-	    /* BEGIN JSTYLED */
-	    throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.AMConverter.FMT.2", Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.Could__not__instantiat.2"), onLineType.getName()));
-	    /* END JSTYLED */
-	}
-    
-	if (mgr != null) {
-	    // Assign name of shadow object
-	    mgr.set(/* NOI18N */"name", name);
-	}
-    
-	return mgr;
-    }
-
-    private void convertChildren(double version,
-				 AttributeManager parent, String attr) {
-	String type, name;
-	String children = attrlistconv.convertFromString
-	    (version, parent, attr);
-	if (children == null)
-	    return;
-    
-	Enumeration e = ListParser.getListElements(children, 3);
-    
-	while (e.hasMoreElements()) {
-	    type = null;
-	    name = null;
-	    attr = null;
-        
-	    try {
-		type = (String)e.nextElement();
-		name = (String)e.nextElement();
-		attr = (String)e.nextElement();
-	    }
-	    catch (NoSuchElementException ex) {
-		throw new ParseException(Global.newline() +
-					 /* BEGIN JSTYLED */
-					 Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.________Incomplete__attri.3") +
-					 /* END JSTYLED */
-		 Global.newline() + /* NOI18N */"      type = " + type +
-		 Global.newline() + /* NOI18N */"      name = " + name +
-		 Global.newline() + /* NOI18N */"      attr = " + attr);
-	    }
-        
-	    AttributeManager child = convertParent(type, name);
-	    if (child == null)
-		continue;
-        
-	    //
-	    // Insert a frame around any panels that are
-	    // immediate children
-	    // of the root, and mark the frame as a panel.
-	    //
-	    if ((parent instanceof Root) &&
-		(child instanceof PanelShadow)) {
-		FrameShadow f = new FrameShadow();
-		f.isPanel(true);
-            
-		((AMContainer)parent).add(f);
-		f.add(child);
-	    } else {
-		// REMIND: add error check for non-AMContainer type
-		((AMContainer)parent).add(child);
-	    }
-        
-	    convertChildren(version, child, attr);
-	}
-    }
-
-    /**
-     * The conversion of shadow trees into code is performed within the
-     * designer and not implemented here.  This method should never be
-     * called.
-     *
-     * @exception Error when an attempt is made to call this method
-     */
-    public String convertToCode(Object obj) {
-	/* BEGIN JSTYLED */
-	throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.type.AMConverter.FMT.3", Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.will__not__generate__co.4"),
-				      Global.getMsg("sunsoft.jws.visual.rt.type.AMConverter.implementation__of__th.5")));
-	/* END JSTYLED */
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMRef.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
- * 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.
- *
- * @(#) AMRef.java 1.14 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.AttributeManager;
-import sunsoft.jws.visual.rt.base.Root;
-import java.util.*;
-
-/**
- * A reference to an attribute manager object.  The reference can
- * merely be the expected name of the object, if necessary.  That way
- * there will be no error until the reference is actually needed.
- * This reference can be made to serve in forward-referencing
- * situations (like file loads) when the object referred to hasn't
- * been loaded yet.
- *
- * @see AttributeManager
- * @version 1.14, 07/18/96
- */
-public class AMRef {
-    private String name;
-    private AttributeManager mgr;
-    
-    // AMRef Table: a record of unresolved AMRefs created
-    private static Vector refRecord = null;
-    
-    /**
-     * Starts recording the AMRefs that are created using a name only.
-     * Later a call to the stopRecording method can be used in order to
-     * force the resolution of all the AMRefs created since this call
-     * was made.  The Designer uses this in order to insure that all
-     * AMRefs created during the loading of a file are force to resolve
-     * and bind to the real AttributeManager objects to which they
-     * refer.
-     *
-     * @see #stopRecording
-     */
-    public static void startRecording() {
-        refRecord = new Vector();
-    }
-    
-    /**
-     * Stops recording the AMRefs that are created and resolves them.
-     * Resolution occurrs within the scope of the tree given.  If scope
-     * is null then stops recording, clears the list, and doesn't
-     * resolve anything.
-     *
-     * @param scope the attribute manager tree in which to resolve names
-     * @see #startRecording
-     */
-    public static void stopRecording(AttributeManager scope) {
-        if (refRecord != null) {
-            if (scope != null) {
-		/* BEGIN JSTYLED */
-		for (Enumeration e = refRecord.elements(); e.hasMoreElements(); ) {
-				/* END JSTYLED */
-		    AMRef ref = (AMRef) e.nextElement();
-		    ref.getRef(scope);
-		}
-	    }
-	    refRecord = null;
-	}
-    }
-
-    /**
-     * Creates a shadow reference from the name only.
-     *
-     * @see #getRef
-     * @param name name of object to which this reference refers
-     */
-    public AMRef(String name) {
-	this.name = name;
-	if (refRecord != null)
-	    refRecord.addElement(this);
-    }
-
-    /**
-     * Creates an already-resolved reference.
-     *
-     * @param mgr the object referred to
-     */
-    public AMRef(AttributeManager mgr) {
-	this.mgr = mgr;
-    }
-
-    /**
-     * Returns the object referred to.  Resolves it from 
-     * the name if necessary.
-     *
-     * @param scope the attribute manager tree in which
-     * to resolve the name
-    */
-    public AttributeManager getRef(AttributeManager scope) {
-	if (mgr == null) {
-	    Root root = scope.getRoot();
-	    if (root != null)
-		mgr = root.resolve(name);
-	}
-    
-	return (mgr);
-    }
-
-    /**
-     * Returns the name of the object referred to.
-     */
-    public String getName() {
-	if (mgr != null)
-	    name = mgr.getName();
-	return (name);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AMRefConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * 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.
- *
- * @(#) AMRefConverter.java 1.15 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * Converts references to attribute manager objects into their
- * names and back again.
- *
- * @see AMRef
- * @version 1.15, 07/25/97
- */
-public class AMRefConverter extends Converter {
-    /**
-     * Converts an AMRef object to a string.
-     */
-    public String convertToString(Object obj) {
-        if (obj != null)
-            return (((AMRef) obj).getName());
-        else
-            return (/* NOI18N */"");
-    }
-    
-    /**
-     * Converts a string into an AMRef object.
-     *
-     * @param s string to convert
-     */
-    public Object convertFromString(String s) {
-        if (s != null && s.length() != 0)
-            return (new AMRef(s));
-        else
-            return (null);
-    }
-    
-    /**
-     * Returns code for creating an AMRef object.
-     *
-     * @param obj AMRef object for which to generate code
-     */
-    public String convertToCode(Object obj) {
-        return (/* NOI18N */"new AMRef(\"" + convertToString(obj)
-		+ /* NOI18N */"\")");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AlignmentEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * 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.
- *
- * @(#) AlignmentEnum.java 1.9 - last change made 06/18/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.Label;
-
-/**
- * A class that knows the alignment attributes of labels, and in an
- * instantiation, can store a single alignment selection.
- *
- * @see Label
- * @version 	1.9, 06/18/97
- */
-public class AlignmentEnum extends BaseEnum {
-    private static BaseEnumHelper helper = new BaseEnumHelper();
-    
-    static {
-        helper.add(Label.LEFT, /* NOI18N */"left");
-        helper.add(Label.CENTER, /* NOI18N */"center");
-        helper.add(Label.RIGHT, /* NOI18N */"right");
-        helper.setDefaultChoice(Label.LEFT);
-    }
-    
-    /**
-     * Creates an instance with the choice set to LEFT.
-     */
-    public AlignmentEnum() {
-        super();
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given int value.
-     *
-     * @param choice Label.LEFT, Label.CENTER, or Label.RIGHT
-     */
-    public AlignmentEnum(int choice) {
-        super(choice);
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given string.
-     *
-     * @param choice "left", "center", or "right"
-     */
-    public AlignmentEnum(String choice) {
-        super(choice);
-    }
-    
-    protected BaseEnumHelper getHelper() {
-        return (helper);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AnchorEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
- * 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.
- *
- * @(#) AnchorEnum.java 1.8 - last change made 06/18/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.awt.GBConstraints;
-
-/**
- * A class that knows all the possible anchor attribute choices.  In an
- * instantiation, can store a single alignment selection.
- *
- * @see GBConstraints
- * @version 	1.8, 06/18/97
- */
-public class AnchorEnum extends BaseEnum {
-    private static BaseEnumHelper helper = new BaseEnumHelper();
-    
-    static {
-        helper = new BaseEnumHelper();
-        helper.add(GBConstraints.CENTER, /* NOI18N */"center");
-        helper.add(GBConstraints.NORTH, /* NOI18N */"north");
-        helper.add(GBConstraints.SOUTH, /* NOI18N */"south");
-        helper.add(GBConstraints.EAST, /* NOI18N */"east");
-        helper.add(GBConstraints.WEST, /* NOI18N */"west");
-        helper.add(GBConstraints.NORTHWEST, /* NOI18N */"northwest");
-        helper.add(GBConstraints.SOUTHWEST, /* NOI18N */"southwest");
-        helper.add(GBConstraints.NORTHEAST, /* NOI18N */"northeast");
-        helper.add(GBConstraints.SOUTHEAST, /* NOI18N */"southeast");
-        helper.setDefaultChoice(GBConstraints.CENTER);
-    }
-    
-    /**
-     * Constructs an instance with choice set to GBConstraints.CENTER.
-     */
-    public AnchorEnum() {
-        super();
-    }
-    
-    /**
-     * Constructs an instance from an int value.
-     *
-     * @param choice GBConstraints.CENTER, GBConstraints.NORTH, 
-     * GBConstraints.SOUTH, GBConstraints.EAST, GBConstraints.WEST,
-     * GBConstraints.NORTHWEST, GBConstraints.SOUTHWEST,
-     * GBConstraints.NORTHEAST, or GBConstraints.SOUTHEAST
-    */
-    public AnchorEnum(int choice) {
-        super(choice);
-    }
-    
-    /**
-     * Constructs an instance from a string value.
-     *
-     * @param choice "center", "north", "south", "east", "west", 
-     * "northwest", "southwest", "northeast", or "southeast"
-    */
-    public AnchorEnum(String choice) {
-        super(choice);
-    }
-    
-    protected BaseEnumHelper getHelper() {
-        return (helper);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ApplyException.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * 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.
- *
- * @(#) ApplyException.java 1.2 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * An exception thrown by type editors when there is a problem with
- * the value during an apply.  The Designer will place the error
- * message into a popup window.
- *
- * @see TypeEditor
- * @version 1.2, 07/18/96
- */
-public class ApplyException extends Exception {
-    public ApplyException() {
-        super();
-    }
-    
-    public ApplyException(String s) {
-        super(s);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AttributeConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/*
- * 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.
- *
- * @(#) AttributeConverter.java 1.32 - last change made 08/12/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.util.Enumeration;
-
-/**
- * This class converts Attributes to strings and back again.
- *
- * @see Attribute
- * @version 1.32, 08/12/97
- */
-public class AttributeConverter extends Converter {
-    
-    /**
-     * Converts an attribute to a string.
-     *
-     * @param obj Attribute instance to convert
-     * @param buf buffer to which to add the string
-     * @return string representation of an attribute 
-     * (type, name, and value)
-    */
-    public void convertToString(Object obj, StringBuffer buf) {
-        if (obj != null) {
-            Attribute a = (Attribute) obj;
-            
-            String type = a.getType();
-            // Special case for GBConstraints to make
-            // the save file neater
-            if (type.equals(/* NOI18N */
-			    "sunsoft.jws.visual.rt.awt.GBConstraints"))
-		type = /* NOI18N */"GBC";
-            ListParser.quote(type, buf, false);
-            buf.append(/* NOI18N */ ' ');
-            
-            ListParser.quote(a.getName(), buf, false);
-            buf.append(/* NOI18N */ ' ');
-            
-            Converter c = getConverter(a.getType());
-            if (c == null) {
-                buf.append(/* NOI18N */"null");
-            } else {
-                ListParser.quote(c.convertToString(a.getValue()),
-				 buf, false);
-            }
-        }
-    }
-    
-    /**
-     * Call the convertFromString method that takes additionhal
-     * arguments. An AttributeManager object is needed to operate on.
-     *
-     * @exception Error when called
-     */
-    public Object convertFromString(String s) {
-	/* BEGIN JSTYLED */
-	throw new Error(Global.getMsg("sunsoft.jws.visual.rt.type.AttributeConverter.AttributeConverter__n.6") +
-			Global.getMsg("sunsoft.jws.visual.rt.type.AttributeConverter.argument__to__operate"));
-	/* END JSTYLED */
-    }
-    
-    /**
-     * Converts a string (type, name, and value) to an Attribute.
-     *
-     * @param version description file version
-     * @param mgr object in which the attribute will be used
-     * @param type type of the attribute
-     * @param key name of the attribute
-     * @param value value of the attribute
-     * @return a new instance of Attribute
-     * @exception ParseError when there is an error 
-     * in one of the strings
-    */
-    public Object convertFromString(double version,
-	    AttributeManager mgr, String type, String key, String value) {
-        
-        // get the targeted attribute from the shadow object
-        if (!mgr.hasAttribute(key)) {
-            String errMsg = Global.fmtMsg(
-		  "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.33",
-			  key, mgr.getClass().getName(), type, key, value);
-            if (java.beans.Beans.isDesignTime()) {
-                DesignerAccess.reportInstantiationError(errMsg);
-                return null;
-            } else {
-                throw new ParseException(errMsg);
-            }
-        }
-        
-        // get type of attribute and convert and set the value
-        String mgrType = mgr.getType(key);
-        
-        if (version >= 3) {
-            if (!type.equals(mgrType) &&
-		!type.equals(/* NOI18N */"GBC")) {
-                String errMsg = Global.fmtMsg(
-		      "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.35",
-					      type, mgrType);
-                if (java.beans.Beans.isDesignTime()) {
-                    DesignerAccess.reportInstantiationError(errMsg);
-                    return null;
-                } else {
-                    throw new ParseException(errMsg);
-                }
-            }
-        }
-        
-        Converter valueConverter = getConverter(mgrType);
-        if (valueConverter == null) {
-            String errMsg = Global.fmtMsg(
-		  "sunsoft.jws.visual.rt.type.AttributeConverter.FMT.34",
-					  mgrType);
-            if (java.beans.Beans.isDesignTime()) {
-                DesignerAccess.reportInstantiationError(errMsg);
-                return null;
-            } else {
-                throw new ParseException(errMsg);
-            }
-        }
-        
-        mgr.set(key, valueConverter.convertFromString(value));
-        return null;
-    }
-    
-    /**
-     * Converts an attribute to the code that would set it for an
-     * AttributeManager object.
-     *
-     * @param amName name of the AttributeManager
-     * @param a attribute (which contains type, name, and value)
-     * @param indent number of spaces to indent the code line(s)
-     * @param buf buffer to which to add the code
-     */
-    public void convertToCodeBlock(String amName, Attribute a,
-				   int indent, StringBuffer buf) {
-        
-        Converter c = getConverter(a.getType());
-        c.convertToCodeBlock(amName, a, indent, buf);
-    }
-    
-    /**
-     * Call the convertToCode method that takes more arguments instead.
-     *
-     * @exception Error when called
-     */
-    public String convertToCode(Object obj) {
-        throw new Error(
-			/* BEGIN JSTYLED */
-			Global.getMsg(
-				      "sunsoft.jws.visual.rt.type.AttributeConverter.internal__error__-__") +
-			Global.getMsg(
-				      "sunsoft.jws.visual.rt.type.AttributeConverter.convertToCode__with__m.11")   );
-	/* END JSTYLED */
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/AttributeListConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
- * 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.
- *
- * @(#) AttributeListConverter.java 1.29 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.util.*;
-
-/**
- * The class converts AttributeLists to strings and back again.
- *
- * @see AttributeList
- * @version 1.29, 06/17/97
- */
-public class AttributeListConverter extends Converter {
-    
-    private static AttributeConverter ac = new AttributeConverter();
-    
-    /**
-     * Returns true if the attribute is one that should be placed in a
-     * save file.  Include only non-default attributes (and skip the
-     * name attribute.)
-     */
-    private boolean shouldConvertAttribute(Attribute a) {
-        return (a.isModified() && !a.getName().equals
-		(/* NOI18N */"name") && !isTransient(a));
-    }
-    
-    private boolean isTransient(Attribute a) {
-        return ((a.getFlags() & (AttributeManager.TRANSIENT |
-				 AttributeManager.READONLY)) != 0);
-    }
-    
-    /**
-     * Converts an AttributeList to a string.
-     *
-     * @param obj AttributeList to convert
-     * @param buf buffer to which to add the string
-     */
-    public void convertToString(Object obj, StringBuffer buf) {
-        if (obj != null) {
-            AttributeList l = (AttributeList) obj;
-            for (Enumeration e = l.elements(); e.hasMoreElements(); ) {
-                Attribute a = (Attribute) e.nextElement();
-                if (shouldConvertAttribute(a)) {
-                    indent(buf);
-                    ac.convertToString(a, buf);
-                    newline(buf);
-                }
-            }
-        }
-    }
-    
-    /**
-     * Call convertFromString that takes more arguments instead.
-     *
-     * @exception Error when called
-     */
-    public Object convertFromString(String s) {
-	/* BEGIN JSTYLED */
-	throw new Error(Global.getMsg("sunsoft.jws.visual.rt.type.AttributeListConverter.AttributeListConvert.12"));
-	/* END JSTYLED */
-    }
-    
-    /**
-     * Converts a string to an AttributeList.
-     *
-     * @param version description file version
-     * @param mgr AttributeManager from which the attribute list came
-     * @param s string to convert
-     * @return string representation of AttributeList
-     * @exception ParseError when there is a problem with the string
-     */
-    public String convertFromString(double version,
-				    AttributeManager mgr, String s) {
-        String children = null;
-        String type = null, key = null, value = null;
-        boolean isChildren;
-        
-        if (s == null || mgr == null)
-            return null;
-        
-        Enumeration e;
-        if (version >= 3)
-            e = ListParser.getListElements(s, 3);
-        else
-            e = ListParser.getListElements(s, 2);
-        
-        try {
-            while (e.hasMoreElements()) {
-                type = null;
-                key = null;
-                value = null;
-                
-                if (version >= 3) {
-                    type = (String)e.nextElement();
-                    key = (String)e.nextElement();
-                    value = (String)e.nextElement();
-                    isChildren = (type.equals(/* NOI18N */"child") &&
-				  key.equals(/* NOI18N */"list"));
-                } else {
-                    key = (String)e.nextElement();
-                    value = (String)e.nextElement();
-                    isChildren = (key.equals(/* NOI18N */"children"));
-                }
-                
-                if (isChildren)
-                    children = value;
-                else
-                    ac.convertFromString(version, mgr, type,
-					 key, value);
-            }
-        }
-        catch (NoSuchElementException ex) {
-            throw new ParseException(Global.newline() +
-				     /* BEGIN JSTYLED */
-				     Global.getMsg("sunsoft.jws.visual.rt.type.AttributeListConverter.________Incomplete__attri.13") +
-				     /* END JSTYLED */
-		     Global.newline() + /* NOI18N */"      type = " + type +
-		     Global.newline() + /* NOI18N */"      key = " + key +
-		     Global.newline() + /* NOI18N */"      value = " + value);
-        }
-        
-        return children;
-    }
-    
-    /**
-     * Returns true if the attribute is one that should be placed in a
-     * generated code file.  Include only non-default attributes.
-     */
-    private boolean shouldGenerateAttribute(Attribute a) {
-        return (a.isModified() && !isTransient(a) &&
-		!a.getName().equals(/* NOI18N */"operations"));
-    }
-    
-    /**
-     * Converts an AttributeManager's AttributeList to code.
-     *
-     * Skips the name attribute because it is generated 
-     * separately in GenCode.
-     * This is done because during initialization for the
-     * generated root, the
-     * name must be set before add is called.  All the other attributes
-     * must be set after add is called.
-     *
-     * @param amName name of the AttributeManager
-     * @param list the list to convert
-     * @param indent number of spaces to indent on each line
-     * @param buf buffer to which to add the code
-     */
-    public void convertToCodeBlock(String amName, AttributeList list,
-				   int indent, StringBuffer buf) {
-        Enumeration e = list.elements();
-        while (e.hasMoreElements()) {
-            Attribute a = (Attribute) e.nextElement();
-            if (shouldGenerateAttribute(a) && (!a.getName().equals
-					       (/* NOI18N */"name"))) {
-                ac.convertToCodeBlock(amName, a, indent, buf);
-            }
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
- * 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.
- *
- * @(#) BaseEnum.java 1.17 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.Enumeration;
-
-/* BEGIN JSTYLED */
-/**
- * Base class for types that implement enumerations 
- * (in the C style) where
- * an integer signifies an important answer to a 
- * multiple-choice question.
- * Sub-classers are supposed to supply the list of strings 
- * that describe the
- * enumerations values available (and their corresponding integer values)
- * in their static initializers.  Sub-classes should set up their own
- * instance of the BaseEnumHelper class to hold their 
- * enumeration definition.
- * <p>
- * When you sub-class off of BaseEnum, Visual Java will automatically
- * recognize your type as an enumeration, and offer a choice menu in
- * the attribute editor of Visual Java for selecting the value of an
- * attribute of that type.
- * <p>
- * The AlignmentEnum, shown below, is used for setting whether the
- * text in a Label will appear on the left, center, or right.
- * <p>
- * To use the example below to create a new enumerated type, copy
- * everything and then modify the imports and static constructor to use
- * the constants and names for the choices you'd like to offer in your
- * enumeration.
- * <p>
- * The addConverter call will register your type with Visual Java's
- * type conversion interface and make it understood that this type is
- * an enumeration.  Change the
- * "sunsoft.jws.visual.rt.type.AlignmentEnum" argument to reflect the
- * package name and class of your new enumerated type.
- *
- * <pre>
- * package sunsoft.jws.visual.rt.type;
- * 
- * import sunsoft.jws.visual.rt.type.BaseEnum;
- * import sunsoft.jws.visual.rt.type.BaseEnumHelper;
- * import sunsoft.jws.visual.rt.type.Converter;
- * import java.awt.Label;
- *
- * public class AlignmentEnum extends BaseEnum {
- *   private static BaseEnumHelper helper = new BaseEnumHelper();
- *
- *   static {
- *     helper.add(Label.LEFT, "left");
- *     helper.add(Label.CENTER, "center");
- *     helper.add(Label.RIGHT, "right");
- *     helper.setDefaultChoice(Label.LEFT);
- *     Converter.addConverter("sunsoft.jws.visual.rt.type.AlignmentEnum",
- *          "sunsoft.jws.visual.rt.type.BaseEnumConverter");
- *   }
- *
- *   public AlignmentEnum() {
- *     super();
- *   }
- *
- *   public AlignmentEnum(int choice) {
- *     super(choice);
- *   }
- *
- *   public AlignmentEnum(String choice) {
- *     super(choice);
- *   }
- * 
- *   protected BaseEnumHelper getHelper() {
- *     return(helper);
- *   }
- * }
- * </pre>
- *
- * @see BaseEnumHelper
- * @see AlignmentEnum
- * @see java.awt.Label
- * @version 1.17, 07/25/97
-*/
-
-/* END JSTYLED */
-public abstract class BaseEnum implements Cloneable {
-    /**
-     * The currently selected value from the enum.
-     */
-    protected Integer currentChoice;
-    
-    /**
-     * Constructor, sets the choice to the default.
-     */
-    protected BaseEnum() {
-        set(getHelper().getDefaultChoice());
-    }
-    
-    /**
-     * Constructor to use when integer value is available.
-     *
-     * @param choice enumerated value
-     */
-    protected BaseEnum(int choice) {
-        set(choice);
-    }
-    
-    /**
-     * Constructor to use when string of choice is available.
-     *
-     * @param choice enumerated value
-     */
-    protected BaseEnum(String choice) {
-        set(choice);
-    }
-    
-    /**
-     * Gets the helper class that stores the enum definition.
-     *
-     * Each sub-classer should override this so that a different
-     * class-wide instance of BaseEnumHelper is returned.  If there
-     * weren't a mechanism like this, then all sub-classers would be
-     * sharing a single helper, and that would be bad.
-     *
-     * @return a helper use by all enumeration instances of 
-     * a single class
-    */
-    protected abstract BaseEnumHelper getHelper();
-    
-    /**
-     * Sets the enumeration to the given integer value.  
-     * Checks validity
-     * of the choice.
-     *
-     * @param choice enumerated value
-     * @exception Error when an invalid choice is given
-     */
-    public void set(int choice) {
-        if (getHelper().isValid(choice))
-            currentChoice = new Integer(choice);
-        else
-            throw new ParseException(Global.fmtMsg(
-			   "sunsoft.jws.visual.rt.type.BaseEnum.FMT.30",
-	   Global.getMsg(
-		 "sunsoft.jws.visual.rt.type.BaseEnum.invalid__int__choice__"),
-						   new Integer(choice),
-						   /* BEGIN JSTYLED */
-						   Global.getMsg("sunsoft.jws.visual.rt.type.BaseEnum.__given__to__Enum__class.14")));
-	/* END JSTYLED */
-    }
-    
-    /**
-     * Sets the enumeration to the given string value.  Checks validity
-     * of the choice.
-     *
-     * @param choice string version of the enumerated value
-     * @exception Error when an invalid choice is given
-     */
-    public void set(String choice) {
-        if (getHelper().isValid(choice))
-            currentChoice = getHelper().getInteger(choice);
-        else
-            throw new ParseException(Global.fmtMsg(
-			   "sunsoft.jws.visual.rt.type.BaseEnum.FMT.30",
-						   /* BEGIN JSTYLED */
-						   Global.getMsg("sunsoft.jws.visual.rt.type.BaseEnum.invalid__string__choic.15"),
-						   choice,
-						   Global.getMsg("sunsoft.jws.visual.rt.type.BaseEnum.__given__to__Enum__class.16")));
-	/* END JSTYLED */
-    }
-    
-    /**
-     * Returns the int value of the current selection 
-     * from the enumeration.
-    */
-    public int intValue() {
-        return (currentChoice.intValue());
-    }
-    
-    /**
-     * Returns the String description of the current selection from the
-     * enumeration.
-     */
-    public String toString() {
-        return (getHelper().getString(currentChoice));
-    }
-    
-    /**
-     * Returns a java.util.Enumeration of the String descriptions
-     * available in this enum.
-     */
-    public Enumeration elements() {
-        return (getHelper().elements());
-    }
-    
-    /**
-     * Returns an array containing all of the String descriptions
-     * available in this enum.
-     */
-    public String[] descriptions() {
-        return (getHelper().descriptions());
-    }
-    
-    /**
-     * Returns a copy of this enumeration instance.
-     */
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-    }
-    
-    /**
-     * Returns true if this enumeration instance and the one given have
-     * the same selection made.
-     */
-    public boolean equals(Object obj) {
-        if (obj instanceof BaseEnum) {
-            if (getClass() == obj.getClass()) {
-                Integer otherChoice = ((BaseEnum)obj).currentChoice;
-                if (currentChoice != null)
-                    return (currentChoice.equals(otherChoice));
-                else
-                    return (otherChoice == null);
-            }
-        }
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnumConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
- * 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.
- *
- * @(#) BaseEnumConverter.java 1.16 - last change made 06/18/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * Converts enum types to and from strings and to code.  This converter
- * can handle any sub-class of BaseEnum.
- *
- * @see BaseEnum
- * @version 	1.16, 06/18/97
- */
-public class BaseEnumConverter extends Converter {
-    private Class enumClass = null;
-    
-    public BaseEnumConverter() {
-    }
-    
-    /**
-     * Constructs an instance of this converter that can be used for the
-     * given subclass of BaseEnum.
-     *
-     * @param type the fully qualified class name of the subclass
-     */
-    public BaseEnumConverter(String type) {
-        setConverterType(type);
-    }
-    
-    private BaseEnum makeEnum(String s) {
-        if (enumClass == null) {
-            try {
-                enumClass = Class.forName(getConverterType());
-            }
-            catch (ClassNotFoundException e) {
-                throw new Error(e.getMessage());
-            }
-        }
-        
-        try {
-            BaseEnum retval = (BaseEnum) enumClass.newInstance();
-            retval.set(s);
-            return (retval);
-        }
-        catch (Exception e) {
-            throw new Error(e.getMessage());
-        }
-    }
-    
-    /**
-     * Returns the string representation of the enumeration 
-     * selected in the
-     * given BaseEnum object.
-     *
-     * @param obj an instance of BaseEnum or one of its subclasses
-     */
-    public String convertToString(Object obj) {
-        return (((BaseEnum) obj).toString());
-    }
-    
-    /**
-     * Returns a new instance of BaseEnum (or subclass) for enumeration
-     * value given.
-     *
-     * @param s string version of the enumeration choice
-     */
-    public Object convertFromString(String s) {
-        return (makeEnum(s));
-    }
-    
-    /**
-     * Returns a block of code that creates a new BaseEnum (or subclass)
-     * like the one given.
-     *
-     * @param the BaseEnum instance to emulate
-     */
-    public String convertToCode(Object obj) {
-        StringBuffer buf = new StringBuffer();
-        
-        buf.append(/* NOI18N */"new ");
-        buf.append(obj.getClass().getName());
-        buf.append(/* NOI18N */"(");
-        
-        ListParser.quote(obj.toString(), buf, true);
-        
-        buf.append(/* NOI18N */")");
-        
-        return buf.toString();
-    }
-    
-    /**
-     * Helps signify that in an attribute editor (like the
-     * one in the Desginer), an instance of BaseEnum 
-     * is not viewable in a
-     * textfield.  It will be displayed using a choice menu instead.
-     *
-     * @return false
-     */
-    public boolean viewableAsString() {
-        return false;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BaseEnumHelper.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
- * 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.
- *
- * @(#) BaseEnumHelper.java 1.5 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.util.Hashtable;
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * Keeps track of the string/int pairs in sub-classes of BaseEnum.
- * This is meant to be a class-wide member for each subclass of
- * BaseEnum.  Each subclass of BaseEnum should provide a single
- * instance of BaseEnumHelper for use by all instances of that subclass.
- *
- * @see BaseEnum
- * @version 1.5, 07/18/96
- */
-public class BaseEnumHelper {
-    /**
-     * Ordered list of the enum names.
-     */
-    private Vector names = new Vector();
-    
-    /**
-     * Pairs keyed by the description.
-     */
-    private Hashtable keyedByString = new Hashtable();
-    
-    /**
-     * Pairs keyed by the integer value.
-     */
-    private Hashtable keyedByInteger = new Hashtable();
-    
-    /**
-     * The default if no choice is initially specified.  Sub-classers
-     * shouldn't rely on this and should call setDefaultChoice in their
-     * static initializer.
-     */
-    private int defaultChoice = 0;
-    
-    /**
-     * Sets the default choice for newly constructed 
-     * instances of the enum.
-    */
-    public void setDefaultChoice(int value) {
-        defaultChoice = value;
-    }
-    
-    /**
-     * Gets the default choice for newly constructed 
-     * instances of the enum.
-    */
-    public int getDefaultChoice() {
-        return (defaultChoice);
-    }
-    
-    /**
-     * Adds a new string/int pair to the internal hashtable.
-     */
-    public void add(int value, String name) {
-        Integer I = new Integer(value);
-        names.addElement(name);
-        keyedByString.put(name, I);
-        keyedByInteger.put(I, name);
-    }
-    
-    /**
-     * Returns true if the choice is valid for this enum type.
-     */
-    public boolean isValid(int choice) {
-        return (keyedByInteger.containsKey(new Integer(choice)));
-    }
-    
-    /**
-     * Returns true if the choice is valid for this enum type.
-     */
-    public boolean isValid(String choice) {
-        return (keyedByString.containsKey(choice));
-    }
-    
-    /**
-     * Returns the Integer associated with a String key.
-     */
-    public Integer getInteger(String key) {
-        return ((Integer) keyedByString.get(key));
-    }
-    
-    /**
-     * Returns the String associated with an Integer key.
-     */
-    public String getString(Integer key) {
-        return ((String) keyedByInteger.get(key));
-    }
-    
-    /**
-     * Returns an Enumeration of the String descriptions
-     * available in this enum.
-     */
-    public Enumeration elements() {
-        return (names.elements());
-    }
-    
-    /**
-     * Returns an array containing all of the String descriptions
-     * available in this enum.
-     */
-    public String[] descriptions() {
-        String retval[] = new String[names.size()];
-        names.copyInto(retval);
-        return (retval);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/BooleanConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
- * 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.
- *
- * @(#) BooleanConverter.java 1.10 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * Converts Booleans to strings and back again.
- *
- * @see Boolean
- * @version 	1.10, 06/17/97
- */
-public class BooleanConverter extends Converter {
-    /**
-     * Converts a Boolean to a string.
-     *
-     * @param obj an instance of Boolean
-     * @return its string equivalent, "true" or "false"
-     */
-    public String convertToString(Object obj) {
-        return (((Boolean) obj).booleanValue() ? /* NOI18N */"true"
-		: /* NOI18N */"false");
-    }
-    
-    /**
-     * Converts a string to a new instance of Boolean.
-     *
-     * @exception ParseException when a lower-cased version 
-     * of the string is not "true" or "false"
-    */
-    public Object convertFromString(String s) {
-        if (s.toLowerCase().equals(/* NOI18N */"true")) {
-            return (Boolean.TRUE);
-        } else if (s.toLowerCase().equals(/* NOI18N */"false")) {
-            return (Boolean.FALSE);
-        } else {
-	    /* BEGIN JSTYLED */
-	    throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.BooleanConverter.Illegal__boolean__valu.17") + s);
-	    /* END JSTYLED */
-        }
-    }
-    
-    /**
-     * Returns a block of code representing a Boolean 
-     * like the one given.
-     *
-     * @param obj an instance of Boolean
-     */
-    public String convertToCode(Object obj) {
-        if (((Boolean) obj).booleanValue())
-            return (/* NOI18N */"Boolean.TRUE");
-        else
-            return (/* NOI18N */"Boolean.FALSE");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/CharacterConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) CharacterConverter.java 1.10 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * Converts Character objects to strings and back again.
- *
- * @see Character
- * @version 	1.10, 07/25/97
- */
-public class CharacterConverter extends Converter {
-    /**
-     * Converts a Character to a string.
-     *
-     * @param obj a instance of Character
-     */
-    public String convertToString(Object obj) {
-        Character c = (Character)obj;
-        if (c.charValue() == (char)0)
-            return /* NOI18N */"";
-        else
-            return (c.toString());
-    }
-    
-    /**
-     * Converts a string into a Character.  Uses only the 
-     * first letter in the
-     * string.
-     */
-    public Object convertFromString(String s) {
-        if (s == null || s.equals(/* NOI18N */"")) {
-            return new Character((char)0);
-        } else {
-            return new Character(s.charAt(0));
-        }
-    }
-    
-    /**
-     * Returns a block of code that will create a 
-     * Character liek the one given.
-     *
-     * @param obj a instance of Character
-     */
-    public String convertToCode(Object obj) {
-        return (/* NOI18N */"new Character('" +
-		((Character) obj).toString() + /* NOI18N */"')");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * 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.
- *
- * @(#) ColorConverter.java 1.16 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Color;
-
-/**
- * Converts Color objects to strings and back again.
- *
- * @see Color
- * @version 	1.16, 07/25/97
- */
-public class ColorConverter extends Converter {
-    /**
-     * Returns the string for a given color value.  Looks in the
-     * ColorStore fisrt, for a good name for the color, or if it can't
-     * find one, returns rgb hexadecimal format (e.g. #ef6caf).
-     *
-     * @param obj instance of Color
-     * @see ColorStore
-     */
-    public String convertToString(Object obj) {
-        Color c = (Color)obj;
-        if (c == null)
-            return /* NOI18N */"";
-        
-        // check the color store for a name
-        /* JSTYLED */
-	String colorName = ColorStore.getDefaultColorStore().getColorName(c);
-        if (colorName != null)
-            return colorName;
-        
-        // create a string contain the hexidecimal rgb value
-        int rgb = c.getRGB();
-        rgb = rgb & 0xffffff;	// RGB is 3 bytes
-        StringBuffer sb = new StringBuffer(Integer.toString(rgb, 16));
-        while (sb.length() < 6) {
-            sb.insert(0, /* NOI18N */ '0');
-        }
-        return (/* NOI18N */"#" + sb.toString());
-    }
-    
-    /**
-     * Figures out the color the given string represents.
-     *
-     * @exception ParseException when the color can't be figured
-     */
-    public Object convertFromString(String s) {
-        if (s == null || s.length() == 0)
-            return null;
-        
-        Color color = ColorStore.getDefaultColorStore().getColor(s);
-        if (color != null)
-            return color;
-        
-        if (!s.startsWith(/* NOI18N */"#")) {
-            /* JSTYLED */
-	    throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.ColorConverter.Illegal__color__value-co-.18") + s);
-        }
-        
-        Integer colorValue;
-        try {
-            colorValue = Integer.valueOf(s.substring(1), 16);
-        }
-        catch (NumberFormatException ex) {
-            /* JSTYLED */
-	    throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.ColorConverter.Badly__formatted__colo.19") + s);
-        }
-        
-        int i = colorValue.intValue();
-        color = new Color((i >> 16) & 0xFF,
-			  (i >> 8) & 0xFF,
-			  (i >> 0) & 0xFF);
-        
-        return color;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorStore.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-/*
- * 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.
- *
- * @(#) ColorStore.java 1.15 - last change made 07/10/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Color;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-/**
- * Stores colors by name and rgb value.  Names are always stored in
- * lower case, and searches are done after converting the search key
- * into lower case.  Two hashtables are used so colors can be accessed
- * efficiently either by color or name.
- *
- * @version 1.15, 07/10/97
- */
-public class ColorStore {
-    // COLOR <-> NAME HASHTABLES
-    
-    /**
-     * Storage place for Color RGB values and named colors.
-     * It's like a two-way hashtable.
-     */
-    private static ColorStore defaultColorStore;
-    
-    /**
-     * Returns a reference to the single global instance of ColorStore.
-     */
-    public static ColorStore getDefaultColorStore() {
-        initColorStore();
-        return (defaultColorStore);
-    }
-    
-    private static void initColorStore() {
-        if (defaultColorStore != null)
-            return;
-        defaultColorStore = new ColorStore();
-        defaultColorStore.initDefaultColorList();
-    }
-    
-    
-    /**
-     * Storage place for Color RGB values (keys) and named colors (values)
-     */
-    private Hashtable rgbkeys;
-    
-    /**
-     * Storage place for named colors (keys) Color RGB values (values)
-     */
-    private Hashtable namekeys;
-    
-    /**
-     * A list sorted by colorName (a-z)
-     */
-    
-    private String[] colorNameArray;
-    
-    public ColorStore() {
-        rgbkeys = new Hashtable();
-        namekeys = new Hashtable();
-    }
-    
-    /**
-     * Returns the name of a color.  If the color name is not in
-     * our table, return #RRGGBB (a string of hex numbers).
-     */
-    public String getColorName(Color c) {
-        return (String) rgbkeys.get(c);
-    }
-    
-    /**
-     * Given the name of a color, return the Color corresponding to it.
-     */
-    public Color getColor(String name) {
-        if (name == null) {
-            return null;
-        } else {
-            return ((Color) namekeys.get(name.toLowerCase()));
-        }
-    }
-    
-    /**
-     * Given a Color, return the name of the color listed in the
-     * ColorStore closest to that color.
-     */
-    public String getClosestColorName(Color c) {
-        
-        Enumeration e;
-        int difference = 255*3, newDifference;
-        Color bestColor = null, cKey;
-        
-        if (rgbkeys.containsKey(c)) {
-            return (getColorName(c));
-        }
-        
-        e = rgbkeys.keys();
-        while (e.hasMoreElements()) {
-            cKey = (Color) e.nextElement();
-            
-            if ((newDifference =
-		 (Math.abs(cKey.getRed() - c.getRed())) +
-		 (Math.abs(cKey.getGreen() - c.getGreen())) +
-		 (Math.abs(cKey.getBlue() - c.getBlue()))) <=
-		difference)
-		{
-		    difference = newDifference;
-		    bestColor = cKey;
-		}
-        }
-        return getColorName(bestColor);
-    }
-    
-    /**
-     * Adds the color/name pair to the color store is it is not already
-     * there and returns the name of the color.  If the color is already
-     * registered, the previous name of the color is returned.
-     */
-    public String add(Color c, String name) {
-        if (rgbkeys.containsKey(c)) {
-            return (getColorName(c));
-        } else {
-            rgbkeys.put(c, name.toLowerCase());
-            namekeys.put(name, c);
-            colorNameArray = null;
-            return (name);
-        }
-    }
-    
-    /**
-     * Returns the list of Colors named in the ColorStore.
-     */
-    public String[] getColorList() {
-        int index;
-        
-        if (colorNameArray == null) {
-            colorNameArray = new String[rgbkeys.size()];
-            
-            index = 0;
-            Enumeration e = namekeys.keys();
-            
-            while (e.hasMoreElements()) {
-                String colorName = (String)(e.nextElement());
-                colorNameArray[index] = colorName;
-                index++;
-            }
-            
-            Global.util.qsort(colorNameArray);
-        }
-        return colorNameArray;
-    }
-    
-    private void initDefaultColorList() {
-        // Java.awt.Color constants:
-        
-        add(Color.black, /* NOI18N */"black");
-        add(Color.blue, /* NOI18N */"blue");
-        add(Color.cyan, /* NOI18N */"cyan");
-        add(Color.darkGray, "darkgray");
-        add(Color.gray, /* NOI18N */"gray");
-        add(Color.green, /* NOI18N */"green");
-        add(Color.lightGray, "lightgray");
-        add(Color.magenta, /* NOI18N */"magenta");
-        add(Color.orange, /* NOI18N */"orange");
-        add(Color.pink, /* NOI18N */"pink");
-        add(Color.red, /* NOI18N */"red");
-        add(Color.white, /* NOI18N */"white");
-        add(Color.yellow, /* NOI18N */"yellow");
-        
-        // Colors from rgb.txt:
-        
-        add(new Color(133, 133, 133), /* NOI18N */"gray52");
-        add(new Color(122, 122, 122), /* NOI18N */"gray48");
-        add(new Color(186, 186, 186), /* NOI18N */"gray73");
-        add(new Color(94, 94, 94), /* NOI18N */"gray37");
-        add(new Color(196, 196, 196), /* NOI18N */"gray77");
-        add(new Color(84, 84, 84), /* NOI18N */"gray33");
-        add(new Color(66, 66, 66), /* NOI18N */"gray26");
-        add(new Color(48, 48, 48), /* NOI18N */"gray19");
-        add(new Color(92, 92, 92), /* NOI18N */"gray36");
-        add(new Color(74, 74, 74), /* NOI18N */"gray29");
-        add(new Color(163, 163, 163), /* NOI18N */"gray64");
-        add(new Color(28, 28, 28), /* NOI18N */"gray11");
-        add(new Color(46, 46, 46), /* NOI18N */"gray18");
-        add(new Color(173, 173, 173), /* NOI18N */"gray68");
-        add(new Color(36, 36, 36), /* NOI18N */"gray14");
-        add(new Color(54, 54, 54), /* NOI18N */"gray21");
-        add(new Color(194, 194, 194), /* NOI18N */"gray76");
-        add(new Color(150, 150, 150), /* NOI18N */"gray59");
-        add(new Color(171, 171, 171), /* NOI18N */"gray67");
-        add(new Color(3, 3, 3), /* NOI18N */"gray1");
-        add(new Color(181, 181, 181), /* NOI18N */"gray71");
-        add(new Color(20, 20, 20), /* NOI18N */"gray8");
-        add(new Color(10, 10, 10), /* NOI18N */"gray4");
-        add(new Color(207, 207, 207), /* NOI18N */"gray81");
-        add(new Color(99, 99, 99), /* NOI18N */"gray39");
-        add(new Color(237, 237, 237), /* NOI18N */"gray93");
-        add(new Color(79, 79, 79), /* NOI18N */"gray31");
-        add(new Color(87, 87, 87), /* NOI18N */"gray34");
-        add(new Color(204, 204, 204), /* NOI18N */"gray80");
-        add(new Color(214, 214, 214), /* NOI18N */"gray84");
-        add(new Color(235, 235, 235), /* NOI18N */"gray92");
-        add(new Color(245, 245, 245), /* NOI18N */"gray96");
-        add(new Color(8, 8, 8), /* NOI18N */"gray3");
-        add(new Color(71, 71, 71), /* NOI18N */"gray28");
-        add(new Color(201, 201, 201), /* NOI18N */"gray79");
-        add(new Color(61, 61, 61), /* NOI18N */"gray24");
-        add(new Color(51, 51, 51), /* NOI18N */"gray20");
-        add(new Color(33, 33, 33), /* NOI18N */"gray13");
-        add(new Color(15, 15, 15), /* NOI18N */"gray6");
-        add(new Color(117, 117, 117), /* NOI18N */"gray46");
-        add(new Color(31, 31, 31), /* NOI18N */"gray12");
-        add(new Color(13, 13, 13), /* NOI18N */"gray5");
-        add(new Color(105, 105, 105), /* NOI18N */"gray41");
-        add(new Color(148, 148, 148), /* NOI18N */"gray58");
-        add(new Color(252, 252, 252), /* NOI18N */"gray99");
-        add(new Color(115, 115, 115), /* NOI18N */"gray45");
-        add(new Color(158, 158, 158), /* NOI18N */"gray62");
-        add(new Color(179, 179, 179), /* NOI18N */"gray70");
-        add(new Color(240, 240, 240), /* NOI18N */"gray94");
-        add(new Color(189, 189, 189), /* NOI18N */"gray74");
-        add(new Color(250, 250, 250), /* NOI18N */"gray98");
-        add(new Color(199, 199, 199), /* NOI18N */"gray78");
-        add(new Color(145, 145, 145), /* NOI18N */"gray57");
-        add(new Color(70, 130, 180), /* NOI18N */"steel blue");
-        add(new Color(233, 150, 122), /* NOI18N */"darksalmon");
-        add(new Color(100, 149, 237), /* NOI18N */"cornflowerblue");
-        add(new Color(30, 144, 255), /* NOI18N */"dodgerblue");
-        add(new Color(238, 221, 130), /* NOI18N */"lightgoldenrod");
-        add(new Color(205, 133, 63), /* NOI18N */"peru");
-        add(new Color(154, 205, 50), /* NOI18N */"yellow green");
-        add(new Color(175, 238, 238), /* NOI18N */"paleturquoise");
-        add(new Color(0, 100, 0), /* NOI18N */"darkgreen");
-        add(new Color(160, 82, 45), /* NOI18N */"sienna");
-        add(new Color(143, 188, 143), /* NOI18N */"darkseagreen");
-        add(new Color(255, 228, 196), /* NOI18N */"bisque");
-        add(new Color(147, 112, 219), /* NOI18N */"mediumpurple");
-        add(new Color(148, 0, 211), /* NOI18N */"dark violet");
-        add(new Color(124, 252, 0), /* NOI18N */"lawn green");
-        add(new Color(119, 136, 153), /* NOI18N */"lightslategray");
-        add(new Color(230, 230, 250), /* NOI18N */"lavender");
-        add(new Color(248, 248, 255), /* NOI18N */"ghostwhite");
-        add(new Color(176, 224, 230), /* NOI18N */"powderblue");
-        add(new Color(218, 165, 32), /* NOI18N */"goldenrod");
-        add(new Color(255, 228, 181), /* NOI18N */"moccasin");
-        add(new Color(255, 228, 225), /* NOI18N */"mistyrose");
-        add(new Color(255, 255, 224), /* NOI18N */"light yellow");
-        add(new Color(255, 99, 71), /* NOI18N */"tomato");
-        add(new Color(245, 255, 250), /* NOI18N */"mintcream");
-        add(new Color(138, 43, 226), /* NOI18N */"blueviolet");
-        add(new Color(32, 178, 170), /* NOI18N */"light sea green");
-        add(new Color(255, 240, 245), /* NOI18N */"lavender blush");
-        add(new Color(127, 255, 212), /* NOI18N */"aquamarine");
-        add(new Color(165, 42, 42), /* NOI18N */"brown");
-        add(new Color(219, 112, 147), /* NOI18N */"pale violet red");
-        add(new Color(240, 255, 255), /* NOI18N */"azure");
-        add(new Color(107, 142, 35), /* NOI18N */"olivedrab");
-        add(new Color(47, 79, 79), /* NOI18N */"darkslategray");
-        add(new Color(139, 69, 19), /* NOI18N */"saddle brown");
-        add(new Color(160, 32, 240), /* NOI18N */"purple");
-        add(new Color(186, 85, 211), /* NOI18N */"medium orchid");
-        add(new Color(240, 255, 240), /* NOI18N */"honeydew");
-        add(new Color(176, 196, 222), /* NOI18N */"lightsteelblue");
-        add(new Color(64, 224, 208), /* NOI18N */"turquoise");
-        add(new Color(255, 127, 80), /* NOI18N */"coral");
-        add(new Color(184, 134, 11), /* NOI18N */"darkgoldenrod");
-        add(new Color(60, 179, 113), /* NOI18N */"mediumseagreen");
-        add(new Color(210, 180, 140), /* NOI18N */"tan");
-        add(new Color(255, 222, 173), /* NOI18N */"navajo white");
-        add(new Color(46, 139, 87), /* NOI18N */"sea green");
-        add(new Color(123, 104, 238), /* NOI18N */"mediumslateblue");
-        add(new Color(250, 250, 210), /* NOI18N */
-	    "light goldenrod yellow");
-        add(new Color(135, 206, 235), /* NOI18N */"sky blue");
-        add(new Color(132, 112, 255), /* NOI18N */"lightslateblue");
-        add(new Color(250, 240, 230), /* NOI18N */"linen");
-        add(new Color(218, 112, 214), /* NOI18N */"orchid");
-        add(new Color(0, 0, 128), /* NOI18N */"navy blue");
-        add(new Color(253, 245, 230), /* NOI18N */"old lace");
-        add(new Color(240, 248, 255), /* NOI18N */"aliceblue");
-        add(new Color(72, 209, 204), /* NOI18N */"mediumturquoise");
-        add(new Color(255, 140, 0), /* NOI18N */"dark orange");
-        add(new Color(72, 61, 139), /* NOI18N */"dark slate blue");
-        add(new Color(255, 160, 122), /* NOI18N */"light salmon");
-        add(new Color(221, 160, 221), /* NOI18N */"plum");
-        add(new Color(238, 130, 238), /* NOI18N */"violet");
-        add(new Color(34, 139, 34), /* NOI18N */"forest green");
-        add(new Color(0, 255, 127), /* NOI18N */"springgreen");
-        add(new Color(85, 107, 47), /* NOI18N */"darkolivegreen");
-        add(new Color(238, 232, 170), /* NOI18N */"pale goldenrod");
-        add(new Color(245, 245, 220), /* NOI18N */"beige");
-        add(new Color(255, 250, 240), /* NOI18N */"floralwhite");
-        add(new Color(255, 218, 185), /* NOI18N */"peach puff");
-        add(new Color(50, 205, 50), /* NOI18N */"limegreen");
-        add(new Color(152, 251, 152), /* NOI18N */"palegreen");
-        add(new Color(240, 230, 140), /* NOI18N */"khaki");
-        add(new Color(188, 143, 143), /* NOI18N */"rosybrown");
-        add(new Color(244, 164, 96), /* NOI18N */"sandybrown");
-        add(new Color(189, 183, 107), /* NOI18N */"darkkhaki");
-        add(new Color(25, 25, 112), /* NOI18N */"midnight blue");
-        add(new Color(255, 235, 205), /* NOI18N */"blanched almond");
-        add(new Color(224, 255, 255), /* NOI18N */"light cyan");
-        add(new Color(255, 182, 193), /* NOI18N */"lightpink");
-        add(new Color(95, 158, 160), /* NOI18N */"cadetblue");
-        add(new Color(106, 90, 205), /* NOI18N */"slate blue");
-        add(new Color(245, 222, 179), /* NOI18N */"wheat");
-        add(new Color(255, 69, 0), /* NOI18N */"orangered");
-        add(new Color(127, 255, 0), /* NOI18N */"chartreuse");
-        add(new Color(255, 255, 255), /* NOI18N */"white");
-        add(new Color(65, 105, 225), /* NOI18N */"royalblue");
-        add(new Color(173, 216, 230), /* NOI18N */"light blue");
-        add(new Color(255, 250, 250), /* NOI18N */"snow");
-        add(new Color(255, 245, 238), /* NOI18N */"seashell");
-        add(new Color(250, 128, 114), /* NOI18N */"salmon");
-        add(new Color(255, 255, 240), /* NOI18N */"ivory");
-        add(new Color(255, 239, 213), /* NOI18N */"papaya whip");
-        add(new Color(153, 50, 204), /* NOI18N */"dark orchid");
-        add(new Color(208, 32, 144), /* NOI18N */"violet red");
-        add(new Color(255, 248, 220), /* NOI18N */"cornsilk");
-        add(new Color(255, 105, 180), /* NOI18N */"hotpink");
-        add(new Color(176, 48, 96), /* NOI18N */"maroon");
-        add(new Color(178, 34, 34), /* NOI18N */"firebrick");
-        add(new Color(240, 128, 128), /* NOI18N */"lightcoral");
-        add(new Color(220, 220, 220), /* NOI18N */"gainsboro");
-        add(new Color(216, 191, 216), /* NOI18N */"thistle");
-        add(new Color(135, 206, 250), /* NOI18N */"light sky blue");
-        add(new Color(210, 105, 30), /* NOI18N */"chocolate");
-        add(new Color(173, 255, 47), /* NOI18N */"green yellow");
-        add(new Color(112, 128, 144), /* NOI18N */"slate gray");
-        add(new Color(0, 191, 255), /* NOI18N */"deepskyblue");
-        add(new Color(255, 250, 205), /* NOI18N */"lemon chiffon");
-        add(new Color(0, 206, 209), /* NOI18N */"dark turquoise");
-        add(new Color(222, 184, 135), /* NOI18N */"burlywood");
-        add(new Color(199, 21, 133), /* NOI18N */"mediumvioletred");
-        add(new Color(250, 235, 215), /* NOI18N */"antique white");
-        add(new Color(255, 215, 0), /* NOI18N */"gold");
-        add(new Color(255, 20, 147), /* NOI18N */"deep pink");
-        add(new Color(205, 92, 92), /* NOI18N */"indianred");
-        add(new Color(0, 250, 154), /* NOI18N */"medium spring green");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Converter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,546 +0,0 @@
-/*
- * 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.
- *
- * @(#) Converter.java 1.65 - last change made 08/20/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import sunsoft.jws.visual.rt.base.*;
-
-import java.util.*;
-
-/**
-* Base class for all converters.  Converts a type of 
-* object to a string
-* and back again.
-*
-* @version 1.65, 08/20/97
-*/
-
-public abstract class Converter {
-    /**
-     * Table of names for each registered converter.
-     */
-    private static Hashtable converterNameTable = new Hashtable();
-    
-    /**
-     * Table of instances for each converter that has 
-     * been instantiated.
-    */
-    private static Hashtable converterInstanceTable = new Hashtable();
-    
-    /**
-     * Adds a new type converter to the global table of converters.  A
-     * converter must be listed for this table in order for the search
-     * for a converter for that particular type to be successful.
-     *
-     * @param typeName the name of the type (what is returned by a 
-     * call to getClass().getType() for an instance of that type)
-     * @param converterClassName the full name of the converter class
-     */
-    public static void addConverter(String typeName,
-				    String converterClassName) {
-        converterNameTable.put(typeName, converterClassName);
-    }
-    
-    /**
-     * Initialize the type converters for the types we know about.
-     */
-    static {
-        addConverter(/* NOI18N */"[I", /* NOI18N */
-		     "sunsoft.jws.visual.rt.type.IntArrayConverter");
-        addConverter(/* NOI18N */"[D", /* NOI18N */
-		     "sunsoft.jws.visual.rt.type.DoubleArrayConverter");
-        addConverter(/* NOI18N */"java.lang.String",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.StringConverter");
-        addConverter(/* NOI18N */"[Ljava.lang.String;",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.StringArrayConverter");
-        addConverter(/* NOI18N */"java.lang.Boolean",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BooleanConverter");
-        addConverter(/* NOI18N */"java.lang.Character",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.CharacterConverter");
-        addConverter(/* NOI18N */"java.lang.Integer",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.IntegerConverter");
-        addConverter(/* NOI18N */"java.awt.Color",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.ColorConverter");
-        addConverter(/* NOI18N */"java.awt.SystemColor",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.ColorConverter");
-        addConverter(/* NOI18N */"java.awt.Font",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.FontConverter");
-        addConverter(/* NOI18N */"java.awt.Point",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.PointConverter");
-        addConverter(/* NOI18N */"java.awt.Dimension",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.DimensionConverter");
-        addConverter(/* NOI18N */"java.awt.Insets",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.InsetsConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.awt.GBConstraints",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.GBConstraintsConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.base.AttributeManager",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.AMConverter");
-        addConverter(/* NOI18N */"sunsoft.jws.visual.rt.type.AMRef",
-		     /* NOI18N */"sunsoft.jws.visual.rt.type.AMRefConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.base.Attribute",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.AttributeConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.base.AttributeList",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.AttributeListConverter");
-        addConverter(/* NOI18N */"sunsoft.jws.visual.rt.type.ImageRef",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.ImageRefConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.type.AlignmentEnum",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BaseEnumConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.type.AnchorEnum",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BaseEnumConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.type.OrientationEnum",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BaseEnumConverter");
-        addConverter(/* NOI18N */
-		     "sunsoft.jws.visual.rt.type.ReliefEnum",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BaseEnumConverter");
-        addConverter(/* NOI18N */"sunsoft.jws.visual.rt.type.ModeEnum",
-	     /* NOI18N */"sunsoft.jws.visual.rt.type.BaseEnumConverter");
-        addConverter(/* NOI18N */"unknown", /* NOI18N */
-		     "sunsoft.jws.visual.rt.type.UnknownTypeConverter");
-    }
-    
-    /**
-     * Returns an existing converter for the given type.  Creates a new
-     * converter only if necessary (typically the first 
-     * time one is asked for.)
-    */
-    public static Converter getConverter(String typeName) {
-        Converter converter;
-        
-        converter = (Converter)converterInstanceTable.get(typeName);
-        if (converter != null)
-            return converter;
-        
-        String converterType = (String) converterNameTable.get
-	    (typeName);
-        if (converterType == null) {
-            /* JSTYLED */
-	    // Load the class for the type and try again. Some types have
-            // static initializers that register their converters.
-            loadType(typeName);
-            converterType = (String) converterNameTable.get(typeName);
-        }
-        
-        if (converterType == null) {
-            converterType = (String) converterNameTable.get
-		(/* NOI18N */"unknown");
-            if (converterType == null)
-                /* JSTYLED */
-		throw new Error(Global.getMsg("sunsoft.jws.visual.rt.type.Converter.No__converter__defined.20"));
-        }
-        try {
-            Class c = Class.forName(converterType);
-            converter = (Converter) c.newInstance();
-            converter.setConverterType(typeName);
-            converterInstanceTable.put(typeName, converter);
-            return converter;
-        }
-        catch (Exception e) {
-            throw new Error(e.getMessage());
-        }
-    }
-    
-    private static void loadType(String typeName) {
-        // For arrays, use the array type
-        if (typeName.charAt(0) == /* NOI18N */ '[') {
-            int i;
-            int len = typeName.length();
-            for (i = 0; i < len; i++) {
-                if (typeName.charAt(i) != /* NOI18N */ '[')
-                    break;
-            }
-            i++;
-            if (i < len)
-                typeName = typeName.substring(i, len-1);
-        }
-        
-        try {
-            Class.forName(typeName);
-        }
-        catch (ClassNotFoundException ex) {
-            /* JSTYLED */
-	    System.out.println(Global.getMsg("sunsoft.jws.visual.rt.type.Converter.Class__not__found__for__.21") + typeName + /* NOI18N */"\".");
-        }
-    }
-    
-    /**
-     * Returns true if there is a converter for the given type.
-     */
-    public static boolean hasConverter(String typeName) {
-        return (converterNameTable.containsKey(typeName));
-    }
-    
-    /**
-     * The type editors (for more complex types.)
-     */
-    private static Hashtable typeEditorNameTable = new Hashtable();
-    
-    /**
-     * Registers a type editor for a type.  At run-time (in generated
-     * applications) there will typically be no editors, but they are
-     * needed for the attribute editor in the designer.  The designer
-     * will set up all the standard ones.
-     *
-     * @see TypeEditor
-     */
-    public static void addTypeEditor(String typeName,
-				     String editorClassName) {
-        typeEditorNameTable.put(typeName, editorClassName);
-    }
-    
-    /**
-     * Returns true if there is an editor for the given type.
-     *
-     * @see TypeEditor
-     */
-    public static boolean hasTypeEditor(String typeName) {
-        return (typeEditorNameTable.containsKey(typeName));
-    }
-    
-    /* BEGIN JSTYLED */
-    /**
-     * Returns a new instance of a type editor.  
-     * The caller (typically the
-     * Designer) gets a new one of these every time, one for each
-     * attribute being edited, even if they are the same type.  Caching
-     * instances of these type editors is up to the caller.
-     */
-    /* END JSTYLED */
-    
-    public static TypeEditor newTypeEditor(String typeName) {
-        String editorType = (String) typeEditorNameTable.get(typeName);
-        
-        if (editorType != null) {
-            try {
-                // instances of type editors are NOT cached
-                Class c = Class.forName(editorType);
-                return ((TypeEditor) c.newInstance());
-            }
-            catch (Exception ex) {
-                /* JSTYLED */
-		throw new VJException(Global.newline() + /* NOI18N */"    " + ex.toString());
-            }
-        }
-        
-        return null;
-    }
-    
-    /**
-     * Returns whether a converter instance has an 
-     * associated type editor.
-     *
-     * @see TypeEditor
-     */
-    public boolean hasTypeEditor() {
-        return (hasTypeEditor(getConverterType()));
-    }
-    
-    /**
-     * Returns a new instance of the type editor associated with this
-     * converter.
-     */
-    public TypeEditor newTypeEditor() {
-        return (newTypeEditor(getConverterType()));
-    }
-    /* JSTYLED */
-    // ------ Interfaces for Sub-Classers -----------------------------------
-    
-    /**
-     * The name of the type being edited.
-     */
-    protected String converterType;
-    
-    /**
-     * An interface that can be overridden in sub-classes 
-     * to whom the type
-     * converted is important.
-     *
-     * @see BaseEnumConverter
-     */
-    protected void setConverterType(String type) {
-        converterType = type;
-    }
-    
-    /**
-     * Returns the type of object converted by this converter.
-     */
-    public String getConverterType() {
-        return (converterType);
-    }
-    
-    /* BEGIN JSTYLED */
-    /**
-     * Returns the string representation for an instance of 
-     * the type this
-     * converter converts.  Must be declared in subclasses 
-     * to convert an
-     * object of the type specific to that subclass of Converter.
-     * <p>
-     * One of the two "convertToString" methods must be overridden in
-     * the converter sub-class.  The overridden "convertToString" 
-     * method
-     * should NOT call "super.convertToString".  It is preferrable to
-     * override the StringBuffer version (the other one) because this
-     * will result in better performance.
-     */
-    /* END JSTYLED */
-    public String convertToString(Object obj) {
-        enterConvert(TOSTRING, false);
-        StringBuffer buf = new StringBuffer();
-        convertToString(obj, buf);
-        exitConvert(TOSTRING, false);
-        
-        return buf.toString();
-    }
-    
-    /**
-     * Places a string representation of an instance of the type this
-     * converter converts into a string buffer.
-     */
-    public void convertToString(Object obj, StringBuffer buf) {
-        enterConvert(TOSTRING, true);
-        buf.append(convertToString(obj));
-        exitConvert(TOSTRING, true);
-    }
-    
-    /**
-     * Returns a new instance of the type this converter converts, as
-     * specified by the string given.  Must be declared 
-     * in subclasses of
-     * Converter to convert a string representation into an object of
-     * the type converted by the subclass.
-     */
-    public abstract Object convertFromString(String s);
-    
-    /**
-     * Converts an instance of the type into a block of code.
-     */
-    public void convertToCodeBlock(String amName,
-				   Attribute a, int indent, StringBuffer buf) {
-        
-        Converter c = getConverter(a.getType());
-        String attr_name;
-        
-        indent(buf, indent);
-        buf.append(amName);
-        buf.append(/* NOI18N */".set(\"");
-        attr_name = a.getName();
-        buf.append(attr_name);
-        buf.append(/* NOI18N */"\", ");
-        buf.append(c.convertToCode(a.getValue()));
-        buf.append(/* NOI18N */");");
-        newline(buf);
-    }
-    
-    /**
-     * Converts an instance of the type converted into a line of code.
-     * This method provides a default way for any type to get a
-     * convertToCode method into it.  It generates code that will feed
-     * the string representation of the object into the 
-     * appropriate type
-     * converter.  The performance isn't as good as customized
-     * convertToCode functions in subclasses since more classes have to
-     * be loaded at runtime.
-     */
-    public String convertToCode(Object obj) {
-        if (obj != null)
-            return (/* NOI18N */"convert(\"" +
-		    obj.getClass().getName() + /* NOI18N */"\", \""
-		    + convertToString(obj) + /* NOI18N */"\")");
-        else
-            return (/* NOI18N */"null");
-    }
-    
-    /**
-     * Returns the string that should be displayed in the attribute
-     * editor.  Subclassers that want something displayed other than
-     * what is returned from convertToString should override this
-     * method to return that.
-     */
-    public String displayString(Object obj) {
-        return (convertToString(obj));
-    }
-    
-    /**
-     * Returns true if this type should be displayed in an editor.
-     *
-     * For the attribute editor, a return value of false means that the
-     * the textfield will be hidden.
-     *
-     * @return true
-     */
-    public boolean viewableAsString() {
-        return true;
-    }
-    
-    /**
-     * Returns true if this type is simple enough to be 
-     * edited as a string
-     * in an editor.
-     *
-     * Sub-classers that represent type too complex for
-     * this should override
-     * this function to return false.  For the attribute editor,
-     * this means
-     * that the textfield will be read-only.
-     *
-     * @see #viewableAsString
-     * @return same as viewableAsString
-     */
-    public boolean editableAsString() {
-        return viewableAsString();
-    }
-    
-    /**
-     * These weird looking enter/exit methods ensure that the converter
-     * sub-class is overriding at least one of the "convertToString"
-     * methods, and at least one of the "convertToCode" methods.
-     * An error will be thrown at runtime if this in not the case.
-     * If this check wasn't done here , then the failure to 
-     * override one
-     * of the methods would result in an infinite loop.
-     */
-    private static final int TOSTRING = 0;
-    private static final int TOCODE = 1;
-    
-    private boolean converting[] = {false, false};
-    private boolean isBuffered[] = {false, false};
-    private int convertRecurse[] = {0, 0};
-    
-    private void enterConvert(int c, boolean isBuffered) {
-        if (converting[c] && this.isBuffered[c] != isBuffered)
-            throw new Error(Global.getMsg(
-	  "sunsoft.jws.visual.rt.type.Converter.Sub-classes__of__Conve.22"));
-        
-        this.isBuffered[c] = isBuffered;
-        converting[c] = true;
-        convertRecurse[c]++;
-    }
-    
-    private void exitConvert(int c, boolean isBuffered) {
-        if (!converting[c])
-	    /* BEGIN JSTYLED */
-	    throw new Error(Global.getMsg("sunsoft.jws.visual.rt.type.Converter.Convert__exit__without.25"));
-                
-	if (this.isBuffered[c] != isBuffered)
-	    throw new Error(Global.getMsg("sunsoft.jws.visual.rt.type.Converter.isBuffered__mismatch__.26"));
-                
-	/* END JSTYLED */
-	convertRecurse[c]--;
-        if (convertRecurse[c] == 0)
-            converting[c] = false;
-    }
-    /* BEGIN JSTYLED */
-    // ------ Utility Functions ----------------------------------------------
-            
-    /**
-     * Returns a string that can be used as a newline.  
-     * This string includes
-     * a carriage return if we are running on Windows.
-     */
-    /* END JSTYLED */
-    public static String newline() {
-        return Global.newline();
-    }
-    
-    /**
-     * Appends a newline to buf.  This also appends a carriage return
-     * if we are running on Windows.
-     */
-    public static void newline(StringBuffer buf) {
-        Global.newline(buf);
-    }
-    
-    private static final String indentString = /* NOI18N */"  ";
-    private static int indentLevel = 0;
-    
-    /**
-     * Appends spaces to "buf" based on the current indent level.
-     */
-    protected static void indent(StringBuffer buf) {
-        for (int i = 0; i < indentLevel; i++)
-            buf.append(indentString);
-    }
-    
-    /**
-     * Appends spaces to "buf" based on the given indent level.
-     */
-    protected static void indent(StringBuffer buf, int indentLevel) {
-        for (int i = 0; i < indentLevel; i++)
-            buf.append(/* NOI18N */ ' ');
-    }
-    
-    /**
-     * Increments the indent level.
-     */
-    protected static void incrIndent() {
-        indentLevel++;
-    }
-    
-    /**
-     * Decrements the indent level.
-     */
-    protected static void decrIndent() {
-        indentLevel--;
-    }
-    
-    /**
-     * Returns the current indent level.
-     */
-    protected static int indentLevel() {
-        return indentLevel;
-    }
-    
-    /**
-     * Returns the last token in a class name.  i.e. the name that you
-     * can use for a class when you've imported the class already.
-     */
-    public static String shortClassName(String className) {
-        int index = className.lastIndexOf(/* NOI18N */ '.');
-        if (index == -1)
-            return (className);
-        else
-            return (className.substring(index + 1));
-    }
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DimensionConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) DimensionConverter.java 1.12 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Dimension;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-/**
- * Converts Dimension objects to strings and back again.  The format
- * of the string representation is "width=#;height=#", where # can be
- * any non-negative number.
- *
- * @see Dimension
- * @version 1.12, 07/25/97
- */
-public class DimensionConverter extends Converter {
-    public String convertToString(Object obj) {
-        if (obj == null)
-            return /* NOI18N */"";
-        
-        Dimension d = (Dimension)obj;
-        return (/* NOI18N */"width=" + d.width
-		+ /* NOI18N */";height=" + d.height);
-    }
-    
-    public Object convertFromString(String s) {
-        if (s == null || s.length() == 0)
-            return null;
-        
-        SubFieldTokenizer sft = new SubFieldTokenizer(s);
-        Hashtable table = sft.getHashtable();
-        Dimension d = new Dimension();
-        
-        Enumeration e = table.keys();
-        while (e.hasMoreElements()) {
-            String key = (String)e.nextElement();
-            if (!key.equals(/* NOI18N */"width") &&
-		!key.equals(/* NOI18N */"height")) {
-		/* BEGIN JSTYLED */
-		// throw new ParseException(/* NOI18N */"Illegal dimension value: " + key);
-		throw new ParseException(Global.fmtMsg(
-						       "sunsoft.jws.visual.rt.type.DimensionConverter.FMT.31",
-						       Global.getMsg("sunsoft.jws.visual.rt.type.DimensionConverter.illegal__dimension__value"),
-						       key));
-		/* END JSTYLED */
-            }
-        }
-        
-        if (table.containsKey(/* NOI18N */"width"))
-            d.width = getIntegerFromTable(table, /* NOI18N */"width");
-        if (table.containsKey(/* NOI18N */"height"))
-            d.height = getIntegerFromTable(table, /* NOI18N */"height");
-        
-        return d;
-    }
-    
-    private int getIntegerFromTable(Hashtable table, String key) {
-        String value = (String) table.get(key);
-        if (value != null) {
-            try {
-                return Integer.valueOf(value).intValue();
-            }
-            catch (NumberFormatException ex) {
-                /* JSTYLED */
-		throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.DimensionConverter.Badly__formatted__dime.27") + value);
-            }
-        } else {
-            return (0);
-        }
-    }
-    
-    public String convertToCode(Object obj) {
-        if (obj == null) {
-            return /* NOI18N */"new java.awt.Dimension()";
-        } else {
-            Dimension d = (Dimension)obj;
-            return (/* NOI18N */"new java.awt.Dimension(" + d.width
-		    + /* NOI18N */", " + d.height + /* NOI18N */")");
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DoubleArrayConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
- * 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.
- *
- * @(#) DoubleArrayConverter.java 1.15 - last change made 06/17/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Attribute;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.Vector;
-import java.util.StringTokenizer;
-
-/**
-* Converts array of double to a string and back again.
-* The string representation is a single line of 
-* comma-separated numbers.
-*
-* @version 	1.15, 06/17/97
-*/
-public class DoubleArrayConverter extends Converter {
-    /**
-     * Converts and array of double to a string representation.
-     */
-    public String convertToString(Object obj) {
-        if (obj != null) {
-            double[] a = (double[]) obj;
-            
-            StringBuffer retval = new StringBuffer();
-            for (int i = 0; i < a.length; i++) {
-                retval.append(a[i]);
-                if (i != (a.length-1))
-                    retval.append(/* NOI18N */",");
-            }
-            
-            return (retval.toString());
-        } else {
-            return (/* NOI18N */"");
-        }
-    }
-    
-    /**
-     * Converts a string to an array of double.
-     *
-     * @exception ParseException when one of the numbers 
-     * is badly formatted
-    */
-    public Object convertFromString(String s) {
-        if (s != null) {
-            Vector doublebuf = new Vector();
-            
-            StringTokenizer st = new StringTokenizer(s, /* NOI18N */",");
-            for (; st.hasMoreTokens(); ) {
-                try {
-                    s = st.nextToken().trim();
-                    doublebuf.addElement(Double.valueOf(s));
-                } catch (NumberFormatException e) {
-                    /* JSTYLED */
-		    throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.DoubleArrayConverter.Badly__formatted__doub.28") + s);
-                }
-            }
-            
-            if (doublebuf.size() > 0) {
-                double retval[] = new double[doublebuf.size()];
-                for (int i = 0; i < doublebuf.size(); i++)
-                    retval[i] = ((Double) doublebuf.elementAt(i)).
-			doubleValue();
-                return (retval);
-            }
-        }
-        return (null);
-    }
-    
-    /**
-     * Converts an array of double (stored in an attribute) into 
-     * a block
-     * of code that will create the array without using this
-     * converter at
-     * runtime.
-     */
-    public void convertToCodeBlock(String amName, Attribute a,
-				   int indent, StringBuffer buf) {
-        indent(buf, indent);
-        buf.append(/* NOI18N */"{");
-        Global.newline(buf);
-        
-        indent += 2;
-        indent(buf, indent);
-        buf.append(/* NOI18N */"double _tmp[] = {");
-        convertToString(a.getValue(), buf);
-        buf.append(/* NOI18N */"};");
-        Global.newline(buf);
-        
-        super.convertToCodeBlock(amName, a, indent, buf);
-        
-        indent -= 2;
-        indent(buf, indent);
-        buf.append(/* NOI18N */"}");
-        Global.newline(buf);
-    }
-    
-    /**
-     * Use convertToCodeBlock instead.
-     */
-    public String convertToCode(Object obj) {
-        return (/* NOI18N */"_tmp");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/DoubleHolder.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * 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.
- *
- * @(#) DoubleHolder.java 1.2 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * A utility class that can be used to pass a mutable double preceision
- * number by reference.
- *
- * @version 	1.2, 07/18/96
- */
-public class DoubleHolder {
-    public double value;
-    
-    public DoubleHolder() {}
-    
-    public DoubleHolder(double value) {
-        this.value = value;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/FontConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
- * 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.
- *
- * @(#) FontConverter.java 1.14 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.awt.Font;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/**
- * Converts Font objects to strings and back again.  An example of the
- * string representation: "name=Helvetica;style=bold;size=14".  The
- * styles that can currently be used are "plain", "bold", and
- * "italic".
- *
- * @version 1.14, 07/25/97
- */
-public class FontConverter extends Converter {
-    
-    private static final int styleDefault = Font.PLAIN;
-    private static final int sizeDefault = 12;
-    
-    /**
-     * Converts a Font instance to a string.
-     */
-    public String convertToString(Object obj) {
-        if (obj == null)
-            return /* NOI18N */"";
-        
-        Font font = (Font) obj;
-        String style;
-        
-        switch (font.getStyle()) {
-	case Font.PLAIN:
-            style = /* NOI18N */"plain";
-            break;
-	case Font.BOLD:
-            style = /* NOI18N */"bold";
-            break;
-	case Font.ITALIC:
-            style = /* NOI18N */"italic";
-            break;
-	default:
-            /* JSTYLED */
-	    System.out.println(Global.getMsg("sunsoft.jws.visual.rt.type.FontConverter.Warning-co-__unknown__fon.29") + font.getStyle());
-            style = /* NOI18N */"plain";
-            break;
-        }
-        
-        return (/* NOI18N */"name=" + font.getName()
-		+ /* NOI18N */";style=" + style
-		+ /* NOI18N */";size=" + font.getSize());
-    }
-    
-    /**
-     * Converts a string to a new instance of Font.
-     *
-     * @exception ParseException when there is a format 
-     * problem with the string
-    */
-    public Object convertFromString(String s) {
-        if (s == null || s.length() == 0)
-            return null;
-        
-        SubFieldTokenizer sft = new SubFieldTokenizer(s);
-        Hashtable table = sft.getHashtable();
-        
-        String name = (String) table.get(/* NOI18N */"name");
-        if (name == null || name.length() <= 0)
-	    /* BEGIN JSTYLED */
-	    throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.FontConverter.Missing__font__name-co-__") + s);
-	/* END JSTYLED */
-	int style;
-        String styleString = (String) table.get(/* NOI18N */"style");
-        if (styleString != null) {
-            if (styleString.equals(/* NOI18N */"italic"))
-                style = Font.ITALIC;
-            else if (styleString.equals(/* NOI18N */"bold"))
-                style = Font.BOLD;
-            else if (styleString.equals(/* NOI18N */"plain"))
-                style = Font.PLAIN;
-            else {
-		/* BEGIN JSTYLED */
-		throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.FontConverter.Invalid__font__style-co-__.30") + s);
-		/* END JSTYLED */
-            }
-        } else {
-            style = styleDefault;
-        }
-        
-        int size;
-        String sizeString = (String) table.get(/* NOI18N */"size");
-        if (sizeString != null) {
-            try {
-                size = Integer.valueOf(sizeString).intValue();
-            } catch (NumberFormatException e) {
-		/* BEGIN JSTYLED */
-		throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.FontConverter.Invalid__font__size-co-__") + s);
-	    }
-	    if (size <= 0) {
-		throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.FontConverter.Negative__font__size-co-__.31") + s);
-		/* END JSTYLED */
-            }
-        } else {
-            size = sizeDefault;
-        }
-        
-        return (new Font(name, style, size));
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/GBConstraintsConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
- * 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);
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ImageRef.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageRef.java 1.17 - last change made 08/07/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-import sunsoft.jws.visual.rt.base.VJException;
-
-import java.awt.Component;
-import java.awt.Image;
-import java.awt.MediaTracker;
-import java.awt.image.ImageObserver;
-import java.applet.Applet;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-/**
- * Stores an image and the URL or filename that it came from.  This
- * class is capable of converting a filename to a URL and will do so
- * in order to load the image using a "file:" URL.  The creation of
- * the image is delayed until the image is requested.
- *
- * @see Image
- * @version 1.17, 08/07/96
- */
-public class ImageRef implements ImageObserver {
-    private Image img;
-    private String filename;
-    private URL url;
-    private int imgWidth, imgHeight;
-    private boolean gotWidth, gotHeight;
-    private boolean errorFlagged = false;	// set in imageUpdate
-    /* JSTYLED */
-    private boolean disableErrorPrint = false;	// allow println in imageUpdate
-    
-    /**
-     * Constructs a new instance of ImageRef that use a
-     * URL to find the image when it is requested.  
-     * The size of the image
-     * cannot be appended to the URL.
-     */
-    public ImageRef(URL url) {
-        init(null, url, -1, -1);
-    }
-    
-    /**
-     * Constructs a new instance of ImageRef given the name of a file
-     * for the image.  The filename may be relative to the codebase or
-     * any of the directories in the classpath.  The size of the image
-     * may be appended to the filename to help with initial layout of
-     * widgets containing images, like this: "imagefile.gif;24x48".
-     */
-    public ImageRef(String filename) {
-        int index = filename.indexOf(/* NOI18N */ ';');
-        if (index != -1) {
-            String dims = filename.substring(index+1);
-            filename = filename.substring(0, index);
-            
-            index = dims.indexOf(/* NOI18N */ 'x');
-            
-            try {
-                int w, h;
-                
-                w = Integer.parseInt(dims.substring(0, index));
-                h = Integer.parseInt(dims.substring(index+1));
-                
-                init(filename, null, w, h);
-            } catch (Exception e) {
-                init(filename, null, -1, -1);
-            }
-        } else {
-            init(filename, null, -1, -1);
-        }
-    }
-    
-    private void init(String filename, URL url, int imgWidth,
-		      int imgHeight) {
-        this.img = null;
-        this.filename = filename;
-        this.url = url;
-        this.imgWidth = imgWidth;
-        this.imgHeight = imgHeight;
-    }
-    
-    /**
-     * Gets the image stored here (or referenced by the URL).  */
-    public Image getImage(Component comp, Applet applet) {
-        try {
-            cacheImage(comp, applet);
-        }
-        catch (VJException vje) {
-            return null;
-        }
-        return img;
-    }
-    
-    /**
-     * Returns the width of the image.  If the image is not yet loaded,
-     * then returns the expected width of the image.
-     */
-    public int getWidth(Component comp, Applet applet) {
-        try {
-            cacheImage(comp, applet);
-        }
-        catch (VJException vje) {
-            return 0;
-        }
-        return imgWidth;
-    }
-    
-    /**
-     * Returns the height of the image.  If the image is not 
-     * yet loaded,
-     * then returns the expected height of the image.
-     */
-    public int getHeight(Component comp, Applet applet) {
-        try {
-            cacheImage(comp, applet);
-        }
-        catch (VJException vje) {
-            return 0;
-        }
-        return imgHeight;
-    }
-    
-    /**
-     * Returns the URL stored here.
-     */
-    public URL getURL() {
-        return (url);
-    }
-    
-    /**
-     * Returns the file name of the image.
-     */
-    public String getFileName() {
-        String name;
-        
-        if (filename != null)
-            name = filename;
-        else
-            name = getURL().toExternalForm();
-        
-        return name;
-    }
-    
-    /**
-     * Returns the preferred string representation of this 
-     * image reference.
-    */
-    public String toString() {
-        String s = getFileName();
-        
-        if (imgWidth != -1 && imgHeight != -1)
-            s = s + /* NOI18N */";" + imgWidth + /* NOI18N */"x"
-		+ imgHeight;
-        
-        return s;
-    }
-    
-    /**
-     * Start loading the image if we haven't already.  
-     * Attempt to cache the
-     * width and height of the image.
-     */
-    private void cacheImage(Component comp, Applet applet)
-	throws VJException {
-        if (img != null)
-            return;
-        
-        if (url == null) {
-            url = Global.util.pathToURL(filename, applet);
-            if (url == null)
-		/* BEGIN JSTYLED */ 
-		throw new VJException(Global.fmtMsg(
-						    "sunsoft.jws.visual.rt.type.ImageRef.FMT.32",
-						    Global.getMsg("sunsoft.jws.visual.rt.type.ImageRef.could__not__find__file__.32"),
-						    filename,
-						    Global.getMsg("sunsoft.jws.visual.rt.type.ImageRef.-ba--qu-__relative__to__class.33")));
-	    /* END JSTYLED */
-	}
-        
-        img = comp.getToolkit().getImage(url);
-        if (img == null)
-            return;
-        
-        int w = img.getWidth(this);
-        if (w != -1)
-            imgWidth = w;
-        
-        int h = img.getHeight(this);
-        if (h != -1)
-            imgHeight = h;
-    }
-    
-    /**
-     * Verifies that the image for this image ref loaded successfully,
-     * returns true if it does.  Warning: will wait until image is
-     * loaded before returning, so you shouldn't make this call unless
-     * you are really interested in reporting an error message when
-     * images can't be loaded.
-     */
-    public boolean verifyImage(Component comp, Applet applet) {
-        disableErrorPrint = true;
-        
-        if (img != null) {
-            // image has already been set up
-            if (errorFlagged)
-                return false;
-            if (gotWidth && gotHeight)
-                return true;
-        } else {
-            // set up the image
-            try {
-                cacheImage(comp, applet);
-            }
-            catch (VJException vje) {
-                return false;
-            }
-            return true;
-        }
-        
-        // start loading the image and wait for it to finish
-        MediaTracker tracker = new MediaTracker(comp);
-        tracker.addImage(img, 0);
-        try {
-            tracker.waitForID(0);
-        }
-        catch (InterruptedException e) {
-            return false;
-        }
-        return ((tracker.statusID(0, false)
-		 & MediaTracker.ERRORED) == 0);
-    }
-    
-    /**
-     * Gets called when an update of the image's width 
-     * and height are available.
-    */
-    public boolean imageUpdate(Image img, int infoflags,
-			       int x, int y, int width, int height) {
-        if (((infoflags & ERROR) != 0) && !errorFlagged) {
-            if (!disableErrorPrint)
-                /* JSTYLED */
-		System.out.println(Global.getMsg("sunsoft.jws.visual.rt.type.ImageRef.Error-co-__could__not__loa.34")
-				   + getFileName() + /* NOI18N */"\"");
-            errorFlagged = true;
-        }
-        
-        if ((infoflags & WIDTH) != 0) {
-            gotWidth = true;
-            imgWidth = width;
-        }
-        
-        if ((infoflags & HEIGHT) != 0) {
-            gotHeight = true;
-            imgHeight = height;
-        }
-        
-        return (gotWidth && gotHeight);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ImageRefConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * 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.
- *
- * @(#) ImageRefConverter.java 1.14 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.net.URL;
-import java.net.MalformedURLException;
-
-/**
- * Converts Image filenames/urls (strings) to instances of ImageRef and
- * back again.
- *
- * @see ImageRef
- * @version 	1.14, 07/25/97
- */
-public class ImageRefConverter extends Converter {
-    /**
-     * Converts an ImageRef to a string.
-     * 
-     * @param obj an instance of ImageRef
-     */
-    public String convertToString(Object obj) {
-        if (obj != null)
-            return (((ImageRef) obj).toString());
-        else
-            return (/* NOI18N */"");
-    }
-    
-    /**
-     * Converts a string to a new instance of ImageRef.
-     */
-    public Object convertFromString(String s) {
-        if (s != null && !s.equals(/* NOI18N */""))
-            return (new ImageRef(s));
-        else
-            return (null);
-    }
-    
-    /**
-     * Returns code that will create a new instance 
-     * of an ImageRef like the one
-     * given.
-     *
-     * @param obj an instance of ImageRef
-     */
-    public String convertToCode(Object obj) {
-        StringBuffer buf = new StringBuffer();
-        
-        if (obj == null)
-            buf.append(/* NOI18N */"null");
-        else {
-            buf.append(/* NOI18N */"new ImageRef(");
-            ListParser.quote(convertToString(obj), buf, true);
-            buf.append(/* NOI18N */")");
-        }
-        
-        return buf.toString();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/InsetsConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
- * 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.
- *
- * @(#) InsetsConverter.java 1.12 - last change made 05/02/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.Insets;
-import java.util.*;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * Converts Insets to strings and back again.
- * An example of the inset string format: "top=14;left=5;bottom=10;right=4".
- *
- * @see Insets
- * @version 	1.12, 05/02/97
- */
-public class InsetsConverter extends Converter {
-    
-	/**
-	 * Converts an instance of Insets to its string representation.
-	 *
-	 * @param obj an instance of Insets
-	 */
-	public String convertToString(Object obj) {
-		if (obj == null)
-			return /* NOI18N */"top=0;left=0;bottom=0;right=0;";
-		String s = /* NOI18N */"";
-		Insets insets = (Insets)obj;
-        
-        
-		s = s + /* NOI18N */"top=" + insets.top + /* NOI18N */";";
-        
-		s = s + /* NOI18N */"left=" + insets.left + /* NOI18N */";";
-        
-		s = s + /* NOI18N */"bottom=" + insets.bottom
-			+ /* NOI18N */";";
-        
-		s = s + /* NOI18N */"right=" + insets.right + /* NOI18N */";";
-        
-		return s;
-	}
-    
-	private int getIntegerFromTable(Hashtable table, String key) {
-		String value = (String) table.get(key);
-		if (value != null) {
-			try {
-				return Integer.valueOf(value).intValue();
-			}
-			catch (NumberFormatException ex) {
-				throw new ParseException(Global.fmtMsg(
-			"sunsoft.jws.visual.rt.type.InsetsConverter.BadInsets",
-					value));
-			}
-		} else {
-			return (0);
-		}
-	}
-    
-	/**
-	 * Returns a new instance of Insets according to the string 
-	 * representation
-	 * given.
-	 *
-	 * @exception ParseException when there is a format error in the
-	 * string
-	 */
-	public Object convertFromString(String s) {
-		if (s == null || s.length() == 0)
-			return null;
-        
-		SubFieldTokenizer sft = new SubFieldTokenizer(s);
-		Hashtable table = sft.getHashtable();
-		Insets insets = new Insets(0, 0, 0, 0);
-        
-		Enumeration e = table.keys();
-		while (e.hasMoreElements()) {
-			String key = (String)e.nextElement();
-			if (!key.equals(/* NOI18N */"top") && !key.equals
-			    (/* NOI18N */"bottom") &&
-			    !key.equals(/* NOI18N */"left") && !key.equals
-			    (/* NOI18N */"right")) {
-				/* JSTYLED */
-				throw new ParseException(Global.fmtMsg(
-		"sunsoft.jws.visual.rt.type.InsetsConverter.IllegalInsets",
-		key));
-			}
-		}
-        
-		if (table.containsKey(/* NOI18N */"top"))
-			insets.top = getIntegerFromTable(table,
-							/* NOI18N */"top");
-		if (table.containsKey(/* NOI18N */"left"))
-			insets.left = getIntegerFromTable(table,
-							/* NOI18N */"left");
-		if (table.containsKey(/* NOI18N */"bottom"))
-			insets.bottom = getIntegerFromTable(table,
-						    /* NOI18N */"bottom");
-		if (table.containsKey(/* NOI18N */"right"))
-			insets.right = getIntegerFromTable(table,
-							/* NOI18N */"right");
-        
-		return insets;
-	}
-    
-	/**
-	 * Returns code to create an instance of Insets like the one given.
-	 *
-	 * @param obj an instance of Insets
-	 */
-	public String convertToCode(Object obj) {
-		if (obj == null) {
-			return /* NOI18N */"null";
-		} else {
-			Insets i = (Insets)obj;
-			return (/* NOI18N */"new java.awt.Insets(" +
-			    i.top + /* NOI18N */", " + i.left + /* NOI18N */", "
-				+ i.bottom + /* NOI18N */", " + i.right
-				+ /* NOI18N */")");
-            
-		}
-	}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntArrayConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * 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.
- *
- * @(#) IntArrayConverter.java 1.14 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Attribute;
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.Vector;
-import java.util.StringTokenizer;
-
-/**
-* Converts array of int to a string and back again.
-* The string representation is a single line of 
-* comma-separated numbers.
-*
-* @version 	1.14, 07/25/97
-*/
-public class IntArrayConverter extends Converter {
-    /**
-     * Converts and array of int to a string representation.
-     */
-    public String convertToString(Object obj) {
-        if (obj != null) {
-            int[] a = (int[]) obj;
-            
-            StringBuffer retval = new StringBuffer();
-            for (int i = 0; i < a.length; i++) {
-                retval.append(a[i]);
-                if (i != (a.length-1))
-                    retval.append(/* NOI18N */",");
-            }
-            
-            return (retval.toString());
-        } else {
-            return (/* NOI18N */"");
-        }
-    }
-    
-    /**
-     * Converts a string to an array of int.
-     *
-     * @exception ParseException when one of the numbers 
-     * is badly formatted
-    */
-    public Object convertFromString(String s) {
-        if (s != null) {
-            Vector intbuf = new Vector();
-            
-            StringTokenizer st = new StringTokenizer(
-						     s, /* NOI18N */",");
-            for (; st.hasMoreTokens(); ) {
-                try {
-                    s = st.nextToken().trim();
-                    intbuf.addElement(Integer.valueOf(s));
-                } catch (NumberFormatException e) {
-                    /* JSTYLED */
-		    throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.IntArrayConverter.BadFormatInteger", s));
-                }
-            }
-            
-            if (intbuf.size() > 0) {
-                int retval[] = new int[intbuf.size()];
-                for (int i = 0; i < intbuf.size(); i++)
-                    retval[i] = ((Integer) intbuf.elementAt(i)).intValue();
-                return (retval);
-            }
-        }
-        return (null);
-    }
-    
-    /**
-     * Converts an array of int (stored in an attribute) into a block
-     * of code that will create the array without using 
-     * this converter at
-     * runtime.
-     */
-    public void convertToCodeBlock(String amName, Attribute a,
-				   int indent, StringBuffer buf) {
-        indent(buf, indent);
-        buf.append(/* NOI18N */"{");
-        Global.newline(buf);
-        
-        indent += 2;
-        indent(buf, indent);
-        buf.append(/* NOI18N */"int _tmp[] = {");
-        convertToString(a.getValue(), buf);
-        buf.append(/* NOI18N */"};");
-        Global.newline(buf);
-        
-        super.convertToCodeBlock(amName, a, indent, buf);
-        
-        indent -= 2;
-        indent(buf, indent);
-        buf.append(/* NOI18N */"}");
-        Global.newline(buf);
-    }
-    
-    /**
-     * Use convertToCodeBlock instead.
-     */
-    public String convertToCode(Object obj) {
-        return (/* NOI18N */"_tmp");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntHolder.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * 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.
- *
- * @(#) IntHolder.java 1.3 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * A utility class that can be used to pass a mutable integer
- * number by reference.
- *
- * @version 	1.3, 07/18/96
- */
-public class IntHolder {
-    public int value;
-    
-    public IntHolder() {}
-    
-    public IntHolder(int value) {
-        this.value = value;
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/IntegerConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) IntegerConverter.java 1.12 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-import sunsoft.jws.visual.rt.base.Global;
-
-/**
- * Converts Integers to strings and back again.
- *
- * @version 	1.12, 07/25/97
- */
-public class IntegerConverter extends Converter {
-    public String convertToString(Object obj) {
-        if (obj != null)
-            return (((Integer) obj).toString());
-        else
-            return (/* NOI18N */"0");
-    }
-    
-    /**
-     * Converts a string to a new instance of Integer.
-     *
-     * @exception ParseException when the string is badly formatted
-     */
-    public Object convertFromString(String s) {
-        Integer retval = null;
-        try {
-            retval = new Integer(s);
-        } catch (NumberFormatException e) {
-            /* JSTYLED */
-	    throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.IntArrayConverter.BadFormatInteger", s));
-        }
-        return (retval);
-    }
-    
-    public String convertToCode(Object obj) {
-        if (obj != null)
-            return (/* NOI18N */"new Integer(" +
-		    ((Integer) obj).toString() + /* NOI18N */")");
-        else
-            return (/* NOI18N */"new Integer(0)");
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ListParser.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1104 +0,0 @@
-/*
- * 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.
- *
- * @(#) ListParser.java 1.16 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Global;
-
-import java.util.*;
-
-/**
- * Utility class for parsing lists of things in the style of Tcl.
- *
- * @version 	1.16, 07/25/97
- */
-public class ListParser {
-    
-    // Character constants
-    private static final char CHAR_a	= /* NOI18N */ 'a';
-    private static final char CHAR_b	= /* NOI18N */ 'b';
-    private static final char CHAR_f	= /* NOI18N */ 'f';
-    private static final char CHAR_n	= /* NOI18N */ 'n';
-    private static final char CHAR_r	= /* NOI18N */ 'r';
-    private static final char CHAR_t	= /* NOI18N */ 't';
-    private static final char CHAR_x	= /* NOI18N */ 'x';
-    private static final char CHAR_A	= /* NOI18N */ 'A';
-    private static final char CHAR_F	= /* NOI18N */ 'F';
-    private static final char BACKSLASH	= /* NOI18N */ '\\';
-    private static final char BACKSPACE	= /* NOI18N */ '\b';
-    private static final char DQUOTE	= /* NOI18N */ '"';
-    private static final char EQUALS	= /* NOI18N */ '=';
-    private static final char FORMFEED	= /* NOI18N */ '\f';
-    private static final char LBRACE	= /* NOI18N */ '{';
-    private static final char NEWLINE	= /* NOI18N */ '\n';
-    private static final char NINE	= /* NOI18N */ '9';
-    private static final char NULL	= /* NOI18N */ '\0';
-    private static final char RBRACE	= /* NOI18N */ '}';
-    private static final char RETURN	= /* NOI18N */ '\r';
-    private static final char SPACE	= /* NOI18N */ ' ';
-    private static final char TAB		= /* NOI18N */ '\t';
-    private static final char ZERO	= /* NOI18N */ '0';
-    
-    private Vector list;
-    
-    public ListParser(String str) {
-        int begin = 0;
-        int end = str.length();
-        initList(str, begin, end);
-    }
-    
-    public ListParser(String str, int offset) {
-        int begin, end = str.length();
-        if (offset >= 0 && offset < end)
-            begin = offset;
-        else
-            begin = end;
-        
-        initList(str, begin, end);
-    }
-    
-    public ListParser(String str, int begin, int end) {
-        int len = str.length();
-        if (end < 0 || end > len)
-            end = len;
-        if (begin < 0)
-            begin = 0;
-        if (begin > end)
-            begin = end;
-        
-        initList(str, begin, end);
-    }
-    
-    public Enumeration elements() {
-        return list.elements();
-    }
-    
-    public int size() {
-        return list.size();
-    }
-    
-    private void initList(String str, int begin, int end) {
-        list = new Vector();
-        
-        int len = end-begin;
-        char buf[] = new char[len];
-        str.getChars(begin, end, buf, 0);
-        
-        parseList(list, buf);
-    }
-    
-    private void parseList(Vector list, char buf[]) {
-        nextIndex = 0;
-        
-        while (nextIndex < buf.length && buf[nextIndex] != 0) {
-            try {
-                findElement(buf, nextIndex);
-            }
-            catch (ParseException ex) {
-                list.removeAllElements();
-                throw ex;
-            }
-            
-            if (elementSize != 0 ||
-		(elementIndex < buf.length && buf[elementIndex] != 0)) {
-                if (brace) {
-                    list.addElement(new String(buf, elementIndex,
-					       elementSize));
-                } else {
-                    list.addElement(collapse(buf, elementIndex,
-					     elementSize));
-                }
-            }
-        }
-    }
-    
-    /* BEGIN JSTYLED */
-    /* 
-     *----------------------------------------------------------------------
-     *
-     * findElement --
-     *
-     *	Given a character buffer containing a Tcl list, locate the first
-     *    (or next) element in the list.
-     *
-     * Results:
-     *    None.
-     *
-     * Side effects:
-     *	If an exception is not thrown, then elementIndex will be set to
-     *    the position of the first element of the list, 
-     *     and nextIndex will
-     *    be set to the position of the character just after 
-     *     any white space
-     *    following the last character that's part of the element.  If this
-     *    is the last argument in the list, then nextIndex will point to the
-     *    NULL character at the end of list.  elementSize is set to
-     *	the number of characters in the element.  If the element is in
-     *	braces, then elementIndex will point to the character after the
-     *	opening brace and elementSize will not include either of the braces.
-     *	If there isn't an element in the list, elementSize will be zero,
-     *	elementIndex will refer to the null character at the end of list,
-     *    and brace will be set to true.
-     *
-     *    Note:  this procedure does NOT collapse backslash sequences.
-     *
-     *----------------------------------------------------------------------
-     */
-
-    /* END JSTYLED */
-    // Side effect variables
-    private int elementIndex;
-    private int nextIndex;
-    private int elementSize;
-    private boolean brace;
-    
-    private void findElement(char buf[], int offset) {
-        
-        int list = offset;
-        int p;
-        int openBraces = 0;
-        boolean inQuotes = false;
-        int size = 0;
-        char c;
-        
-        /*
-         * Skim off leading white space and check for 
-	 * an opening brace or
-	 * quote.
-	 */
-        
-        while (list < buf.length && Character.isSpace(buf[list])) {
-            list++;
-        }
-        
-        if (list < buf.length && buf[list] == LBRACE) {
-            openBraces = 1;
-            list++;
-        } else if (list < buf.length && buf[list] == DQUOTE) {
-            inQuotes = true;
-            list++;
-        }
-        brace = (openBraces == 1);
-        p = list;
-        
-        /*
-         * Find the end of the element (either a space or a 
-	 * close brace or
-	 * the end of the string).
-	 */
-        
-        try {
-            while (true) {
-                if (p < buf.length)
-                    c = buf[p];
-                else
-                    c = 0;
-                switch (c) {
-                    
-                    /*
-                     * Open brace: don't treat specially unless 
-		     * the element is
-		     * in braces.  In this case, keep a nesting count.
-		     */
-                    
-		case LBRACE:
-                    if (openBraces != 0) {
-                        openBraces++;
-                    }
-                    break;
-                    
-                    /*
-                     * Close brace: if element is in braces, 
-		     * keep nesting
-		     * count and quit when the last close brace
-		     * is seen.
-                    */
-                    
-		case RBRACE:
-                    if (openBraces == 1) {
-                        int p2;
-                        
-                        size = p - list;
-                        p++;
-                        if (p >= buf.length || buf[p] == 0 ||
-			    Character.isSpace(buf[p])) {
-                            throw new DoneException();
-                        }
-                        for (p2 = p; p2 < buf.length && buf[p2] != 0 &&
-				 !Character.isSpace(buf[p2]) && (p2 < p+20);
-			     p2++) {
-                            /* null body */
-                        }
-                        
-                        String err = new String(buf, p, p2-p);
-                        throw new ParseException(
-						 /* JSTYLED */
-						 Global.fmtMsg("sunsoft.jws.visual.rt.type.ListParser.SpaceExpected", String.valueOf(buf, p, p2-p)));
-                        
-                    } else if (openBraces != 0) {
-                        openBraces--;
-                    }
-                    break;
-                    
-                    /*
-                     * Backslash:  skip over everything up to 
-		     * the end of the
-		     * backslash sequence.
-		     */
-                    
-		case BACKSLASH: {
-		    IntHolder backslashSize = new IntHolder();
-		    backslash(buf, p, backslashSize);
-		    p += backslashSize.value - 1;
-		    break;
-		}
-                    
-		/*
-		 * Space: ignore if element is in braces or 
-		 * quotes;  otherwise
-		 * terminate element.
-		 */
-                    
-		case SPACE:
-		case FORMFEED:
-		case NEWLINE:
-		case RETURN:
-		case TAB:
-                    if ((openBraces == 0) && !inQuotes) {
-                        size = p - list;
-                        throw new DoneException();
-                    }
-                    break;
-                    
-                    /*
-                     * Double-quote:  if element is in quotes then 
-		     * terminate it.
-                    */
-                    
-		case DQUOTE:
-                    if (inQuotes) {
-                        int p2;
-                        
-                        size = p-list;
-                        p++;
-                        if (p >= buf.length || buf[p] == 0 ||
-			    Character.isSpace(buf[p])) {
-                            throw new DoneException();
-                        }
-                        for (p2 = p; (p2 < buf.length && buf[p2] != 0)
-				 &&
-				 (!Character.isSpace(buf[p2])) && (p2 < p+20);
-			     p2++) {
-                            /* null body */
-                        }
-                        
-                        throw new ParseException(
-						 /* JSTYLED */
-			 Global.fmtMsg("sunsoft.jws.visual.rt.type.ListParser.SpaceExpected2",
-		       String.valueOf(buf, p, p2-p), String.valueOf
-				       (buf, p, buf.length-1)));
-                        
-                    }
-                    break;
-                    
-                    /*
-                     * End of list:  terminate element.
-                     */
-                    
-		case 0:
-                    if (openBraces != 0) {
-			/* BEGIN JSTYLED */
-			throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.ListParser.UnmatchedBrace"));
-		    } else if (inQuotes) {
-			throw new ParseException(Global.getMsg("sunsoft.jws.visual.rt.type.ListParser.UnmatchedQuote"));
-		    }
-			    
-		    size = p - list;
-		    throw new DoneException();
-		}
-		p++;
-	    }
-	}
-	catch (DoneException ex) {
-	}
-                
-	while (p < buf.length && Character.isSpace(buf[p])) {
-	    p++;
-	}
-                
-	elementIndex = list;
-	nextIndex = p;
-	elementSize = size;
-    }
-            
-    /*
-     *----------------------------------------------------------------------
-     *
-     * collapse --
-     *
-     *	Return a new string after eliminating any backslashes that
-     *    aren't in braces.
-     *
-     * Results:
-     *	Returns a string that is a substring of buf starting at offset,
-     *    and count characters long.  If backslash sequences are found
-     *    outside braces, the backslashes are eliminated in the new string.
-     *
-     * Side effects:
-     *	None.
-     *
-     *----------------------------------------------------------------------
-     */
-    /* END JSTYLED */
-                        
-    private String collapse(char buf[], int offset, int count) {
-	int p = offset;
-	char c;
-	IntHolder numRead = new IntHolder();
-	char dst[] = new char[buf.length+1];
-	int p2 = 0;
-                            
-	while (count > 0) {
-	    if (p < buf.length)
-		c = buf[p];
-	    else
-		c = 0;
-                                
-	    if (c == BACKSLASH) {
-		dst[p2] = backslash(buf, p, numRead);
-		p2++;
-		p += numRead.value-1;
-		count -= numRead.value-1;
-	    } else {
-		dst[p2] = c;
-		p2++;
-	    }
-	    p++;
-	    count--;
-	}
-	dst[p2] = 0;
-                            
-	return new String(dst, 0, p2);
-    }
-                        
-	/*
-	*------------------------------------------
-	*
-	* backslash --
-	*
-	*	Figure out how to handle a backslash sequence.
-	*
-	* Results:
-	*	The return value is the character that should be substituted
-	*	in place of the backslash sequence that starts at src.
-	*	The "readPtr" variable is set to the number of characters
-	*    in the backslash sequence.
-	*
-	* Side effects:
-	*   none
-	*
-	* Parameters:
-	*   char buf[];		Character buffer containing
-	* the backslash
-	*				sequence.
-	*   int offset;		Offset within buf where the backslash
-	*				sequence begins.
-	*------------------------------------------
-	*/
-                        
-    private static char backslash(char buf[], int offset,
-				  IntHolder readPtr) {
-                            
-	int p = offset+1;
-	char result;
-	int count;
-	char c;
-                            
-	count = 2;
-                            
-	if (p < buf.length)
-	    c = buf[p];
-	else
-	    c = 0;
-	switch (c) {
-	case CHAR_a:
-	    result = 0x7;	/* Don't say '\a' here, */
-                                /* since some compilers */
-	    break;		/* don't support it. */
-	case CHAR_b:
-	    result = BACKSPACE;
-	    break;
-	case CHAR_f:
-	    result = FORMFEED;
-	    break;
-	case CHAR_n:
-	    result = NEWLINE;
-	    break;
-	case CHAR_r:
-	    result = RETURN;
-	    break;
-	case CHAR_t:
-	    result = TAB;
-	    break;
-	case CHAR_x:
-	    if (isxdigit(buf[p+1])) {
-		int p2 = p+1;
-		while (isxdigit(buf[p2])) {
-		    p2++;
-		}
-                                    
-		result = (char)
-		    Integer.parseInt(String.valueOf(buf, p+1, p2), 16);
-		count = p2 - offset;
-	    } else {
-		count = 2;
-		result = CHAR_x;
-	    }
-	    break;
-	case NEWLINE:
-	    do {
-		p++;
-	    } while ((buf[p] == SPACE) || (buf[p] == TAB));
-	    result = SPACE;
-	    count = p - offset;
-	    break;
-	case 0:
-	    result = BACKSLASH;
-	    count = 1;
-	    break;
-	default:
-	    if (isdigit(buf[p])) {
-		result = (char)(buf[p] - ZERO);
-		p++;
-		if (!isdigit(buf[p])) {
-		    break;
-		}
-		count = 3;
-		result = (char)((result << 3) + (buf[p] - ZERO));
-		p++;
-		if (!isdigit(buf[p])) {
-		    break;
-		}
-		count = 4;
-		result = (char)((result << 3) + (buf[p] - ZERO));
-		break;
-	    }
-	    result = buf[p];
-	    count = 2;
-	    break;
-	}
-                            
-	if (readPtr != null)
-	    readPtr.value = count;
-                            
-	return result;
-    }
-    /* BEGIN JSTYLED */
-            
-    /*
-     * The following values are used in the flags 
-     * returned by Tcl_ScanElement
-     * and used by Tcl_ConvertElement.  The value 
-     * TCL_DONT_USE_BRACES is also
-     * defined in tcl.h;  make sure its value doesn't 
-     * overlap with any of the
-     * values below.
-     *
-     * TCL_DONT_USE_BRACES -	1 means the string mustn't 
-     * be enclosed in
-     *				braces (e.g. it contains 
-     * unmatched braces,
-     *				or ends in a backslash 
-     * character, or user
-     *				just doesn't want braces);  handle all
-     *				special characters by adding 
-     * backslashes.
-     * USE_BRACES -		1 means the string contains a special
-     *				character that can be handled simply by
-     *				enclosing the entire argument 
-     * in braces.
-     * BRACES_UNMATCHED -		1 means that braces 
-     * aren't properly matched
-     *				in the argument.
-     */
-            
-    private static final int TCL_DONT_USE_BRACES = 1;
-    private static final int USE_BRACES = 2;
-    private static final int BRACES_UNMATCHED = 4;
-            
-    /*
-     *-----------------------------------
-     *
-     * scanElement --
-     *
-     *	This procedure is a companion procedure to Tcl_ConvertElement.
-     *	It scans a string to see what needs to be done to it (e.g.
-     *	add backslashes or enclosing braces) to make the string into
-     *	a valid Tcl list element.
-     *
-     * Results:
-     *	The return value is an overestimate of the number of characters
-     *	that will be needed by Tcl_ConvertElement to produce a valid
-     *	list element from string.  The word at *flagPtr is filled in
-     *	with a value needed by Tcl_ConvertElement when doing the actual
-     *	conversion.
-     *
-     * Side effects:
-     *	None.
-     *
-     *---------------------------------------
-    */
-            
-    // char *string;	/* String to convert to Tcl list element. */
-    // int *flagPtr;    /* Where to store information to guide */
-    //			     /* Tcl_ConvertElement. */
-
-	
-    private static int scanElement(char buf[], IntHolder flagPtr) {
-	int flags, nestingLevel;
-	int p;
-                
-	/*
-	 * This procedure and Tcl_ConvertElement together 
-	 * do two things:
-	 *
-	 * 1. They produce a proper list, one that will yield back the
-	 * argument strings when evaluated or when disassembled with
-	 * Tcl_SplitList.  This is the most important thing.
-	 * 
-	 * 2. They try to produce legible output, which means 
-	 *	 minimizing the
-	 * use of backslashes (using braces instead).  However, 
-	 *	 there are
-	 * some situations where backslashes must be used 
-	 * (e.g. an element
-	 * like "{abc": the leading brace will have to be 
-	 *	 backslashed.  For
-	 * each element, one of three things must be done:
-	 *
-	 * (a) Use the element as-is (it doesn't contain 
-	 *	 anything special
-	 * characters).  This is the most desirable option.
-	 *
-	 * (b) Enclose the element in braces, but leave the 
-	 *	 contents alone.
-	 * This happens if the element contains embedded space, 
-	 *	 or if it
-	 * contains characters with special interpretation 
-	 * ($, [, ;, or \),
-	 * or if it starts with a brace or double-quote, or 
-	 * if there are
-	 * no characters in the element.
-	 *
-	 * (c) Don't enclose the element in braces, but 
-	 *	 add backslashes to
-	 * prevent special interpretation of special characters.  
-	 *	 This is a
-	 * last resort used when the argument would normally 
-	 *	 fall under case
-	 * (b) but contains unmatched braces.  It also occurs 
-	 *	 if the last
-	 * character of the argument is a backslash or if the 
-	 *	 element contains
-	 * a backslash followed by newline.
-	 *
-	 * The procedure figures out how many bytes will be 
-	 *	 needed to store
-	 * the result (actually, it overestimates).  It also 
-	 *	 collects information
-	 * about the element in the form of a flags word.
-	 */
-                
-	/* END JSTYLED */
-	nestingLevel = 0;
-	flags = 0;
-	if (buf == null) {
-	    buf = new char[0];
-	}
-	p = 0;
-	if ((p >= buf.length) || (buf[p] == LBRACE) ||
-	    (buf[p] == DQUOTE) || (buf[p] == 0)) {
-	    flags |= USE_BRACES;
-	}
-	for (; p < buf.length && buf[p] != 0; p++) {
-	    switch (buf[p]) {
-	    case LBRACE:
-		nestingLevel++;
-		break;
-	    case RBRACE:
-		nestingLevel--;
-		if (nestingLevel < 0) {
-		    flags |= TCL_DONT_USE_BRACES|BRACES_UNMATCHED;
-		}
-		break;
-	    case SPACE:
-	    case FORMFEED:
-	    case NEWLINE:
-	    case RETURN:
-	    case TAB:
-		flags |= USE_BRACES;
-		break;
-	    case BACKSLASH:
-		if ((buf[p+1] == 0) || (buf[p+1] == NEWLINE)) {
-		    flags = TCL_DONT_USE_BRACES;
-		} else {
-		    IntHolder size = new IntHolder();
-                                    
-		    backslash(buf, p, size);
-		    p += size.value-1;
-		    flags |= USE_BRACES;
-		}
-		break;
-	    }
-	}
-	if (nestingLevel != 0) {
-	    flags = TCL_DONT_USE_BRACES | BRACES_UNMATCHED;
-	}
-	flagPtr.value = flags;
-                        
-	/*
-	 * Allow enough space to backslash every character plus leave
-	 * two spaces for braces.
-	 */
-                        
-	return 2*p + 2;
-    }
-                    
-    /* BEGIN JSTYLED */
-    /*
-     *------------------------------------------
-     *
-     * convertElement --
-     *
-     *	This is a companion procedure to scanElement.  Given the
-     *	information produced by scanElement, this procedure converts
-     *	a string to a list element equal to that string.
-     *
-     * Results:
-     *	Information is copied to *dst in the form of a list element
-     *	identical to src (i.e. if Tcl_SplitList is applied to dst it
-     *	will produce a string identical to src).  The return value is
-     *	a count of the number of characters copied (not including the
-     *	terminating NULL character).
-     *
-     * Side effects:
-     *	None.
-     *
-     *--------------------------------------
-    */
-    /* END JSTYLED */
-                    
-    // register char *src;  /* Source information for list element. */
-    // char *dst;	    /* Place to put list-ified element. */
-    // int flags;	    /* Flags produced by Tcl_ScanElement. */
-                    
-    private static int convertElement(char src[], char dst[],
-				      int flags) {
-                        
-	int p = 0;
-                        
-	/*
-	 * See the comment block at the beginning 
-	 * of the Tcl_ScanElement
-	 * code for details of how this works.
-	 */
-                        
-	if ((src == null) || (src.length == 0)) {
-	    dst[p] = LBRACE;
-	    dst[p+1] = RBRACE;
-	    dst[p+2] = 0;
-	    return 2;
-	}
-	if ((flags & USE_BRACES) != 0 &&
-	    (flags & TCL_DONT_USE_BRACES) == 0) {
-	    dst[p] = LBRACE;
-	    p++;
-	    for (int p2 = 0; p2 < src.length && src[p2] != 0;
-		 p++, p2++) {
-		dst[p] = src[p2];
-	    }
-	    dst[p] = RBRACE;
-	    p++;
-	} else {
-	    int p2 = 0;
-	    if (src[p2] == LBRACE) {
-                                /*
-                                 * Can't have a leading brace unless 
-				 * the whole element is
-				 * enclosed in braces.  Add a backslash
-				 * before the brace.
-				 * Furthermore, this may destroy the
-				 * balance between open
-				 * and close braces, so set BRACES_UNMATCHED.
-				 */
-                                
-		dst[p] = BACKSLASH;
-		dst[p+1] = LBRACE;
-		p += 2;
-		p2++;
-		flags |= BRACES_UNMATCHED;
-	    }
-	    for (; p2 < src.length && src[p2] != 0; p2++) {
-		switch (src[p2]) {
-		case SPACE:
-		case BACKSLASH:
-		case DQUOTE:
-		    dst[p] = BACKSLASH;
-		    p++;
-		    break;
-		case LBRACE:
-		case RBRACE:
-		    /* BEGIN JSTYLED */
-		    /*
-		     * It may not seem necessary to backslash 
-		     * braces, but
-		     * it is.  The reason for this is that 
-		     * the resulting
-		     * list element may actually be an 
-		     * element of a sub-list
-		     * enclosed in braces (e.g. if 
-		     * Tcl_DStringStartSublist
-		     * has been invoked), so there may be a 
-		     * brace mismatch
-		     * if the braces aren't backslashed.
-		     */
-		    /* END JSTYLED */
-                                    
-		    if ((flags & BRACES_UNMATCHED) != 0) {
-			dst[p] = BACKSLASH;
-			p++;
-		    }
-		    break;
-		case FORMFEED:
-		    dst[p] = BACKSLASH;
-		    p++;
-		    dst[p] = CHAR_f;
-		    p++;
-		    continue;
-		case NEWLINE:
-		    dst[p] = BACKSLASH;
-		    p++;
-		    dst[p] = CHAR_n;
-		    p++;
-		    continue;
-		case RETURN:
-		    dst[p] = BACKSLASH;
-		    p++;
-		    dst[p] = CHAR_r;
-		    p++;
-		    continue;
-		case TAB:
-		    dst[p] = BACKSLASH;
-		    p++;
-		    dst[p] = CHAR_t;
-		    p++;
-		    continue;
-		}
-		dst[p] = src[p2];
-		p++;
-	    }
-	}
-	dst[p] = NULL;
-	return p;
-    }
-                    
-    /*
-     * Returns a new string that is a listified version of the string
-     * argument.  The string will be enclosed with braces if necessary,
-     * and all special characters will be escaped.
-     */
-    public static String list(String string) {
-	char src[] = string.toCharArray();
-                        
-	IntHolder flagPtr = new IntHolder();
-	int len = scanElement(src, flagPtr);
-	char dst[] = new char[len+1];
-	len = convertElement(src, dst, flagPtr.value);
-                        
-	return new String(dst, 0, len);
-    }
-                    
-    /*
-     * Appends a new string to the string buffer argument that is a
-     * listified version of the string argument.  The string will be
-     * enclosed with braces if necessary, and all special characters
-     * will be escaped.
-     */
-    public static void list(String string, StringBuffer buf) {
-	char src[] = string.toCharArray();
-                        
-	IntHolder flagPtr = new IntHolder();
-	int len = scanElement(src, flagPtr);
-	char dst[] = new char[len+1];
-	len = convertElement(src, dst, flagPtr.value);
-                        
-	buf.append(dst, 0, len);
-    }
-                    
-    /*
-     * Returns a new string that is a quoted version of the string
-     * argument.  The string will be enclosed with quotes if necessary,
-     * and all special characters will be escaped.  If the forceQuotes
-     * argument is true, then the string will be enclosed with quotes
-     * even if it is not strictly necessary.  Also, if forceQuotes
-     * is true, then the '\n' character will be replaced with the
-     * string "\n".
-     */
-    public static String quote(String string, boolean forceQuotes) {
-	char src[] = string.toCharArray();
-	char dst[] = quote(src, forceQuotes);
-	return new String(dst);
-    }
-                    
-    /*
-     * Appends a new string to the string buffer argument that is a
-     * quoted version of the string argument.  The string will be
-     * enclosed with quotes if necessary, and all special characters
-     * will be escaped.  If the forceQuotes argument is true, then the
-     * string will be enclosed with quotes even if it is not strictly
-     * necessary.  Also, if forceQuotes is true, then the '\n' 
-     * character
-     * will be replaced with the string "\n".
-     */
-    public static void quote(String string, StringBuffer buf,
-			     boolean forceQuotes) {
-	char src[] = string.toCharArray();
-	char dst[] = quote(src, forceQuotes);
-	buf.append(dst);
-    }
-    /* BEGIN JSTYLED */
-    /**
-     * Puts quotes around the given character array if it 
-     *     contains spaces
-     * or double-quotes.  Only part of the string buffer 
-     *     is quoted, determined
-     * by the "startIndex" argument.  The substring of the 
-     *     buffer starting
-     * at "startIndex" and ending at the end of the buffer is quoted.
-     * This method operates on a string buffer instead of a string for
-     * improved performance.
-     *
-     * The "quote" method also does escaping.  A backslash is placed in
-     * front of any double-quote or backslash in the string 
-     *     itself.  Also,
-     * new-line characters are replaced with the 
-     *     characters \ and n
-     *
-     * Added argument: forceQuotes.  If this is true, then 
-     *     always put quotes
-     * around the text (necessary for code generation).  
-     *     Also, replace the
-     * '\n' character with the string "\n".
-     */
-    /* END JSTYLED */
-    public static char[] quote(char src[], boolean forceQuotes) {
-	boolean needQuotes;
-	int backslash = 0;
-                        
-	if (src.length == 0) {
-	    needQuotes = true;
-	} else {
-	    needQuotes = false;
-	    if (!forceQuotes && src[0] == LBRACE &&
-		src[src.length-1] == RBRACE) {
-		return src;
-	    }
-	}
-                        
-	for (int i = 0; i < src.length; i++) {
-	    switch (src[i]) {
-	    case LBRACE:
-	    case RBRACE:
-	    case SPACE:
-	    case TAB:
-		needQuotes = true;
-		break;
-                                
-	    case DQUOTE:
-	    case BACKSLASH:
-		needQuotes = true;
-		backslash++;
-		break;
-                                
-	    case FORMFEED:
-	    case RETURN:
-	    case NEWLINE:
-		needQuotes = true;
-		if (forceQuotes)
-		    backslash++;
-		break;
-	    }
-	}
-                        
-	int len = src.length + backslash;
-	if (needQuotes || forceQuotes)
-	    len += 2;
-                        
-	char dst[] = new char[len];
-	int p = 0;
-                        
-	if (needQuotes || forceQuotes)
-	    dst[p++] = DQUOTE;
-                        
-	for (int i = 0; i < src.length; i++) {
-	    switch (src[i]) {
-	    case DQUOTE:
-	    case BACKSLASH:
-		dst[p++] = BACKSLASH;
-		break;
-                                
-	    case FORMFEED:
-	    case RETURN:
-	    case NEWLINE:
-		if (forceQuotes) {
-		    dst[p++] = BACKSLASH;
-		    switch (src[i]) {
-		    case FORMFEED:
-			dst[p++] = CHAR_f;
-			break;
-		    case RETURN:
-			dst[p++] = CHAR_r;
-			break;
-		    case NEWLINE:
-			dst[p++] = CHAR_n;
-			break;
-		    }
-		    continue;
-		}
-		break;
-	    }
-	    dst[p++] = src[i];
-	}
-                        
-	if (needQuotes || forceQuotes)
-	    dst[p++] = DQUOTE;
-                        
-	return dst;
-    }
-    /* BEGIN JSTYLED */
-    /**
-     * Returns a string that can be used as a newline.  
-     * This string includes
-     * a carriage return if we are running on Windows.
-     */
-    /* END JSTYLED */
-    public static String newline() {
-	return (Global.newline());
-    }
-                    
-    /**
-     * Appends a newline to buf.  This also appends a carriage return
-     * if we are running on Windows.
-     */
-    public static void newline(StringBuffer buf) {
-	Global.newline(buf);
-    }
-                    
-    private static final String indentString = /* NOI18N */"  ";
-                    
-    /**
-     * Indents "buf" based on the given indent level.
-     */
-    public static void indent(StringBuffer buf, int indentLevel) {
-	for (int i = 0; i < indentLevel; i++)
-	    buf.append(indentString);
-    }
-                    
-    public static boolean isdigit(char ch) {
-	return Character.isDigit(ch);
-    }
-                    
-    public static boolean isxdigit(char ch) {
-	return
-	    ((ch >= ZERO) && (ch <= NINE)) ||
-	    ((ch >= CHAR_A) && (ch <= CHAR_F)) ||
-	    ((ch >= CHAR_a) && (ch <= CHAR_f));
-    }
-                    
-    public static Enumeration getListElements(String s, int mult) {
-	ListParser parser = new ListParser(s);
-                        
-	// if ((parser.size() % mult) != 0) {
-	/* JSTYLED */
-	// System.out.println("ParseWarning: Expecting a multiple of " + mult +
-	// " list elements, got " + parser.size());
-	// }
-                        
-	return parser.elements();
-    }
-                    
-    public static Hashtable makeListTable(String s) {
-	Enumeration e = getListElements(s, 2);
-	Hashtable table = new Hashtable();
-	while (e.hasMoreElements()) {
-	    try {
-		table.put((String)e.nextElement(),
-			  (String)e.nextElement());
-	    }
-	    catch (NoSuchElementException ex) {
-                                /* JSTYLED */
-		throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.ListParser.ExpectingTwoElements", s));
-	    }
-	}
-	return table;
-    }
-                    
-    public static int parseInt(String s) {
-	try {
-	    return Integer.parseInt(s);
-	}
-	catch (NumberFormatException ex) {
-	    throw new ParseException(/* NOI18N */"\n\t" +
-				     ex.toString());
-	}
-    }
-}
-                
-                
-/**
- * An Exception that can be thrown and caught internally by ListParser.
- *
- * @see ListParser
- * @version 1.16, 07/25/97
- */
-class DoneException extends Exception {
-    DoneException() {
-	super();
-    }
-                    
-    DoneException(String message) {
-	super(message);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Makefile	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-#
-# 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
-#
-#
-# Copyright (c) 1999-2000 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-#
-
-include $(SRC)/Makefile.master
-include $(SRC)/cmd/Makefile.cmd
-include ../Makefile.com
-
-CLASSES= AMConverter AMRef AMRefConverter \
-	AlignmentEnum AnchorEnum ApplyException \
-	AttributeConverter AttributeListConverter \
-	BaseEnum BaseEnumConverter BaseEnumHelper \
-	BooleanConverter CharacterConverter \
-	ColorConverter ColorStore Converter \
-	DimensionConverter DoubleArrayConverter \
-	DoubleHolder FontConverter GBConstraintsConverter \
-	ImageRef ImageRefConverter InsetsConverter \
-	IntArrayConverter IntHolder IntegerConverter \
-	ListParser ModeEnum Op OpAction \
-	OpArrayConverter OpFilter OrientationEnum \
-	ParseException PointConverter ReliefEnum \
-	StringArrayConverter StringConverter \
-	SubFieldTokenizer TypeEditor UnknownTypeConverter
-
-JFILES=$(CLASSES:%=%.java)
-
-CLFILES=$(CLASSES:%=%.class)
-
-.SUFFIXES: .java .class $(SUFFIXES)
-
-%.class: %.java
-	$(JAVAC) $(JAVAFLAGS) -d $(VRT) -classpath $(CLASSPATH) $<
-
-all: $(CLFILES)
-
-install: all
-
-clean clobber:
-	$(RM) *.class
-	$(RM) -r ./javadoc
-
-javadoc:
-	mkdir -p ./javadoc
-	$(JAVADOC) -d ./javadoc -classpath $(CLASSPATH) *.java
-
-_msg: $(JFILES)
-
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ModeEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
- * 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.
- *
- * @(#) ModeEnum.java 1.5 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.FileDialog;
-
-/**
- * A class that knows the different file dialog modes.
- *
- * @see FileDialog
- * @version 	1.5, 07/25/97
- */
-public class ModeEnum extends BaseEnum {
-    private static BaseEnumHelper helper = new BaseEnumHelper();
-    
-    static {
-        helper.add(FileDialog.LOAD, /* NOI18N */"load");
-        helper.add(FileDialog.SAVE, /* NOI18N */"save");
-        helper.setDefaultChoice(FileDialog.LOAD);
-    }
-    
-    /**
-     * Creates an instance with the choice set to FileDialog.LOAD.
-     */
-    public ModeEnum() {
-        super();
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given int value.
-     *
-     * @param choice FileDialog.LOAD or FileDialog.SAVE
-     */
-    public ModeEnum(int choice) {
-        super(choice);
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given string.
-     *
-     * @param choice "load" or "save"
-     */
-    public ModeEnum(String choice) {
-        super(choice);
-    }
-    
-    protected BaseEnumHelper getHelper() {
-        return (helper);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/Op.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-/*
- * 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.
- *
- * @(#) Op.java 1.15 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.awt.Event;
-import java.util.Hashtable;
-
-/**
- * Stores a single operation.  An operation is an action that will
- * take place when a particular kind of event comes in on the
- * component that owns the operation.  The operation has two main
- * subparts, the filter and the action.  The filter is used to
- * determine which events or messages trigger the performance of the
- * operation's action.  This class also simultaneously acts as its own
- * converter.
- *
- * @see OpFilter
- * @see OpAction
- * @version 1.15, 07/25/97
- */
-public class Op extends Converter implements Cloneable {
-    
-    // Register the converters
-    static {
-        Converter.addConverter(/* NOI18N */
-			       "sunsoft.jws.visual.rt.type.Op",
-			       /* NOI18N */"sunsoft.jws.visual.rt.type.Op");
-        Converter.addConverter(/* NOI18N */
-			       "[Lsunsoft.jws.visual.rt.type.Op;",
-	       /* NOI18N */"sunsoft.jws.visual.rt.type.OpArrayConverter");
-    }
-    
-    /**
-     * The Root object under which this operation is held.
-     */
-    public Root scope;
-    
-    /**
-     * The name of the operation.
-     */
-    public String name;
-    
-    /**
-     * The filter of the operation.  Used to determine 
-     * whether a particular
-     * event should trigger the operation.
-     */
-    public OpFilter filter;
-    
-    /**
-     * The action to be taken by the operation.
-     */
-    public OpAction action;
-    
-    /**
-     * Constructs a new instance.
-     */
-    public Op() {
-    }
-    
-    /**
-     * Constructs a new instance given a scope (attribute 
-     * manager tree root)
-     * in which to operate.
-     */
-    public Op(Root scope) {
-        this.scope = scope;
-    }
-    
-    /**
-     * Returns true if the message given matches the 
-     * filter for this operation.
-    */
-    public boolean matchMessage(Message msg) {
-        if (msg.isAWT)
-            return filter.match(msg, (Event)msg.arg);
-        else
-            return filter.match(msg);
-    }
-    
-    /**
-     * Returns true if this operation has code associated with it.
-     * The code will have been compiled in a separate section 
-     * of the generated
-     * Ops class and must be specially called upon.
-     */
-    public boolean hasCode() {
-        return (action != null &&
-		action.actionType == OpAction.CODE);
-    }
-    
-    /**
-     * Evokes the action of this operation if the message 
-     * given matches with
-     * the operation's filter.
-     */
-    public boolean handleMessage(Message msg) {
-        if (msg.isAWT)
-            return handleEvent(msg, (Event)msg.arg);
-        
-        if (filter.match(msg)) {
-            action.invoke(msg.target, msg.arg, scope);
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    /**
-     * Evokes the action of this operation if the event 
-     * given matches with
-     * the operation's filter.
-     */
-    public boolean handleEvent(Message msg, Event evt) {
-        if (filter.match(msg, evt)) {
-            action.invoke(msg.target, evt.arg, scope);
-            return true;
-        } else {
-            return false;
-        }
-    }
-    
-    /**
-     * Returns a new copy of this operation.  Makes new copies of the
-     * internal action and filter members as well.
-     */
-    public Object clone() {
-        Op op;
-        
-        try {
-            op = (Op)super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-        
-        if (op.filter != null)
-            op.filter = (OpFilter)op.filter.clone();
-        if (op.action != null)
-            op.action = (OpAction)op.action.clone();
-        
-        return op;
-    }
-    
-    //
-    // Code generation
-    //
-    
-    /**
-     * Appends the initialization code for this operation 
-     * into the buffer
-     * given.
-     *
-     * @param name name of the operation
-     * @param buf buffer onto which the code should be appended
-     */
-    public void genInitCode(StringBuffer buf, String name) {
-        Global.newline(buf);
-        buf.append(/* NOI18N */"    ");
-        buf.append(name);
-        buf.append(/* NOI18N */" = new Op(gui);");
-        Global.newline(buf);
-        
-        if (this.name != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(name);
-            buf.append(/* NOI18N */".name = ");
-            ListParser.quote(this.name, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (filter != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(name);
-            buf.append(/* NOI18N */".filter = new OpFilter();");
-            Global.newline(buf);
-            filter.genInitCode(buf, name + /* NOI18N */".filter");
-        }
-        
-        if (action != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(name);
-            buf.append(/* NOI18N */".action = new OpAction();");
-            Global.newline(buf);
-            action.genInitCode(buf, name + /* NOI18N */".action");
-        }
-    }
-    
-    public void convertToString(Object obj, StringBuffer buf) {
-        Op op = (Op)obj;
-        
-        if (op == null)
-            return;
-        
-        buf.append(/* NOI18N */"{");
-        newline(buf);
-        incrIndent();
-        
-        if (op.name != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"name ");
-            ListParser.quote(op.name, buf, false);
-            newline(buf);
-        }
-        
-        if (op.filter != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"filter ");
-            op.filter.convertToString(op.filter, buf);
-            newline(buf);
-        }
-        
-        if (op.action != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"action ");
-            op.action.convertToString(op.action, buf);
-            newline(buf);
-        }
-        
-        decrIndent();
-        indent(buf);
-        buf.append(/* NOI18N */"}");
-    }
-    
-    public Object convertFromString(String s) {
-        Op op = new Op();
-        convertFromString(s, op);
-        return op;
-    }
-    
-    public void convertFromString(String s, Op op) {
-        Hashtable table = ListParser.makeListTable(s);
-        
-        op.name = (String)table.get(/* NOI18N */"name");
-        
-        s = (String)table.get(/* NOI18N */"filter");
-        if (s != null) {
-            op.filter = new OpFilter();
-            op.filter.convertFromString(s, op.filter);
-        }
-        
-        s = (String)table.get(/* NOI18N */"action");
-        if (s != null) {
-            op.action = new OpAction();
-            op.action.convertFromString(s, op.action);
-        }
-    }
-    
-    /**
-     * Returns true if this type should be displayed in an editor.
-     *
-     * For the attribute editor, a return value of false means that the
-     * the textfield will be hidden.
-     *
-     * @return false
-     */
-    public boolean viewableAsString() {
-        return (false);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpAction.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,621 +0,0 @@
-/*
- * 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.
- *
- * @(#) OpAction.java 1.17 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.util.Hashtable;
-
-/**
-* Stores the action that should be triggered in an operation whose
-* filter has matched an event or message.  This class 
-* also simultaneously
-* acts as its own converter.
-*
-* @see Op
-* @version 	1.17, 07/25/97
-*/
-public class OpAction extends Converter implements Cloneable {
-    // Register the converter
-    static {
-        Converter.addConverter(/* NOI18N */
-        "sunsoft.jws.visual.rt.type.OpAction",
-        /* NOI18N */"sunsoft.jws.visual.rt.type.OpAction");
-    }
-    
-    /**
-     * Action is to set an attribute.
-     */
-    public static final int ATTRIBUTE = 0;
-    
-    /**
-     * Action is to send a message.
-     */
-    public static final int MESSAGE = 1;
-    
-    /**
-     * Action is to execute some code.
-     */
-    public static final int CODE = 2;
-    
-    // Action Details
-    public static final int SHOW = 1;
-    public static final int HIDE = 2;
-    public static final int EXIT = 3;
-
-	/* BEGIN JSTYLED */
-    /**
-    * Used when setting the action target, specifies 
-    * that the target is
-    * permanently set (i.e. always use what is stored in this objects
-    * target memeber.
-    *
-    * @see #target
-    */
-	/* END JSTYLED */
-    public static final int CONSTANT = 10;
-    
-    /**
-    * Used when setting the action target, specifies that 
-    * the target should
-    * be the same as the target of the event
-    * or message that triggered this
-    * operation.
-    */
-    public static final int TARGET = 11;
-    
-    /**
-    * Used when setting the action target, specifies 
-    * that the target should
-    * be whatever is in the arg variable of the message or event.
-    */
-    public static final int ARG = 12;
-    
-    /**
-     * Action type, ATTRIBUTE, MESSAGE, or CODE.
-     */
-    public int actionType;
-    
-    /**
-    * Action detail, used by the action editor to 
-    * keep track of simple actions.
-    */
-    public int actionDetail;
-    
-    /**
-    * Action target, used when targetSource == CONSTANT.
-    */
-    public AMRef target;
-    
-    /**
-    * Specifies how the target or the action is determined, is either
-    * CONSTANT, TARGET, or ARG.
-    */
-    public int targetSource;
-    
-    /**
-    * Message or Attribute name.
-    */
-    public String name;
-    
-	/* BEGIN JSTYLED */
-    /** 
-    * Message arg or Attribute value, used when valueSource == CONSTANT.
-    */
-	/* END JSTYLED */
-    public Object value;
-    
-    /**
-     * Where is the arg/value from for setting an attribute,
-     * is either CONSTANT, TARGET, or ARG.
-     */
-    public int valueSource;
-    
-    /**
-     * Message type, used when the action is to send a message.
-     */
-    public String type;
-    
-    /**
-     * Message target name, used when the action is to send a message.
-     */
-    public String targetName;
-    
-    /**
-     * The code associate with the action, in string form.
-     */
-    public String code;
-    
-    /**
-     * Constructs an instance where targetSource and 
-     * valueSource are CONSTANT.
-    */
-    public OpAction() {
-        this.targetSource = CONSTANT;
-        this.valueSource = CONSTANT;
-    }
-    
-    /**
-     * Constructs an instance where targetSource and 
-     * valueSource are CONSTANT.
-    */
-    public OpAction(int actionType, AMRef target, String name,
-    Object value) {
-        this.actionType = actionType;
-        this.target = target;
-        this.name = name;
-        this.targetSource = CONSTANT;
-        this.value = value;
-        this.valueSource = CONSTANT;
-    }
-    
-    /**
-     * Performs the action.
-     *
-     * @param target the target of the action if targetSource == TARGET
-     * @param arg the argument of the message or event 
-     * and the target of the action if targetSource == ARG
-     * @param scope the root tree in which to search for the target
-     */
-    void invoke(Object target, Object arg, Root scope) {
-        if (name == null)
-            return;
-        
-        // Lookup the target
-        AttributeManager mgr = lookupTarget(target, arg, scope);
-        if (mgr == null)
-            return;
-        
-        // Lookup the value
-        Object value = lookupValue(target, arg, scope);
-        
-        // Perform the action
-        performAction(mgr, value);
-    }
-    
-    private AttributeManager lookupTarget(Object target, Object arg,
-    Root scope) {
-        AttributeManager mgr = null;
-        
-        switch (targetSource) {
-            case CONSTANT:
-            if (this.target != null)
-                mgr = this.target.getRef(scope);
-            break;
-            
-            case TARGET:
-            mgr = (AttributeManager)target;
-            break;
-            
-            case ARG:
-            mgr = (AttributeManager)arg;
-            break;
-        }
-        
-        return mgr;
-    }
-    
-    private Object lookupValue(Object target, Object arg, Root scope) {
-        Object value = null;
-        
-        switch (valueSource) {
-            case CONSTANT:
-            value = this.value;
-            break;
-            
-            case TARGET:
-            value = target;
-            break;
-            
-            case ARG:
-            value = arg;
-            break;
-        }
-        
-        return value;
-    }
-    
-    private void performAction(AttributeManager target, Object value) {
-        switch (actionType) {
-            case ATTRIBUTE:
-            if (name != null)
-                target.set(name, value);
-            break;
-            
-            case MESSAGE:
-            if (name != null)
-                target.postMessage(new Message(target, targetName,
-            type, name, value));
-            break;
-            
-            case CODE:
-            System.out.println(/* NOI18N */"CODE: " + code);
-            break;
-        }
-    }
-    
-    /**
-     * Returns a new copy of this action.
-     */
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-    }
-    
-    //
-    // Code generation
-    //
-    
-    /**
-     * Appends the initialization code for this operation filter into
-     * the buffer given.
-     *
-     * @param varname variable name of the operation filter
-     * @param buf buffer onto which the code should be appended
-     */
-    public void genInitCode(StringBuffer buf, String varname) {
-        // Action type
-        buf.append(/* NOI18N */"    ");
-        buf.append(varname);
-        buf.append(/* NOI18N */".actionType = ");
-        buf.append(/* NOI18N */"OpAction.");
-        buf.append(constantToString(actionType));
-        buf.append(/* NOI18N */";");
-        Global.newline(buf);
-        
-        // Target
-        if (target != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".target = new AMRef(");
-            ListParser.quote(target.getName(), buf, true);
-            buf.append(/* NOI18N */");");
-            Global.newline(buf);
-        }
-        
-        // Target source
-        if (targetSource != CONSTANT) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".targetSource = ");
-            buf.append(/* NOI18N */"OpAction.");
-            buf.append(constantToString(targetSource));
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        // Name
-        if (name != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".name = ");
-            ListParser.quote(name, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        // Value source
-        if (valueSource != CONSTANT) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".valueSource = ");
-            buf.append(/* NOI18N */"OpAction.");
-            buf.append(constantToString(valueSource));
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        // Value
-        if (value != null) {
-            // Lookup converter for value
-            String valueType = value.getClass().getName();
-            if (Converter.hasConverter(valueType)) {
-                Converter c = Converter.getConverter(valueType);
-                buf.append(/* NOI18N */"    ");
-                buf.append(varname);
-                buf.append(/* NOI18N */".value = ");
-                buf.append(c.convertToCode(value));
-                buf.append(/* NOI18N */";");
-                Global.newline(buf);
-            }
-        }
-        
-        // Message type
-        if (type != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".type = ");
-            ListParser.quote(type, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        // Message target name
-        if (targetName != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".targetName = ");
-            ListParser.quote(targetName, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-    }
-    
-    //
-    // String converters
-    //
-    
-    private String constantToString(int c) {
-        switch (c) {
-            // Action consts
-            case ATTRIBUTE:
-            return /* NOI18N */"ATTRIBUTE";
-            case MESSAGE:
-            return /* NOI18N */"MESSAGE";
-            case CODE:
-            return /* NOI18N */"CODE";
-            
-            // Source consts
-            case CONSTANT:
-            return /* NOI18N */"CONSTANT";
-            case TARGET:
-            return /* NOI18N */"TARGET";
-            case ARG:
-            return /* NOI18N */"ARG";
-            
-            default:
-            return null;
-        }
-    }
-    
-    private int stringToConstant(String s) {
-        // Action consts
-        if (s.equals(/* NOI18N */"ATTRIBUTE"))
-            return ATTRIBUTE;
-        else if (s.equals(/* NOI18N */"MESSAGE"))
-            return MESSAGE;
-        else if (s.equals(/* NOI18N */"CODE"))
-            return CODE;
-        
-        // Source consts
-        else if (s.equals(/* NOI18N */"CONSTANT"))
-            return CONSTANT;
-        else if (s.equals(/* NOI18N */"TARGET"))
-            return TARGET;
-        else if (s.equals(/* NOI18N */"ARG"))
-            return ARG;
-        
-        else
-            return -1;
-    }
-    
-    public void convertToString(Object obj, StringBuffer buf) {
-        OpAction a = (OpAction)obj;
-        
-        // Open brace
-        buf.append(/* NOI18N */"{");
-        newline(buf);
-        incrIndent();
-        
-        // Action type
-        indent(buf);
-        buf.append(/* NOI18N */"actionType ");
-        buf.append(constantToString(a.actionType));
-        newline(buf);
-        
-        // Action detail
-        if (a.actionDetail != 0) {
-            indent(buf);
-            buf.append(/* NOI18N */"actionDetail ");
-            buf.append(Integer.toString(a.actionDetail));
-            newline(buf);
-        }
-        
-        // Action target
-        if (a.target != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"target ");
-            buf.append(a.target.getName());
-            newline(buf);
-        }
-        
-        // Target source
-        if (a.targetSource != CONSTANT) {
-            indent(buf);
-            buf.append(/* NOI18N */"targetSource ");
-            buf.append(constantToString(a.targetSource));
-            newline(buf);
-        }
-        
-        // Name
-        if (a.name != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"name ");
-            ListParser.quote(a.name, buf, false);
-            newline(buf);
-        }
-        
-        // Value
-        if (a.value != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"value ");
-            
-            // Lookup converter for value
-            String valueType = value.getClass().getName();
-            if (Converter.hasConverter(valueType)) {
-                Converter c = Converter.getConverter(valueType);
-                ListParser.quote(c.convertToString(value), buf, false);
-            } else {
-                buf.append(/* NOI18N */"null");
-            }
-            
-            newline(buf);
-            
-            indent(buf);
-            buf.append(/* NOI18N */"valueType ");
-            buf.append(valueType);
-            newline(buf);
-        }
-        
-        // Value source
-        if (a.valueSource != CONSTANT) {
-            indent(buf);
-            buf.append(/* NOI18N */"valueSource ");
-            buf.append(constantToString(a.valueSource));
-            newline(buf);
-        }
-        
-        // Message type
-        if (a.type != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"type ");
-            ListParser.quote(a.type, buf, false);
-            newline(buf);
-        }
-        
-        // Message target name
-        if (a.targetName != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"targetName ");
-            ListParser.quote(a.targetName, buf, false);
-            newline(buf);
-        }
-        
-        // Code
-        if (a.code != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"code ");
-            ListParser.list(a.code, buf);
-            newline(buf);
-        }
-        
-        // Close brace
-        decrIndent();
-        indent(buf);
-        buf.append(/* NOI18N */"}");
-    }
-    
-    public Object convertFromString(String s) {
-        OpAction action = new OpAction();
-        convertFromString(s, action);
-        return action;
-    }
-    
-    public void convertFromString(String s, OpAction a) {
-        Hashtable table = ListParser.makeListTable(s);
-        String val;
-        
-        // Action type
-        val = (String)table.get(/* NOI18N */"actionType");
-        a.actionType = stringToConstant(val);
-        
-        // Action detail
-        val = (String)table.get(/* NOI18N */"actionDetail");
-        if (val != null) {
-            try {
-                a.actionDetail = Integer.parseInt(val);
-            }
-            catch (NumberFormatException ex) {
-                /* JSTYLED */
-                        throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.OpAction.NumberFormatException", val));
-            }
-        }
-        
-        // Action target
-        val = (String)table.get(/* NOI18N */"target");
-        if (val != null)
-            a.target = new AMRef(val);
-        
-        // Target source
-        val = (String)table.get(/* NOI18N */"targetSource");
-        if (val != null)
-            a.targetSource = stringToConstant(val);
-        
-        // Name
-        a.name = (String)table.get(/* NOI18N */"name");
-        
-        // Value
-        val = (String)table.get(/* NOI18N */"value");
-        if (val != null) {
-            if (val.equals(/* NOI18N */"null")) {
-                a.value = null;
-            } else {
-                String valueType = (String)table.get(/* NOI18N */
-                "valueType");
-                if (valueType == null) { /* JSTYLED */
-                            throw new ParseException(Global.fmtMsg("sunsoft.jws.visual.rt.type.OpAction.ValWithoutType", s));
-            }
-            
-            if (!Converter.hasConverter(valueType)) {
-                throw new ParseException(Global.fmtMsg(
-                "sunsoft.jws.visual.rt.type.OpAction.NoConverter",
-                valueType));
-            }
-            /* JSTYLED */
-                        a.value = Converter.getConverter(valueType).convertFromString(val);
-        }
-    }
-    
-    // Value source
-    val = (String)table.get(/* NOI18N */"valueSource");
-    if (val != null)
-        a.valueSource = stringToConstant(val);
-    
-    // Message type
-    a.type = (String)table.get(/* NOI18N */"type");
-    
-    // Message target name
-    a.targetName = (String)table.get(/* NOI18N */"targetName");
-    
-    // Code
-    a.code = (String)table.get(/* NOI18N */"code");
-}
-
-/**
- * Returns true if this type should be displayed in an editor.
- *
- * For the attribute editor, a return value of false means that the
- * the textfield will be hidden.
- *
- * @return false
- */
-public boolean viewableAsString() {
-    return (false);
-}
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpArrayConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * 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.
- *
- * @(#) OpArrayConverter.java 1.6 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.util.Enumeration;
-
-/**
- * Converts an array of Op to a string and back again.
- *
- * @see Op
- * @version 	1.6, 07/25/97
- */
-public class OpArrayConverter extends Converter {
-    
-    public void convertToString(Object obj, StringBuffer buf) {
-        if (obj == null) {
-            buf.append(/* NOI18N */"null");
-            return;
-        }
-        
-        Op op[] = (Op[])obj;
-        
-        buf.append(/* NOI18N */"{");
-        newline(buf);
-        incrIndent();
-        
-        for (int i = 0; i < op.length; i++) {
-            indent(buf);
-            if (op[i] != null)
-                op[i].convertToString(op[i], buf);
-            newline(buf);
-        }
-        
-        decrIndent();
-        indent(buf);
-        buf.append(/* NOI18N */"}");
-    }
-    
-    public Object convertFromString(String s) {
-        if (s == null)
-            return null;
-        
-        ListParser parser = new ListParser(s);
-        Enumeration e = parser.elements();
-        Op ops[] = new Op[parser.size()];
-        int i = 0;
-        
-        while (e.hasMoreElements()) {
-            ops[i] = new Op();
-            ops[i].convertFromString((String)e.nextElement(), ops[i]);
-            i++;
-        }
-        
-        return ops;
-    }
-    
-    /**
-     * Returns true if this type should be displayed in an editor.
-     *
-     * For the attribute editor, a return value of false means that the
-     * the textfield will be hidden.
-     *
-     * @return false
-     */
-    public boolean viewableAsString() {
-        return (false);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OpFilter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,489 +0,0 @@
-/*
- * 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.
- *
- * @(#) OpFilter.java 1.16 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.*;
-import java.awt.Event;
-import java.util.Hashtable;
-
-/**
- * Stores the conditions under which an operation 
- * should be activated.  The
-* parameters stored here are compared with the fields
-* in events and messages
-* to determine a match.  This class also simultaneously
-* acts as its own
-* converter.
-*
-* @see Op
-* @see Message
-* @see Event
-* @version 	1.16, 07/25/97
-*/
-public class OpFilter extends Converter implements Cloneable {
-    /**
-     * The operation should match against an event.
-     */
-    public static final int EVENT = 0;
-    
-    /**
-     * The operation should match against a message.
-     */
-    public static final int MESSAGE = 1;
-    
-    public static final int LEFT_MOUSE = 0;
-    public static final int MIDDLE_MOUSE = 8;
-    public static final int RIGHT_MOUSE = 4;
-    
-    // Converter
-    static {
-        Converter.addConverter(/* NOI18N */
-			       "sunsoft.jws.visual.rt.type.OpFilter",
-		       /* NOI18N */"sunsoft.jws.visual.rt.type.OpFilter");
-    }
-    
-    /**
-     * Filter type, either EVENT or MESSAGE.
-     */
-    public int filterType;
-    
-    /**
-     * AttributeManager object that should be the target of a matching
-     * event or message.
-     */
-    public AttributeManager target;
-    
-    /**
-     * Target reference (left in for compatibility reasons.)
-     */
-    public AMRef targetRef;
-    
-    /**
-     * Message filter on name.
-     *
-     * @see Message#name
-     */
-    public String name;
-    
-    /**
-     * Message filter on type.
-     *
-     * @see Message#type
-     */
-    public String type;
-    
-    /**
-     * Message filter on target name.
-     *
-     * @see Message#targetName
-     */
-    public String targetName;
-    
-    /**
-     * Event filter on id.
-     *
-     * @see Event#id
-     */
-    public int id;
-    
-    /**
-     * Event filter on key.
-     *
-     * @see Event#key
-     */
-    public int key = -1;
-    
-    /**
-     * Event filter on modifiers.
-     *
-     * @see Event#modifiers
-     */
-    public int modifiers = -1;
-    
-    /**
-     * Event filter on clickCount.
-     *
-     * @see Event#clickCount
-     */
-    public int clickCount = 0;
-    
-    /**
-     * Constructs a new instance.
-     */
-    public OpFilter() {
-    }
-    
-    /**
-     * Constructs a new instance that filters on a message.
-     */
-    public OpFilter(AttributeManager target, String name) {
-        filterType = MESSAGE;
-        this.target = target;
-        this.name = name;
-    }
-    
-    /**
-     * Constructs a new instance that filters on a message.
-     */
-    public OpFilter(AttributeManager target, String name,
-		    String type, String targetName) {
-        this(target, name);
-        this.type = type;
-        this.targetName = targetName;
-    }
-    
-    /**
-     * Constructs a new instance that filters on an event.
-     */
-    public OpFilter(AttributeManager target, int id) {
-        filterType = EVENT;
-        this.target = target;
-        this.id = id;
-    }
-    
-    /**
-     * Constructs a new instance that filters on an event.
-     */
-    public OpFilter(AttributeManager target, int id,
-		    int key, int modifiers, int clickCount) {
-        this(target, id);
-        this.key = key;
-        this.modifiers = modifiers;
-        this.clickCount = clickCount;
-    }
-    
-    /**
-     * Returns true if this filter matches with the message given.
-     */
-    boolean match(Message msg) {
-        if (filterType != MESSAGE)
-            return false;
-        
-        return ((target == null || target == msg.target) &&
-		(name == null || name.equals(msg.name)) &&
-		(type == null || type.equals(msg.type)) &&
-		(targetName == null || targetName.equals(msg.targetName)));
-    }
-    
-    /**
-     * Returns true if this filter matches with the event given.
-     */
-    boolean match(Message msg, Event evt) {
-        if (filterType != EVENT)
-            return false;
-        
-        return (evt.id == id &&
-		(target == null || target == msg.target) &&
-		(key == -1 || evt.key == key) &&
-		(modifiers == -1 ||
-		 (((evt.modifiers & modifiers) == modifiers) &&
-		  ((evt.modifiers & ~modifiers) == 0))) &&
-		(clickCount == 0 || evt.clickCount == clickCount));
-    }
-    
-    /**
-     * Returns a new copy of this filter.
-     */
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
-        }
-    }
-    
-    //
-    // Code generation
-    //
-    
-    /**
-     * Appends the initialization code for this operation filter into
-     * the buffer given.
-     *
-     * @param varname variable name of the operation filter
-     * @param buf buffer onto which the code should be appended
-     */
-    public void genInitCode(StringBuffer buf, String varname) {
-        buf.append(/* NOI18N */"    ");
-        buf.append(varname);
-        buf.append(/* NOI18N */".filterType = ");
-        buf.append(/* NOI18N */"OpFilter.");
-        buf.append(constantToString(filterType));
-        buf.append(/* NOI18N */";");
-        Global.newline(buf);
-        
-        // The targetRef is used for code generation so that QuickGen can work.
-        if (targetRef != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".target = gui.");
-            buf.append(targetRef.getName());
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (name != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".name = ");
-            ListParser.quote(name, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (type != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".type = ");
-            ListParser.quote(type, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (targetName != null) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".targetName = ");
-            ListParser.quote(targetName, buf, true);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        buf.append(/* NOI18N */"    ");
-        buf.append(varname);
-        buf.append(/* NOI18N */".id = ");
-        buf.append(id);
-        buf.append(/* NOI18N */";");
-        Global.newline(buf);
-        
-        if (key != -1) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".key = ");
-            buf.append(key);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (modifiers != -1) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".modifiers = ");
-            buf.append(modifiers);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-        
-        if (clickCount != 0) {
-            buf.append(/* NOI18N */"    ");
-            buf.append(varname);
-            buf.append(/* NOI18N */".clickCount = ");
-            buf.append(clickCount);
-            buf.append(/* NOI18N */";");
-            Global.newline(buf);
-        }
-    }
-    
-    //
-    // String converters
-    //
-    
-    private String constantToString(int c) {
-        switch (c) {
-	case EVENT:
-            return /* NOI18N */"EVENT";
-	case MESSAGE:
-            return /* NOI18N */"MESSAGE";
-	default:
-            return null;
-        }
-    }
-    
-    private int stringToConstant(String s) {
-        if (s.equals(/* NOI18N */"EVENT"))
-            return EVENT;
-        else if (s.equals(/* NOI18N */"MESSAGE"))
-            return MESSAGE;
-        else
-            return -1;
-    }
-    
-    public void convertToString(Object obj, StringBuffer buf) {
-        OpFilter f = (OpFilter)obj;
-        
-        // Open brace
-        buf.append(/* NOI18N */"{");
-        newline(buf);
-        incrIndent();
-        
-        // Filter type
-        indent(buf);
-        buf.append(/* NOI18N */"filterType ");
-        buf.append(constantToString(f.filterType));
-        newline(buf);
-        
-        // Don't save the target.  The target is determined during code
-        // generation by figuring out which shadow has the operation
-        // as its attribute.
-        //
-        // if (f.targetRef != null) {
-        //   indent(buf);
-        //   buf.append("target ");
-        //   buf.append(f.targetRef.getName());
-        //   newline(buf);
-        // }
-        
-        // Message filters
-        if (f.name != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"name ");
-            ListParser.quote(f.name, buf, false);
-            newline(buf);
-        }
-        if (f.type != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"type ");
-            ListParser.quote(f.type, buf, false);
-            newline(buf);
-        }
-        if (f.targetName != null) {
-            indent(buf);
-            buf.append(/* NOI18N */"targetName ");
-            ListParser.quote(f.targetName, buf, false);
-            newline(buf);
-        }
-        
-        // Event filters
-        indent(buf);
-        buf.append(/* NOI18N */"id ");
-        buf.append(f.id);
-        newline(buf);
-        
-        if (f.key != -1) {
-            indent(buf);
-            buf.append(/* NOI18N */"key ");
-            buf.append(f.key);
-            newline(buf);
-        }
-        
-        if (f.modifiers != -1) {
-            indent(buf);
-            buf.append(/* NOI18N */"modifiers ");
-            buf.append(f.modifiers);
-            newline(buf);
-        }
-        
-        if (f.clickCount != 0) {
-            indent(buf);
-            buf.append(/* NOI18N */"clickCount ");
-            buf.append(f.clickCount);
-            newline(buf);
-        }
-        
-        // Close brace
-        decrIndent();
-        indent(buf);
-        buf.append(/* NOI18N */"}");
-    }
-    
-    public Object convertFromString(String s) {
-        OpFilter filter = new OpFilter();
-        convertFromString(s, filter);
-        return filter;
-    }
-    
-    public void convertFromString(String s, OpFilter f) {
-        Hashtable table = ListParser.makeListTable(s);
-        String val;
-        
-        //
-        // Filter type
-        //
-        val = (String)table.get(/* NOI18N */"filterType");
-        if (val == null) {
-            throw new ParseException(/* NOI18N */
-				     "filterType not found: " + s);
-        }
-        f.filterType = stringToConstant(val);
-        
-        //
-        // Message or event target to match against.
-        // Left in for compatibility reasons.
-        //
-        val = (String)table.get(/* NOI18N */"target");
-        if (val != null)
-            f.targetRef = new AMRef(val);
-        
-        //
-        // Message filters
-        //
-        f.name = (String)table.get(/* NOI18N */"name");
-        f.type = (String)table.get(/* NOI18N */"type");
-        f.targetName = (String)table.get(/* NOI18N */"targetName");
-        
-        //
-        // Event filters
-        //
-        val = (String)table.get(/* NOI18N */"id");
-        if (val != null)
-            f.id = ListParser.parseInt(val);
-        
-        val = (String)table.get(/* NOI18N */"key");
-        if (val != null)
-            f.key = ListParser.parseInt(val);
-        
-        val = (String)table.get(/* NOI18N */"modifiers");
-        if (val != null)
-            f.modifiers = ListParser.parseInt(val);
-        
-        val = (String)table.get(/* NOI18N */"clickCount");
-        if (val != null)
-            f.clickCount = ListParser.parseInt(val);
-    }
-    
-    /**
-     * Returns true if this type should be displayed in an editor.
-     *
-     * For the attribute editor, a return value of false means that the
-     * the textfield will be hidden.
-     *
-     * @return false
-     */
-    public boolean viewableAsString() {
-        return (false);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/OrientationEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * 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.
- *
- * @(#) OrientationEnum.java 1.8 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.Scrollbar;
-
-/**
-* A class that knows the orientation attributes of scrollbars, 
-* and in an
-* instantiation, can store the orientation attribute of a
-* single scrollbar.
-*
-* @see Scrollbar
-* @version 	1.8, 07/25/97
-*/
-public class OrientationEnum extends BaseEnum {
-    private static BaseEnumHelper helper = new BaseEnumHelper();
-    
-    static {
-        helper = new BaseEnumHelper();
-        helper.add(Scrollbar.HORIZONTAL, /* NOI18N */"horizontal");
-        helper.add(Scrollbar.VERTICAL, /* NOI18N */"vertical");
-        helper.setDefaultChoice(Scrollbar.VERTICAL);
-    }
-    
-    /**
-     * Creates an instance with the choice set to Scrollbar.VERTICAL.
-     */
-    public OrientationEnum() {
-        super();
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given int value.
-     *
-     * @param choice Scrollbar.VERTICAL or Scrollbar.HORIZONTAL
-     */
-    public OrientationEnum(int choice) {
-        super(choice);
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given string.
-     *
-     * @param choice "vertical" or "horizontal"
-     */
-    public OrientationEnum(String choice) {
-        super(choice);
-    }
-    
-    protected BaseEnumHelper getHelper() {
-        return (helper);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ParseException.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- *
- * @(#) ParseException.java 1.3 - last change made 07/18/96
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.VJException;
-import java.util.*;
-
-/**
- * An exception thrown by converters when there is a problem with
- * the value during an apply.  The Designer will place the error
- * message into a popup window.
- *
- * @see Converter
- * @version 	1.3, 07/18/96
- */
-public class ParseException extends VJException {
-    public ParseException() {
-        super();
-    }
-    
-    public ParseException(String message) {
-        super(message);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/PointConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * 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.
- *
- * @(#) @(#) PointConverter.java 1.8 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.Point;
-import java.util.Hashtable;
-import java.util.Enumeration;
-import sunsoft.jws.visual.rt.base.Global;
-
-
-/**
- * Converts Point objects to strings and back again.
- * An example of the string representation: "x=45;y=24".
- *
- * @version 	1.8, 07/25/97
- */
-public class PointConverter extends Converter {
-    public String convertToString(Object obj) {
-        if (obj == null)
-            return /* NOI18N */"";
-        
-        Point p = (Point)obj;
-        return (/* NOI18N */"x=" + p.x + /* NOI18N */";y=" + p.y);
-    }
-    
-    /**
-     * Converts a string representation to a new instance of Point.
-     *
-     * @exception ParseException when there is a format 
-     * problem with the string
-    */
-    public Object convertFromString(String s) {
-        if (s == null || s.length() == 0)
-            return null;
-        
-        SubFieldTokenizer sft = new SubFieldTokenizer(s);
-        Hashtable table = sft.getHashtable();
-        Point p = new Point(0, 0);
-        
-        Enumeration e = table.keys();
-        while (e.hasMoreElements()) {
-            String key = (String)e.nextElement();
-            if (!key.equals(/* NOI18N */"x") &&
-		!key.equals(/* NOI18N */"y")) {
-                throw new ParseException(Global.fmtMsg(
-	        "sunsoft.jws.visual.rt.type.PointConverter.IllegalPoint",
-						       key));
-            }
-        }
-        
-        if (table.containsKey(/* NOI18N */"x"))
-            p.x = getIntegerFromTable(table, /* NOI18N */"x");
-        if (table.containsKey(/* NOI18N */"y"))
-            p.y = getIntegerFromTable(table, /* NOI18N */"y");
-        
-        return p;
-    }
-    
-    private int getIntegerFromTable(Hashtable table, String key) {
-        String value = (String) table.get(key);
-        if (value != null) {
-            try {
-                return Integer.valueOf(value).intValue();
-            }
-            catch (NumberFormatException ex) {
-                throw new ParseException(Global.fmtMsg(
-   	        "sunsoft.jws.visual.rt.type.PointConverter.BadFormattedValue",
-						       value));
-            }
-        } else {
-            return (0);
-        }
-    }
-    
-    public String convertToCode(Object obj) {
-        if (obj == null) {
-            return /* NOI18N */"new java.awt.Point(0, 0)";
-        } else {
-            Point p = (Point)obj;
-            return (/* NOI18N */"new java.awt.Point(" + p.x
-		    + /* NOI18N */", " + p.y + /* NOI18N */")");
-        }
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ReliefEnum.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * 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.
- *
- * @(#) ReliefEnum.java 1.5 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.Util;
-
-/**
- * A class that knows the different kinds of reliefs 
- * available for panels.
- *
- * @see Util
- * @see sunsoft.jws.visual.rt.awt.VJPanel
- * @version 	1.5, 07/25/97
- */
-public class ReliefEnum extends BaseEnum {
-    private static BaseEnumHelper helper = new BaseEnumHelper();
-    
-    static {
-        helper = new BaseEnumHelper();
-        
-        helper.add(Util.RELIEF_FLAT, /* NOI18N */"flat");
-        helper.add(Util.RELIEF_RAISED, /* NOI18N */"raised");
-        helper.add(Util.RELIEF_SUNKEN, /* NOI18N */"sunken");
-        helper.add(Util.RELIEF_RIDGE, /* NOI18N */"ridge");
-        helper.add(Util.RELIEF_GROOVE, /* NOI18N */"groove");
-        helper.add(Util.WIN95_RAISED, /* NOI18N */"win95 raised");
-        helper.add(Util.WIN95_SUNKEN, /* NOI18N */"win95 sunken");
-        helper.add(Util.WIN95_FIELD_BORDER, /* NOI18N */
-		   "win95 field border");
-        helper.add(Util.WIN95_WINDOW_BORDER, /* NOI18N */
-		   "win95 window border");
-        
-        helper.setDefaultChoice(Util.RELIEF_FLAT);
-    }
-    
-    /**
-     * Creates an instance with the choice set to Util.RELIEF_FLAT.
-     */
-    public ReliefEnum() {
-        super();
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given int value.
-     *
-     * @param choice Util.RELIEF_FLAT, Util.RELIEF_RAISED, 
-     * Util.RELIEF_SUNKEN, Util.RELIEF_RIDGE, Util.RELIEF_GROOVE,
-     * Util.WIN95_RAISED, Util.WIN95_SUNKEN, Util.WIN95_FIELD_BORDER,
-     * or Util.WIN95_WINDOW_BORDER
-     */
-    public ReliefEnum(int choice) {
-        super(choice);
-    }
-    
-    /**
-     * Creates an instance with the choice set to the given string.
-     *
-     * @param choice "flat", "raised", "sunken", "ridge", "groove", 
-     * "win95 raised", "win95 sunken", "win95 field border", or
-     * "win95 window border"
-     */
-    public ReliefEnum(String choice) {
-        super(choice);
-    }
-    
-    protected BaseEnumHelper getHelper() {
-        return (helper);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/StringArrayConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * 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.
- *
- * @(#) StringArrayConverter.java 1.15 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.util.Vector;
-import java.util.StringTokenizer;
-
-/**
- * Converts array of strings to a single string and back again.  The
- * string representation is a string of comma-separated strings.
- * Commas are not (currently) allowed in the strings.
- *
- * @version 1.15, 07/25/97
- */
-public class StringArrayConverter extends Converter {
-    
-    public String convertToString(Object obj) {
-        if (obj != null) {
-            String[] a = (String[]) obj;
-            
-            StringBuffer retval = new StringBuffer();
-            for (int i = 0; i < a.length; i++) {
-                retval.append(a[i]);
-                if (i != (a.length-1))
-                    retval.append(/* NOI18N */",");
-            }
-            
-            return (retval.toString());
-        } else {
-            return (/* NOI18N */"");
-        }
-    }
-    
-    public Object convertFromString(String s) {
-        if (s != null) {
-            Vector strbuf = new Vector();
-            
-            StringTokenizer st = new StringTokenizer
-		(s, /* NOI18N */",");
-            for (; st.hasMoreTokens(); )
-                strbuf.addElement(st.nextToken());
-            
-            if (strbuf.size() > 0) {
-                String retval[] = new String[strbuf.size()];
-                for (int i = 0; i < strbuf.size(); i++)
-                    retval[i] = (String) strbuf.elementAt(i);
-                return (retval);
-            }
-        }
-        return (null);
-    }
-    
-    public String convertToCode(Object obj) {
-        StringBuffer buf = new StringBuffer();
-        
-        buf.append(/* NOI18N */"convert(\"[Ljava.lang.String; \", ");
-        ListParser.quote(convertToString(obj), buf, true);
-        buf.append(/* NOI18N */")");
-        
-        return buf.toString();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/StringConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * 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.
- *
- * @(#) StringConverter.java 1.16 - last change made 07/29/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-/**
- * Converts strings to strings.  This is really just a place holder
- * for the String type amoung the type converters.
- *
- * @version 1.16, 07/29/97
- */
-public class StringConverter extends Converter {
-    public String convertToString(Object obj) {
-        if (obj != null)
-            return ((String) obj);
-        else
-            return /* NOI18N */"<null>";
-    }
-    
-    public Object convertFromString(String s) {
-        if (!s.equals(/* NOI18N */"<null>"))
-            return (s);
-        else
-            return null;
-    }
-    
-    public String convertToCode(Object obj) {
-        StringBuffer buf = new StringBuffer();
-        ListParser.quote(convertToString(obj), buf, true);
-        
-        return buf.toString();
-    }
-    
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/SubFieldTokenizer.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * 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.
- *
- * @(#) SubFieldTokenizer.java 1.7 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/* BEGIN JSTYLED */
-/**
- * Separates a string into sub-field (key-value pairs.)  The 
- * syntax of the
- * string needs to be something like this:
- * <pre>
- *     name=Helvetica;style=italic;size=12;
- * </pre>
- * A hashtable of the keys->values is created, which the caller can then
- * run through to determine what values were set.  Case of field names
- * is always ignored.
- *
- * @version 	1.7, 07/25/97
-*/
-/* END JSTYLED */
-public class SubFieldTokenizer {
-    private Hashtable table;
-    
-    public SubFieldTokenizer(String s) {
-        table = new Hashtable();
-        
-        StringTokenizer st = new StringTokenizer(s, /* NOI18N */";");
-        while (st.hasMoreTokens()) {
-            String spec = st.nextToken();
-            if (spec.length() > 0) {
-                int index = spec.indexOf(/* NOI18N */ '=');
-                if (index != -1) {
-                    String key = spec.substring(0, index).
-			trim().toLowerCase();
-                    String value = spec.substring(index + 1).trim();
-                    if (key.length() > 0) {
-                        table.put(key, value);
-                    }
-                }
-            }
-        }
-    }
-    
-    public Hashtable getHashtable() {
-        return (table);
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/TypeEditor.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,544 +0,0 @@
-/*
- * 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.
- *
- * @(#) TypeEditor.java 1.11 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import sunsoft.jws.visual.rt.base.*;
-import sunsoft.jws.visual.rt.awt.VJErrorDialog;
-
-import java.util.*;
-
-/**
- * Base class for type editors.  This should be subclassed for each
- * new type editor that needs to be added to the designer.
- * TypeEditors are used by the Designer's attribute editor in order to
- * edit the values of complex types, like Colors, Fonts, and arrays.
- *
- * @see Converter
- * @version 1.11, 07/25/97
- */
-public abstract class TypeEditor extends Group {
-    
-    /**
-     * Set the hasChanges flag to true as soon as the user 
-     * edits anything.
-    */
-    protected boolean hasChanges = false;
-    
-    // Most recent value from setValue, or from the most recent apply
-    private Object resetValue;
-    
-    // Disabled title
-    private String disabledTitle = /* NOI18N */"<no value>";
-    
-    // Indicates if the resetValue has been changed while the group was
-    // not showing.
-    private boolean resetValueChanged;
-    
-    // List of child type editors
-    private Vector children = new Vector();
-    
-    // State flag for apply
-    private boolean applying = false;
-    
-    // Error messages
-    private VJErrorDialog errorDialog;
-    
-    // Are we enabled?
-    private boolean isEnabled = true;
-    
-    // Editor parent
-    private TypeEditor parentEditor;
-    
-    /**
-     * Creates a new instance of TypeEditor with an attribute called
-     * "enabled" that is a Boolean and is set to true when the type
-     * editor should be graphically enabled (i.e. not greyed out.)
-     */
-    public TypeEditor() {
-        attributes.add(/* NOI18N */"enabled", /* NOI18N */
-		       "java.lang.Boolean", Boolean.TRUE, DEFAULT);
-    }
-    
-    public Object get(String key) {
-        if (key.equals(/* NOI18N */"enabled")) {
-            return new Boolean(isEnabled);
-        } else {
-            return super.get(key);
-        }
-    }
-    
-    public void set(String key, Object value) {
-        if (key.equals(/* NOI18N */"enabled")) {
-            enable(((Boolean)value).booleanValue());
-        } else {
-            super.set(key, value);
-        }
-    }
-    
-    //
-    // Methods that subclasses should override
-    //
-    
-    /**
-     * Subclassers should override this method.
-     *
-     * This method should return a new value based on the edits that
-     * the user has made.
-     *
-     * The values from the child type editors need not be queried
-     * during this method.  Any children who have unapplied changes
-     * will have already been dealt with by calls to 
-     * the updateFromChild
-     * method.
-     */
-    protected abstract Object getApplyValue() throws ApplyException;
-    
-    /**
-     * Subclassers should override this method.
-     *
-     * This method is called when the child's value has been applied.
-     *
-     * Do NOT call apply from this method.  All you have to do is
-     * record the new value for the child in your state.  Then,
-     * when getApplyValue is called, the new value from the child
-     * should be reflected in the return value from getApplyValue.
-     */
-    protected void childApply(TypeEditor child, Object value) { }
-    
-    /**
-     * Subclassers should override this method.
-     *
-     * This method should load the user interface from a given value.
-     *
-     * The loading of the child editors is dealt with using the
-     * getValueForChild method.
-     */
-    protected abstract void resetFromValue(Object value);
-    
-    /**
-     * Subclassers should override this method.
-     *
-     * Return true if the given child should be enabled for the
-     * given value.  Otherwise return false.  If this method returns
-     * true, then getValueForChild will be called next.
-     */
-    protected boolean shouldEnableChild(TypeEditor child,
-					Object value) {
-        return true;
-    }
-    
-    /**
-     * Subclassers may wish to override this method.
-     *
-     * This method is called during a reset operation.  If this method
-     * is not overridden, then the child values will be set to null.
-     *
-     * The return value should be some subset of the value parameter.
-     * The value parameter is the same value that is passed to the
-     * resetFromValue method.
-     */
-    protected void resetChildFromValue(TypeEditor child, Object value)
-    {
-        child.setValue(null);
-    }
-    
-    /**
-     * Subclassers should override this method.
-     *
-     * When enableEditor is called with a true value, then all the
-     * editor components should be enabled.
-     *
-     * When invoked with a false value, all the components should
-     * be disabled except for the Cancel and Help buttons.
-     */
-    protected abstract void enableEditor(Boolean enable);
-    
-    /**
-     * Returns a title string based on the given component and
-     * attribute names.
-     */
-    protected String getTitle(String compName, String attrName) {
-        if (compName == null && attrName == null)
-            return disabledTitle;
-        else
-            return compName + /* NOI18N */" " + attrName;
-    }
-    
-    /**
-     * Sets the title of the window based on the given component name
-     * and attribute name.
-     */
-    public void setTitle(String compName, String attrName) {
-        if (hasAttribute(/* NOI18N */"title"))
-            set(/* NOI18N */"title", getTitle(compName, attrName));
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            TypeEditor child = (TypeEditor)e.nextElement();
-            child.setTitle(compName, attrName);
-        }
-    }
-    
-    /**
-     * Subclassers may wish to override this method.
-     *
-     * Returns a string to be placed within a button in the attribute
-     * editor.  If non-null is returned, then in place of a text field
-     * or choice menu in the attribute editor, a button will be placed
-     * in the slot that can only be used for calling up a type editor.
-     * The button will contain the text returned.
-     *
-     * The default value, null, means that the type's regular converter
-     * should be consulted for how to display the type in the attribute
-     * editor slot.
-     */
-    public String editorButtonName() {
-        return (null);
-    }
-    
-    //
-    // Do not override these methods in subclasses!
-    //
-    
-    protected void showGroup() {
-        enable(isEnabled);
-        
-        if (resetValueChanged)
-            reset();
-    }
-    
-    protected void hideGroup() {
-        resetValueChanged = false;
-    }
-    
-    /**
-     * Part of TypeEditor implementation, subclassers should NOT
-     * override this method.
-     */
-    public void setParentEditor(TypeEditor parentEditor) {
-        this.parentEditor = parentEditor;
-    }
-    
-    /**
-     * Part of TypeEditor implementation, subclassers should NOT
-     * override this method.
-     */
-    public TypeEditor getParentEditor() {
-        return parentEditor;
-    }
-    
-    /**
-     * Part of TypeEditor implementation, subclassers should NOT
-     * override this method.
-     */
-    protected void addChildEditor(TypeEditor child) {
-        // check to see that child isn't one of this container's parents
-        TypeEditor editor = child.getParentEditor();
-        while (editor != null) {
-            if (editor == child) {
-                throw new VJException(Global.getMsg(
-		    "sunsoft.jws.visual.rt.type.TypeEditor.AddChildError"));
-            }
-            editor = editor.getParentEditor();
-        }
-        
-        if (child.getParentEditor() != null)
-            child.getParentEditor().removeChildEditor(child);
-        
-        children.addElement(child);
-        child.setParentEditor(this);
-    }
-    
-    /**
-     * Part of TypeEditor implementation, subclassers should NOT
-     * override this method.
-     */
-    protected void removeChildEditor(TypeEditor child) {
-        if (child.getParentEditor() != this)
-            return;
-        
-        children.removeElement(child);
-        child.setParentEditor(null);
-    }
-    
-    /**
-     * Part of TypeEditor implementation, subclassers should NOT
-     * override this method.
-     */
-    protected Enumeration getChildEditorList() {
-        return children.elements();
-    }
-    
-    /**
-     * Returns true when changes have been made to the value in this
-     * type editor (or any of its children) and they have not yet been
-     * applied.
-     */
-    public boolean hasChanges() {
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            TypeEditor child = (TypeEditor)e.nextElement();
-            if (child.hasChanges())
-                return true;
-        }
-        
-        return hasChanges;
-    }
-    
-    /**
-     * Clears the change flag in this type editor and all 
-     * of its children.
-    */
-    private void clearChanges() {
-        hasChanges = false;
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            TypeEditor child = (TypeEditor)e.nextElement();
-            child.clearChanges();
-        }
-    }
-    
-    /**
-     * Sets a new value for this type editor to edit and causes the
-     * editor to reset its interface based on the new value.
-     */
-    public void setValue(Object value) {
-        resetValue = value;
-        resetValueChanged = true;
-        reset();
-    }
-    
-    /**
-     * Sets a new reset value for this type editor to 
-     * reset to, but does not
-     * change the current value or cause the editor to reset.
-     */
-    public void setResetValue(Object value) {
-        resetValue = value;
-        resetValueChanged = true;
-    }
-    
-    /**
-     * Returns the value to which this type editor would 
-     * reset to if the user
-     * chooses to "Reset".
-     */
-    public Object getResetValue() {
-        return resetValue;
-    }
-    
-    /**
-     * Returns true if this type editor is enabled.
-     */
-    public boolean isEnabled() {
-        return isEnabled;
-    }
-    
-    /**
-     * Applies all changes made to the value being edited 
-     * in this type editor.
-     * If the type editor has children, they are made to
-     * apply themselves
-     * first.  An "Apply" message is posted to the parent
-     * with the message
-     * argument being the new value of the object edited.
-     */
-    public boolean apply() {
-        if (!isShowing())
-            return true;
-        
-        if (applying || !hasChanges())
-            return true;
-        
-        // Set this flag before calling apply on the children
-        applying = true;
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            TypeEditor child = (TypeEditor)e.nextElement();
-            if (!child.apply()) {
-                applying = false;
-                return false;
-            }
-        }
-        
-        Object applyValue;
-        try {
-            applyValue = getApplyValue();
-        }
-        catch (ApplyException ex) {
-            applying = false;
-            showError(ex.getMessage());
-            return false;
-        }
-        
-        resetValue = applyValue;
-        resetValueChanged = true;
-        hasChanges = false;
-        
-        // Order is important!  Set the hasChanges flag to false BEFORE
-        // posting the apply message.
-        
-        postMessageToParent(new Message(this, /* NOI18N */
-					"Apply", applyValue));
-        
-        // Want to call reset here to catch bugs, but this
-        // would be inefficient.
-        // So let the AttributeDialog do the reset at the top level.
-        
-        applying = false;
-        return true;
-    }
-    
-    /**
-     * Causes the type editor to throw away the current 
-     * value being edited
-     * and reset to the value last applied.
-     */
-    public void reset() {
-        if (!isShowing())
-            return;
-        
-        hasChanges = false;
-        resetFromValue(resetValue);
-        
-        Enumeration e = children.elements();
-        while (e.hasMoreElements()) {
-            TypeEditor child = (TypeEditor)e.nextElement();
-            
-            if (isEnabled && shouldEnableChild(child, resetValue)) {
-                child.enable(true);
-                resetChildFromValue(child, resetValue);
-            } else {
-                child.enable(false);
-                child.setValue(null);
-            }
-        }
-    }
-    
-    /**
-     * Applies changes and hides the type editor.
-     */
-    public void ok() {
-        if (!isShowing())
-            return;
-        
-        if (apply())
-            cancel();
-    }
-    
-    /**
-     * Hides the type editor and clears any changes that 
-     * have been made to
-     * the value being edited.
-     */
-    public void cancel() {
-        if (!isShowing())
-            return;
-        
-        hide();
-        clearChanges();
-    }
-    
-    /**
-     * Enables or disables the type editor and its children.
-     */
-    public void enable(boolean enable) {
-        isEnabled = enable;
-        
-        if (!isShowing())
-            return;
-        
-        enableEditor(new Boolean(enable));
-        
-        // Don't need to enable the children.  The children
-        // will be enabled or
-        // disabled anyways as the result of a reset operation.
-    }
-    
-    /**
-     * Handles "Apply" messages.  These are typically sent by children
-     * of the type editor.
-     */
-    public boolean handleMessage(Message msg) {
-        if (!msg.isAWT && msg.name.equals(/* NOI18N */"Apply")) {
-            childApply((TypeEditor)msg.target, msg.arg);
-            apply();
-            return true;
-        }
-        
-        return super.handleMessage(msg);
-    }
-    
-    /**
-     * Useful utility method for enabling.  Enables this type editor
-     * and all of its children.
-     */
-    protected void recurseEnable(AttributeManager mgr, Boolean value) {
-        if (mgr.hasAttribute(/* NOI18N */"enabled"))
-            mgr.set(/* NOI18N */"enabled", value);
-        
-        if (mgr instanceof AMContainer) {
-            AMContainer cntr = (AMContainer)mgr;
-            Enumeration e = cntr.getChildList();
-            while (e.hasMoreElements()) {
-                recurseEnable((AttributeManager)e.nextElement(), value);
-            }
-        }
-    }
-    
-    //
-    // Error messages
-    //
-    
-    /**
-     * Brings up a modal error dialog window with the 
-     * given message in it
-     * and an "Ok" button.
-     *
-     * @see VJErrorDialog
-     */
-    protected void showError(String message) {
-        if (errorDialog == null)
-            errorDialog = new VJErrorDialog(getFrame(), Global.getMsg(
-		      "sunsoft.jws.visual.rt.type.TypeEditor.Error"), true);
-        
-        errorDialog.setLabel(message);
-        errorDialog.pack();
-        errorDialog.show();
-    }
-}
--- a/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/UnknownTypeConverter.java	Wed Nov 12 08:30:46 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * 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.
- *
- * @(#) UnknownTypeConverter.java 1.11 - last change made 07/25/97
- */
-
-package sunsoft.jws.visual.rt.type;
-
-import java.awt.Color;
-import sunsoft.jws.visual.rt.base.Global;
-
-
-/**
-* Handles conversion of objects of unknown type to string 
-* and back again.
-*
-* @version 	1.11, 07/25/97
-*/
-public class UnknownTypeConverter extends Converter {
-    /**
-     * Handles conversion of an unknown object type.
-     *
-     * @exception Error when called
-     */
-    public String convertToString(Object obj) {
-	/* BEGIN JSTYLED */
-	throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.type.UnknownTypeConverter.NoTypeConverter",
-				      ((obj == null) ? /* NOI18N */"null" : obj.getClass().getName())));
-	/* END JSTYLED */
-    }
-    
-    /**
-     * Handles conversion of an string type representation.
-     *
-     * @exception Error when called
-     */
-    public Object convertFromString(String s) {
-        /* JSTYLED */
-	throw new Error(Global.fmtMsg("sunsoft.jws.visual.rt.type.UnknownTypeConverter.CantConvert", s));
-    }
-}
--- a/usr/src/pkg/manifests/system-security-kerberos-5.mf	Wed Nov 12 08:30:46 2014 -0800
+++ b/usr/src/pkg/manifests/system-security-kerberos-5.mf	Thu Nov 13 13:30:26 2014 -0800
@@ -22,6 +22,7 @@
 #
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 # Copyright 2012 Nexenta Systems, Inc. All rights reserved.
+# Copyright 2014 Garrett D'Amore <garrett@damore.org>
 #
 
 set name=pkg.fmri value=pkg:/system/security/kerberos-5@$(PKGVERS)
@@ -60,12 +61,8 @@
 file path=etc/krb5/kpropd.acl group=sys \
     original_name=SUNWkdc:etc/krb5/kpropd.acl preserve=true
 file path=lib/svc/manifest/network/security/krb5_prop.xml group=sys mode=0444
-file path=usr/lib/krb5/HelpIndex.html mode=0444
-file path=usr/lib/krb5/ListResourceBundle/GuiResource.java mode=0444
-file path=usr/lib/krb5/ListResourceBundle/HelpData.java mode=0444
 file path=usr/lib/krb5/README.db2 mode=0444
 file path=usr/lib/krb5/db2.so.1
-file path=usr/lib/krb5/gkadmin.jar mode=0444
 file path=usr/lib/krb5/kadmind mode=0500
 file path=usr/lib/krb5/kconf mode=0555
 file path=usr/lib/krb5/kdyndns mode=0555
@@ -80,14 +77,11 @@
 file path=usr/lib/krb5/libdb2.so.1
 file path=usr/lib/krb5/libdyn.so.1
 file path=usr/lib/krb5/libkadm5srv.so.1
-file path=usr/lib/krb5/libkadmin.so.1
 file path=usr/lib/krb5/libkdb.so.1
 file path=usr/lib/krb5/libkdb_ldap.so.1
-file path=usr/lib/krb5/visualrt.jar mode=0444
 file path=usr/lib/security/pam_krb5_first mode=0444
 file path=usr/lib/security/pam_krb5_only mode=0444
 file path=usr/lib/security/pam_krb5_optional mode=0444
-file path=usr/sbin/gkadmin mode=0555
 file path=usr/sbin/k5srvutil mode=0555
 file path=usr/sbin/kadmin mode=0555
 file path=usr/sbin/kadmin.local mode=0555
@@ -128,7 +122,6 @@
 link path=usr/lib/krb5/libdb2.so target=libdb2.so.1
 link path=usr/lib/krb5/libdyn.so target=libdyn.so.1
 link path=usr/lib/krb5/libkadm5srv.so target=libkadm5srv.so.1
-link path=usr/lib/krb5/libkadmin.so target=libkadmin.so.1
 link path=usr/lib/krb5/libkdb.so target=libkdb.so.1
 link path=usr/lib/krb5/libkdb_ldap.so target=libkdb_ldap.so.1
 link path=usr/share/man/man1m/kadmin.local.1m target=kadmin.1m