BBjInputD::setLocale

Description

In BBj 4.0 and higher, this method sets the locale for the BBjInputD control.

Syntax

Return Value

Method

void

setLocale(string locale)

Parameters

Variable

Description

locale

Specifies the locale for this control.

Return Value

None.

Remarks

The locale determines the language and format of the popup calendar.

Example

rem 'Set the Locale of an InputD control

rem 'Obtain the instance of the BBjAPI object
let myAPI! = BBjAPI()

rem 'Open the SysGui device
SYSGUI = UNT
OPEN (SYSGUI)"X0"

rem 'Obtain the instance of the BBjSysGui object
let mySysGui! = myAPI!.getSysGui()

rem 'Set addWindow param values
X = 10
Y = 10
WIDTH = 200
HEIGHT = 200
TITLE$="BBj Window"

rem 'Set the current context
mySysGui!.setContext(0)

rem 'Create a window
myWindow! = mySysGui!.addWindow(X,Y,WIDTH,HEIGHT,TITLE$,$00010003$)

rem 'Create list of available locales
Locales$ = stbl("!LOCALES")
count = pos($0a$ = locales$,1,0)
pos = pos(stbl("!LOCALE") = Locales$)
index = pos($0a$ = Locales$(1,pos),1,0)
dim Locale$:"code["+str(count)+"]:c(1* = 10)"
Locale$ = Locales$

Locales! = myWindow!.addListButton(100,50,50,90,100,Locales$)
Locales!.selectIndex(index)

rem 'Add an InputD control that uses the current default mask, inserting
rem 'today's date when the user hits the restore key (normally ESCAPE)
myInputD! = myWindow!.addInputD(101,50,100,90,30,$080c$,"",$$,0,0)

rem 'Create a button control for popping up the calendar
myButton! = myWindow!.addToolButton(1,140,100,30,30,"BITMAP = calendar.png")

rem 'Show Weeks?
ShowWeeks! = myWindow!.addCheckBox(102,50,150,100,30,"Show Weeks?")

gosub setLocale

DIM EVENT$:TMPL(SYSGUI),GENERIC$:NOTICETPL(0,0)

rem 'Register the CALLBACK routines
CALLBACK(ON_LIST_SELECT,ChangeLocale,mySysGui!.getContext(),Locales!.getID())
CALLBACK(ON_TOOL_BUTTON_PUSH,Calendar,mySysGui!.getContext(),myButton!.getID())
CALLBACK(ON_CHECK_ON,ShowWeeksOn,mySysGui!.getContext(),ShowWeeks!.getID())
CALLBACK(ON_CHECK_OFF,ShowWeeksOff,mySysGui!.getContext(),ShowWeeks!.getID())
CALLBACK(ON_CLOSE,APP_CLOSE,mySysGui!.getContext())

rem 'Process Events
process_events

ShowWeeksOn:
    myInputD!.setShowWeeks(1)
return

ShowWeeksOff:
    myInputD!.setShowWeeks(0)
return

changeLocale:
    index = Locales!.getSelectedIndex()
    if (index >= 0) gosub setLocale
    return

setLocale:
    L$ = stbl("!LOCALE",Locale.code$[index+1])
    token! = new java.util.StringTokenizer(L$,"_")
    tokens = token!.countTokens()
    languageCode$="",countryCode$="",variantCode$=""
    if (tokens > 0) then languageCode$ = token!.nextToken().toLowerCase()
    if (tokens > 1) then countryCode$ = token!.nextToken().toUpperCase()
    if (tokens > 2) then variantCode$ = token!.nextToken().toUpperCase()
    Locale! = new java.util.Locale(languageCode$, countryCode$, variantCode$)
    Mask$ = STBL("!DATE"),Mask = pos($00$ = Mask$),Mask$ = Mask$(1,Mask-1)
    myInputD!.setLocale(L$)
    myInputD!.setMask(Mask$)
    i = msgbox("Locale is "+Locale!.getDisplayName()+"; Mask is "+mask$)
return

Calendar:
    myInputD!.calendar()
return

rem 'Callback routine called when the user closes the application window
APP_CLOSE:
release

See Also

BBjAPI

BBjSysGui

BBjControl

BBjWindow

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.