Pro thm_ui_config_temp_mess, id, text_in, _extra = _extra
widget_control, id, get_uval = state, /no_copy
widget_control, state.messw, set_val = text_in
widget_control, id, set_uval = state, /no_copy
If(obj_valid(!themis.progobj)) Then $
!themis.progobj -> update, 0.0, /history_too, text = text_in, _extra = _extra
Return
End
Pro thm_ui_config_event, event
widget_control, event.id, get_uval = uval
Case uval Of
'LOCALDIR': Begin
widget_control, event.id, get_val = temp_string
temp_string = strtrim(temp_string, 2)
ll = strmid(temp_string, strlen(temp_string)-1, 1)
If(ll Ne '/' And ll Ne '\') Then temp_string = temp_string+'/'
!themis.local_data_dir = temporary(temp_string)
thm_ui_config_temp_mess, event.top, '!themis.local_data_dir = '+!themis.local_data_dir, /nocomment
End
'REMOTEDIR': Begin
widget_control, event.id, get_val = temp_string
temp_string = strtrim(temp_string, 2)
ll = strmid(temp_string, strlen(temp_string)-1, 1)
If(ll Ne '/' And ll Ne '\') Then temp_string = temp_string+'/'
!themis.remote_data_dir = temporary(temp_string)
thm_ui_config_temp_mess, event.top, '!themis.remote_data_dir = '+!themis.remote_data_dir, /nocomment
End
'NDON':Begin
!themis.no_download = 0
thm_ui_config_temp_mess, event.top, '!themis.no_download = 0', /nocomment
end
'NDOFF':Begin
!themis.no_download = 1
thm_ui_config_temp_mess, event.top, '!themis.no_download = 1', /nocomment
end
'NUON':Begin
!themis.no_update = 0
thm_ui_config_temp_mess, event.top, '!themis.no_update = 0', /nocomment
end
'NUOFF':Begin
!themis.no_update = 1
thm_ui_config_temp_mess, event.top, '!themis.no_update = 1', /nocomment
end
'NDOON':Begin
!themis.downloadonly = 0
thm_ui_config_temp_mess, event.top, '!themis.downloadonly = 0', /nocomment
end
'NDOOFF':Begin
!themis.downloadonly = 1
thm_ui_config_temp_mess, event.top, '!themis.downloadonly = 1', /nocomment
end
'VERBOSE': Begin
widget_control, event.id
!themis.verbose= event.index
vmessage='!themis.verbose = '+ string(!themis.verbose)
thm_ui_config_temp_mess, event.top, vmessage, /nocomment
dprint, setdebug=event.index
end
'RESET': Begin
thm_ui_config_temp_mess, event.top, 'Restoring Original Configuration'
widget_control, event.top, get_uval = state, /no_copy
!themis = state.thm_cfg_sav
widget_control, state.localdir, set_val = !themis.local_data_dir
widget_control, state.remotedir, set_val = !themis.remote_data_dir
if (!themis.no_download eq 0) then $
widget_control, state.nd_on_button, /set_button $
else widget_control, state.nd_off_button, /set_button
if (!themis.no_update eq 0) then $
widget_control, state.nu_on_button, /set_button $
else widget_control, state.nu_off_button, /set_button
if (!themis.downloadonly eq 0) then $
widget_control, state.ndo_on_button, /set_button $
else widget_control, state.ndo_off_button, /set_button
widget_control, state.v_droplist, set_droplist_select = !themis.verbose
widget_control, event.top, set_uval = state, /no_copy
End
'RESETTODEFAULT': Begin
dir = thm_config_filedir(/app_query)
If(dir[0] Ne '') Then Begin
ll = strmid(dir, strlen(dir)-1, 1)
If(ll Eq '/' Or ll Eq '\') Then filex = dir+'thm_config.txt' $
Else filex = dir+'/'+'thm_config.txt'
fff=file_search(filex)
If (is_string(fff)) Then file_delete, fff[0], /noexpand_path
Endif
thm_ui_config_temp_mess, event.top, 'Restoring Default Configuration'
thm_init, /reset
widget_control, event.top, get_uval = state, /no_copy
widget_control, state.localdir, set_val = !themis.local_data_dir
widget_control, state.remotedir, set_val = !themis.remote_data_dir
if (state.def_values(0) eq 0) then $
widget_control, state.nd_on_button, /set_button $
else widget_control, state.nd_off_button, /set_button
!themis.no_download = state.def_values(0)
if (state.def_values(1) eq 0) then $
widget_control, state.nu_on_button, /set_button $
else widget_control, state.nu_off_button, /set_button
!themis.no_update = state.def_values(1)
if (state.def_values(2) eq 0) then $
widget_control, state.ndo_on_button, /set_button $
else widget_control, state.ndo_off_button, /set_button
!themis.downloadonly = state.def_values(2)
!themis.verbose = state.def_values(3)
widget_control, state.v_droplist, set_droplist_select = state.def_values(3)
widget_control, event.top, set_uval = state, /no_copy
End
'SAVE': Begin
thm_write_config
filex = thm_config_filedir()+'/'+'thm_config.txt'
thm_ui_config_temp_mess, event.top, 'Saved New Configuration file: '+filex
End
'EXIT': Begin
widget_control, event.top, /destroy
End
Endcase
Return
End
Pro thm_ui_config
thm_init
thm_cfg_sav = !themis
master = widget_base(/col, $
title = 'THEMIS: Configuration Settings', $
/align_top)
vmaster = widget_base(master, /col, /align_left, frame=5)
vlabel = widget_label(vmaster, value = 'Configuration Settings')
bmaster = widget_base(master, /row, /align_center)
ll = max(strlen([!themis.local_data_dir, !themis.remote_data_dir]))+12
lbase = widget_base(vmaster, /row, /align_left)
localdir = widget_text(lbase, /edit, /all_events, xsiz = ll, $
uval = 'LOCALDIR', val = !themis.local_data_dir)
flabel = widget_label(lbase, value = 'Local data directory')
rbase = widget_base(vmaster, /row, /align_left)
remotedir = widget_text(rbase, /edit, /all_events, xsiz = ll, $
uval = 'REMOTEDIR', val = !themis.remote_data_dir)
flabel = widget_label(rbase, value = 'Remote data directory')
nd_base = widget_base(vmaster, /row, /align_left)
nd_label = widget_label(nd_base, value='Download Data: ')
nd_buttonbase = widget_base(nd_base, /exclusive, /row, uval="ND")
nd_on_button = widget_button(nd_buttonbase, value='Automatically ', uval='NDON')
nd_off_button = widget_button(nd_buttonbase, value='Use Local Data Only', uval='NDOFF')
nubase = widget_base(vmaster, /row, /align_left)
nu_label = widget_label(nubase, value='Update Files: ')
nu_buttonbase = widget_base(nubase, /exclusive, /row, uval="NU")
nu_on_button = widget_button(nu_buttonbase, value='Update if Newer ', uval='NUON')
nu_off_button = widget_button(nu_buttonbase, value='Use Local Data Only', uval='NUOFF')
ndobase = widget_base(vmaster, /row, /align_left)
ndo_label = widget_label(ndobase, value='Load Data: ')
ndo_buttonbase = widget_base(ndobase, /exclusive, /row, uval="ND")
ndo_on_button = widget_button(ndo_buttonbase, value='Download and Load ', uval='NDOON')
ndo_off_button = widget_button(ndo_buttonbase, value='Download Only ', uval='NDOOFF')
v_base = widget_base(vmaster, /row)
v_label = widget_label(v_base, value='Verbose (higher value = more comments): ')
v_values = ['0', '1', '2','3', '4', '5', '6', '7', '8', '9', '10']
v_droplist = widget_droplist(v_base, value=v_values, uval='VERBOSE', /align_center)
if (!themis.no_download eq 0) then $
widget_control, nd_on_button, /set_button $
else widget_control, nd_off_button, /set_button
if (!themis.no_update eq 0) then $
widget_control, nu_on_button, /set_button $
else widget_control, nu_off_button, /set_button
if (!themis.downloadonly eq 0) then $
widget_control, ndo_on_button, /set_button $
else widget_control, ndo_off_button, /set_button
widget_control, v_droplist, set_droplist_select=!themis.verbose
savebut = widget_button(bmaster, value = ' Save ', uvalue = 'SAVE')
resetbut = widget_button(bmaster, value = ' Reset ', uvalue = 'RESET')
reset_to_dbutton = widget_button(bmaster, value = ' Reset to Default ', uvalue = 'RESETTODEFAULT')
exitbut = widget_button(bmaster, value = ' Close ', uvalue = 'EXIT')
messw = widget_text(master, value = '', xsize = ll, ysize = 1, /scroll)
def_values=[1,0,0,2]
state = {thm_cfg_sav:thm_cfg_sav, $
localdir:localdir, remotedir:remotedir, $
nd_on_button:nd_on_button, nd_off_button:nd_off_button, $
nu_on_button:nu_on_button, nu_off_button:nu_off_button, $
ndo_on_button:ndo_on_button, ndo_off_button:ndo_off_button, $
v_values:v_values, v_droplist:v_droplist, messw:messw, $
def_values:def_values}
widget_control, master, set_uval = state, /no_copy
widget_control, master, /realize
xmanager, 'thm_ui_config', master, /no_block
End