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.