Using the HATS bidirectional API
If you create HATS applications that use bidirectional (Arabic or Hebrew) code pages, and you add business logic or create your own custom components or widgets, you can use the bidirectional API to handle the recognition of host components and the presentation of widgets on the Web page. This chapter describes this API. Before using the material in this chapter you should be familiar with the bidirectional concepts described in HATS User's and Administrator's Guide.
Data Conversion APIs
Two APIs for handling text conversion from visual to logical and vice versa are included in the HostScreen class. You can use these APIs when creating custom widgets and components to handle the extraction of data.
ConvertVisualToLogical
public java.lang.String ConvertVisualToLogical(java.lang.String inputBuffer, boolean isleft-to-rightVisual, boolean isleft-to-rightImplicit)
Converts the given string from visual to implicit format and returns the implicit format of the string.
- inputBuffer
- The input string in visual format.
- isleft-to-rightVisual
- If true, inputBuffer is in visual left-to-right form.
- isleft-to-rightImplicit
- If true, the output buffer is in implicit left-to-right form.
ConvertLogicalToVisual
public java.lang.String ConvertLogicalToVisual(java.lang.String inputBuffer, boolean isleft-to-rightImplicit, boolean isleft-to-rightVisual)
Converts the given string from implicit to visual format and returns the visual format of the string.
- inputBuffer
- The input string in implicit format.
- isleft-to-rightImplicit
- If true, inputBuffer is in implicit left-to-right form.
- isleft-to-rightVisual
- If true, the output buffer is in visual left-to-right form.
Global Variable APIs
There are two getter methods that you can use to get the value of global variables. Using these methods you can get the global variable value either in implicit format or in visual format. These two methods are in class com.ibm.hats.common.BaseInfo.
getGlobalVariable
public IGlobalVariable getGlobalVariable(String name, boolean createIfNotExist,boolean bidiImplicit)
Gets the named global variable, optionally creating it if it does not already exist.
- createIfNotExist
- Indicates whether or not to create a non-existent global variable.
- bidiImplicit
- Indicates whether to get the global variable value in implicit format if true, or in visual format if false.
getSharedGlobalVariable
public IGlobalVariable getSharedGlobalVariable(String name, boolean createIfNotExist,boolean bidiImplicit)
Gets the named shared global variable, optionally creating it if it does not already exist.
- createIfNotExist
- Indicates whether or not to create a non-existent global variable
- bidiImplicit
- Indicates whether to get the global variable value in implicit format if true, or in visual format if false.
BIDI OrderBean
You can use the methods of the BIDI OrderBean for the correct display of bidirectional data. It contains the following parameters:
- BidiString
- String. Contains bidirectional text
- FromTextVisual
- Boolean. Indicates whether the source bidirectional text is visual. Default is true.
- FromOriLTR
- Boolean. Indicates whether the orientation of the source bidirectional text is LTR. Default is true.
- ToTextVisual
- Boolean. Indicates whether the target bidirectional text is visual. Default is true.
- ToOriLTR
- Boolean. Indicates whether the orientation of the target bidirectional text is LTR. Default is true.
- NeedShape
- Boolean. Indicates whether bidirectional text is Arabic text and whether it needs shaping. Default is false.
- CharSet
- String. Defines the character encoding for the JSP.
- NumShape
- String. Defines the numerals shaping method. Default is Nominal.
- SymSwap
- Boolean. Indicates whether symmetric swapping is on. Default is false.
BIDI OrderBean methods
- setBidiString
- public void setBidiString (String BdString)
Sets the bidirectional text to be reordered to the given string. The only parameter is BdString, which is the bidirectional string that needs reordering.
- getBidiString
- public String getBidiString ()
Gets the bidirectional text. Returns the bidirectional string that needs reordering.
- setFromTextVisual
- public void setFromTextVisual (boolean on)
Sets the source bidirectional text type as visual. The only parameter is on. If true, defines this source bidirectional text as visual. If false, defines this source bidirectional text as implicit.
- setFromOriLTR
- public void setfromOriLTR (boolean on)
Sets the source bidirectional text orientation as LTR. The only parameter is on. If true, defines this source bidirectional text as LTR. If false, defines this source bidirectional text as RTL.
- setToTextVisual
- public void setToTextVisual (boolean on)
Sets the target bidirectional text type as visual. The only parameter is on. If true, defines this target bidirectional text as visual. If false, defines this target bidirectional text as implicit.
- setToOriLTR
- public void setToOriLTR (boolean on)
Sets the target bidirectional text orientation as LTR. The only parameter is on. If true, defines this target bidirectional text as LTR. If false, defines this target bidirectional text as RTL.
- setEncoding
- public void setEncoding (String CharSet)
Sets the encoding character set. The only parameter is CharSet, which is a character-encoding name.
- setNeedShape
- public void setNeedShape (boolean on)
Sets the need to perform shaping. The only parameter is on. If true, indicates the need to perform shaping on the bidirectional text.
- Order
- public void Order ()
Performs the ordering of the bidirectional text. There are no parameters.
- CompressLamAlef
- public String CompressLamAlef(String input,boolean direction)
Returns a string in which a Lam character followed by an Alef character is replaced by one LamAlef character. Parameters are:
- Direction. If true, indicates input text is in visual form. If false, input text is in implicit form.
- Input. An input string containing LamAlef characters to be compressed.
- ExpandLamAlef
- public String ExpandLamAlef(String input,boolean direction)
Returns a string in which a Lam Alef character is replaced by a Lam followed by one Alef character. Parameters are:
- Direction. If true, indicates input text is in visual form. If false, input text is in implicit form.
- Input. An input string containing LamAlef characters to be expanded.
- setNumerals
- public void setNumerals(String NumShape)
Sets the numerals shape of the output buffer. The only parameter is:
- NumShape. A string that takes one of three values:
- NOMINAL. Numerals are in Latin format.
- CONTEXTUAL. Numerals follow numbers.
- NATIONAL. Numerals are in National format.
- Input. An input string containing LamAlef characters to be expanded.
- setSymSwap
- public void setSymSwap (boolean on)
Sets the Symmetric swapping option with Visual RTL orientation. The only parameter is on. If true, symmetric swapping is enabled for swapping characters in RTL screens. If false (the default), symmetric swapping is disabled for swapping characters in RTL screens.
- ShapeArabicData
- public String ShapeArabicData(String strInBuffer,boolean isLTRVisual, boolean EnableNumSwap)
Returns a string in which Arabic data is shaped. Parameters are:
- strInBuffer. The bidirectional string that needs shaping.
- isLTRVisual. An input string containing LamAlef characters to be expanded. If true, bidirectional string is left to right visual. If false, bidirectional string is right to left visual.
- EnableNumSwap. If true, enable Numeric swapping. If false, disable numeric swapping.
- DeshapeArabicData
- public String DeshapeArabicData (String strInBuffer,boolean isLTRVisual,boolean EnableNumSwap)
Returns a string in which Arabic data is deshaped. Parameters are:
- strInBuffer. The bidirectional string that needs deshaping.
- isLTRVisual. If true, bidirectional string is left to right visual. If false, bidirectional string is right to left visual.
- EnableNumSwap. If true, enable numeric swapping. If false, disable numeric swapping.
- ConvertLogicalToVisual
- public java.lang.String ConvertLogicalToVisual(java.lang.String inputBuffer, boolean isLTRimplicit, boolean isLTRVisual)
Converts the given string from implicit to visual format and returns the visual format of the string. Parameters are:
- InputBuffer. The input string in implicit format.
- isLTRimplicit. If true, inputBuffer is in implicit left-to-right form.
- isLTRVisual. If true, the output buffer is in visual left-to-right form.
- ConvertVisualToLogical
- public java.lang.String ConvertVisualToLogical(java.lang.String inputBuffer, boolean isLTRVisual, boolean isLTRimplicit)
Converts the given string from visual to implicit format and returns the implicit format of the string. Parameters are:
- InputBuffer. The input string in visual format.
- isLTRimplicit. If true, the output buffer is in implicit left-to-right form.
- isLTRVisual. If true, inputBuffer is in visual left-to-right form.