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

FUNCTION eis_disp_obj::init, CDS = cds

self.name = 'viewer_base'
self.id   = viewer_base

;-- Create a base widget to hold controls which will sit directly above the view
;-- windows.

row = widget_base (viewer_base, /ROW, FRAME = 3)

;-- Create a two button menu to set the sort direction.

tmp = widget_label (font = lfont, row, value = 'Sort Direction:')

xmenu, ['Ascending', 'Descending'], row, BUTTONS = id, /EXCLUSIVE, /ROW, /NO_RELEASE, XPAD = 5

;-- Copy the IDs of each button into the self structure.

self.buttonA = id (0)
self.buttonB = id (1)

;-- Set up event handlers for each button

widget_control, self.buttonA, EVENT_PRO = 'sort_button_event'
widget_control, self.buttonB, EVENT_PRO = 'sort_button_event'

;-- Set ascending button to be selected

widget_control, self.buttonA, /set_button

;-- Set up the print button

self.printbt = widget_button (row, 				$
                              value = 'Print', 			$
                              font = bfont, 			$
                              EVENT_PRO = 'print_event')

;-- Set up the save button

self.savebt  = widget_button (row,				$ 
                              value = 'Save', 			$
                              font = bfont, 			$
                              EVENT_PRO = 'save_event')

;-- Set up the view comments button

tmp = widget_button (row, value = 'View Comments', font = bfont, EVENT_PRO = 'view_comment_event')

;-- Set up the view comments button

tmp = widget_button (row, value = 'Relist', font = bfont, EVENT_PRO = 'relist_event')

tmp = widget_label (font=lfont, viewer_base, value = tblock (1))

tmp = widget_list (viewer_base, value = tblock (2), font = lfont, ysize = 1, /frame, xsize = 120)

self.mlist = widget_list (viewer_base, 					$
                          value = '', 					$
                          font = lfont, 				$
                          ysize = 10, 					$
                          uvalue = -1,					$
                          event_pro = 'mlist_event')

tmp = widget_label (viewer_base, value = tblock (3), font = lfont)

tmp = widget_list (viewer_base, value = tblock (4), font = lfont, ysize = 1, /frame, xsize = 120)

self.elist = widget_list (viewer_base, 					$
                          value = '',					$
                          font = lfont,					$
                          ysize = 10,					$
                          uvalue = -1, 					$
                          event_pro = 'elist_event')

;-- Create a base widget to hold controls which will sit directly below the view
;-- windows.

row = widget_base (viewer_base, /ROW, FRAME = 3)

;-- Create two fields to hold the expected and and actual number of rasters

self.expras = cw_field (row, 						$
                        title = 'Expected No. of Rasters:  ', 		$
                        xsize = 5, 					$
                        font = lfont,					$
                        /noedit,					$
                        /integer, 					$
                        field = bfont)

self.fndras = cw_field (row, 						$
                        title = 'Actual No. of Rasters:  ', 		$
                        xsize = 5, 					$
                        font = lfont,					$
                        /noedit,					$
                        /integer, 					$
                        field = bfont)

;-- Create a couple of buttons to allow the user to edit and display the AS-RUN database

;-- entry for the selected FITS file.

bgroup = widget_base (row, /COLUMN, /BASE_ALIGN_RIGHT) 

tmp = cw_bgroup (bgroup,						$
                 ['View AS-RUN details for selected FITS file',		$ 
                  'Enter EDIT mode when viewing AS-RUN details'],	$
                 IDS = id,						$
                 /COLUMN,						$
                 /NONEXCLUSIVE,						$
                 EVENT_FUNC = "display_button_event", 			$
                 font = lfont)

;-- Copy the IDs of each button into the self structure.

self.buttonC = id (0)
self.buttonD = id (1)

;-- Set the name of the function to find the expected number of rasters in a study.
;-- Since this uses instrument specific routines, a different function will have 
;-- to be used depending on the instrument whose database is being searched. 

;-- Note: At present, only the routines for CDS exist.

IF KEYWORD_SET (cds) THEN self.f_get_nraster = "GET_NRASTERS_CDS"

RETURN, 1

END

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

PRO eis_disp_obj__define

obj =  {EIS_DISP_OBJ,		$
        name:     '',		$ 	
        id:       0l,		$
        mlist:    0l,		$
	elist:    0l,		$
        buttonA:  0l,		$
        buttonB:  0l,		$
        buttonC:  0l,		$
        buttonD:  0l,		$
        expras:   0l,		$
        fndras:   0l,		$
        printbt:  0l,		$
        savebt:   0l,		$
	t0:       0.D,		$
	t1:       0.D,		$
	time0:    0.D,		$
	time1:    0.D,		$
        sortdir:  1,		$
        search:   '',		$
	study:    '',		$
        aregion:  0,		$
        campaign: 0,		$
        use_sname:0,		$
        use_areg: 0,		$
        use_srad: 0,		$
        use_cmpno:0,		$
        fits_dir: '',		$
        fitsfile: '',		$
        viewASRUN:0,		$
        editASRUN:0,		$
        f_get_nraster: "",	$
        display:  ptr_new (),	$
        prognum:  0L		$
       }

RETURN

END
