;+ ; Contains the filestab procedure ; and associated procedures ; ; :Author: ; Gaƫlle Boisnard ; ; :History: ; 2004/12/20: Created ; ; 2004/12/20: Last Edit ;- ; PRO filestab_event, ev end ;+ ; Prints the list of existing files in a directory. The ; user can use a shorter time interval. ;- PRO filestab_print, ev ;---------------------------------------------------- common FILESTAB, files_tab, lines, print_from_txt, print_to_txt ;---------------------------------------------------- ; TIME INTERVAL ;---------------------------------------------------- widget_control, print_from_txt, get_value=fromdate widget_control, print_to_txt, get_value=todate if (fromdate[0] ne '' and todate[0] ne '') then begin fromdate=long(strmid(strtrim(fromdate[0], 2), 4, 3)) todate=long(strmid(strtrim(todate[0], 2), 4, 3)) widget_control, files_tab, get_value=dirfiles dim2=(size(dirfiles))[2] i=0l found=0 while (i lt dim2) and (found eq 0) do begin if (lines[i] ne fromdate) then begin i=i+1 endif else begin found=1 endelse endwhile if i ge dim2 then begin return endif if lines[i] ne fromdate then begin return endif indfrom=i found=0 while (i lt dim2) and (found eq 0) do begin if (lines[i] ne todate) then begin i=i+1 endif else begin found=1 endelse endwhile if i ge dim2 then begin return endif if lines[i] ne todate then begin return endif indto=i size=indto-indfrom+1 files=strarr(25, size) for j=0, size-1 do begin files[*, j]=dirfiles[*, indfrom+j] endfor endif else begin widget_control, files_tab, get_value=files endelse dim2=(size(files))[2]+1 printtab=strarr(9, 12*dim2) ;---------------------------------------- ; Preparation of the table to be printed ;---------------------------------------- for i=1, 4 do begin for k=0, 5 do begin for j=0, dim2-2 do begin printtab[i*2, (k*dim2+j+1)*2]=files[i+k*4, j] printtab[0, 2*(dim2*k+j+1)]=lines[j] endfor endfor endfor for j=0, 6*dim2-2 do begin printtab[*, 2*j+1]='-----------' endfor for j=0, 5 do begin printtab[0, 2*j*dim2]=' ' for i=0, 3 do begin if j gt 0 then begin printtab[*, 2*dim2*j-1]='***********' endif printtab[(1+i)*2, 2*dim2*j]=strtrim(string(i+j*4), 2) endfor endfor for i=0, 3 do begin printtab[2*i+1, *]='|' endfor openw, unit, 'temp'+strtrim(string(files_tab), 2), /get_lun for j=0, 12*dim2-1 do begin list2="" for i=1, 6 do begin list2=list2+"a, T"+strtrim(string(12*i+1), 2)+", a," endfor list2=strmid(list2, 0, strlen(list2)-1) list2="("+list2+")" printf, unit, printtab[*, j], format=list2 endfor close, unit spawn, 'lp -c -d bat16_rv '+'temp'+strtrim(string(files_tab), 2) spawn, '/rm '+'temp'+strtrim(string(files_tab), 2) end ;+ ; Description of the files table window and ; creation of the list of files. ; ; :Params: ; directory: in, required, type=sometype ; the interesting directory ; answer: in, required, type=sometype ; the table of existing files ; bg_ephem: in, required, type=sometype ; A parameter named bg_ephem ;- PRO filestab, directory, answer, bg_ephem ;---------------------------------------------------- ; Description of the widget application to see which files are in a ; directory. ;---------------------------------------------------- common COM common FILESTAB, files_tab, lines, print_from_txt, print_to_txt wrong=0 case directory of 'Turn_on': begin lines=['1997298', '1997299'] end 'Venus1': begin lines=['1998116'] end 'Ico_m14': begin lines=['1998364', '1998365', '1999001', '1999002', '1999003', '1999004', '1999005'] end 'Venus2': begin lines=['1999175'] end 'Earth': begin lines=strarr(31) for i=0, 30 do begin lines[i]='19992'+strtrim(string(27+i), 2) endfor end else: begin ; for any directory else if (strmid(directory, 4, 1) eq '_' and strmid(directory, 8, 1) eq '_') then begin ;(yyyy_ddb_dde) beg=long(strmid(directory, 5, 3)) finish=long(strmid(directory, 9, 3)) lines=indgen(finish-beg+1)+beg lines=strtrim(string(lines), 2) endif else begin wrong=1 endelse end endcase filestab_base=widget_base(/column, title=directory, group_leader=mWind, unit=0,xsize=1200, ysize=800) if wrong then begin files_lbl=widget_label(filestab_base, value='This is not a data directory.') endif else begin files_tab=widget_table(filestab_base, alignment=1, $ column_labels=[bg_ephem,'00', '01', '02', '03', '04', '05', '06', '07', $ '08', '09', '10', '11', '12', '13', '14', '15', '16', $ '17', '18', '19', '20', '21', '22', '23'], $ row_labels=lines, units=2, scr_xsize=42, scr_ysize=42, column_widths=1.6, /resizeable_columns, $ /resizeable_rows, value=answer, /scroll) print_base=widget_base(filestab_base, /row) print_but=widget_button(print_base, value='Print', event_pro='filestab_print') print_lbl=widget_label(print_base, value='from') print_from_txt=widget_text(print_base, value='', /editable) print_to_lbl=widget_label(print_base, value='to') print_to_txt=widget_text(print_base, value='', /editable) endelse widget_control, filestab_base, /realize xmanager, 'filestab', filestab_base end