;+ ; NAME: ; EIT_DISPLAY ; ; PURPOSE: ; This function will display EIT movies (IDL Save Sets) and ; EIT images (FITS files) using eit_movie and eit_image ; respectively. ; ; CATEGORY: ; WIDGET interface ; ; CALLING SEQUENCE: ; EIT_DISPLAY ; ; INPUTS: None, presently this routine reads predefined directories ; namely the logical REF_DIR (FITS images) or MOVIE_DIR ; (3-dim IDL Save Sets). ; ; KEYWORD PARAMETERS: None ; ; OUTPUTS: ; This routine displays images. It does not return any outputs. ; ; COMMON BLOCKS: ; filestuff,dirspec,flist,index,list7,text6 - this common block is ; used to pass back and forth to the event handler the ; directory, filelist, file index, file widget and directory widget. ; helpshare,helpbase - a common block for the help widget ; ; SIDE EFFECTS: ; unsure if common block must be re-initialized after each run. ; ; RESTRICTIONS: ; Serious memory hog, especially if display movies ; ; PROCEDURE: ; A widget is displayed. The user can choose either IDL Save ; Sets (assumed therefore to be movies) or FITS files (assumed ; to be images). The user then selects a file to display using ; the appropriate mechanism. The user can zoom an image. This ; calss the widget cw_zoom. ; ; MODIFICATION HISTORY: ; Written by: J. Newmark Date. Feb. 1996 ; 1996 march 14 - E. Einfalt - changed title banner ; 1996 june 12 - J. Newmark - use catalog for image ; listings, add RDPIX function ; 1996 june 20 - J. Newmark - enable use of "efz" files ; 1996 july 8 - J. Newmark - add print button ; 1996 july 19 - J. Newmark - added calls to eit_file2path ; to get directory names and pathways, allow ; for collapsed data trees ; 1996 aug 20 - J. Newmark - added ability to display ; LZ 3-D data ; 1996 nov 26 - D.M. fecit - added /flat to all EIT_IMAGE ; calls ; 1996 dec 3 - J. Newmark - added button for MOVIE_ARCHIVE ; ; 1997 mar 12 - D.M. fecit - changed exposure time strings ; to floating point ; 2003 may 2 - C.A. Young - Added year droplist to select ; the year subdirectory in new movie archive ; 2003 may 5 - E Einfalt - Added VMS compatibility to yearly ; subdirectory code ; 2003 may 5 - D.M. fecit - Modified annual movie directory ; dropdown code to accommodate years other than ; 2003. ; 2003 jul 29 - D.M. fecit - Modified default YSIZE of ; file list in main widget to allow view of more ; file names. ; ;- ;------------------------------------------------------------------------------ ; subprocedure to kill the help window ;------------------------------------------------------------------------------ PRO killhelp COMMON helpshare,helpbase WIDGET_CONTROL, helpbase, /DESTROY END ;------------------------------------------------------------------------------ ; subprocedure to kill the zoom window ;------------------------------------------------------------------------------ PRO killzoom COMMON zoomshare,zbase WIDGET_CONTROL, zbase, /DESTROY END ;------------------------------------------------------------------------------ ; subwidget to display a help window with text output ;------------------------------------------------------------------------------ PRO helpout COMMON helpshare,helpbase helparray = strarr(20) helparray(0)=' This is the SOHO - EIT Display System.' helparray(1)=' ' helparray(2)=' This tool will display FITS images using EIT_IMAGE or ' helparray(3)=' Movies (IDL Save Sets) using EIT_MOVIE. The default path' helparray(4)=' for files is the image directory defined by the logical' helparray(5)=' REF_DIR (or LZ_DIR). The full path will show in the directory' helparray(6)=' box. The list widget will show the file listing. An image can' helparray(7)=' be displayed by either double-clicking on the filename or' helparray(8)=' single-clicking on the filename and choosing the DISPLAY' helparray(9)=' button. The FITS image can be zoomed by single-clicking on' helparray(10)=' the filename and choosing the ZOOM button. The directory' helparray(11)=' can be changed by either editing the DIRECTORY widget or' helparray(12)=' toggling IMAGE button (logical REF_DIR, LZ_DIR) and the' helparray(13)=' MOVIE button (logical MOVIE_DIR). ' helparray(14)=' Other useful functions acting on FITS images include' helparray(15)=' RDPIX to give pixel information and PRINT which produces' helparray(16)=' a POSTSCRIPT image. A SELECT DATE box is provided for' helparray(17)=' selecting specific days. This is a front end to EIT_CATRD' helparray(18)=' and allows the same kind of inputs, e.g. /y,y=3,10-Jul-96, ' helparray(19)=' a blank gives today, many other allowed date formats.' ; helpbase = WIDGET_BASE(TITLE = 'EIT Display Help', /FRAME, /COLUMN, $ XOFFSET = 350, YOFFSET = 150) finishbutton = WIDGET_BUTTON(helpbase, VALUE = 'Click here when done', $ UVALUE = 'donehelp') helptext = WIDGET_TEXT(helpbase, VALUE = helparray, XSIZE = 55, YSIZE = 20) WIDGET_CONTROL, helpbase, /REALIZE XMANAGER, 'helpout', helpbase, EVENT_HANDLER='EITDISP_event',MODAL = helpbase END ;------------------------------------------------------------------------------ ; sub-procedure to get directory name for saving a postscript image ;------------------------------------------------------------------------------ pro save_psdir common psstuff,save_dir COMMON helpshare,helpbase lfont = '-misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1' lfont = (get_dfont(lfont))(0) IF lfont EQ '' THEN lfont = 'fixed' helpbase = WIDGET_BASE(TITLE = 'Postscript File', /FRAME, /COLUMN, $ XOFFSET = 350, YOFFSET = 150) finishbutton = WIDGET_BUTTON(helpbase, VALUE = 'Accept',UVALUE = 'donehelp') hdr='Enter directory for output PS file:' helptext = WIDGET_TEXT(helpbase, VALUE = hdr, XSIZE = 65, YSIZE =1, $ font=lfont, /SCROLL) if !version.os eq 'vms' then save_dir='[EIT.PR]' else begin cd,current=save_dir save_dir=save_dir+'/' endelse SDIR = WIDGET_TEXT(helpbase ,VALUE=save_dir,EDITABLE=1, UVALUE='SDIR',YSIZE=1) WIDGET_CONTROL, helpbase, /REALIZE XMANAGER, 'save_psdir', helpbase, EVENT_HANDLER='EITDISP_event',MODAL = helpbase end ;------------------------------------------------------------------------------ ; sub-procedure to display FITS header ;------------------------------------------------------------------------------ pro disphd,filename COMMON helpshare,helpbase ; lfont = '-misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1' lfont = (get_dfont(lfont))(0) IF lfont EQ '' THEN lfont = 'fixed' hdr=headfits(filename) helpbase = WIDGET_BASE(TITLE = filename, /FRAME, /COLUMN, $ XOFFSET = 350, YOFFSET = 150) finishbutton = WIDGET_BUTTON(helpbase, VALUE = 'Click here when done', $ UVALUE = 'donehelp') helptext = WIDGET_TEXT(helpbase, VALUE = hdr, XSIZE = 65, YSIZE = 24, $ font=lfont, /SCROLL) WIDGET_CONTROL, helpbase, /REALIZE XMANAGER, 'disphd', helpbase, EVENT_HANDLER='EITDISP_event',MODAL = helpbase END ;------------------------------------------------------------------------------ ; creates a zoom widget (cw_zoom). Uses eit_image to read in FITS image. ; loads appropriate color table. ;------------------------------------------------------------------------------ pro mkzoom,filename COMMON zoomshare,zbase ; sector = ['171', '195', '284', '304'] fits_header=headfits(filename) naxis=eit_fxpar(fits_header,'NAXIS') if naxis eq 3 then begin nimgs=eit_fxpar(fits_header,'NAXIS3') comms=eit_fxpar(fits_header,'COMMENT') start=where(strpos(comms,'BEGIN MULTIPLE') ne -1) out=strarr(nimgs+7) out(0)='Please select from the list of images below:' out(1)=' Image numbers range from 0-'+strtrim(nimgs-1,2) out(3:nimgs+6)=comms(start(0):start(0)+3+nimgs) answer='0' xin,answer,out,status=status if status eq 0 then return if strupcase(answer(0)) eq 'ALL' then begin out(0)='PLEASE SELECT ONLY 1 IMAGE !!!' xin,answer,out,status=status endif if status eq 0 then return if strupcase(answer(0)) eq 'ALL' then answer(0)='0' image_no=fix(answer(0)) img = eit_image(filename,repl=eit_dark(),dark=eit_dark(),$ v_off=v_off,origin=origin,image_no=image_no, /flat) wave=eit_fxpar(fits_header,'WAV',image_no=image_no) wave=strtrim(wave(0),2) endif else begin img = eit_image(filename,v_off=46,dark=eit_dark(),repl=eit_dark(), $ /flat) wave=strtrim(eit_fxpar(fits_header,'WAVELNTH'),2) endelse for j_wave = 0, 3 do if wave eq sector(j_wave) then i_wave = j_wave loadct,42 + i_wave,file=getenv('coloreit') sz=size(img) zbase=widget_base(/column) zoom=cw_zoom(zbase,xsize=sz(1),ysize=sz(2),x_scr=512<sz(1),y_scr=512<sz(2),$ uvalue='zoomdone',/track,/sample) done=widget_button(zbase,value='Done',uvalue='zoomdone') widget_control,zbase,/realize widget_control,zoom,set_value=img xmanager,'mkzoom',zbase,event_handler='EITDISP_event' end ;------------------------------------------------------------------------------ ; this procedure displays images, if Movie (IDL save set, then call eit_movie, ; if Image (FITS) call eit_image ;------------------------------------------------------------------------------ pro showeit,origin=origin,v_off=v_off common filestuff,dirspec,flist,index,list7,text6,use_lz,use_qkl,use_coll,$ bgroup5,half ; ; List only bona fide EIT_MOVIE-compatible movies and FITS files, respectively, ; for the movie and image cases. D.M. fecit, 1996/02/25. ; print, '%EIT_DISPLAY-D-DIRSPEC, dirspec = ' + dirspec ; break_file,dirspec(0),disk_log,diry,filnam fname=strlowcase(flist(index)) end_template=strlen(fname)-1 if strpos(strlowcase(dirspec(0)), 'movie') ge 0 then begin file_template='ems' endif else if strpos(strlowcase(dirspec(0)), 'ref') ge 0 or $ strpos(strlowcase(dirspec(0)), 'quicklook') ge 0 or $ strpos(strlowcase(dirspec(0)), 'ql') ge 0 then begin file_template='efr' end_template=18 endif else if strpos(strlowcase(dirspec(0)), 'lz') ge 0 then begin file_template='efz' end_template=18 endif else file_template = '' ; if file_template ne '' then filename=disk_log+diry+strmid(flist(index),$ strpos(fname,file_template),end_template) else $ filename=flist(index) ; ; 1 is the nominal "true" return from is_ss and is_fits, so let's replace ; this with some code that's just a little easier to read. ; D.M. fecit, 1996 March 10. ; ; stat=is_ss(filename) ; if stat eq 1 then eit_movie,filename else begin ; stat=is_fits(filename) ; if stat eq 1 then img=eit_image(filename,/show,v_off=46, $ ; repl = eit_dark(), dark = eit_dark()) ; else message,/continue,'File is neither a FITS or IDL Save Set' ; endelse ; if is_ss(filename) then begin eit_movie, filename endif else begin v_off=46 filename=strlowcase(filename) if strpos(filename, 'ef') eq 0 then begin filename = strmid(filename, 0, 18) end print, filename stat=is_fits(filename) if stat ne 1 then begin filename=eit_file2path(filename,collapse=use_coll) print, filename stat=is_fits(filename) endif if stat eq 1 then begin hdr=headfits(filename) naxis=eit_fxpar(hdr,'NAXIS') if naxis eq 3 then begin nimgs=eit_fxpar(hdr,'NAXIS3') comms=eit_fxpar(hdr,'COMMENT') start=where(strpos(comms,'BEGIN MULTIPLE') ne -1) out=strarr(nimgs+7) out(0)='Please select from the list of images below or ALL' out(1)=' Image numbers range from 0-'+strtrim(nimgs-1,2) out(3:nimgs+6)=comms(start(0):start(0)+3+nimgs) answer='ALL' xin,answer,out,status=status if status eq 0 then return if strupcase(answer(0)) eq 'ALL' and status then begin window,/free,xs=1024,ys=1024 origin=readfits(filename) origin=alog10((origin-848)>1) wv=eit_fxpar(hdr,'WAV',image=0) sector = ['171', '195', '284', '304'] for j_wave = 0, 3 do if strtrim(wv(0),2) eq sector(j_wave) then $ i_wave = j_wave loadct,42 + i_wave,file=getenv('coloreit') times=eit_fxpar(hdr,'START_TIME',image_no='all') times=strmid(times,11,8) for i=0,nimgs-1 do begin put,origin(*,*,i),i+1,nimgs,/noexact,relat=0.85 label_image,times(i) endfor endif else begin if strupcase(answer(0)) eq 'ALL' then answer(0)='0' image_no=fix(answer(0)) img = eit_image(filename,repl=eit_dark(),dark=eit_dark(),/show,$ v_off=v_off,origin=origin,image_no=image_no, /flat) endelse endif else begin xmg = 'The Image you selected has all missing blocks.' nmiss = eit_fxpar(hdr,'n_missing_blocks') if nmiss eq 1024 then xmessage,xmg,wait=3 else $ img = eit_image(filename, repl = eit_dark(),half=half,dark = $ eit_dark(), /show, v_off=v_off,origin=origin, /flat) endelse endif else begin message, /continue, 'File is neither a FITS or IDL Save Set.' stop end end ; ; end of D.M. changes, 1996 March 10. ; end ;------------------------------------------------------------------------------ ; event procedure for top level widget. ;------------------------------------------------------------------------------ PRO EITDISP_Event, Event common filestuff,dirspec,flist,index,list7,text6,use_lz,use_qkl,use_coll,$ bgroup5,half common psstuff,save_dir ; WIDGET_CONTROL,Event.Id,GET_UVALUE=Ev CASE Ev OF 'donehelp': killhelp 'zoomdone': killzoom 'collapse': BEGIN CASE Event.Value OF 0: use_coll=0 1: use_coll=1 ENDCASE END 'halfres': BEGIN CASE event.select of 0: half = 0 1: half = 1 endcase end 'BGROUP4': BEGIN if is_gsfcvms() then begin if index gt -1 then begin fname=strlowcase(flist(index)) sname=strpos(fname,'efr') if sname eq -1 then sname=strpos(fname,'efz') if sname eq -1 then sname=strpos(fname,'ems') fstop = strpos(fname,' ') if fstop eq -1 then fstop = strlen(fname) oname=strmid(fname,sname,fstop) dname=strmid(fname,sname,18) date=strmid(dname,3,4)+'/'+strmid(dname,7,2)+'/'+strmid(dname,9,2) obslog,date,oname endif else obslog endif else begin xmg=strarr(2) xmg(0)='This feature is presently running only on ' xmg(1)='the operations machines' xmessage,xmg,wait=5 endelse END 'BGROUP3': BEGIN CASE Event.Value OF 0: BEGIN widget_control, /hourglass showeit widget_control, hourglass=0 END 1: BEGIN ; ; Zoom an image...only for IMAGE (FITS file). Calls procedure mkzoom ; break_file,dirspec(0),disk_log,diry,filnam fname=strlowcase(flist(index)) tempname=strpos(fname,'efr') if tempname eq -1 then tempname=strpos(fname,'efz') if tempname ne -1 then filename=disk_log+diry+$ strmid(fname,tempname,18) else filename=fname stat=is_fits(filename) if stat ne 1 then begin filename=eit_file2path(filename,collapse=use_coll) stat=is_fits(filename) endif widget_control,/hourglass if stat eq 1 then mkzoom,filename $ else message,/continue,'File is not a FITS file' widget_control, hourglass=0 END 2: BEGIN ; ; Displays header for IMAGE (FITS file). Calls procedure disphd ; break_file,dirspec(0),disk_log,diry,filnam fname=strlowcase(flist(index)) tempname=strpos(fname,'efr') if tempname eq -1 then tempname=strpos(fname,'efz') if tempname ne -1 then filename=disk_log+diry+$ strmid(fname,tempname,18) else filename=fname stat=is_fits(filename) if stat ne 1 then begin filename=eit_file2path(filename,collapse=use_coll) stat=is_fits(filename) endif if stat eq 1 then disphd,filename $ else message,/continue,'File is not a FITS file' END 3: BEGIN while !d.window ge 0 do wdelete, !d.window showeit,origin=origin,v_off=v_off rdpix,origin,0,-v_off origin=0 END 4: XLOADCT,file=getenv('coloreit') 5: BEGIN break_file,dirspec(0),disk_log,diry,filnam fname=strlowcase(flist(index)) tempname=strpos(fname,'efr') if tempname eq -1 then tempname=strpos(fname,'efz') filename=disk_log+diry+strmid(fname,tempname,18) stat=is_fits(filename) if stat ne 1 then begin filename=eit_file2path(filename,collapse=use_coll) stat=is_fits(filename) endif reallist=['Select Printer','SOHO_COLOR2',$ 'EAF-color1','SOHO_COLOR3','Save to a disk file only'] printlist=['Select Printer','SOHO_COLOR2 (dye sub paper)',$ 'EAF-color1 (dye sub paper)','SOHO_COLOR3 (plain paper)',$ 'Save to a disk file only'] printer=reallist(qmenu(printlist,init=1,title=0)) save_dir=0 if printer eq 'Save to a disk file only' then begin printer=0 save_psdir endif if stat eq 1 then eit_dump,filename,/post,printer=printer, $ outdir=save_dir else message,/continue,'File is not a FITS file' END 6: while !d.window ge 0 do wdelete, !d.window 7: WIDGET_CONTROL, /DESTROY, event.top 8: helpout ELSE: Message,/continue,'Unknown button pressed' ENDCASE END 'BGROUP5': BEGIN CASE Event.Value OF 0: begin dirspec=getenv('MOVIE_DIR') ;choose IDL movies flist=find_file(concat_dir(dirspec(0),'ems*.*')) widget_control, text6, set_value=dirspec widget_control, list7,set_value=flist end 1: begin yeardir = strmid(anytim2utc(!stime, /ecs), 0, 4) dirspec=getenv('MOVIE_ARCHIVE') ;choose IDL movies ; A quick check to see if VMS - e einfalt - 2003/05/05 if !version.os ne 'vms' then dirspec=dirspec(0)+yeardir+'/' $ else dirspec=dirspec(0)+'['+yeardir+']' flist=find_file(concat_dir(dirspec(0),'ems*.*')) widget_control, text6, set_value=dirspec break_file,flist,dum,dum,movnames,ext widget_control, list7,set_value=movnames+ext end ELSE: Message,/continue,'Unknown button pressed' ENDCASE END ; ; Added year droplist to select the year subdirectory in new movie archive ; C.A. Young, 2003 May 2 'yrform1': begin year_now = strmid(anytim2utc(!stime, /ecs), 0, 4) current_year = fix(year_now) yrforml = strtrim(string(1996 + indgen(current_year - 1995)), 2) yeardir = yrforml(event.index) ; dirspec=getenv('MOVIE_ARCHIVE')+yeardir+'/' einfalt - 2003/05/05 ; A quick check to see if VMS - e einfalt - 2003/05/05 dirspec=getenv('MOVIE_ARCHIVE') ;choose IDL archived movies if !version.os ne 'vms' then dirspec=dirspec(0)+yeardir+'/' $ else dirspec=dirspec(0)+'['+yeardir+']' widget_control,text6,set_value=dirspec flist=find_file(concat_dir(dirspec(0),'ems*.*')) break_file,flist,dum,dum,movnames,ext widget_control,list7,set_value=flist end ;end addition C.A. Young, 2003 May 2 'dateit':BEGIN widget_control, event.id, get_value=date if strpos(strupcase(date(0)),'ALL') ge 0 then date=!stime if strpos(strlowcase(date(0)),"/y") ge 0 then $ date = doy2utc(utc2doy(anytim2utc(!stime))-1) $ else if strpos(strlowcase(date(0)),"y=") ge 0 then begin back = (str_sep(date(0),"="))(1) date = doy2utc(utc2doy(anytim2utc(!stime))-back) endif date=strmid(anytim2utc(date,/ecs),0,10) fnames='' entry=eit_catrd(date,/raw,filename=fnames,lz=use_lz) if use_lz then file_template='efz' else if use_qkl then $ file_template='efr' if datatype(entry) ne 'STC' then begin xmg=strarr(5) xmg(0)='The catalog search program did not find any images' xmg(1)='on that day. If LZ was selected please check to see' xmg(2)='if the processing is current.' xmg(3)=' ' xmg(4)='Please select another date' xmessage,xmg,wait=7 return endif version_no = (ishft(entry.version,-4) and '0f'x) + $ (entry.version and '0f'x)/10. new_v = where(version_no ge 2.0) exptime = float(entry.exp_time) if new_v(0) ne -1 then exptime(new_v) = entry(new_v).exp_time/10. ; time_str = strtrim(exptime,2) time_str = strtrim(string(exptime, format = '$(f6.1)'), 2) waves=fix(entry.wave(0))+170 nxstr=strtrim(fix(entry.nx)*32,2) nystr=strtrim(fix(entry.ny)*32,2) nxsum=strtrim(fix(entry.nx_sum>1),2) nysum=strtrim(fix(entry.ny_sum>1),2) filter = replicate('? ', n_elements(entry.filter)) filt_str = ['Al + 1 ','Blk Est','Clear ','Blk Wst','Al + 2 '] w_filter = where(entry.filter ge 0 and entry.filter le 4, n_filt) if n_filt gt 0 then filter(w_filter)=filt_str(entry(w_filter).filter) sec_filt = strtrim(fix(waves),2) + '::' + filter flist=fnames+' '+sec_filt flist=flist+' (' +nxstr+',' +nystr+' / '+nxsum+'x'+nysum+')' flist=flist+' ' + time_str + ' s' multim=replicate('',n_elements(entry.n_repeat)) w_multim=where(entry.n_repeat gt 0,n_mult) if n_mult gt 0 then multim(w_multim)=$ strtrim(entry(w_multim).n_repeat,2)+'-img /'+ $ strtrim(fix(entry(w_multim).n_wave),2)+'-wvs' flist=flist+' '+multim flist=reverse(flist) ; added call to eit_file2path for directory name use_gavroc=0 if !version.os eq 'vms' then begin machine=strlowcase(getenv('UCX$INET_HOST')) if machine eq 'gavroche' or machine eq 'xanado' $ then use_gavroc=1 endif dirspec=eit_file2path(fnames(0),lz=use_lz,gavroc=use_gavroc,$ collapse=use_coll) pos=strpos(dirspec,file_template) dirspec=strmid(dirspec,0,pos) ; pos=strpos(fnames(0),'.') dirspec=dirspec(0)+'*'+strmid(fnames(0),pos-4,4)+'*' widget_control, text6,set_value=dirspec(0) widget_control, list7,set_value=flist widget_control, bgroup5, set_button = 0 END 'TEXT6': begin ;get input directory widget_control, event.id, get_value=dirspec ; ; List only bona fide EIT_MOVIE-compatible movies and FITS files, respectively, ; for the movie and image cases. D.M. fecit, 1996/02/25. ; print, '%EIT_DISPLAY-D-DIRSPEC, dirspec = ' + dirspec ; break_file,dirspec(0),disk_log,diry,filnam if strpos(strlowcase(dirspec(0)), 'movie') ge 0 then begin file_template = 'ems' endif else if strpos(strlowcase(dirspec(0)), 'ref') ge 0 or $ strpos(strlowcase(dirspec(0)), 'quicklook') ge 0 or $ strpos(strlowcase(dirspec(0)), 'ql') ge 0 then begin file_template='efr' endif else if strpos(strlowcase(dirspec(0)), 'lz') ge 0 then begin file_template='efz' endif else file_template = '' ; flist=find_file(disk_log+diry+file_template+filnam+'*.*') ; ; End of D.M. changes, 1996/02/25 ; if flist(0) ne '' and file_template ne 'ems' then begin flist=reverse(flist) if file_template ne '' then flist=strmid(flist,$ strpos(flist(0),file_template),strlen(flist(0))) endif widget_control, list7, set_value=flist, ysize = 12 return end 'LIST7': begin index=event.index ;get index for file choice if event.clicks eq 2 then begin widget_control, /hourglass showeit widget_control, hourglass=0 endif end 'SDIR' : begin widget_control, event.id, get_value=save_dir killhelp end ENDCASE END ;--------------------------------------------------------------------------- ; This procedure sets up the main widget interface as well as initial ; values. Call is simply EIT_DISPLAY ;--------------------------------------------------------------------------- PRO eit_display, GROUP=Group common filestuff,dirspec,flist,index,list7,text6,use_lz,use_qkl,use_coll,$ bgroup5,half ; defsysv,'!image',exist=ok if not ok then begin imagelib devicelib endif use_qkl=1 & use_lz=0 & use_coll=0 ; ; dirspec changed back to REF_DIR with the amazing resurrection of Lazarus J. ; EIT, 1998 October 14. ; ; dirspec=getenv('MOVIE_DIR') dirspec=getenv('REF_DIR') ; if dirspec(0) eq '' then dirspec=getenv('REF_DIR') if dirspec(0) eq '' then dirspec=getenv('EIT_QKL')+ $ strmid(anytim2utc(!stime,/ecs),0,10)+'/' if strpos(strlowcase(dirspec(0)), 'movie') ge 0 then begin file_template = 'ems' endif else if strpos(strlowcase(dirspec(0)), 'ref') ge 0 or $ strpos(strlowcase(dirspec(0)), 'quicklook') ge 0 then begin file_template = 'efr' endif else file_template = '' IF N_ELEMENTS(Group) EQ 0 THEN GROUP=0 ; top level base EITDISP = WIDGET_BASE(GROUP_LEADER=Group, COLUMN=1, MAP=1, $ TITLE='EIT Display System', UVALUE='EITDISP') ; button group = actions Btns459 = [ 'Display','Zoom', 'Show Header','RDPIX','XLOADCT',$ 'PRINT','Delete All Windows','Done','Help' ] BGROUP3 = CW_BGROUP( EITDISP, Btns459, ROW=1, UVALUE='BGROUP3') Btns_ob = [ 'Observing Log'] BGROUP4 = CW_BGROUP( EITDISP, Btns_ob, ROW=1, UVALUE='BGROUP4') ; label widget d4 = WIDGET_LABEL( EITDISP, /align_left, UVALUE='d4', VALUE=' ') LABEL4 = WIDGET_LABEL( EITDISP, /align_left, $ UVALUE='LABEL4', VALUE='Enter Date for Single Files or Select Movie Dir.') ;child base for 2 columns child=WIDGET_BASE(EITDISP,COLUMN=4) ;date label and input text widget dateit = WIDGET_TEXT( child,VALUE=anytim2utc(!stime,/date,/vms), $ EDITABLE=1, UVALUE='dateit',YSIZE=1,xsize=15) ;button group - file formats Btns601 = [ 'MOVIE_DIR (IDL Save Sets)','MOVIE_ARCHIVE (IDL Save Sets)'] BGROUP5 = CW_BGROUP( child, Btns601, EXCLUSIVE=1, COLUMN=1, $ UVALUE='BGROUP5') ;data directory format, standard or collapsed ;button group - file formats Btns2 = [ 'Standard Tree','Collapsed Tree'] BGROUP6 = CW_BGROUP( child, Btns2, EXCLUSIVE=1, COLUMN=2, $ LABEL_TOP='Data Tree Organization', UVALUE='collapse') half = 0 fbase= widget_base(child,/nonexclusive) btns3 = widget_button(fbase, value='Half Res', uvalue='halfres') ; ; Added year droplist to select the year subdirectory in new movie archive ; C.A. Young, 2003 May 2 ; child=WIDGET_BASE(EITDISP,COLUMN=1) year_now = strmid(anytim2utc(!stime, /ecs), 0, 4) current_year = fix(year_now) yrforml = strtrim(string(1996 + indgen(current_year - 1995)), 2) yrform1 = widget_droplist(child, value = yrforml,$ title = 'Select Movie Archive Year:', uvalue = 'yrform1') ; ;end addition ;label widget LABEL12 = WIDGET_LABEL( EITDISP, UVALUE='LABEL12', $ VALUE='Directory Name') ;input text widget for directories TextVal704 =dirspec TEXT6 = WIDGET_TEXT( EITDISP,VALUE=TextVal704, $ EDITABLE=1, UVALUE='TEXT6',YSIZE=1) ;label widget - for file listing LABEL16 = WIDGET_LABEL( EITDISP, UVALUE='LABEL16', $ VALUE='List of Files') ;list widget - displays files flist = find_file(dirspec+file_template+'*.*') if strpos(strupcase(dirspec(0)),'MOVIE') eq -1 and flist(0) ne '' then begin flist=reverse(flist) flist=strmid(flist,strpos(flist(0),file_template),strlen(flist(0))) endif ys=n_elements(flist) LIST7 = WIDGET_LIST( EITDISP,VALUE=flist+string(replicate(32b,20)), $ UVALUE='LIST7', YSIZE = 12) ;realize widget and hand off to xmanager WIDGET_CONTROL, EITDISP, /REALIZE XMANAGER, 'EITDISP', EITDISP END
Last revised: - Wed May 9 21:45:00 2007- F. Auchère