;+ ; These routines describe what happen when some buttons ; are selected. ; ; :Author: ; Gaƫlle Boisnard ; ; :History: ; 2006/03/22: Created ; ; 2014/01/22: Disabled K file retrieval (HC), now automatic ;- ; ;+ ; Describes the changes in the dataprocessing window when ; the 'Other location for n3 files' button is selected. ;- PRO dp_n3_on_newloc, ev common DP_DATA, dp_k_but, dp_n1_but, dp_n2_but, dp_n3_but, dp_n3a_but, dp_n3b_but, dp_n3c_but, $ dp_n3d_but, dp_n3e_but, dp_n3f_but, dp_n3g_but, dp_pdf_but, dp_pdfprint_but, dp_ephem_but, $ dp_background_but, dp_ephemsource_lst, dp_ephemoption_quiet, dp_ephemoption_reload, $ dp_source_lst, dp_antset_lst, dp_nblocks_lst, $ dp_nblocks_lbl, dp_background_auto, dp_background_manual, dp_n3_d_standard,dp_n3_d_newloc, $ dp_n3_newloc_txt, dp_n3_bg_auto_but, dp_n3_bg_manual_but, dp_n3_bg_filename_txt, dp_n3_bg_filename_but, dp_abort_but if (widget_info(dp_n3_d_newloc, /button_set)) then begin widget_control, dp_n3_newloc_txt, /sensitive endif else begin if (not widget_info(dp_n3_d_newloc, /button_set)) then begin widget_control, dp_n3_newloc_txt, sensitive=0 endif endelse end ;+ ; Describes the changes in the dataprocessing window when ; the manual bg file 'Search' button for bg file is ; selected. ;- PRO on_bg_manual_file, ev common DP_DATA bgpath=dialog_pickfile(path=getenv('NAS_RPWS')) widget_control, dp_n3_bg_filename_txt, /sensitive widget_control, dp_n3_bg_filename_txt, set_value=bgpath end ;+ ; Describes the changes in the dataprocessing window when ; the manual bg file button is selected. ;- PRO on_bg_manual, ev common DP_DATA case 1 of widget_info(dp_n3_bg_manual_but, /button_set): begin widget_control, dp_n3_bg_filename_txt, /sensitive end widget_info(dp_n3_bg_auto_but, /button_set): begin widget_control, dp_n3_bg_filename_txt, sensitive=0 end endcase end ;+ ; Describes what happens when a directory is selected in ; the list. Displays the table of existing files in the ; selected directory. ;- PRO dp_list_onclick, ev common COM2, dp_list, dp_list_lst index=fix(ev.index) directory=(*((*dp_list)->getnameslist()))[index] answer=getfiles(directory) end ;+ ; Updates the list of directories in the widget ; application. ;- PRO on_dp_update, ev common COM common COM2, dp_list, dp_list_lst datapath=getenv('NAS_RPWS') ptr_free, dp_list ptr_free, mlist mlist=ptr_new(obj_new('datadir_list', datapath)) dp_list=ptr_new(obj_new('displaylist', *mlist)) if (ptr_valid(*dp_list->getnameslist())) then begin dp_list1=*(*dp_list->getnameslist()) endif else begin dp_list1=[''] endelse widget_control, dp_list_lst, set_value=dp_list1 end ;+ ; Changes in the widget applications when the pdf and lis ; button is selected. ;- PRO on_dp_pdf, ev common DP_DATA, dp_k_but, dp_n1_but, dp_n2_but, dp_n3_but, dp_n3a_but, dp_n3b_but, dp_n3c_but, $ dp_n3d_but, dp_n3e_but, dp_n3f_but, dp_n3g_but, dp_pdf_but, dp_pdfprint_but, dp_ephem_but, $ dp_background_but, dp_ephemsource_lst, dp_ephemoption_quiet, dp_ephemoption_reload, $ dp_source_lst, dp_antset_lst, dp_nblocks_lst, $ dp_nblocks_lbl, dp_background_auto, dp_background_manual, dp_n3_d_standard,dp_n3_d_newloc, $ dp_n3_newloc_txt, dp_n3_bg_auto_but, dp_n3_bg_manual_but, dp_n3_bg_filename_txt, dp_n3_bg_filename_but, dp_abort_but if (widget_info(dp_pdf_but, /button_set)) then begin widget_control, dp_pdfprint_but, /sensitive widget_control, dp_nblocks_lbl, /sensitive widget_control, dp_nblocks_lst, /sensitive endif else begin widget_control, dp_pdfprint_but, sensitive=0 widget_control, dp_nblocks_lbl, sensitive=0 widget_control, dp_nblocks_lst, sensitive=0 endelse end PRO dataprocess_event, ev end ;+ ; Abort procedure ;- PRO dp_exit, ev common COM common DP_DATA abort=1 widget_control, ev.id, sensitive=0 end ;+ ; Exit procedure ;- PRO dp_exit, ev common COM common COM2, dp_list, dp_list_lst ptr_free, dp_list widget_control, dp_Wind, /destroy end ;+ ; Description of the dataprocessing window ; ; :Uses: ; getfiles, read_ant_list ;- PRO dataprocess ;---------------------------------------------------- common COM common COM2, dp_list, dp_list_lst common DP_TIME, dp_time_from_txt, dp_time_to_txt, dp_time_list common DP_DATA, dp_k_but, dp_n1_but, dp_n2_but, dp_n3_but, dp_n3a_but, dp_n3b_but, dp_n3c_but, $ dp_n3d_but, dp_n3e_but, dp_n3f_but, dp_n3g_but, dp_pdf_but, dp_pdfprint_but, dp_ephem_but, $ dp_background_but, dp_ephemsource_lst, dp_ephemoption_quiet, dp_ephemoption_reload, $ dp_source_lst, dp_antset_lst, dp_nblocks_lst, $ dp_nblocks_lbl, dp_background_auto, dp_background_manual, dp_n3_d_standard,dp_n3_d_newloc, $ dp_n3_newloc_txt, dp_n3_bg_auto_but, dp_n3_bg_manual_but, dp_n3_bg_filename_txt, dp_n3_bg_filename_but, dp_abort_but common DP_LOG, dp_log_txt work_path=getenv('ROOT_RPWS')+'/pro/' dp_Wind=widget_base(kill_notify='dp_exit', /row, group_leader=mWind, title='DATAPROCESSING', $ units=0, /scroll, x_scroll_size=1000, y_scroll_size=690) ;---------------------------------------------------- ; LIST OF DIRECTORIES ;---------------------------------------------------- dp_list=ptr_new(obj_new('displaylist', *mlist)) if (ptr_valid(*dp_list->getnameslist())) then begin dp_list1=*(*dp_list->getnameslist()) endif else begin dp_list1=[''] endelse dp_list_base=widget_base(dp_Wind, /column, frame=1) dp_list_lbl=widget_label(dp_list_base, value='Files') dp_list_lst=widget_list(dp_list_base, value=dp_list1, uvalue='uv_dp_list_lst', $ event_pro='dp_list_onclick', units=2,xsize= 25,ysize=30) dp_update_but=widget_button(dp_list_base, value='Update', event_pro='on_dp_update') ;----------------------------------------------------- ; DATALEVEL ;----------------------------------------------------- dp_dp_base_out=widget_base(dp_Wind, frame=2, /column) dp_dp_base=widget_base(dp_dp_base_out, /row) dp_dp_base_col12=widget_base(dp_dp_base, /column) dp_dp_lbl=widget_label(dp_dp_base_col12, value='Data level selection') dp_but_base_col12=widget_base(dp_dp_base_col12, /row) dp_but_base_col1=widget_base(dp_but_base_col12, /column) ; k, n1, n2, pdf and lis dp_kn12base=widget_base(dp_but_base_col1, /row, /nonexclusive, frame=1) dp_k_but=widget_button(dp_kn12base, value='k', sensitive=0) ; Disabled k file retrieval from gui dp_n1_but=widget_button(dp_kn12base, value='n1') dp_n2_but=widget_button(dp_kn12base, value='n2') dp_pdf_base=widget_base(dp_but_base_col1, /column, frame=1) dp_pdf_base1=widget_base(dp_pdf_base, /nonexclusive, /column) dp_pdf_but=widget_button(dp_pdf_base1, value='PDF and LIS', event_pro='on_dp_pdf') dp_pdfprint_but=widget_button(dp_pdf_base1, value='Print PDF', sensitive=0) dp_pdf_base2=widget_base(dp_pdf_base, /row) dp_nblocks_lbl=widget_label(dp_pdf_base2, value='nblocks for pdf', sensitive=0) dp_nblocks_lst=widget_droplist(dp_pdf_base2, value=['1', '2', '4'], sensitive=0) ; Background dp_background_base=widget_base(dp_but_base_col1, /column, frame=1) dp_background_base1=widget_base(dp_background_base, /nonexclusive) dp_background_but=widget_button(dp_background_base1, value='Background') dp_background_base2=widget_base(dp_background_base, /exclusive, /row) dp_background_auto=widget_button(dp_background_base2, value='Auto') dp_background_manual=widget_button(dp_background_base2, value='Manual') widget_control, dp_background_auto, /set_button ; loading src_list.txt data read_data_src_list, src_list sources=src_list.full_name ; Ephemeris dp_ephem_base=widget_base(dp_but_base_col1, frame=1, /column) dp_ephem_base1=widget_base(dp_ephem_base, /nonexclusive) dp_ephem_but=widget_button(dp_ephem_base1, value='Ephem') dp_ephemsource_base=widget_base(dp_ephem_base) dp_ephemsource_lst=widget_droplist(dp_ephemsource_base, $ value=sources) dp_ephemoption_base=widget_base(dp_ephem_base, /row, /nonexclusive) dp_ephemoption_quiet=widget_button(dp_ephemoption_base, value='quiet');, sensitive=0) dp_ephemoption_reload=widget_button(dp_ephemoption_base, value='reload');, sensitive=0) widget_control, dp_ephemoption_quiet, /set_button ;dp_ephemoption_checksim=widget_button(dp_ephemoption_base, value='check simul. attitude', sensitive=0) dp_but_base_col2=widget_base(dp_but_base_col12, /column) ; n3 dp_but_base3=widget_base(dp_but_base_col2, frame=1, /column) dp_n3_base_r1=widget_base(dp_but_base3, /nonexclusive, /row) dp_n3_but=widget_button(dp_n3_base_r1, value='n3', sensitive=0) dp_n3a_but=widget_button(dp_n3_base_r1, value='n3a', sensitive=0) dp_n3b_but=widget_button(dp_n3_base_r1, value='n3b');, sensitive=0) dp_n3c_but=widget_button(dp_n3_base_r1, value='n3c');, sensitive=0) dp_n3_base_r2=widget_base(dp_but_base3, /nonexclusive, /row) dp_n3d_but=widget_button(dp_n3_base_r2, value='n3d') dp_n3e_but=widget_button(dp_n3_base_r2, value='n3e') dp_n3f_but=widget_button(dp_n3_base_r2, value='n3f', sensitive=0) dp_n3g_but=widget_button(dp_n3_base_r2, value='n3g') ; n3 parameters dp_n3param_base=widget_base(dp_but_base3, /column, frame=1) dp_n3_bg_base=widget_base(dp_n3param_base, /column) ; background dp_n3_bg_lbl=widget_label(dp_n3_bg_base, value='- Background data:', /align_left) dp_n3_bg_auto_base=widget_base(dp_n3_bg_base, /row, /exclusive) dp_n3_bg_auto_but=widget_button(dp_n3_bg_auto_base, value='Automatic', $ event_pro='on_bg_manual') dp_n3_bg_manual_but=widget_button(dp_n3_bg_auto_base, value='Manual', $ event_pro='on_bg_manual') dp_n3_bg_manual_base=widget_base(dp_n3_bg_base, /column) dp_n3_bg_filename_txt=widget_text(dp_n3_bg_manual_base, value='', $ /editable, sensitive=0) dp_n3_bg_filename_but=widget_button(dp_n3_bg_manual_base, value='Search', $ event_pro='on_bg_manual_file') widget_control, dp_n3_bg_auto_but, /set_button dp_n3_source_base=widget_base(dp_n3param_base, /column); ephemeris source dp_n3_source_lbl=widget_label(dp_n3_source_base, value='- Source', /align_left) ; sources dp_source_lst=widget_droplist(dp_n3_source_base, value=sources) dp_n3_antset_base=widget_base(dp_n3param_base, /column) ; antenna parameter set dp_n3_antset_lbl=widget_label(dp_n3_antset_base, value='- Antenna set', /align_left) ant=read_ant_list(work_path+'ant_list.txt') dp_antset_lst=widget_droplist(dp_n3_antset_base, value=ant.ant_name) ;----------------------------------------------------- ; TIME INTERVAL ;----------------------------------------------------- dp_base_timeinter=widget_base(dp_dp_base, frame=1, /column) ; Start and end format dp_time_lbl=widget_label(dp_base_timeinter, $ value='Time interval selection') dp_time_base1=widget_base(dp_base_timeinter, /column) dp_time_base1_lbl=widget_label(dp_time_base1, $ value='- start and stop days:', /align_left) dp_time_base11=widget_base(dp_time_base1, /column, frame=1) dp_time_lbl1=widget_label(dp_time_base11, $ value='Format: yyyy/mm/dd.hh or yyyy//ddd.hh ') dp_time_base111=widget_base(dp_time_base11, /row) dp_to_lbl=widget_label(dp_time_base111, value='from') dp_time_from_txt=widget_text(dp_time_base111, value='', /editable) dp_time_base112=widget_base(dp_time_base11, /row) dp_to_lbl=widget_label(dp_time_base112, value='to ') dp_time_to_txt=widget_text(dp_time_base112, value='', /editable) ; dp_time_lbl1=widget_label(dp_base_timeinter, $ ; value='OR') ; List of period yyyy_ddb_dde dp_time_base2=widget_base(dp_base_timeinter, /column) dp_time_base2_lbl=widget_label(dp_time_base2, $ value='- period:', /align_left) dp_time_base21=widget_base(dp_time_base2, /column, frame=1) dp_time_lbl1=widget_label(dp_time_base21, $ value='Directories') dp_time_list=widget_list(dp_time_base21, value=dp_list1, /multiple, ysize=9, xsize=28) ;----------------------------------------------------- ; N3 DATA LOCATION ;----------------------------------------------------- dp_n3_directory_base=widget_base(dp_dp_base_out,/row, frame=1) dp_n3_dbut_base=widget_base(dp_n3_directory_base, /row, /exclusive) dp_n3_d_standard=widget_button(dp_n3_dbut_base, value='Standard location') dp_n3_d_newloc=widget_button(dp_n3_dbut_base, value='Other location for n3 files', $ event_pro='dp_n3_on_newloc') widget_control, dp_n3_d_standard, /set_button dp_n3_newloc_txt=widget_text(dp_n3_directory_base, value='', sensitive=0, /editable) ;----------------------------------------------------- ; LOG WINDOW ;----------------------------------------------------- dp_log_base=widget_base(dp_dp_base_out, frame=1, /column) dp_log_lbl=widget_label(dp_log_base, value='Log') dp_log_txt=widget_text(dp_log_base, value='', xsize=100, ysize=10, /wrap, /scroll) ;----------------------------------------------------- ; WINDOW BUTTONS ;----------------------------------------------------- dp_base_but=widget_base(dp_dp_base_out, /row) dp_valid=widget_button(dp_base_but, value='Run', event_pro='dp_valid') dp_exit_but=widget_button(dp_base_but, value='Exit', event_pro='dp_exit') dp_help_but=widget_button(dp_base_but, value='Help', event_pro='help') dp_abort_base=widget_base(dp_base_but, /exclusive) dp_abort_but=widget_button(dp_abort_base, value='Abort', sensitive=0) widget_control, dp_Wind, /realize xmanager, 'dataprocess', dp_Wind end