;Solar B image selection widget ;======================================================== ;called by sb_selectortool, adapted from trace3dselectortool ;this widget is the interface for user selection of attributes for a ;subset of images to be put into a list $sbselectwidget = xmtoplevel_form(0,0, 'Solar B Image Selection', 5,5,5,5) tq = $sbselectwidget ;our main parent, shorthand ;dismiss and help buttons, wq is board widget returned wq = topbuttonsetupsanslink_tl('$sbselect') ;also a reset button here bq=xmbutton(wq,'reset','sbselectreset_cb', $f4,'gray') xmposition, bq, 145, 0, 70, 30 ;and the apply button $sbselect_stop = 1 cq = '{if $sbselect_stop eq 0 then $sbselect_stop = 1 else sbapplyselect_cb }' bq=xmbutton(wq,'apply selection', cq, $f4,'darkgreen') $sbapplyselect_but = bq xmposition, bq, 225, 0, 0, 30 ;a checkbox for erase previous, now an "add to previous" bb0 = xmboard(tq) ercb = xmcheckbox(bb0, 'sberasecheckbox_cb',$f4,'', 'add to previous') xmselectcolor, ercb(1), 'red' $sb_select_add_flag = 0 ;11/22/98 - add a link type button to grab parameters from a window ;5/8/99 - moved it here sq = 'sb_selector_link_cb' sq = '{$link_action='''+sq+''' link_setup }' $sblinkselect_but = xmbutton(bb0, 'Link Match', sq, $f4, 'darkgreen') xmposition, $sblinkselect_but, 225, 0, 0, 0 ;the time section bb3 = xmboard(tq) ;add an hourly only option (similar to TRACE) s1 = 'use only the open hourly and type' s2 = 'use open hourly but choose types below' s3 = 'specify time range and types below' rq = xmradiobox(bb3,'solarb_select_time_cb',$f4, '', s1, s2, s3) xmposition,rq(0), 0, 0 n=num_elem(rq)-1 for i=1,n do xmselectcolor,rq(i),'red' xmtogglesetstate, rq(3), 1, 1 xmposition,xmlabel(bb3,'from',$f4), 10, 120 xmposition,xmlabel(bb3,'until',$f4), 10, 155 xmposition,xmlabel(bb3,'year',$f4), 60, 95 xmposition,xmlabel(bb3,'month',$f4), 105, 95 xmposition,xmlabel(bb3,'dom',$f4), 160, 95 xmposition,xmlabel(bb3,'UTC',$f4), 240, 95 $sb_select_time_txt = lonarr(9) ix = 50 iy = 115 lq = [6,2,2,12,6,2,2,12] xq = [0,60,105,150,0,60,105,150] dx = [50, 35, 35, 120, 50, 35, 35, 120] for k=0,7 do { w = xmtextfield(bb3,'', lq(k),'',$f3,'white') xmposition, w, ix + xq(k), iy + 35*(k/4), dx(k), 30 $sb_select_time_txt(k) = w } ;5/8/99 - add a minimum time xmposition,xmlabel(bb3,'minimum time\nbetween selections',$f4), 10, 182 w = xmtextfield(bb3,'', 12,'',$f3,'white') xmposition, w, 155, 182, 100, 30 $sb_select_time_txt(8) = w sp0 = xmseparator(tq, 0, 2, 5) sp1 = xmseparator(tq, 0, 2, 5) sp2 = xmseparator(tq, 0, 2, 5) sp3 = xmseparator(tq, 0, 2, 5) sp4 = xmseparator(tq, 0, 2, 5) sp6 = xmseparator(tq, 0, 2, 5) ;various expanding sections ft2 = xmform(tq, 0, 0, 0, 4) ft3 = xmform(tq, 0, 0, 0, 4) ft4 = xmform(tq, 0, 0, 0, 4) ;-------------------SIZE/EXPOSURE----------------------------------- ;a TRACE-like section for size and exposure l2 = xmlabel(tq,'indicate valid ranges, blank or 0 => any', $f4) bb2 = xmboard(tq) s1='exposure' s2='array nx' s3 = 'array ny' $sb_range_lo_wq = xmtextfieldarray(bb2,'',$f4,'white',120,10,- 50,35,s1,s2,s3) xmposition, $sb_range_lo_wq(0), 0, 0 s1='to:' $sb_range_hi_wq = xmtextfieldarray(bb2,'',$f4,'white',30,10,50,- 35,s1,s1,s1) xmposition, $sb_range_hi_wq(0), 185, 0 ;part 1 ----------------------TYPES----------------------------------------- fq = xmform(ft2) b1 = xmbutton(ft2,'Types','manage_toggle,' +string(fq),$f4) formvstack, b1, fq s1 = 'clear all' s2 = 'select all' s3 = 'SRAW' s4 = 'FGRAW' s5 = 'SP4D' s6 = 'FG' s7 = 'FGIV' s8 = 'FGIQUV' s9 = 'FGMG' s10 = 'FGDG' s11 = 'FGFOCUS' s12 = 'ISCAN' s13 = 'ISCANU' s14 = 'EMI' s15 = 'FGSIV' s15_1 = 'FGSIV100' s15_2 = 'FGSIV200' s16 = 'FGSIQUV' s17 = 'FGSIQ' s18 = 'FGSIU' s19 = 'FGSIUV' s20 = 'CL' s21 = 'CR' s22 = 'LASER' s23 = 'AC' ;note that the strings in $sbtypeslist must be the actual subdirectory names $sbtypeslist = [s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s15_1,s15_2,s16,s17,s18,s19,s20,s21,s22,s23] n = num_elem($sbtypeslist) ;initially choose none $sbtypeschoose = zero(lonarr(n)) $sbtypescbox = xmcheckbox(fq,'sbselecttypes_cb',$f4,'',s1,s2,s3,s4, - s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s15_1,s15_2,s16,s17,s18,s19,s20,s21,s22,s23, 4) n=num_elem($sbtypescbox)-1 for i=1,n do xmselectcolor,$sbtypescbox(i),'red' xmtogglesetstate, $sbtypescbox(6), 1, 1 xtunmanage, fq ;part 2 ---------------------WAVELENGTHS----------------------------------- fq = xmform(ft3) b1 = xmbutton(ft3,'wavelengths','manage_toggle,' +string(fq),$f4) formvstack, b1, fq sall = 'select all' snone = 'clear all' s1 = '5172' s2 = '5250' s3 = '5576' s4 = '6302' s5 = '5896' s6 ='6563' s7 ='3883' s8 = 'Ca II' s9 = 'G band' s10 ='4504' s11 = '5550' s12 ='6684' s13 ='NFI no' s14 = 'BFI no' $sbwaveslist = [s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12, s13, s14] n = num_elem($sbwaveslist) ;initially choose none $sbwaveschoose = zero(lonarr(n)) $sbwavescbox = xmcheckbox(fq,'sbselectwaves_cb',$f4,'', snone,sall,s1,s2,s3,s4, - s5,s6,s7,s8,s9,s10,s11, s12, s13, s14, 4) n=num_elem($sbwavescbox)-1 for i=1,n do xmselectcolor,$sbwavescbox(i),'red' xmtogglesetstate, $sbwavescbox(11), 1, 1 xtunmanage, fq ;part 3 ----------------------KEYWORDS---------------------------------- fq = xmform(ft4) b1 = xmbutton(ft4,'FITS keywords','manage_toggle,' +string(fq),$f4) ;stack the button and the board formvstack, b1, fq b3 = xmboard(fq) xmposition,xmlabel(b3,'keyword\n(blanks matter)',$f4), 0, 0 w = xmtextfield(b3,'', 8,'',$f3,'white') xmposition, w, 10, 37, 90, 30 $sbfitskeytext = w xmposition,xmlabel(b3,'choose compare option',$f4), 130, 0 s1 = 'strings' s2 = 'value' s3 = 'range' $sbfitskeytype = xmradiobox(b3,'sbfitskeytype_cb',$f4,'', s1,s2,s3) n=num_elem($sbfitskeytype)-1 for i=1,n do xmselectcolor,$sbfitskeytype(i),'red' xmposition, $sbfitskeytype(0),130, 35 xmtogglesetstate, $sbfitskeytype(3), 1, 1 $sbfitskeytypeFlag = 2 ;range is 0-2 ;text field for the string $sbfitskeystring = xmtextfield(b3,'', 256,'',$f3,'white') xmposition, $sbfitskeystring, 215, 37, 150, 30 ;text field for the value $sbfitskeyvalue = xmtextfield(b3,'', 15,'',$f3,'white') xmposition, $sbfitskeyvalue, 215, 67, 80, 30 ;2 text fields for the range option $sbfitskeyrangelow = xmtextfield(b3,'', 15,'',$f3,'white') xmposition, $sbfitskeyrangelow, 215, 97, 70, 30 $sbfitskeyrangehigh = xmtextfield(b3,'', 15,'',$f3,'white') xmposition, $sbfitskeyrangehigh, 300, 97, 70, 30 xmposition, xmbutton(b3,'ADD to List','sbfitskeyadd_cb',$f4,'darkgreen'), 10, 97 sp5 = xmseparator(fq, 0, 2, 1) xmsize, sp5, 10, 10 f2 = xmform(fq) lq = xmlabel(f2, 'list can be edited (carefully!) ', $f4) b2 = xmbutton(f2,'Clear List','sbfitskeyclear_cb',$f4,'gray') formhstackr, b2, lq, xmseparator(f2, 1, 10, 0) $sbfitskeylist = xmtext(fq, 10, 40, $f3, 'white') formvstack, b3, sp5, f2, xtparent($sbfitskeylist) xtunmanage, fq ;------------------------------------------------------------------- formvstack,wq,sp0,bb0,sp1,bb3,sp2,l2,bb2,sp6,ft2,sp3,ft3,sp4,ft4 ;done with the widget, define the selection variables $sb_wave_selection = 0 getdate, y, dq, m, dm xmtextfieldsetstring, $sb_select_time_txt(0), string(y) xmtextfieldsetstring, $sb_select_time_txt(1), string(m) xmtextfieldsetstring, $sb_select_time_txt(2), string(dm) xmtextfieldsetstring, $sb_select_time_txt(3), '00:00:00' xmtextfieldsetstring, $sb_select_time_txt(4), string(y) xmtextfieldsetstring, $sb_select_time_txt(5), string(m) xmtextfieldsetstring, $sb_select_time_txt(6), string(dm) xmtextfieldsetstring, $sb_select_time_txt(7), '23:00:00' xmtextfieldsetstring, $sb_select_time_txt(8), '00:00:00' xtpopup, $sbselectwidget ;===============================================================================