;+
; PROJECT
;          Solar-B EIS
;
; NAME
;          eis_prefs_gui__DEFINE
;
; PURPOSE
;          Preferences GUI
;
; INPUTS
;          parentClass - the eis_mk_plan object
;
; CATEGORY
;          EIS Timeline Planning
;
; WRITTEN
;          John A Rainnie RAL 6-Jun-2008
;
; HISTORY
;          v0.1 JAR 23-Apr-2008
;               Added Logo tab - the user can select a JPEG image fileName
;               to display
;
;-
;______________________________________________________________________________
FUNCTION eis_prefs_gui::Init , parentClass , set_tab_index = set_tab_index

Self.parentClass  = parentClass
Self.group_leader = parentClass->tlbID()

;-------------------create the main base---------------------------------------;
pt_version = eis_get_pt_version_number()
widTitle = "Preferences" + pt_version
TLB_EVENT                  = {eis_prefs_gui_Event}
TLB_EVENT.eis_prefs_gui     = Self
TLB_EVENT.Type             = "TLB"
Self.tlbID                 = WIDGET_BASE(                                  $
                                   TITLE       = widTitle            ,     $
                                   COLUMN      = 1                   ,     $
                                   /FLOATING                         ,     $
                                   GROUP_LEADER = Self.group_leader  ,     $
                                   UValue      = TLB_EVENT )

Event_Pro = 'eis_prefs_gui_EV'
; ______________________________________________________________________
;
; Widget Tab
;
; ______________________________________________________________________
tabBase                    = WIDGET_TAB(Self.tlbID)
Base1                      = WIDGET_BASE(tabBase                     ,     $
                                   Title      = ' CP Files '         ,     $
                                   COLUMN     = 1)
value = ' SOT Offset '
Base_sot_offset           = WIDGET_BASE(tabBase                      ,     $
                                   Title      = value                ,     $
                                   COLUMN     = 1)
value = ' Warnings '
Base2                     = WIDGET_BASE(tabBase                      ,     $
                                   Title      = value                ,     $
                                   COLUMN     = 1)

value = ' Logo '
Base3                     = WIDGET_BASE(tabBase                      ,     $
                                   Title      = value                ,     $
                                   COLUMN     = 1)

value = ' Planning Party '
Base4                     = WIDGET_BASE(tabBase                      ,     $
                                   Title      = value                ,     $
                                   COLUMN     = 1)
; ______________________________________________________________________
;
; CP File (BASE 1)
;
; ______________________________________________________________________
value    = STRARR(5)
value[0] = ""
value[1] = "Modify time window to search for CP input files.  "
value[2] = "The default is 4 days before and after the display"
value[3] = "start and stop period. Allowed range is 3 to 7 days."
aLabel                     = WIDGET_TEXT(Base1                       ,     $
                                   value       = value               ,     $
                                   /WRAP                             ,     $
                                   ySize       = N_ELEMENTS(value)   ,     $
                                   xSize       = 60)
Self.parentClass->getProperty , num_days = num_days
IF (num_days LT 3) OR (num_days GT 7) THEN BEGIN
   stop
ENDIF

dlistBase                  = WIDGET_BASE(Base1                       ,     $
                                   ROW         = 1)

aLabel                     = WIDGET_LABEL(dlistBase                  ,     $
                                   value       = 'Number of days:')

JSIDE_EVENT                = {eis_prefs_gui_Event}
JSIDE_EVENT.eis_prefs_gui  = Self
JSIDE_EVENT.Type           = "JSIDE"
value = [' 3 ',' 4 ',' 5 ',' 6 ',' 7 ']
Self.jside_textID          = WIDGET_DROPLIST(dlistBase               ,     $
                                   Event_Pro   = Event_Pro           ,     $
                                   value       = value               ,     $
                                   uValue      = JSIDE_EVENT)
WIDGET_CONTROL , Self.jside_textID , set_droplist_select = num_days - 3

CP_APPLY_EVENT             = {eis_prefs_gui_Event}
CP_APPLY_EVENT.eis_prefs_gui  = Self
CP_APPLY_EVENT.Type        = "CP_APPLY"
CP_APPLYbutton             = WIDGET_BUTTON(dlistBase                 ,     $
                                    value       = ' Apply '          ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = CP_APPLY_EVENT)

