BBjThinClient::setClientTimeZone

Description

In BBj 17.0 and higher, this method sets the TimeZone that will be used for client-mode date and time functions.

Syntax

Return Value

Method

void

setClientTimeZone(java.util.TimeZone clientTimeZone)

Parameters

Variable

Description

clientTimeZone

Client TimeZone, or null() to use the server TimeZone.

Return Value

None .

Remarks

None.

Example

rem ' BBjThinClient::setClientTimeZone

use java.util.Arrays
use java.util.ArrayList
use java.util.Locale
use java.util.TimeZone
precision 4
sysgui = unt
open (sysgui)"X0"
bbjapi! = bbjapi()
sysgui! = bbjapi!.getSysGui()
sysgui!.setScale(1.5,1.5)
title$ = "BBjThinClient::setClientTimeZone"
window! = sysgui!.addWindow(25,25,730,400,title$,$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
listbox! = window!.addListBox(101,10,10,350,380,$$,$$)
listbox!.setCallback(listbox!.ON_LIST_CLICK,"listclick")
window!.addGroupBox(200,370,10,350,160,"Server",$$)
serverTimeZone! = window!.addStaticText(201,380,35,330,25,"",$$)
window!.addStaticText(202,380,65,60,25,"DATE(0):",$8000$)
server_date! = window!.addStaticText(203,445,65,265,25,"DATE(MODE = SERVER)",$$)
server_date!.setToolTipText("date(0,mode=""server"")")
window!.addStaticText(204,380,95,60,25,"JUL(0,0,0):",$8000$)
server_jul! = window!.addStaticText(205,445,95,265,25,"JUL(MODE = SERVER)",$$)
server_jul!.setToolTipText("jul(0,0,0,mode=""server"")")
window!.addStaticText(206,380,125,60,25,"TIM:",$8000$)
server_tim! = window!.addStaticText(207,445,125,265,25,"TIM(MODE = SERVER)",$$)
server_tim!.setToolTipText("tim(mode=""server"")")
window!.addGroupBox(300,370,180,350,160,"Client",$$)
clientTimeZone! = window!.addStaticText(301,380,205,330,25,"",$$)
window!.addStaticText(302,380,235,60,25,"DATE(0):",$8000$)
client_date! = window!.addStaticText(303,445,235,265,25,"DATE(MODE = CLIENT)",$$)
client_date!.setToolTipText("date(0,mode=""client"")")
window!.addStaticText(304,380,265,60,25,"JUL(0,0,0):",$8000$)
client_jul! = window!.addStaticText(305,445,265,265,25,"JUL(MODE = CLIENT)",$$)
client_jul!.setToolTipText("jul(0,0,0,mode=""client"")")
window!.addStaticText(306,380,295,60,25,"TIM:",$8000$)
client_tim! = window!.addStaticText(307,445,295,265,25,"TIM(MODE = CLIENT)",$$)
client_tim!.setToolTipText("tim(mode=""client"")")
update! = window!.addButton(1,370,350,100,25,"Update")
update!.setCallback(update!.ON_BUTTON_PUSH,"update")
reset! = window!.addButton(2,480,350,100,25,"Reset")
reset!.setCallback(reset!.ON_BUTTON_PUSH,"reset")
gosub init
gosub update
process_events

eoj:
release

listclick:
    event! = sysgui!.getLastEvent()
    index = event!.getSelectedIndex()
    if index<0 then client! = server! else client! = timezones!.get(index)
    bbjapi().getThinClient().setClientTimeZone(client!)
    gosub update
return

select:
    print sysgui!.getLastEvent()
return

reset:
    bbjapi().getThinClient().setClientTimeZone(null())
    client! = bbjapi().getThinClient().getClientTimeZone()
    for i = 0 to TimeZoneIDs!.size()-1
        TimeZoneID$ = TimeZoneIDs!.get(i)
        timezone! = TimeZone.getTimeZone(TimeZoneID$)
        if client!.getID().equals(TimeZoneID$) then listbox!.selectIndex(i); break
        if timezone!.hasSameRules(client!) then listbox!.selectIndex(i); break
    next i
    gosub update
return

update:
    timezone! = server!
    localName! = timezone!.getDisplayName(locale!)
    defaultName! = timezone!.getDisplayName()
    unicode! = timezone!.getID().concat(" - ").concat(localName!)
    serverTimeZone!.setText(unicode!)
    mask$ = "%Yl-%Mz-%Dz %Hz:%mz:%sz"
    server_date!.setText(date(0:mask$,mode="server"))
    jul = jul(0,0,0,mode="server")
    date$ = date(jul:"%Yl-%Mz-%Dz",mode="server")
    server_jul!.setText(date$+" = "+str(jul))
    t = tim(mode="server")
    h = int(t)
    x = fpt(t)*60
    m = int(x)
    x = fpt(x)*60
    s = int(x)
    x = fpt(x)*1000
    ms = int(x)
    t$ = str(h:"00")+":"+str(m:"00")+":"+str(s:"00")+"."+str(ms:"000")
    server_tim!.setText(t$+" = "+str(t))
    timezone! = client!
    localName! = timezone!.getDisplayName(locale!)
    defaultName! = timezone!.getDisplayName()
    unicode! = timezone!.getID().concat(" - ").concat(localName!)
    clientTimeZone!.setText(unicode!)
    mask$ = "%Yl-%Mz-%Dz %Hz:%mz:%sz"
    client_date!.setText(date(0:mask$,mode="client"))
    jul = jul(0,0,0,mode="client")
    date$ = date(jul:"%Yl-%Mz-%Dz",mode="client")
    client_jul!.setText(date$+" = "+str(jul))
    t = tim(mode="client")
    h = int(t)
    x = fpt(t)*60
    m = int(x)
    x = fpt(x)*60
    s = int(x)
    x = fpt(x)*1000
    ms = int(x)
    t$ = str(h:"00")+":"+str(m:"00")+":"+str(s:"00")+"."+str(ms:"000")
    client_tim!.setText(t$+" = "+str(t))
return

init:
    client! = bbjapi().getThinClient().getClientTimeZone()
    server! = bbjapi().getInterpreterServer().getServerTimeZone()
    locale$ = bbjapi().getThinClient().getClientLocale()
    locale$ = stbl("!LOCALE")
    locale! = fnLocale!(locale$)
    def fnLocale!(temp!)
        temp! = Arrays.asList(temp!.split("_",3))
        switch temp!.size()
            case 3; tempLocale! = new Locale(temp!.get(0),temp!.get(1),temp!.get(2)); break
            case 2; tempLocale! = new Locale(temp!.get(0),temp!.get(1)); break
            case 1; tempLocale! = new Locale(temp!.get(0)); break
            case default; tempLocale! = Locale.getDefault(); break
        swend
        return tempLocale!
    fnend
    
    default = 0
    vector! = bbjapi().makeVector()
    array! = TimeZone.getAvailableIDs()
    Arrays.sort(array!)
    TimeZoneIDs! = Arrays.asList(array!)
    timezones! = new ArrayList()
    localNameList! = new ArrayList()
    defaultNameList! = new ArrayList()
    for i = 0 to TimeZoneIDs!.size()-1
        TimeZoneID$ = TimeZoneIDs!.get(i)
        timezone! = TimeZone.getTimeZone(TimeZoneID$)
        if !default and client!.getID().equals(TimeZoneID$) then default = i
        if !default and timezone!.hasSameRules(client!) then default = i
        timezones!.add(timezone!)
        localName! = timezone!.getDisplayName(locale!)
        defaultName! = timezone!.getDisplayName()
        unicode! = timezone!.getID().concat(" - ").concat(localName!)
        vector!.add(unicode!)
        localNameList!.add(localName!)
        defaultNameList!.add(defaultName!)
    next i
    listbox!.insertItems(-1,vector!)
    listbox!.selectIndex(default)
return

See Also

BBjAPI

BBjThinClient

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