Hi,

Committing the attached patch for Cam McCormack.

Cheers,
Francis


2006-10-17  Cameron McCormack  <[EMAIL PROTECTED]>

        PR 29014
        * java/awt/font/TextLayout.java
        (bidi): New field.
        (constructor): Store bidi in field.
        (getCharacterLevel): Implemented.

Index: java/awt/font/TextLayout.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/font/TextLayout.java,v
retrieving revision 1.14
diff -u -r1.14 TextLayout.java
--- java/awt/font/TextLayout.java	14 Jul 2006 23:35:16 -0000	1.14
+++ java/awt/font/TextLayout.java	17 Oct 2006 17:47:07 -0000
@@ -88,6 +88,12 @@
   private boolean hasWhitespace = false;
 
   /**
+   * The [EMAIL PROTECTED] Bidi} object that is used for reordering and by
+   * [EMAIL PROTECTED] #getCharacterLevel(int)}.
+   */
+  private Bidi bidi;
+
+  /**
    * The default caret policy.
    */
   public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY = new CaretPolicy();
@@ -107,7 +113,7 @@
 
     if( Bidi.requiresBidi( string.toCharArray(), 0, string.length() ) )
       {
-	Bidi bidi = new Bidi( string, leftToRight ? 
+	bidi = new Bidi( string, leftToRight ? 
 			      Bidi.DIRECTION_LEFT_TO_RIGHT : 
 			      Bidi.DIRECTION_RIGHT_TO_LEFT );
 	int rc = bidi.getRunCount();
@@ -434,9 +440,10 @@
   }
 
   public byte getCharacterLevel (int index)
-    throws NotImplementedException
   {
-    throw new Error ("not implemented");
+    if( bidi == null )
+      return (byte)( leftToRight ? 0 : 1 );
+    return (byte)bidi.getLevelAt( index );
   }
 
   public float getDescent ()

Reply via email to