; ______________________________________________________________________
;
; SOT Offset (Base_sot_offset)
;
; ______________________________________________________________________
value    = STRARR(3)
value[0] = ""
value[1] = "Modify default SOT Offset  "
aLabel                     = WIDGET_TEXT(Base_sot_offset             ,     $
                                   value       = value               ,     $
                                   /WRAP                             ,     $
                                   ySize       = N_ELEMENTS(value)   ,     $
                                   xSize       = 60)

sotoxyBase                 = WIDGET_BASE(Base_sot_offset             ,     $
                                   ROW         = 1)


Self.parentClass->getProperty , sot_offset = sot_offset

value = '   X:'
aLabel                     = WIDGET_LABEL(sotoxyBase                 ,      $
                                   /ALIGN_LEFT                       ,     $
                                   ;xSize       = 70                  ,     $
                                   value       = value)

SOTOX_EVENT                = {eis_prefs_gui_Event}
SOTOX_EVENT.eis_prefs_gui  = Self
SOTOX_EVENT.Type           = "SOT_OFFSET_X"
value = STRING(format='(I5)',sot_offset[0])
value = STRCOMPRESS(value,/REMOVE_ALL)
Self.SOTOXTextID           = WIDGET_TEXT(sotoxyBase                  ,     $
                                    value       = value              ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    xSize       = 6                  ,     $
                                    /EDITABLE                        ,     $
                                    uValue      = SOTOX_EVENT)

value = '     Y:'
aLabel                     = WIDGET_LABEL(sotoxyBase                 ,      $
                                   /ALIGN_LEFT                       ,     $
                                   ;xSize       = 70                  ,     $
                                   value       = value)

SOTOY_EVENT                = {eis_prefs_gui_Event}
SOTOY_EVENT.eis_prefs_gui  = Self
SOTOY_EVENT.Type           = "SOT_OFFSET_Y"
value = STRING(format='(I5)',sot_offset[1])
value = STRCOMPRESS(value,/REMOVE_ALL)
Self.SOTOYTextID           = WIDGET_TEXT(sotoxyBase                  ,     $
                                    value       = value              ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    xSize       = 6                  ,     $
                                    /EDITABLE                        ,     $
                                    uValue      = SOTOY_EVENT)


SOTO_APPLY_EVENT           = {eis_prefs_gui_Event}
SOTO_APPLY_EVENT.eis_prefs_gui  = Self
SOTO_APPLY_EVENT.Type      = "SOT_OFFSET_APPLY"
SOTO_APPLYbutton           = WIDGET_BUTTON(Base_sot_offset           ,     $
                                    value       = ' Apply '          ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = SOTO_APPLY_EVENT)

; ______________________________________________________________________
;
; SAA (BASE 2)
;
; ______________________________________________________________________
value    = STRARR(3)
value[0] = ""
value[1] = "Warn about inserting a study during an SAA period  "
aLabel                     = WIDGET_TEXT(Base2                       ,     $
                                   value       = value               ,     $
                                   /WRAP                             ,     $
                                   ySize       = N_ELEMENTS(value)   ,     $
                                   xSize       = 60)

saaBase                    = WIDGET_BASE(Base2                       ,     $
                                   ROW         = 1                   ,     $
                                   FRAME       = 1)

value = 'SAA:'
aLabel                     = WIDGET_LABEL(saaBase                    ,      $
                                   /ALIGN_LEFT                       ,     $
                                   xSize       = 70                  ,     $
                                   value       = value)


saa_excBase                = WIDGET_BASE(saaBase                     ,     $
                                   /NONEXCLUSIVE                     ,     $
                                   ROW         = 1)


SAA_YES_EVENT               = {eis_prefs_gui_Event}
SAA_YES_EVENT.eis_prefs_gui = Self
SAA_YES_EVENT.Type          = "SAA_YES"
Self.saa_yesButtonID        = WIDGET_BUTTON(saa_excBase              ,     $
                                    value       = 'Enable'           ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = SAA_YES_EVENT      ,     $
                                    /NO_RELEASE)

Self.parentClass->getProperty , saa_check = saa_check
WIDGET_CONTROL , Self.saa_yesButtonID , set_button = saa_check

SAA_APPLY_EVENT            = {eis_prefs_gui_Event}
SAA_APPLY_EVENT.eis_prefs_gui  = Self
SAA_APPLY_EVENT.Type       = "SAA_APPLY"
SAA_APPLYbutton            = WIDGET_BUTTON(Base2                ,     $
                                    value       = ' Apply '          ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = SAA_APPLY_EVENT)

