PRO spd_ui_fileconfig_load_template, fileName, topid, statusBar
if(Is_String(fileName)) then begin
open_spedas_template,template=template,filename=fileName,$
statusmsg=statusmsg,statuscode=statuscode
if (statuscode LT 0) then begin
ok=dialog_message(statusmsg,/ERROR,/CENTER)
statusBar->Update, 'Error: '+statusmsg
endif else begin
!SPD_GUI.templatepath = fileName
tmppathid = widget_info(topid, find_by_uname='TMPPATH')
widget_control, tmppathid,set_value=filename
!SPD_GUI.windowStorage->setProperty,template=template
ENDELSE
ENDIF ELSE BEGIN
statusBar->Update, 'Failed to load template: invalid filename'
ENDELSE
END
pro spd_ui_spedas_init_struct,state,struct
compile_opt idl2,hidden
widget_control,state.tempdir,set_value=struct.temp_dir
widget_control,state.browserexe,set_value=struct.browser_exe
widget_control,state.tempcdfdir,set_value=struct.temp_cdf_dir
widget_control,state.v_droplist,set_combobox_select=struct.verbose
Widget_Control, state.fixlinux, Set_Button=struct.linux_fix
if !SPD_GUI.templatepath ne '' then begin
widget_control, state.tmp_button,/set_button
widget_control, state.tmp_pathbase, sensitive=1
widget_control, state.tmppath, /editable
widget_control, state.tmppath, /sensitive, set_value = !SPD_GUI.templatepath
endif else begin
widget_control, state.tmp_pathbase, sensitive=0
endelse
end
PRO spd_ui_spedas_fileconfig_event, event
Widget_Control, event.handler, Get_UValue=state, /No_Copy
err_xxx = 0
Catch, err_xxx
IF (err_xxx NE 0) THEN BEGIN
Catch, /Cancel
Help, /Last_Message, Output = err_msg
state.statusbar->update,'Error in File Config.'
state.historywin->update,'Error in File Config.'
Widget_Control, event.TOP, Set_UValue=state, /No_Copy
widget_control, event.top,/destroy
RETURN
ENDIF
Widget_Control, event.id, Get_UValue = uval
CASE uval OF
'USETMP': BEGIN
btnid = widget_info(event.top,find_by_uname='TMPBUTTON')
usetemplate = widget_info(btnid, /button_set)
widget_control, (widget_info(event.top,find_by_uname='TMPPATHBASE')), sensitive=usetemplate
if usetemplate then begin
widget_control, (widget_info(event.top,find_by_uname='TMPPATH')), /editable
tmppathid = widget_info(event.top, find_by_uname='TMPPATH')
widget_control, tmppathid, get_value=filename
if filename ne '' then spd_ui_fileconfig_load_template, filename, event.top, state.statusBar
state.historywin->update,'Using template ' + filename
endif else begin
!SPD_GUI.templatepath = ''
!SPD_GUI.windowStorage->setProperty,template=obj_new('spd_ui_template')
state.statusbar->update,'Template disabled.'
state.historywin->update,'Template disabled.'
endelse
END
'FIXLINUX': BEGIN
id = widget_info(event.top, find_by_uname='FIXLINUX')
linux_fix = widget_info(id,/button_set)
!spedas.linux_fix = fix(linux_fix)
spd_ui_fix_performance, !spedas.linux_fix
END
'BROWSEREXEBTN':BEGIN
widget_control, state.browserexe, get_value=browser_exe
if browser_exe ne '' then path = file_dirname(browser_exe)
dirName = Dialog_Pickfile(Title='Select the web browser executable file:', $
Dialog_Parent=state.master, /must_exist)
IF is_string(dirName) THEN BEGIN
!spedas.browser_exe = dirName
widget_control, state.browserexe, set_value=dirName
ENDIF ELSE BEGIN
ENDELSE
END
'BROWSEREXE': BEGIN
widget_control, state.browserexe, get_value=currentDir
!spedas.browser_exe = currentDir
END
'TEMPCDFDIR': BEGIN
widget_control, state.tempcdfdir, get_value=currentDir
!spedas.temp_cdf_dir = currentDir
END
'TEMPCDFDIRBTN': BEGIN
widget_control, state.tempcdfdir, get_value=currentDir
if currentDir ne '' then path = file_dirname(currentDir)
dirName = Dialog_Pickfile(Title='Select the directory for CDF files:', $
Dialog_Parent=state.master, /must_exist, /DIRECTORY)
IF is_string(dirName) THEN BEGIN
!spedas.temp_cdf_dir = dirName
widget_control, state.tempcdfdir, set_value=dirName
ENDIF ELSE BEGIN
ENDELSE
END
'TEMPDIR': BEGIN
widget_control, state.tempDir, get_value=currentDir
!spedas.temp_dir = currentDir
END
'TEMPDIRBTN': BEGIN
widget_control, state.tempDir, get_value=currentDir
if currentDir ne '' then path = file_dirname(currentDir)
dirName = Dialog_Pickfile(Title='Select the directory for temp files:', $
Dialog_Parent=state.master, /must_exist, /DIRECTORY)
IF is_string(dirName) THEN BEGIN
!spedas.temp_dir = dirName
widget_control, state.tempDir, set_value=dirName
ENDIF ELSE BEGIN
ENDELSE
END
'VERBOSE': BEGIN
!spedas.verbose = long(widget_info(state.v_droplist,/combobox_gettext))
END
'RESET': BEGIN
!spedas=state.spedas_cfg_save
widget_control,state.browserexe,set_value=!spedas.browser_exe
widget_control,state.tempdir,set_value=!spedas.temp_dir
widget_control,state.tempcdfdir,set_value=!spedas.temp_cdf_dir
Widget_Control, state.fixlinux, Set_Button=!spedas.linux_fix
!spd_gui.templatepath = ''
widget_control, (widget_info(event.top, find_by_uname='TMPPATH')), set_value=''
widget_control, (widget_info(event.top, find_by_uname='TMPBUTTON')), set_button=0
widget_control, (widget_info(event.top, find_by_uname='TMPPATHBASE')), sensitive = 0
state.spd_ui_cfg_sav = !spd_gui
state.spedas_cfg_save = !spedas
widget_control,state.v_droplist,set_combobox_select=!spedas.verbose
state.historywin->update,'Resetting controls to saved values.'
state.statusbar->update,'Resetting controls to saved values.'
END
'TMPBROWSE':BEGIN
tmppathid = widget_info(event.top, find_by_uname='TMPPATH')
widget_control, tmppathid, get_value=currentfile
if currentfile ne '' then path = file_dirname(currentfile)
fileName = Dialog_Pickfile(Title='Choose SPEDAS Template:', $
Filter='*.tgt',Dialog_Parent=event.top,file=filestring,path=path, /must_exist,/fix_filter)
spd_ui_fileconfig_load_template, filename, event.top, state.statusBar
END
'RESETTODEFAULT': Begin
spedas_init, /reset
spd_ui_spedas_init_struct, state, !spedas
!spd_gui.templatepath = ''
widget_control, (widget_info(event.top, find_by_uname='TMPPATH')), set_value=''
widget_control, (widget_info(event.top, find_by_uname='TMPBUTTON')), set_button=0
widget_control, (widget_info(event.top, find_by_uname='TMPPATHBASE')), sensitive = 0
state.spd_ui_cfg_sav = !spd_gui
state.spedas_cfg_save = !spedas
state.historywin->update,'Resetting configuration to default values.'
state.statusbar->update,'Resetting configuration to default values.'
END
'SAVE': BEGIN
spedas_write_config
state.statusBar->update,'Saved spedas_config.txt'
state.historyWin->update,'Saved spedas_config.txt'
END
ELSE:
ENDCASE
widget_control, event.handler, set_uval = state, /no_copy
Return
END
PRO spd_ui_spedas_fileconfig, tab_id, historyWin, statusBar
defsysv, '!spedas', exists=exists
if not keyword_set(exists) then spedas_init
spedas_cfg_save = !spedas
spd_ui_cfg_sav = !spd_gui
linux_fix = !spedas.linux_fix
master = Widget_Base(tab_id, /col, tab_mode=1,/align_left, /align_top)
vmaster = widget_base(master, /col, /align_left, /align_top)
top = widget_base(vmaster,/row)
bmaster = widget_base(master, /row, /align_center, ypad=7)
ll = max(strlen([!spedas.local_data_dir, !spedas.remote_data_dir]))+12
configbase = widget_base(vmaster,/col)
gbase = widget_base(configbase, /row, /align_left, ypad=3)
genlabel = widget_label(gbase, value = 'General Settings for SPEDAS ')
lbase = widget_base(configbase, /row, /align_left, ypad=1)
flabel = widget_label(lbase, value = 'Web browser executable: ')
browserexe = widget_text(lbase, /edit, xsiz = 50, /all_events, uval='BROWSEREXE', val = !spedas.browser_exe)
loc_browsebtn = widget_button(lbase,value='Browse', uval='BROWSEREXEBTN',/align_center)
rbase = widget_base(configbase, /row, /align_left, ypad=1)
flabel1 = widget_label(rbase, value = 'Temp directory: ')
tempdir = widget_text(rbase, /edit, xsiz = 50, /all_events, uval='TEMPDIR', val = !spedas.temp_dir)
temp_dirbtn = widget_button(rbase,value='Browse', uval='TEMPDIRBTN', /align_center)
rbase1 = widget_base(configbase, /row, /align_left, ypad=1)
flabel2 = widget_label(rbase1, value = 'Directory for CDAWeb files: ')
tempcdfdir = widget_text(rbase1, /edit, xsiz = 50, /all_events, uval='TEMPCDFDIR', val = !spedas.temp_cdf_dir)
tempcdfdirbtn = widget_button(rbase1,value='Browse', uval='TEMPCDFDIRBTN', /align_center)
v_base = widget_base(configbase, /row, ypad=7)
v_label = widget_label(v_base, value='Verbose level for tplot (higher value = more comments): ')
v_values = ['0', '1', '2','3', '4', '5', '6', '7', '8', '9', '10']
v_droplist = widget_Combobox(v_base, value=v_values, uval='VERBOSE', /align_center)
n_base = widget_base(configbase,/row,/nonexclusive,uval='FL')
fixlinux = widget_button(n_base,value=' Fix drawing performance ',uval='FIXLINUX',uname='FIXLINUX', tooltip="For Linux only, disables STROKED_LINES to improve IDL 8.3 perfomance")
Widget_Control, fixlinux, Set_Button=!spedas.linux_fix
savebut = widget_button(bmaster, value = ' Save to File ', uvalue = 'SAVE')
resetbut = widget_button(bmaster, value = ' Cancel ', uvalue = 'RESET')
reset_to_dbutton = widget_button(bmaster, value = ' Reset to Default ', uvalue = 'RESETTODEFAULT')
grtemp_base = widget_base(vmaster,/col,/align_left)
tmp_base = widget_base(grtemp_base, row=2,/align_left,uname='TMPBASE')
tmp_labelbase = widget_base(tmp_base, /align_center,/col)
tmp_label = widget_label(tmp_labelbase, value='Template: ',/align_left,xsize=97)
tmp_buttonbase = widget_base(tmp_base,/row,/nonexclusive,uval='TMP',/align_center)
tmp_button = widget_button(tmp_buttonbase,value='Load Template',uval='USETMP',uname='TMPBUTTON')
tmp_pathbase = widget_base(tmp_base,/row,/align_center,uname='TMPPATHBASE')
tmp_label = widget_label(tmp_pathbase, value='',xsize=100)
tmppath = widget_text(tmp_pathbase, xsize = 56, $
uval = 'TMPPATH',uname='TMPPATH',/align_center)
tmp_browsebtn = widget_button(tmp_pathbase,value='Browse', uval='TMPBROWSE',/align_center)
def_values=['0','0','0','2',0]
state = {spedas_cfg_save:spedas_cfg_save, spd_ui_cfg_sav:spd_ui_cfg_sav, $
master:master, browserexe:browserexe, tempdir:tempdir, tempcdfdir:tempcdfdir, $
v_values:v_values, v_droplist:v_droplist, statusBar:statusBar, fixlinux:fixlinux, $
def_values:def_values, historyWin:historyWin, tab_id:tab_id, linux_fix:linux_fix, $
tmp_pathbase:tmp_pathbase, tmppath:tmppath, tmp_button:tmp_button, tmp_browsebtn:tmp_browsebtn}
spd_ui_spedas_init_struct,state,!spedas
widget_control, master, set_uval = state, /no_copy
widget_control, master, /realize
if !d.NAME eq 'X' then begin
widget_control, master, xoffset=0, yoffset=0
endif
xmanager, 'spd_ui_spedas_fileconfig', master, /no_block
END