Bidi


Bidi java.text

Java 1.4

The Bidi class implements the " Unicode Version 3.0 Bidirectional Algorithm" for working with Arabic and Hebrew text in which letters run right-to-left and numbers run left-to-right . It is named after the first four letters of "bidirectional." A full description of the bidirectional text handling and the bidirectional algorithim is beyond the scope of this book, but the simplest use case for this class is outlined here. Create a Bidi object by passing an AttributedCharacterIterator or a String and one of the DIRECTION constants (to indicate the base direction of the text) to the Bidi( ) constructor. Or use createLineBidi( ) to return a substring of an existing Bidi object (this is usually done when formatting a paragraph of text to fit on individual lines).

Once you have a Bidi object, use isLeftToRight( ) and isRightToLeft( ) to determine whether all the text has the same direction. If both of these methods return false (which is the same as isMixed( ) returning TRue ) then you cannot treat the text as a single run of uni-directional text. In this case, you must break it into two or more runs of unidirectional text. getrunCount( ) returns the number of distinct runs of text. For each such numbered run, getrunStart( ) returns the index of the first character of the run, and geTRunLimit( ) returns the index of the first character past the end of the run. getrunLevel( ) returns the level of the text, which is an integer that represents the direction and nesting level of the text. Even levels represent left-to-right text, and odd levels represent right-to-left text. The level divided by two is the nesting level of the text. For example, left-to-right text embedded within right-to-left text has a level of 2.

 public final class  Bidi  {  // Public Constructors  public  Bidi  (AttributedCharacterIterator  paragraph  );        public  Bidi  (String  paragraph  , int  flags  );        public  Bidi  (char[ ]  text  , int  textStart  , byte[ ]  embeddings  ,          int  embStart  , int  paragraphLength  , int  flags  );  // Public Constants  public static final int  DIRECTION_DEFAULT_LEFT_TO_RIGHT  ;  =-2  public static final int  DIRECTION_DEFAULT_RIGHT_TO_LEFT  ;  =-1  public static final int  DIRECTION_LEFT_TO_RIGHT  ;  =0  public static final int  DIRECTION_RIGHT_TO_LEFT  ;  =1   // Public Class Methods  public static void  reorderVisually  (byte[ ]  levels  , int  levelStart  ,          Object[ ]  objects  , int  objectStart  , int  count  );        public static boolean  requiresBidi  (char[ ]  text  , int  start  , int  limit  );  // Public Instance Methods  public boolean  baseIsLeftToRight  ( );        public Bidi  createLineBidi  (int  lineStart  , int  lineLimit  );        public int  getBaseLevel  ( );        public int  getLength  ( );        public int  getLevelAt  (int  offset  );        public int  getRunCount  ( );        public int  getRunLevel  (int  run  );        public int  getRunLimit  (int  run  );        public int  getRunStart  (int  run  );        public boolean  isLeftToRight  ( );        public boolean  isMixed  ( );        public boolean  isRightToLeft  ( );  // Public Methods Overriding Object  public String  toString  ( );   } 



Java In A Nutshell
Java In A Nutshell, 5th Edition
ISBN: 0596007736
EAN: 2147483647
Year: 2004
Pages: 1220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net