Ignore:
Timestamp:
05/11/06 12:35:53 (18 years ago)
Author:
smasson
Message:

debug + new xxx

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.pro

    r49 r69  
    11PRO changefile, base, newfilename, BOXZOOM = boxzoom, DATE1 = date1, DATE2 = date2, FIELDNAME = fieldname 
    22; 
    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 
    1718;-------------- 
    18    widget_control, base, update = 0 
     19  widget_control, base, update = 0 
    1920;-------------- 
    2021; 
    21 ; on update l''element currentfile de la top_uvalue 
     22; we update currentfile element of the top_uvalue 
    2223; 
    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 
    2725; 
    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 
    3527; 
    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 
    4561; 
    46 ; on s''occupe du calendrier 
     62; Grid parameters and domain 
    4763; 
    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 
    7871; 
    79 ; parametres de la grille 
     72; file name 
    8073; 
    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; 
    8898;-------------- 
    89    widget_control, base, update = 1 
     99  widget_control, base, update = 1 
    90100;-------------- 
    91    return 
     101  return 
    92102end 
Note: See TracChangeset for help on using the changeset viewer.