; ______________________________________________________________________
;
; LOGO (BASE 3)
;
; ______________________________________________________________________
value    = STRARR(3)
value[0] = ""
value[1] = "Change picture here  "
aLabel                     = WIDGET_TEXT(Base3                       ,     $
                                   value       = value               ,     $
                                   /WRAP                             ,     $
                                   ySize       = N_ELEMENTS(value)   ,     $
                                   xSize       = 60)

Self.parentClass->getProperty , logo_fileName = logo_fileName
Self.logo_fileName = logo_fileName

logoBase                   = WIDGET_BASE(Base3                       ,     $
                                   ROW         = 1)

Self.logoLabelID           = WIDGET_LABEL(logoBase                   ,     $
                                   value       = logo_fileName       ,     $
                                   /ALIGN_LEFT                       ,     $
                                   /DYNAMIC_RESIZE)

LOGO_EDIT_EVENT            = {eis_prefs_gui_Event}
LOGO_EDIT_EVENT.eis_prefs_gui  = Self
LOGO_EDIT_EVENT.Type       = "LOGO_EDIT"
LOGO_EDITbutton            = WIDGET_BUTTON(logoBase                  ,     $
                                    value       = ' Edit... '        ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = LOGO_EDIT_EVENT)

LOGO_DEF_EVENT             = {eis_prefs_gui_Event}
LOGO_DEF_EVENT.eis_prefs_gui  = Self
LOGO_DEF_EVENT.Type        = "LOGO_DEF"
LOGO_DEFbutton             = WIDGET_BUTTON(logoBase                  ,     $
                                    value       = ' Default '        ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = LOGO_DEF_EVENT)


ICON_EVENT                 = {eis_prefs_gui_Event}
ICON_EVENT.eis_prefs_gui   = Self
ICON_EVENT.Type            = "DRAW"
Self.logo_drawID           = WIDGET_DRAW(Base3                       ,     $
                                   XSize       = 140                 ,     $
                                   YSize       = 70                  ,     $
                                   /ALIGN_CENTER                     ,     $
;                                   XSize       = 160     ,                 $
;                                   YSize       = 80      ,                 $
                                   uvalue      = ICON_EVENT)



LOGO_APPLY_EVENT           = {eis_prefs_gui_Event}
LOGO_APPLY_EVENT.eis_prefs_gui  = Self
LOGO_APPLY_EVENT.Type      = "LOGO_APPLY"
LOGO_APPLYbutton           = WIDGET_BUTTON(Base3                ,     $
                                    value       = ' Apply '          ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = LOGO_APPLY_EVENT)

; ______________________________________________________________________
;
; Planning Party (BASE 4)
;
; ______________________________________________________________________
value    = STRARR(3)
value[0] = ""
value[1] = "Change CO, CP and Tohban here.  "
aLabel                     = WIDGET_TEXT(Base4                       ,     $
                                   value       = value               ,     $
                                   /WRAP                             ,     $
                                   ySize       = N_ELEMENTS(value)   ,     $
                                   xSize       = 60)

Self.parentClass->getProperty , cpt_str = cpt_str
;
; Chief Observer
;
coBase                     = WIDGET_BASE(Base4                       ,     $
                                   ROW         = 1)

value = 'Chief Observer (CO):'
aLabel                      = WIDGET_LABEL(coBase                    ,     $
                                   /ALIGN_LEFT                       ,     $
                                   xSize       = 150                 ,     $
                                   value       = value)

OBSERVER_EVENT             = {eis_prefs_gui_Event}
OBSERVER_EVENT.eis_prefs_gui = Self
OBSERVER_EVENT.Type        = "OBSERVER"
list = eis_read_study_lists(/OBSERVER)
Self.observerComboID       = WIDGET_COMBOBOX(coBase            ,     $
                                    value       = list               ,     $
                                    /EDITABLE                        ,     $
                                    uValue      = OBSERVER_EVENT)
index_list = WHERE(cpt_str.observer EQ list , count)
CASE (count GE 1) OF
   1    : index = index_list[0]
   ELSE : index = 0
ENDCASE
WIDGET_CONTROL , Self.observerComboID , set_combobox_select = index

;
; Chief Planner CP
;
cpBase                     = WIDGET_BASE(Base4                       ,     $
                                   ROW         = 1)

value = 'Chief Planner (CP):'
aLabel                      = WIDGET_LABEL(cpBase  ,                  $
                                    /ALIGN_LEFT                       ,     $
                                   xSize       = 150                 ,     $
                                    value       = value)

CP_EVENT                   = {eis_prefs_gui_Event}
CP_EVENT.eis_prefs_gui       = Self
CP_EVENT.Type              = "CP"
list = eis_read_study_lists(/PLANNER)
Self.cpComboID             = WIDGET_COMBOBOX(cpBase            ,     $
                                    value       = list               ,     $
                                    /EDITABLE                        ,     $
                                    uValue      = CP_EVENT)
index_list = WHERE(cpt_str.planner EQ list , count)
CASE (count GE 1) OF
   1    : index = index_list[0]
   ELSE : index = 0
ENDCASE
WIDGET_CONTROL , Self.cpComboID , set_combobox_select = index

;
; TohBan
;
tohbanBase                 = WIDGET_BASE(Base4                       ,     $
                                   ROW         = 1)

value = 'Chief Tohban:'
aLabel                      = WIDGET_LABEL(tohbanBase  ,                  $
                                    /ALIGN_LEFT                       ,     $
                                   xSize       = 150                 ,     $
                                    value       = value)

TOHBAN_EVENT                   = {eis_prefs_gui_Event}
TOHBAN_EVENT.eis_prefs_gui       = Self
TOHBAN_EVENT.Type              = "TOHBAN"
list = eis_read_study_lists(/TOHBAN)
Self.tohbahComboID             = WIDGET_COMBOBOX(tohbanBase            ,     $
                                    value       = list               ,     $
                                    /EDITABLE                        ,     $
                                    uValue      = TOHBAN_EVENT)
index_list = WHERE(cpt_str.tohban EQ list , count)
CASE (count GE 1) OF
   1    : index = index_list[0]
   ELSE : index = 0
ENDCASE
WIDGET_CONTROL , Self.tohbahComboID , set_combobox_select = index

PP_APPLY_EVENT             = {eis_prefs_gui_Event}
PP_APPLY_EVENT.eis_prefs_gui  = Self
PP_APPLY_EVENT.Type        = "PP_APPLY"
PP_APPLYbutton             = WIDGET_BUTTON(Base4                     ,     $
                                    value       = ' Apply '          ,     $
                                    Event_Pro   = Event_Pro          ,     $
                                    uValue      = PP_APPLY_EVENT)



WIDGET_CONTROL , tabBase , set_tab_current = set_tab_index

; ______________________________________________________________________
;
; Bottom base
;
; ______________________________________________________________________
bottomBase                  = WIDGET_BASE(Self.tlbID ,                      $
                                    ROW         = 1  ,                      $
                                    ;/FRAME           ,                      $
                                    /GRID_LAYOUT)


QUIT_EVENT                 = {eis_prefs_gui_Event}
QUIT_EVENT.eis_prefs_gui    = Self
QUIT_EVENT.Type            = "QUIT"
quitbutton                 = WIDGET_BUTTON(bottomBase,                      $
                                    value       = ' Quit ',                  $
                                    Event_Pro   = 'eis_prefs_gui_EV',     $
                                    uValue      = QUIT_EVENT)

RETURN, 1

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui_Cleanup , wid

WIDGET_CONTROL , wid , get_uvalue = eis_prefs_gui_Event
OBJ_DESTROY    , eis_prefs_gui_Event.eis_prefs_gui

END
;______________________________________________________________________________
; Cleanup
;______________________________________________________________________________
PRO eis_prefs_gui::CleanUp


END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::setProperty, start_time = start_time

IF (N_ELEMENTS(start_time) GT 0) THEN BEGIN

    stop

ENDIF

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::GetProperty, tlbID      = tlbID

tlbID      = Self.tlc_textID

END
;______________________________________________________________________________
; Return widget id
;______________________________________________________________________________
FUNCTION eis_prefs_gui::tlbID

    RETURN, Self.tlbID
END
;______________________________________________________________________________
; Widget_Control wrapper
;______________________________________________________________________________
PRO eis_prefs_gui::Control, _Ref_Extra=Widget_Control_Keywords

Widget_Control, Self.tlbID, _Extra=Widget_Control_Keywords

End
;______________________________________________________________________________
; Widget_Info wrapper
;______________________________________________________________________________
FUNCTION eis_prefs_gui::Info, _Ref_Extra=Widget_Info_Keywords

Return, Widget_Info(Self.tlbID, _Extra=Widget_Info_Keywords)

