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.



______________________________________________________________________________________

Copyright BASIS International Ltd. BBj®, Visual PRO/5®, PRO/5®, and BBx® are registered trademarks.