PatchSet 6800 Date: 2005/08/10 11:37:43 Author: robilad Branch: HEAD Tag: (none) Log: Resynced with GNU Classpath: swing corba jawt and KeyPairGenerator fixes
Members: ChangeLog:1.4325->1.4326 libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c:1.2->1.3 libraries/clib/classpath/classpath_jawt.h:1.3->1.4 libraries/javalib/Makefile.am:1.378->1.379 libraries/javalib/Makefile.in:1.468->1.469 libraries/javalib/all.files:1.148->1.149 libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java:1.2->1.3 libraries/javalib/java/security/KeyPairGenerator.java:1.6->1.7 libraries/javalib/javax/swing/JTree.java:1.24->1.25 libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.14->1.15 libraries/javalib/org/omg/DynamicAny/FieldNameHelper.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynAnyFactoryStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynAnyStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynArrayStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynEnumStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynFixedStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynSequenceStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynStructStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynUnionStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/_DynValueStub.java:INITIAL->1.1 libraries/javalib/org/omg/DynamicAny/package.html:INITIAL->1.1 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.4325 kaffe/ChangeLog:1.4326 --- kaffe/ChangeLog:1.4325 Wed Aug 10 11:03:14 2005 +++ kaffe/ChangeLog Wed Aug 10 11:37:43 2005 @@ -1,5 +1,70 @@ 2005-08-10 Dalibor Topic <[EMAIL PROTECTED]> + Resynced with GNU Classpath. + + 2005-08-08 Casey Marshall <[EMAIL PROTECTED]> + + PR classpath/23120 + * gnu/java/security/provider/DSAKeyPairGenerator.java + (<init>): made public; set default values. + (initialize): just call 'initialize(int,boolean,SecureRandom).' + (initialize): just call 'initialize(DSAParams,SecureRandom).' + (initialize): check all values for 'null' before overwriting. + (initialize): fill in defaults or generate new parameters here. + (generateKeyPair): don't create parameters; fill in 'random' if + 'null;' use 'random,' not a new Random object, when generating + random numbers. + (getDefaults): fix keysize check. + + PR classpath/22990 + * java/security/KeyPairGenerator.java (initialize): do nothing. + + 2005-08-08 Tom Tromey <[EMAIL PROTECTED]> + + PR classpath/23285: + * native/jni/classpath/classpath_jawt.h + (classpath_jawt_get_awt_version, classpath_jawt_lock, + classpath_jawt_unlock, classpath_jawt_create_lock, + classpath_jawt_destroy_lock): Use '(void)' in prototype. + * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Added + gtk_jawt.c. + * native/jni/gtk-peer/gtk_jawt.c: New file from libgcj. + (classpath_jawt_create_lock, classpath_jawt_destroy_lock): Use + cp_gtk_gdk_env. + + 2005-08-08 Audrius Meskauskas <[EMAIL PROTECTED]> + + * org/omg/DynamicAny/FieldNameHelper.java: New file. + + 2005-08-08 Audrius Meskauskas <[EMAIL PROTECTED]> + + * org/omg/DynamicAny/_DynAnyFactoryStub.java, + org/omg/DynamicAny/_DynAnyStub.java, + org/omg/DynamicAny/_DynArrayStub.java, + org/omg/DynamicAny/_DynEnumStub.java, + org/omg/DynamicAny/_DynFixedStub.java, + org/omg/DynamicAny/_DynStructStub.java, + org/omg/DynamicAny/_DynUnionStub.java, + org/omg/DynamicAny/_DynValueStub.java, + org/omg/DynamicAny/_DynSequenceStub.java: New files. + + 2005-08-08 Lillian Angel <[EMAIL PROTECTED]> + + Fixes bug #23252 + * javax/swing/JTree.java + (setModel): Changed to allow model to be null. + * javax/swing/plaf/basic/BasicTreeUI.java + (setModel): Changed to depend on JTree functions + (getPathBounds): Fixed to work when model = null. + (getPathForRow): Likewise. + (getRowCount): Likewise. + (installListeners): Likewise. + (installUI): Likewise. + (paint): Likewise. + (getPreferredSize): Likewise. + +2005-08-10 Dalibor Topic <[EMAIL PROTECTED]> + * kaffe/kaffevm/jit3/global-regs.c, kaffe/kaffevm/jit3/global-regs.h: New files. Spilt out global register handling code Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c:1.2 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c:1.3 --- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c:1.2 Mon Jul 4 00:04:04 2005 +++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gtk_jawt.c Wed Aug 10 11:37:47 2005 @@ -153,6 +153,21 @@ } jint +classpath_jawt_object_lock (jobject lock) +{ + JNIEnv *env = cp_gtk_gdk_env(); + (*env)->MonitorEnter (env, lock); + return 0; +} + +void +classpath_jawt_object_unlock (jobject lock) +{ + JNIEnv *env = cp_gtk_gdk_env(); + (*env)->MonitorExit (env, lock); +} + +jint classpath_jawt_lock () { gdk_threads_enter (); @@ -163,4 +178,20 @@ classpath_jawt_unlock () { gdk_threads_leave (); +} + +jobject +classpath_jawt_create_lock () +{ + JNIEnv *env = cp_gtk_gdk_env (); + jobject lock = (*env)->NewStringUTF (env, "jawt-lock"); + NSA_SET_GLOBAL_REF (env, lock); + return lock; +} + +void +classpath_jawt_destroy_lock (jobject lock) +{ + JNIEnv *env = cp_gtk_gdk_env (); + NSA_DEL_GLOBAL_REF (env, lock); } Index: kaffe/libraries/clib/classpath/classpath_jawt.h diff -u kaffe/libraries/clib/classpath/classpath_jawt.h:1.3 kaffe/libraries/clib/classpath/classpath_jawt.h:1.4 --- kaffe/libraries/clib/classpath/classpath_jawt.h:1.3 Sat Jul 30 16:39:07 2005 +++ kaffe/libraries/clib/classpath/classpath_jawt.h Wed Aug 10 11:37:47 2005 @@ -50,15 +50,15 @@ #define CLASSPATH_JAWT_VERSION 0x10004 -jint classpath_jawt_get_awt_version (); +jint classpath_jawt_get_awt_version (void); Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas); Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas); VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas); jint classpath_jawt_object_lock (jobject lock); void classpath_jawt_object_unlock (jobject lock); -jint classpath_jawt_lock (); -void classpath_jawt_unlock (); -jobject classpath_jawt_create_lock (); +jint classpath_jawt_lock (void); +void classpath_jawt_unlock (void); +jobject classpath_jawt_create_lock (void); void classpath_jawt_destroy_lock (jobject lock); #endif /* __classpath_jawt_h__ */ Index: kaffe/libraries/javalib/Makefile.am diff -u kaffe/libraries/javalib/Makefile.am:1.378 kaffe/libraries/javalib/Makefile.am:1.379 --- kaffe/libraries/javalib/Makefile.am:1.378 Mon Aug 8 02:52:16 2005 +++ kaffe/libraries/javalib/Makefile.am Wed Aug 10 11:37:47 2005 @@ -4671,12 +4671,22 @@ org/omg/DynamicAny/DynValueCommonOperations.java \ org/omg/DynamicAny/DynValueHelper.java \ org/omg/DynamicAny/DynValueOperations.java \ + org/omg/DynamicAny/FieldNameHelper.java \ org/omg/DynamicAny/NameDynAnyPair.java \ org/omg/DynamicAny/NameDynAnyPairHelper.java \ org/omg/DynamicAny/NameDynAnyPairSeqHelper.java \ org/omg/DynamicAny/NameValuePair.java \ org/omg/DynamicAny/NameValuePairHelper.java \ - org/omg/DynamicAny/NameValuePairSeqHelper.java + org/omg/DynamicAny/NameValuePairSeqHelper.java \ + org/omg/DynamicAny/_DynAnyFactoryStub.java \ + org/omg/DynamicAny/_DynAnyStub.java \ + org/omg/DynamicAny/_DynArrayStub.java \ + org/omg/DynamicAny/_DynEnumStub.java \ + org/omg/DynamicAny/_DynFixedStub.java \ + org/omg/DynamicAny/_DynSequenceStub.java \ + org/omg/DynamicAny/_DynStructStub.java \ + org/omg/DynamicAny/_DynUnionStub.java \ + org/omg/DynamicAny/_DynValueStub.java org_omg_DynamicAny_DynAnyFactoryPackage_SRCS = \ org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java \ org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java Index: kaffe/libraries/javalib/Makefile.in diff -u kaffe/libraries/javalib/Makefile.in:1.468 kaffe/libraries/javalib/Makefile.in:1.469 --- kaffe/libraries/javalib/Makefile.in:1.468 Mon Aug 8 02:52:16 2005 +++ kaffe/libraries/javalib/Makefile.in Wed Aug 10 11:37:48 2005 @@ -5299,12 +5299,22 @@ org/omg/DynamicAny/DynValueCommonOperations.java \ org/omg/DynamicAny/DynValueHelper.java \ org/omg/DynamicAny/DynValueOperations.java \ + org/omg/DynamicAny/FieldNameHelper.java \ org/omg/DynamicAny/NameDynAnyPair.java \ org/omg/DynamicAny/NameDynAnyPairHelper.java \ org/omg/DynamicAny/NameDynAnyPairSeqHelper.java \ org/omg/DynamicAny/NameValuePair.java \ org/omg/DynamicAny/NameValuePairHelper.java \ - org/omg/DynamicAny/NameValuePairSeqHelper.java + org/omg/DynamicAny/NameValuePairSeqHelper.java \ + org/omg/DynamicAny/_DynAnyFactoryStub.java \ + org/omg/DynamicAny/_DynAnyStub.java \ + org/omg/DynamicAny/_DynArrayStub.java \ + org/omg/DynamicAny/_DynEnumStub.java \ + org/omg/DynamicAny/_DynFixedStub.java \ + org/omg/DynamicAny/_DynSequenceStub.java \ + org/omg/DynamicAny/_DynStructStub.java \ + org/omg/DynamicAny/_DynUnionStub.java \ + org/omg/DynamicAny/_DynValueStub.java org_omg_DynamicAny_DynAnyFactoryPackage_SRCS = \ org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java \ Index: kaffe/libraries/javalib/all.files diff -u kaffe/libraries/javalib/all.files:1.148 kaffe/libraries/javalib/all.files:1.149 --- kaffe/libraries/javalib/all.files:1.148 Mon Aug 8 02:52:18 2005 +++ kaffe/libraries/javalib/all.files Wed Aug 10 11:37:51 2005 @@ -4032,12 +4032,22 @@ org/omg/DynamicAny/DynValueCommonOperations.java org/omg/DynamicAny/DynValueHelper.java org/omg/DynamicAny/DynValueOperations.java +org/omg/DynamicAny/FieldNameHelper.java org/omg/DynamicAny/NameDynAnyPair.java org/omg/DynamicAny/NameDynAnyPairHelper.java org/omg/DynamicAny/NameDynAnyPairSeqHelper.java org/omg/DynamicAny/NameValuePair.java org/omg/DynamicAny/NameValuePairHelper.java org/omg/DynamicAny/NameValuePairSeqHelper.java +org/omg/DynamicAny/_DynAnyFactoryStub.java +org/omg/DynamicAny/_DynAnyStub.java +org/omg/DynamicAny/_DynArrayStub.java +org/omg/DynamicAny/_DynEnumStub.java +org/omg/DynamicAny/_DynFixedStub.java +org/omg/DynamicAny/_DynSequenceStub.java +org/omg/DynamicAny/_DynStructStub.java +org/omg/DynamicAny/_DynUnionStub.java +org/omg/DynamicAny/_DynValueStub.java org/omg/IOP/CodeSets.java org/omg/IOP/Codec.java org/omg/IOP/CodecFactory.java Index: kaffe/libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java diff -u kaffe/libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java:1.2 kaffe/libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java:1.3 --- kaffe/libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java:1.2 Mon Jul 4 00:05:40 2005 +++ kaffe/libraries/javalib/gnu/java/security/provider/DSAKeyPairGenerator.java Wed Aug 10 11:37:52 2005 @@ -1,5 +1,5 @@ /* GnuDSAKeyPairGenerator.java --- Gnu DSA Key Pair Generator - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,10 +45,12 @@ import java.security.InvalidParameterException; import java.security.KeyPair; import java.security.KeyPairGeneratorSpi; +import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.interfaces.DSAParams; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.DSAParameterSpec; +import java.security.spec.InvalidParameterSpecException; import java.util.Random; public class DSAKeyPairGenerator extends KeyPairGeneratorSpi @@ -60,18 +62,15 @@ private BigInteger p = null; // the big prime private BigInteger g = null; -DSAKeyPairGenerator() +public DSAKeyPairGenerator() { keysize = 1024; + getDefaults (); } public void initialize(int keysize, SecureRandom random) { - //if( ((keysize % 64) != 0) || (keysize < 512) || (keysize > 1024) ) - // throw new InvalidAlgorithmParameterException("Invalid key size"); - - this.keysize = keysize; - this.random = random; + initialize (keysize, false, random); } public void initialize(AlgorithmParameterSpec params, @@ -81,65 +80,87 @@ if( !( params instanceof DSAParameterSpec ) ) throw new InvalidAlgorithmParameterException("Must be DSAParameterSpec"); + try + { + initialize ((DSAParams) params, random); + } + catch (InvalidParameterException ipe) + { + InvalidAlgorithmParameterException iape = + new InvalidAlgorithmParameterException(); + iape.initCause (ipe); + throw iape; + } +} + +public void initialize (DSAParams params, SecureRandom random) +{ DSAParameterSpec dsaparameterspec = (DSAParameterSpec)params; + if (dsaparameterspec.getP() == null + || dsaparameterspec.getQ() == null + || dsaparameterspec.getG() == null) + { + throw new InvalidParameterException ("none of p, q, or g may be null"); + } p = dsaparameterspec.getP(); q = dsaparameterspec.getQ(); g = dsaparameterspec.getG(); this.random = random; } -public void initialize(DSAParams params, SecureRandom random) - throws InvalidParameterException -{ - if(params.getP() != null) - p = params.getP(); - else - throw new InvalidParameterException(); - - if(params.getQ() != null) - q = params.getQ(); - else - throw new InvalidParameterException(); - - if(params.getG() != null) - g = params.getG(); - else - throw new InvalidParameterException(); - - this.random = random; -} - public void initialize(int modlen, boolean genParams, SecureRandom random) throws InvalidParameterException { if( ((modlen % 64) != 0) || (modlen < 512) || (modlen > 1024) ) throw new InvalidParameterException(); - if( (genParams == false) && (modlen != 512) && (modlen != 768) && (modlen != 1024) ) - throw new InvalidParameterException(); - this.keysize = modlen; - this.random = random; - p = null; - q = null; - g = null; + this.keysize = keysize; + this.random = random; + if (this.random == null) + { + this.random = new SecureRandom (); + } + if (genParams) + { + try + { + AlgorithmParameterGenerator apgDSA = AlgorithmParameterGenerator.getInstance("DSA"); + apgDSA.init (modlen, random); + AlgorithmParameters apDSA = apgDSA.generateParameters(); + DSAParameterSpec dsaparameterspec = (DSAParameterSpec)apDSA.getParameterSpec( DSAParameterSpec.class ); + p = dsaparameterspec.getP(); + q = dsaparameterspec.getQ(); + g = dsaparameterspec.getG(); + } + catch (NoSuchAlgorithmException nsae) + { + InvalidParameterException ipe = + new InvalidParameterException ("can't generate DSA parameters"); + ipe.initCause (nsae); + throw ipe; + } + catch (InvalidParameterSpecException ipse) + { + InvalidParameterException ipe = + new InvalidParameterException ("can't generate DSA parameters"); + ipe.initCause (ipse); + throw ipe; + } + } + else if (!getDefaults ()) + { + throw new InvalidParameterException ("unsupported key size: " + modlen); + } } public KeyPair generateKeyPair() { - if( getDefaults() == false) { - try { - AlgorithmParameterGenerator apgDSA = AlgorithmParameterGenerator.getInstance("DSA"); - AlgorithmParameters apDSA = apgDSA.generateParameters(); - DSAParameterSpec dsaparameterspec = (DSAParameterSpec)apDSA.getParameterSpec( DSAParameterSpec.class ); - p = dsaparameterspec.getP(); - q = dsaparameterspec.getQ(); - g = dsaparameterspec.getG(); - } catch ( Exception e ) { - return null; - } - } + if (random == null) + { + random = new SecureRandom (); + } - BigInteger x = new BigInteger( 159, new Random() ); + BigInteger x = new BigInteger( 159, random ); BigInteger y = g.modPow( x, p ); @@ -160,7 +181,7 @@ p = new BigInteger("e9e642599d355f37c97ffd3567120b8e25c9cd43e927b3a9670fbec5d890141922d2c3b3ad2480093799869d1e846aab49fab0ad26d2ce6a22219d470bce7d777d4a21fbe9c270b57f607002f3cef8393694cf45ee3688c11a8c56ab127a3daf", 16); q = new BigInteger("9cdbd84c9f1ac2f38d0f80f42ab952e7338bf511", 16); g = new BigInteger("30470ad5a005fb14ce2d9dcd87e38bc7d1b1c5facbaecbe95f190aa7a31d23c4dbbcbe06174544401a5b2c020965d8c2bd2171d3668445771f74ba084d2029d83c1c158547f3a9f1a2715be23d51ae4d3e5a1f6a7064f316933a346d3f529252", 16); - } else if( keysize == 512) { + } else if( keysize == 1024) { p = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16); q = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16); g = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16); Index: kaffe/libraries/javalib/java/security/KeyPairGenerator.java diff -u kaffe/libraries/javalib/java/security/KeyPairGenerator.java:1.6 kaffe/libraries/javalib/java/security/KeyPairGenerator.java:1.7 --- kaffe/libraries/javalib/java/security/KeyPairGenerator.java:1.6 Mon Jul 4 00:07:14 2005 +++ kaffe/libraries/javalib/java/security/KeyPairGenerator.java Wed Aug 10 11:37:52 2005 @@ -1,5 +1,5 @@ /* KeyPairGenerator.java --- Key Pair Generator Class - Copyright (C) 1999, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -300,7 +300,6 @@ */ public void initialize(int keysize, SecureRandom random) { - initialize(keysize, random); } /** Index: kaffe/libraries/javalib/javax/swing/JTree.java diff -u kaffe/libraries/javalib/javax/swing/JTree.java:1.24 kaffe/libraries/javalib/javax/swing/JTree.java:1.25 --- kaffe/libraries/javalib/javax/swing/JTree.java:1.24 Sat Jul 30 16:39:26 2005 +++ kaffe/libraries/javalib/javax/swing/JTree.java Wed Aug 10 11:37:53 2005 @@ -775,16 +775,17 @@ { if (treeModel == model) return; - - TreeModel oldValue = treeModel; - treeModel = model; - - firePropertyChange(TREE_MODEL_PROPERTY, oldValue, model); - + // add treeModelListener to the new model if (treeModelListener == null) treeModelListener = createTreeModelListener(); - model.addTreeModelListener(treeModelListener); + if (model != null) // as setModel(null) is allowed + model.addTreeModelListener(treeModelListener); + + TreeModel oldValue = treeModel; + treeModel = model; + + firePropertyChange(TREE_MODEL_PROPERTY, oldValue, model); } /** Index: kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java diff -u kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.14 kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.15 --- kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.14 Mon Aug 8 02:52:27 2005 +++ kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java Wed Aug 10 11:37:53 2005 @@ -449,7 +449,7 @@ protected void setModel(TreeModel model) { tree.setModel(model); - treeModel = model; + treeModel = tree.getModel(); } /** @@ -583,13 +583,16 @@ { Object cell = path.getLastPathComponent(); TreeModel mod = tree.getModel(); - TreeNode root = (TreeNode) mod.getRoot(); - if (!tree.isRootVisible() - && tree.isExpanded(new TreePath(root))) - root = getNextNode(root); - - Point loc = getCellLocation(0, 0, tree, mod, cell, root); - return getCellBounds(loc.x, loc.y, cell); + if (mod != null) + { + TreeNode root = (TreeNode) mod.getRoot(); + if (!tree.isRootVisible() + && tree.isExpanded(new TreePath(root))) + root = getNextNode(root); + + Point loc = getCellLocation(0, 0, tree, mod, cell, root); + return getCellBounds(loc.x, loc.y, cell); + } } return null; } @@ -605,20 +608,23 @@ */ public TreePath getPathForRow(JTree tree, int row) { - TreeNode node = ((TreeNode) (tree.getModel()).getRoot()); - if (!tree.isRootVisible() - && tree.isExpanded(new TreePath(getPathToRoot(node, 0)))) - node = getNextNode(node); - - for (int i = 0; i < row; i++) - node = getNextVisibleNode(node); - - // in case nothing was found - if (node == null) - return null; - - // something was found - return new TreePath(getPathToRoot(node, 0)); + TreeModel mod = tree.getModel(); + if (mod != null) + { + TreeNode node = ((TreeNode) mod.getRoot()); + if (!tree.isRootVisible() + && tree.isExpanded(new TreePath(getPathToRoot(node, 0)))) + node = getNextNode(node); + + for (int i = 0; i < row; i++) + node = getNextVisibleNode(node); + + if (node == null) + return null; + + return new TreePath(getPathToRoot(node, 0)); + } + return null; } /** @@ -647,20 +653,21 @@ */ public int getRowCount(JTree tree) { - TreeNode node = ((TreeNode) (tree.getModel()) - .getRoot()); - if (!tree.isRootVisible() - && tree.isExpanded(new TreePath((getPathToRoot(node, 0))))) - node = getNextNode(node); - + TreeModel mod = tree.getModel(); int count = 0; - - while (node != null) + if (mod != null) + { + TreeNode node = ((TreeNode) mod.getRoot()); + if (!tree.isRootVisible() + && tree.isExpanded(new TreePath((getPathToRoot(node, 0))))) + node = getNextNode(node); + + while (node != null) { count++; node = getNextVisibleNode(node); } - + } return count; } @@ -1162,7 +1169,8 @@ tree.addComponentListener(componentListener); cellEditor.addCellEditorListener(cellEditorListener); tree.addTreeExpansionListener(treeExpansionListener); - treeModel.addTreeModelListener(treeModelListener); + if (treeModel != null) + treeModel.addTreeModelListener(treeModelListener); } /** @@ -1175,9 +1183,11 @@ super.installUI(c); installDefaults((JTree) c); tree = (JTree) c; - setModel(tree.getModel()); + TreeModel mod = tree.getModel(); + setModel(mod); tree.setRootVisible(true); - tree.expandPath(new TreePath(tree.getModel().getRoot())); + if (mod != null) + tree.expandPath(new TreePath(mod.getRoot())); treeSelectionModel = tree.getSelectionModel(); installListeners(); installKeyboardActions(); @@ -1227,15 +1237,18 @@ { JTree tree = (JTree) c; TreeModel mod = tree.getModel(); - Object root = mod.getRoot(); - - if (!tree.isRootVisible()) - tree.expandPath(new TreePath(root)); - - paintRecursive(g, 0, 0, 0, 0, tree, mod, root); - - if (hasControlIcons()) - paintControlIcons(g, 0, 0, 0, 0, tree, mod, root); + if (mod != null) + { + Object root = mod.getRoot(); + + if (!tree.isRootVisible()) + tree.expandPath(new TreePath(root)); + + paintRecursive(g, 0, 0, 0, 0, tree, mod, root); + + if (hasControlIcons()) + paintControlIcons(g, 0, 0, 0, 0, tree, mod, root); + } } /** @@ -1295,23 +1308,26 @@ public Dimension getPreferredSize(JComponent c, boolean checkConsistancy) { // FIXME: checkConsistancy not implemented, c not used - TreeNode node = ((TreeNode) (tree.getModel()) - .getRoot()); + TreeModel model = tree.getModel(); int maxWidth = 0; int count = 0; - if (node != null) + if (model != null) + { + TreeNode node = (TreeNode) model.getRoot(); + if (node != null) { maxWidth = (int) (getCellBounds(0, 0, node).getWidth()); while (node != null) - { - count++; - TreeNode nextNode = getNextVisibleNode(node); - if (nextNode != null) - maxWidth = Math.max(maxWidth, (int) (getCellBounds(0, 0, nextNode) - .getWidth())); - node = nextNode; - } + { + count++; + TreeNode nextNode = getNextVisibleNode(node); + if (nextNode != null) + maxWidth = Math.max(maxWidth, (int) (getCellBounds(0, 0, nextNode) + .getWidth())); + node = nextNode; + } } + } return new Dimension(maxWidth, (getRowHeight() * count)); } =================================================================== Checking out kaffe/libraries/javalib/org/omg/DynamicAny/FieldNameHelper.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/DynamicAny/FieldNameHelper.java,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/libraries/javalib/org/omg/DynamicAny/FieldNameHelper.java Wed Aug 10 11:43:17 2005 @@ -0,0 +1,120 @@ +/* FieldNameHelper.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package org.omg.DynamicAny; + +import gnu.CORBA.Restricted_ORB; + +import org.omg.CORBA.Any; +import org.omg.CORBA.ORB; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * A helper for the FieldName. The fields [EMAIL PROTECTED] NameValuePair#id}, + * [EMAIL PROTECTED] NameDynAnyPair#id} and return values of methods + * <code>current_member_name()</code>, <code>member_name()</code> in several + * interfaces officially have the "FieldName" type. This type is directly + * mapped into java String and needs no helper. The helper + * is included only as a part of the formal standard. + * + * @author Audrius Meskauskas, Lithuania ([EMAIL PROTECTED]) + */ +public abstract class FieldNameHelper +{ + /** + * Insert the FieldName into Any (uses [EMAIL PROTECTED] Any.insert_string}). + * + * @param a the Any to insert into. + * @param that the string to insert. + */ + public static void insert(Any a, String that) + { + a.insert_string(that); + } + + /** + * Extract the FieldName from Any ((uses [EMAIL PROTECTED] Any.extract_string}). + * + * @param a the Any to extract from. + */ + public static String extract(Any a) + { + return a.extract_string(); + } + + /** + * Return an alias typecode. + */ + public static TypeCode type() + { + ORB orb = Restricted_ORB.Singleton; + return orb.create_alias_tc(id(), "FieldName", orb.create_string_tc(0)); + } + + /** + * Return the FieldName repository id. + * @return "IDL:omg.org/DynamicAny/FieldName:1.0", always. + */ + public static String id() + { + return "IDL:omg.org/DynamicAny/FieldName:1.0"; + } + + /** + * Calls [EMAIL PROTECTED] InputStream#read_string()}. + * + * @param instream the stream to read from. + */ + public static String read(InputStream istream) + { + return istream.read_string(); + } + + /** + * Calls [EMAIL PROTECTED] OutputStream#write_string()}. + * + * @param ostream the stream to write into. + * @param value the string (FieldName) value to write. + */ + public static void write(OutputStream ostream, String value) + { + ostream.write_string(value); + } +} \ No newline at end of file =================================================================== Checking out kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyFactoryStub.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyFactoryStub.java,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyFactoryStub.java Wed Aug 10 11:43:17 2005 @@ -0,0 +1,111 @@ +/* _DynAnyFactoryStub.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + This file is part of GNU Classpath. + GNU Classpath is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + GNU Classpath is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + You should have received a copy of the GNU General Public License + along with GNU Classpath; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + + +package org.omg.DynamicAny; + +import org.omg.CORBA.Any; +import org.omg.CORBA.MARSHAL; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode; + +import java.io.Serializable; + +/** + * Should provide support for remote invocation of methods on + * DynAnyFactory. As DynAny can never be remote at least till 1.5 inclusive, + * this class is not in use. DynAnyFactory should be obtained from the + * [EMAIL PROTECTED] ORB#resolve_initial_references}. + * + * @author Audrius Meskauskas, Lithuania ([EMAIL PROTECTED]) + */ +public class _DynAnyFactoryStub + extends ObjectImpl + implements DynAnyFactory, Serializable +{ + /** + * Use serialVersionUID (v1.4) for interoperability. + */ + private static final long serialVersionUID = -6575269659020082310L; + + /** + * Create the DynAnyFactory stub. + */ + public _DynAnyFactoryStub() + { + } + + /** + * Create the naming context stub with the given delegate. + */ + public _DynAnyFactoryStub(Delegate delegate) + { + _set_delegate(delegate); + } + + /** + * Return the array of repository ids for this object. + */ + public String[] _ids() + { + return new String[] { DynAnyFactoryHelper.id() }; + } + + /** + * The remote call of this DynAnyFactory method is not possible + * (the created DynAny would not be transferred to client). + * + * @throws MARSHAL, always. + */ + public DynAny create_dyn_any(Any _0) + throws InconsistentTypeCode + { + throw new MARSHAL(NOT_APPLICABLE); + } + + /** + * The remote call of this DynAnyFactory method is not possible + * (the created DynAny would not be transferred to client). + * + * @throws MARSHAL, always. + */ + public DynAny create_dyn_any_from_type_code(TypeCode _0) + throws InconsistentTypeCode + { + throw new MARSHAL(NOT_APPLICABLE); + } + + static String NOT_APPLICABLE = + "DynAnyFactory is always local objects. " + + "It is never accessed on remote side via stub."; +} \ No newline at end of file =================================================================== Checking out kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyStub.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyStub.java,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/libraries/javalib/org/omg/DynamicAny/_DynAnyStub.java Wed Aug 10 11:43:17 2005 @@ -0,0 +1,625 @@ +/* _DynAnyStub.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + This file is part of GNU Classpath. + GNU Classpath is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + GNU Classpath is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + You should have received a copy of the GNU General Public License + along with GNU Classpath; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + + +package org.omg.DynamicAny; + +import org.omg.CORBA.Any; +import org.omg.CORBA.MARSHAL; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.DynamicAny.DynAnyPackage.InvalidValue; +import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; + +import java.io.Serializable; + +/** + * Should provide support for remote invocation of methods on DynAny. As + * DynAny can never be remote at least till 1.5 inclusive, this class is + * not in use. + * + * @author Audrius Meskauskas, Lithuania ([EMAIL PROTECTED]) + */ +public class _DynAnyStub + extends ObjectImpl + implements DynAny, Serializable +{ *** Patch too long, truncated *** _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe