source: trunk/ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.pro @ 69

Last change on this file since 69 was 69, checked in by smasson, 18 years ago

debug + new xxx

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.0 KB
Line 
1PRO changefile, base, newfilename, BOXZOOM = boxzoom, DATE1 = date1, DATE2 = date2, FIELDNAME = fieldname
2;
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
18;--------------
19  widget_control, base, update = 0
20;--------------
21;
22; we update currentfile element of the top_uvalue
23;
24  *top_uvalue[1, findline(top_uvalue, 'currentfile')] = newfile
25;
26; Calendar
27;
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
61;
62; Grid parameters and domain
63;
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
71;
72; file name
73;
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;
98;--------------
99  widget_control, base, update = 1
100;--------------
101  return
102end
Note: See TracBrowser for help on using the repository browser.