;+
;PROJECT:
;           SolarB EIS
;
;NAME:      
;           db_save_linelist_entry_update
;
;PURPOSE:
;           Function to update an entry in the EIS line list databse
;
;CATEGORY:
;           EIS Technical Planning
;           Database
;
;INPUTS:
;           an eis_line_list structure
;
;OPTIONAL INPUTS:
;           the top-level-base; useful if calling from a widget tool 
;           (eg; mk_raster). 
;
;MODIFICATION HISTORY:
;           Written by: John Rainnie, RAL - j.rainnie@rl.ac.uk (Dec 2005)
;
;-
;************************************************************************
PRO db_save_linelist_entry_update , lineList , tlbID = tlbID

; Open database for writing the new Line List entry
db_name   = 'eis_linelist_db'
dbhname   = find_with_def(db_name+'.dbh', 'ZDBASE')
validFile = FILE_TEST( dbhname , /READ)
IF (validFile NE 1) THEN stop

dbopen, db_name, unavail = unavail , 1
IF (unavail NE 0) THEN stop

; dbput is a SSW procedure for updating  a database field
dbput, 'ACRONYM'    , lineList.acronym             , lineList.id
dbput, 'TITLE'      , lineList.title               , lineList.id
dbput, 'AUTHOR'     , lineList.author              , lineList.id
dbput, 'DATE'       , lineList.date                , lineList.id
dbput, 'N_LINES'    , lineList.nLines              , lineList.id
dbput, 'AUTHOR'     , lineList.author              , lineList.id
dbput, 'DATE'       , lineList.date                , lineList.id
dbput, 'WAVELENGTH' , lineList.lines[*].wavelength , lineList.id
dbput, 'TYPE'       , lineList.lines[*].type       , lineList.id
dbput, 'SPLIT'      , lineList.lines[*].split      , lineList.id
;dbput, 'ATOMICNAME' , lineList.lines[*].name       , lineList.id

dbclose


;
; OK, now get the line names
;
db_name  = 'eis_linename_db'
dbopen, db_name, unavail = unavail , 1

dbput, 'ATOMICNAME_01' , lineList.lines[0 ].name       , lineList.id
dbput, 'ATOMICNAME_02' , lineList.lines[1 ].name       , lineList.id
dbput, 'ATOMICNAME_03' , lineList.lines[2 ].name       , lineList.id
dbput, 'ATOMICNAME_04' , lineList.lines[3 ].name       , lineList.id
dbput, 'ATOMICNAME_05' , lineList.lines[4 ].name       , lineList.id
dbput, 'ATOMICNAME_06' , lineList.lines[5 ].name       , lineList.id
dbput, 'ATOMICNAME_07' , lineList.lines[6 ].name       , lineList.id
dbput, 'ATOMICNAME_08' , lineList.lines[7 ].name       , lineList.id
dbput, 'ATOMICNAME_09' , lineList.lines[8 ].name       , lineList.id
dbput, 'ATOMICNAME_10' , lineList.lines[9 ].name       , lineList.id
dbput, 'ATOMICNAME_11' , lineList.lines[10].name       , lineList.id
dbput, 'ATOMICNAME_12' , lineList.lines[11].name       , lineList.id
dbput, 'ATOMICNAME_13' , lineList.lines[12].name       , lineList.id
dbput, 'ATOMICNAME_14' , lineList.lines[13].name       , lineList.id
dbput, 'ATOMICNAME_15' , lineList.lines[14].name       , lineList.id
dbput, 'ATOMICNAME_16' , lineList.lines[15].name       , lineList.id
dbput, 'ATOMICNAME_17' , lineList.lines[16].name       , lineList.id
dbput, 'ATOMICNAME_18' , lineList.lines[17].name       , lineList.id
dbput, 'ATOMICNAME_19' , lineList.lines[18].name       , lineList.id
dbput, 'ATOMICNAME_20' , lineList.lines[19].name       , lineList.id
dbput, 'ATOMICNAME_21' , lineList.lines[20].name       , lineList.id
dbput, 'ATOMICNAME_22' , lineList.lines[21].name       , lineList.id
dbput, 'ATOMICNAME_23' , lineList.lines[22].name       , lineList.id
dbput, 'ATOMICNAME_24' , lineList.lines[23].name       , lineList.id
dbput, 'ATOMICNAME_25' , lineList.lines[24].name       , lineList.id

dbclose

; Report successful outcome
; ID needs to be in 000001 format
idValue = STRING(format='(I06)' , lineList.id)
messageText = ["Line List has been successfully updated." ,                 $
               ""                                       ,                   $
               "ID          = " + idValue               ,                   $
               "Description = " + lineList.acronym  ]
complain = DIALOG_MESSAGE( messageText ,                                    $
                             				DIALOG_PARENT = tlbID,                     $
                             				/INFORMATION )


END