End

;______________________________________________________________________________
; Realize wrapper
;______________________________________________________________________________
PRO eis_prefs_gui::Realize

Widget_Control, Self.tlbID, /Realize

End

;______________________________________________________________________________
; XManager wrapper
;______________________________________________________________________________
PRO eis_prefs_gui::XManager;,group=group

XMANAGER , "eis_prefs_gui" ,   Self.tlbID ,                                 $
    Event_Handler  = "eis_prefs_gui_EV",                                    $
    cleanup        = "eis_prefs_gui_Cleanup",                               $
    GROUP_LEADER   = Self.group_leader ,                                    $
    /NO_BLOCK

end

;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui_Event__Define

    struct = {  eis_prefs_gui_Event,                                              $
                Type            : "",        $ ;Unique identifier for event
                eis_prefs_gui   : OBJ_NEW(), $ ;Reference to object passed
                extra           : 0          $ ;to - often object associated
             }
END
;______________________________________________________________________________
; Event Handler wrapper
;______________________________________________________________________________
PRO eis_prefs_gui_EV , Event

;Get event handler structure containing eis_prefs_gui type object
Widget_CONTROL,Event.ID,get_uvalue = eis_prefs_gui_Event
;If a WIDGET_TAB event , just quit
IF (TAG_NAMES(event, /STRUCTURE_NAME) EQ 'WIDGET_TAB') THEN BEGIN
    ;print,'tab event'
    RETURN
ENDIF

;Call eis_prefs_gui's class member procedure "Handler"
eis_prefs_gui_Event.eis_prefs_gui->Handler,Event

END
;______________________________________________________________________________
;
; * THIS is the routine for putting in event handling NOT eis_prefs_gui_Ev above.
;
; Event Handler - handle events.  Derived classes must
; contain their own implementation in order to handle events or else pass in an
; procedure name/function name using the Event_Pro/Event_Func keywords to
; CWidget::Init()
;______________________________________________________________________________
PRO eis_prefs_gui::Handler, Event

WIDGET_CONTROL, Event.ID, Get_UValue = eis_prefs_gui_Event
CASE eis_prefs_gui_Event.Type OF
   "QUIT"             : Self->Control, /Destroy
   "CP_APPLY"         : Self->cp_apply
   "JSIDE"            :
   "SAA_APPLY"        : Self->saa_apply
   "SAA_NO"           :
   "SAA_YES"          :
   "LOGO_EDIT"        : Self->logo_edit
   "LOGO_APPLY"       : Self->logo_apply
   "LOGO_DEF"         : Self->logo_default
   "SOT_OFFSET_APPLY" : Self->sot_offset_apply
   "SOT_OFFSET_X"     : ; Do nothing here -> apply button
   "SOT_OFFSET_Y"     : ; Do nothing here -> apply button
   "OBSERVER"         :
   "CP"               :
   "TOHBAN"           :
   "PP_APPLY"         : Self->pp_apply
   ELSE               : print,eis_prefs_gui_Event.Type
ENDCASE
END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::sot_offset_apply

; Check numbers in text boxes are valid. If not then replace them with
; the original values and abort.
WIDGET_CONTROL , Self.SOTOXTextID , get_value = x_value
WIDGET_CONTROL , Self.SOTOYTextID , get_value = y_value
x_value = x_value[0]
y_value = y_value[0]
; Check these are valid numbers
valid = 1
valid = is_number(x_value[0])
valid = is_number(y_value[0])
IF (valid NE 1) THEN BEGIN
    BEEP
    mText = 'This is NOT a valid number. Aborting'
    complain = DIALOG_MESSAGE( mText       ,                        $
                         DIALOG_PARENT = Self.tlbID,                $
                         /ERROR )

    ; OK, these are invalid numbers. Get the original values and update the
    ; widget_text boxes accordingly
    Self.parentClass->getProperty , sot_offset = sot_offset

    x_value = STRING(format='(I5)',sot_offset[0])
    x_value = STRCOMPRESS(x_value,/REMOVE_ALL)
    y_value = STRING(format='(I5)',sot_offset[1])
    y_value = STRCOMPRESS(y_value,/REMOVE_ALL)

    WIDGET_CONTROL , Self.SOTOXTextID , set_value = x_value
    WIDGET_CONTROL , Self.SOTOYTextID , set_value = y_value

ENDIF

