Changeset 69 for trunk/ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.pro
- Timestamp:
- 05/11/06 12:35:53 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.pro
r49 r69 1 1 PRO changefile, base, newfilename, BOXZOOM = boxzoom, DATE1 = date1, DATE2 = date2, FIELDNAME = fieldname 2 2 ; 3 widget_control, base, /hourglass 4 widget_control, base, get_uvalue = top_uvalue 5 filelist = extractatt(top_uvalue, 'filelist') 6 newfile = (where(filelist EQ newfilename))[0] 7 if newfile EQ -1 then begin 8 nothing, report('invalid filename') 9 return 10 endif 11 listid = widget_info(base, find_by_uname = 'filelist') 12 widget_control, listid, set_list_select = newfile 13 oldfile = extractatt(top_uvalue, 'currentfile') 14 oldfilename = filelist[oldfile] 15 ; a-t-on reelement change de fichier? 16 if oldfile EQ newfile AND NOT (keyword_set(BOXZOOM) OR keyword_set(DATE1) OR keyword_set(DATE2) OR keyword_set(FIELDNAME)) then return 3 widget_control, base, /hourglass 4 widget_control, base, get_uvalue = top_uvalue 5 filelist = extractatt(top_uvalue, 'filelist') 6 IF size(newfilename, /type) EQ 7 THEN newfile = (where(filelist EQ newfilename))[0] $ 7 ELSE newfile = newfilename ; it is already the index of the new file 8 if newfile EQ -1 then begin 9 nothing, report('invalid filename') 10 return 11 endif 12 oldfile = extractatt(top_uvalue, 'currentfile') 13 oldfilename = filelist[oldfile] 14 15 ; did we really change the file??? 16 if oldfile EQ newfile AND NOT (keyword_set(BOXZOOM) OR keyword_set(DATE1) OR keyword_set(DATE2) OR keyword_set(FIELDNAME)) then return 17 17 18 ;-------------- 18 19 widget_control, base, update = 0 19 20 ;-------------- 20 21 ; 21 ; on update l''element currentfile de latop_uvalue22 ; we update currentfile element of the top_uvalue 22 23 ; 23 *top_uvalue[1, findline(top_uvalue, 'currentfile')] = newfile 24 ; on s''occupe du nom de la variable 25 oldlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).listvar 26 newlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).listvar 24 *top_uvalue[1, findline(top_uvalue, 'currentfile')] = newfile 27 25 ; 28 champid = widget_info(base, find_by_uname = 'champ') 29 oldindexvar = widget_info(champid,/droplist_select) 30 oldfieldname = oldlistvar[oldindexvar] 31 ; a-t-on change de liste de variables ? 32 if n_elements(oldlistvar) NE n_elements(newlistvar) $ 33 OR total(oldlistvar NE newlistvar) NE 0 THEN $ 34 widget_control, champid, set_value = newlistvar 26 ; Calendar 35 27 ; 36 if keyword_set(fieldname) then newfieldname = fieldname ELSE newfieldname = oldfieldname 37 indexvar = where(newlistvar EQ newfieldname) & indexvar = 0 > indexvar[0] 38 if oldindexvar NE indexvar then widget_control, champid, set_droplist_select = indexvar 39 newfieldname = newlistvar[indexvar] 40 ; on a modifiee le nom de la variable? 41 if newfieldname NE oldfieldname then BEGIN 42 changefield, base, newfieldname, BOXZOOM = boxzoom 43 widget_control, champid, set_droplist_select = indexvar 44 ENDIF 28 oldcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).time_counter 29 newcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).time_counter 30 ; Did we change the calendar? 31 if array_equal(oldcalendar, newcalendar) NE 1 then begin 32 @cm_4cal ; for key_caltype 33 key_caltype = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).caltype 34 ; Which dates were selected? 35 date1id = widget_info(base, find_by_uname = 'calendar1') 36 if NOT keyword_set(date1) then widget_control, date1id, get_value = date1 37 jdate1 = date2jul(date1) 38 if (where(newcalendar EQ jdate1))[0] EQ -1 then jdate1 = newcalendar[0] 39 date2id = widget_info(base, find_by_uname = 'calendar2') 40 if NOT keyword_set(date2) then widget_control, date2id, get_value = date2 41 jdate2 = date2jul(date2) 42 if (where(newcalendar EQ jdate2))[0] EQ -1 then jdate2 = date1 43 if jdate2 LT jdate1 THEN jdate2 = jdate1 44 widget_control, date1id, /destroy 45 widget_control, date2id, /destroy 46 basecal = widget_info(base, find_by_uname = 'basecal') 47 rien = cw_calendar(basecal, newcalendar, jdate1, uname = 'calendar1' $ 48 , uvalue = {name:'calendar1'}, /frame) 49 rien = cw_calendar(basecal, newcalendar, jdate2, uname = 'calendar2' $ 50 , uvalue = {name:'calendar2'}, /frame) 51 ENDIF ELSE BEGIN 52 if keyword_set(date1) then begin 53 date1id = widget_info(base, find_by_uname = 'calendar1') 54 widget_control, date1id, set_value = date1 55 endif 56 if keyword_set(date2) then begin 57 date2id = widget_info(base, find_by_uname = 'calendar2') 58 widget_control, date2id, set_value = date2 59 endif 60 ENDELSE 45 61 ; 46 ; on s''occupe du calendrier62 ; Grid parameters and domain 47 63 ; 48 oldcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).time_counter 49 newcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).time_counter 50 ; a-t-on change de calendrier ? 51 if n_elements(oldcalendar) NE n_elements(newcalendar) $ 52 OR total(oldcalendar NE newcalendar) NE 0 then begin 53 ; quelles etaient les dates selectionnees ? 54 date1id = widget_info(base, find_by_uname = 'calendar1') 55 if NOT keyword_set(date1) then widget_control, date1id, get_value = date1 56 if (where(newcalendar EQ juldate(date1)))[0] EQ -1 then date1 = newcalendar[0] 57 date2id = widget_info(base, find_by_uname = 'calendar2') 58 if NOT keyword_set(date2) then widget_control, date2id, get_value = date2 59 if (where(newcalendar EQ juldate(date2)))[0] EQ -1 then date2 = date1 60 if date2 LT date1 THEN date2 = date1 61 widget_control, date1id, /destroy 62 widget_control, date2id, /destroy 63 base12 = widget_info(base, find_by_uname = 'base12') 64 rien = cw_calendar(base12,newcalendar, juldate(date1), uname = 'calendar1' $ 65 , uvalue = {name:'calendar1'}, /frame) 66 rien = cw_calendar(base12,newcalendar, juldate(date2), uname = 'calendar2' $ 67 , uvalue = {name:'calendar2'}, /frame) 68 ENDIF ELSE BEGIN 69 if keyword_set(date1) then begin 70 date1id = widget_info(base, find_by_uname = 'calendar1') 71 widget_control, date1id, set_value = date1 72 endif 73 if keyword_set(date2) then begin 74 date2id = widget_info(base, find_by_uname = 'calendar2') 75 widget_control, date2id, set_value = date2 76 endif 77 ENDELSE 64 newgrid = *(extractatt(top_uvalue, 'meshparameters'))[newfile] 65 change = changegrid(newgrid) 66 if change OR keyword_set(boxzoom) then BEGIN 67 if NOT keyword_set(boxzoom) then boxzoom = -1 68 domainid = widget_info(base, find_by_uname = 'domain') 69 widget_control, domainid, set_value = boxzoom 70 endif 78 71 ; 79 ; parametres de la grille72 ; file name 80 73 ; 81 newgrid = *(extractatt(top_uvalue, 'meshparameters'))[newfile] 82 change = changegrid(newgrid) 83 if change OR keyword_set(boxzoom) then BEGIN 84 if NOT keyword_set(boxzoom) then boxzoom = -1 85 domainid = widget_info(base, find_by_uname = 'domain') 86 widget_control, domainid, set_value = boxzoom 87 endif 74 IF oldfile NE newfile THEN BEGIN 75 flstid = widget_info(base, find_by_uname = 'filelist') 76 widget_control, flstid, set_combobox_select = newfile 77 ENDIF 78 ; 79 ; Variables name 80 ; 81 vlstid = widget_info(base, find_by_uname = 'varlist') 82 oldfieldname = widget_info(vlstid, /combobox_gettext) 83 ; did we really change the liste of variables? 84 oldlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).listvar 85 newlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).listvar 86 if array_equal(oldlistvar, newlistvar) NE 1 THEN $ 87 widget_control, vlstid, set_value = newlistvar 88 ; set the liste of variables to the new variable name 89 if keyword_set(fieldname) then newfieldname = fieldname ELSE newfieldname = oldfieldname 90 indexvar = where(newlistvar EQ newfieldname) & indexvar = 0 > indexvar[0] 91 widget_control, vlstid, set_combobox_select = indexvar 92 newfieldname = newlistvar[indexvar] 93 ; did we change the name of the variable? 94 if newfieldname NE oldfieldname then BEGIN 95 changefield, base, newfieldname, BOXZOOM = boxzoom 96 ENDIF 97 ; 88 98 ;-------------- 89 99 widget_control, base, update = 1 90 100 ;-------------- 91 101 return 92 102 end
Note: See TracChangeset
for help on using the changeset viewer.