; -------------------------------------------------------------------
;                       Gestion des evenements
; -------------------------------------------------------------------

PRO rh_extraire_Event, Event
; 23 juin 2000 : pour extraction des fichiers comprimes appel a extrairecm_rh
  COMMON wextraire_rh, s_fichier, fichier, Hd, hf,fichier_out, path ,comp, iba

  WIDGET_CONTROL,Event.Id,GET_UVALUE=Ev

  CASE Ev OF 

   'Nomf': 

 'heudeb': widget_control,event.id,GET_VALUE = hd

 'heudfi': widget_control,event.id,GET_VALUE = hf
 
    'ann': WIDGET_CONTROL,EVENT.TOP,/DESTROY

 'ok': BEGIN
           widget_control, s_fichier, get_value = val
           fichier_extrait = val(0)
           IF iba EQ 1 THEN BEGIN     ; en batch
               if comp eq 0 then $
	          s = "rh_extraire1, "+"'"+fichier+ "'"+',[' $
               else $
	          s = "rh_extrairecmp, "+"'"+fichier+ "'"+',['
               s = s+string(format='(3(i2.2,","),i2.2)',hd)+'],['
               s = s+string(format='(3(i2.2,","),i2.2)',hf)+'],'
               s = s+"'"+fichier_extrait+"'"
               fcmd = path+rh_separator()+'extrait'+rh_no()
               lab1 = '  ==================== '
               lab = lab1+' CREATION FICHIER '+fichier_extrait+lab1
               rh_command1, fcmd, [s], IDL=1, LABEL=lab, group=event.top

           END ELSE BEGIN            ; en interactif
               IF comp EQ 0 THEN BEGIN
	          rh_extraire1, fichier, hd, hf, fichier_extrait
               END ELSE BEGIN
	          rh_extrairecmp, fichier, hd, hf, fichier_extrait	
               ENDELSE
           ENDELSE
           WIDGET_CONTROL,EVENT.TOP,/DESTROY
       END
  ENDCASE
END


; ----------------------------------------------------------------
;
; ----------------------------------------------------------------

PRO rh_extraire, fdata, fextrait, fhome, NO_BATCH = NO_BATCH, GROUP=Group
;
;
; INPUTS:
;   fdata     : repertoire contenant le fichier d'entree
;   fextrait  : repertoire contenant le fichier de sortie
;   fhome     : repertoire home pour les fichiers cmd/bil du batch
;
;KEYWORDS:
;---------
; NO_BATCH:      integration lancee en interactif : option pour SolarSoft
;               car le at n'existe pas sur certaines machines
; GROUP:        widget ID du groupe leader
@rh_common.inc
  COMMON wextraire_rh, s_fichier, fichier, hd, hf, fichier_out, path, comp, iba
   
  IF N_ELEMENTS(Group) EQ 0 THEN GROUP=0
  IF KEYWORD_SET(NO_BATCH) THEN iba = 0 ELSE iba = 1
  path = fhome
  filter = '*.??'	 	
  fichier = ''
  rh_sel_fich, fdata, filter, fichier, typ1, typ2
  IF fichier EQ '' THEN return

  IF NOT (rh_open(fichier)) THEN RETURN
  hd=entfi.hdeb
  hf=entfi.hfin
  comp=entfi.comp
  rh_close

;Nom du fichier extrait
 pos = RSTRPOS(fichier,rh_separator(),pos)+1
 fichier1 = fextrait+rh_separator()+ $
            STRMID(fichier, pos, STRLEN(fichier)-pos)
;Liste des fichiers fichier*
   r = findfile(fichier1+'*', count=count)
   fichier_out = fichier1+string(byte(65b+count))

 MAINBASE = WIDGET_BASE(GROUP_LEADER=Group, COLUMN=1, $
            TITLE='Extract', SPACE= 25, /modal, $
            XOFFSET=1, YOFFSET=1, /BASE_ALIGN_CENTER)

 BASE = WIDGET_BASE(mainbase, COLUMN=1, SPACE= 15, /BASE_ALIGN_CENTER,/FRAME)

  b = WIDGET_BASE(BASE, SPACE=0,/ALIGN_CENTER,/COLUMN)
  l = WIDGET_Label(b,Value='File read') 
  l = WIDGET_Label(b,Value=fichier) 

  s_fichier = CW_FIELD(BASE,VALUE=fichier_out, COLUMN=1, $
                STRING=1, TITLE='File to be written', $
                RETURN_EVENTS=1, UVALUE='Nomf')

  l = RH_CW_TIME(BASE, MAXIMUM=HF, MINIMUM=HD, VALUE=HD,$
              TITLE='Start', UVALUE='heudeb')

  l = RH_CW_TIME(BASE, MAXIMUM=HF, MINIMUM=HD, VALUE=HF, $
              TITLE='End', UVALUE='heudfi')

  b = widget_base(mainbase, column=2,/align_center, space=40)
  b1 = WIDGET_BUTTON( b, UVALUE='ok', VALUE='Extract', $
      xs=90, ys=35)
  b1 = WIDGET_BUTTON( b, UVALUE='ann', VALUE='Cancel', $
      xs=90, ys=35)
  WIDGET_CONTROL, MAINBASE, /REALIZE

   XMANAGER, 'rh_extraire', MAINBASE, group=group
END