; OK, so both values are valid numbers. Let's save them.
sot_offset = [FLOAT(x_value),FLOAT(y_value)]
Self.parentClass->setProperty , sot_offset = sot_offset


END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::pp_apply

; Update parentClass's cpt_str structure
Self.parentClass->getProperty , cpt_str = cpt_str

;WIDGET_CONTROL , Self.opogPassNumID   , get_value =  opogPassNum
;WIDGET_CONTROL , Self.obstblPassNumID , get_value =  obstblPassNum
; Set planning party values
obs = WIDGET_INFO(Self.observerComboID , /COMBOBOX_GETTEXT)
cp  = WIDGET_INFO(Self.cpComboID       , /COMBOBOX_GETTEXT)
tbn = WIDGET_INFO(Self.tohbahComboID   , /COMBOBOX_GETTEXT)

cpt_str.observer      = obs
cpt_str.planner       = cp
cpt_str.tohban        = tbn
;cpt_str.opogPassNum   = opogPassNum[0]
;cpt_str.obstblPassNum = obstblPassNum[0]
Self.parentClass->setProperty , cpt_str = cpt_str
Self.parentClass->getProperty , eis_mk_plan_ini = eis_mk_plan_ini
eis_mk_plan_ini->update_ini_file

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::logo_default

Self.logo_fileName = concat_dir(GETENV('ancillary') , 'hinode_small.jpg')
WIDGET_CONTROL , Self.logoLabelID , set_value = Self.logo_fileName
Self->logo_draw

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::logo_apply

Self.parentClass->setProperty , logo_fileName = Self.logo_fileName
Self.parentClass->plot_logo

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::logo_draw

; Check JPEG
status = QUERY_JPEG(Self.logo_fileName)
IF (status NE 1) THEN BEGIN
    BEEP
    mText = "This is not a valid JPEG file. Applying default!"
    d = DIALOG_MESSAGE(mText , /ERROR , DIALOG_PARENT = Self.tlbID)
    Self->logo_default
    RETURN
ENDIF

WIDGET_CONTROL , Self.logo_drawID , get_value = drawID
WSET , drawID
READ_JPEG , Self.logo_filename , icon
;icon_resized = CONGRID(icon,3,160,80)
icon_resized = CONGRID(icon,3,140,70)
TVSCL,icon_resized , true = 1

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::logo_edit

;pathName = EXPAND_PATH(GETENV('ancillary'))
pathName = FILE_DIRNAME(Self.logo_fileName)

; Get fileName
fileName = DIALOG_PICKFILE(path              = pathName              ,     $
                           dialog_parent     = Self.tlbID            ,     $
                           filter            = '*.jpg'               ,     $
                           /MUST_EXIST                               ,     $
                           /READ )

; Bail out if no fileName is selected
IF (IS_BLANK(fileName)  EQ 1) THEN RETURN
; Ensure file is really there
IF (FILE_TEST(fileName) NE 1) THEN RETURN

Self.logo_fileName = fileName
WIDGET_CONTROL , Self.logoLabelID , set_value = Self.logo_fileName

Self->logo_draw

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::saa_apply

button_set = WIDGET_INFO(Self.saa_yesButtonID , /BUTTON_SET)
; Get state of NO button
Self.parentClass->setProperty , saa_check = button_set < 1

END
;______________________________________________________________________________
;
;______________________________________________________________________________
PRO eis_prefs_gui::cp_apply

num_days = WIDGET_INFO(Self.jside_textID , /DROPLIST_SELECT) + 3
Self.parentClass->setProperty , num_days = num_days
Self.parentClass->savePlanToDatabase
Self.parentClass->readPlanFromDatabase

END
;______________________________________________________________________________
; Define Data members
;______________________________________________________________________________
PRO eis_prefs_gui__define

    struct   = { eis_prefs_gui                                       ,     $
                   tlbID                : 0L                         ,     $
                   group_leader         : 0L                         ,     $
                   parentClass          : OBJ_NEW()                  ,     $
                   saa_yesButtonID      : 0L                         ,     $
                   logo_drawID          : 0L                         ,     $
                   logoLabelID          : 0L                         ,     $
                   logo_fileName        : ''                         ,     $
                   observerComboID      : 0L                         ,     $
                   cpComboID            : 0L                         ,     $
                   tohbahComboID        : 0L                         ,     $
                   SOTOXTextID          : 0L                         ,     $
                   SOTOYTextID          : 0L                         ,     $
                   jside_textID         : 0L                              $
               }


END