source: trunk/SRC/ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.pro @ 254

Last change on this file since 254 was 254, checked in by pinsard, 17 years ago

improvements/corrections of some *.pro headers

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.1 KB
RevLine 
[150]1;+
[231]2;
[150]3; @file_comments
4;
5; @categories
6;
7; @param BASE {in}{required}
8; The id of the widget where apply the drawing.
9;
10; @param NEWFILENAME
11;
12; @keyword BOXZOOM
[231]13; Vector indicating the geographic zone on which we want to cut the map.
14; If BOXZOOM has :
[150]15;   1 element : The extraction is made on [lon1, lon2, lat1, lat2, 0.,boxzoom[0]]
16;   2 elements: The extraction is made on [lon1, lon2, lat1, lat2, boxzoom[0],boxzoom[1]]
17;   4 elements: The extraction is made on [Boxzoom, 0, max([gdept, gdepw])]
18;   5 elements: The extraction is made on [Boxzoom[0:3], 0, Boxzoom[4]]
[231]19;   6 elements: The extraction is made on Boxzoom
[254]20; Where lon1, lon2,lat1,lat2 are global variables defined at the last
21; <pro>domdef</pro> !
[231]22;
[150]23; @keyword DATE1
[231]24;
[150]25; @keyword DATE2
26;
27; @keyword FIELDNAME
[231]28;
[150]29; @returns
[231]30;
[150]31; @uses
[231]32;
[150]33; @restrictions
[231]34;
[150]35; @examples
[231]36;
[150]37; @history
[231]38;
39; @version
[150]40; $Id$
41;
42; @todo
43; seb
44;
45;-
[49]46PRO changefile, base, newfilename, BOXZOOM = boxzoom, DATE1 = date1, DATE2 = date2, FIELDNAME = fieldname
47;
[114]48;
49  compile_opt idl2, strictarrsubs
50;
[69]51  widget_control, base, /hourglass
52  widget_control, base, get_uvalue = top_uvalue
53  filelist = extractatt(top_uvalue, 'filelist')
54  IF size(newfilename, /type) EQ 7 THEN newfile = (where(filelist EQ newfilename))[0] $
55  ELSE newfile = newfilename    ; it is already the index of the new file
56  if newfile EQ -1 then begin
[114]57    nothing = report('invalid filename')
[69]58    return
59  endif
60  oldfile = extractatt(top_uvalue, 'currentfile')
61  oldfilename = filelist[oldfile]
62
63; did we really change the file???
64  if oldfile EQ newfile AND NOT (keyword_set(BOXZOOM) OR keyword_set(DATE1) OR keyword_set(DATE2) OR keyword_set(FIELDNAME)) then return
65
[2]66;--------------
[69]67  widget_control, base, update = 0
[2]68;--------------
69;
[69]70; we update currentfile element of the top_uvalue
[2]71;
[69]72  *top_uvalue[1, findline(top_uvalue, 'currentfile')] = newfile
[2]73;
[69]74; Calendar
[2]75;
[69]76  oldcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).time_counter
77  newcalendar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).time_counter
78; Did we change the calendar?
79  if array_equal(oldcalendar, newcalendar) NE 1 then begin
[231]80@cm_4cal
[74]81; for key_caltype
[69]82    key_caltype = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).caltype
[74]83; fake or real calendar???
84    fakecal = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).fakecal
[231]85; Which dates were selected?
[69]86    date1id = widget_info(base, find_by_uname = 'calendar1')
87    if NOT keyword_set(date1) then widget_control, date1id, get_value = date1
88    jdate1 = date2jul(date1)
89    if (where(newcalendar EQ jdate1))[0] EQ -1 then jdate1 = newcalendar[0]
90    date2id = widget_info(base, find_by_uname = 'calendar2')
91    if NOT keyword_set(date2) then widget_control, date2id, get_value = date2
92    jdate2 = date2jul(date2)
93    if (where(newcalendar EQ jdate2))[0] EQ -1 then jdate2 = date1
94    if jdate2 LT jdate1 THEN jdate2 = jdate1
95    widget_control, date1id, /destroy
96    widget_control, date2id, /destroy
97    basecal = widget_info(base, find_by_uname = 'basecal')
98    rien = cw_calendar(basecal, newcalendar, jdate1, uname = 'calendar1' $
[74]99                       , FAKECAL = fakecal, uvalue = {name:'calendar1'}, /frame)
[69]100    rien = cw_calendar(basecal, newcalendar, jdate2, uname = 'calendar2' $
[74]101                       , FAKECAL = fakecal, uvalue = {name:'calendar2'}, /frame)
[231]102  ENDIF ELSE BEGIN
[69]103    if keyword_set(date1) then begin
[2]104      date1id = widget_info(base, find_by_uname = 'calendar1')
[69]105      widget_control, date1id, set_value = date1
106    endif
107    if keyword_set(date2) then begin
[2]108      date2id = widget_info(base, find_by_uname = 'calendar2')
[69]109      widget_control, date2id, set_value = date2
110    endif
111  ENDELSE
[2]112;
[69]113; Grid parameters and domain
[2]114;
[69]115  newgrid = *(extractatt(top_uvalue, 'meshparameters'))[newfile]
116  change = changegrid(newgrid)
117  if change OR keyword_set(boxzoom) then BEGIN
118    if NOT keyword_set(boxzoom) then boxzoom = -1
119    domainid = widget_info(base, find_by_uname = 'domain')
120    widget_control, domainid, set_value = boxzoom
121  endif
122;
123; file name
124;
[231]125  IF oldfile NE newfile THEN BEGIN
[69]126    flstid = widget_info(base, find_by_uname = 'filelist')
127    widget_control, flstid, set_combobox_select =  newfile
[231]128  ENDIF
[69]129;
130; Variables name
131;
132  vlstid = widget_info(base, find_by_uname = 'varlist')
133  oldfieldname = widget_info(vlstid, /combobox_gettext)
134; did we really change the liste of variables?
135  oldlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[oldfile]).listvar
136  newlistvar = (*(extractatt(top_uvalue, 'fileparameters'))[newfile]).listvar
137  if array_equal(oldlistvar, newlistvar) NE 1 THEN $
138     widget_control, vlstid, set_value = newlistvar
139; set the liste of variables to the new variable name
140  if keyword_set(fieldname) then newfieldname = fieldname ELSE newfieldname = oldfieldname
141  indexvar = where(newlistvar EQ newfieldname) & indexvar = 0 > indexvar[0]
142  widget_control, vlstid, set_combobox_select = indexvar
143  newfieldname = newlistvar[indexvar]
144; did we change the name of the variable?
145  if newfieldname NE oldfieldname then BEGIN
146    changefield, base, newfieldname, BOXZOOM = boxzoom
147  ENDIF
148;
[2]149;--------------
[69]150  widget_control, base, update = 1
[2]151;--------------
[69]152  return
[2]153end
Note: See TracBrowser for help on using the repository browser.