Imports DevExpress.XtraBars.Docking
Imports DevExpress.XtraBars.Ribbon
Imports DigitalData.Modules.Logging
Namespace Base
'''
''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms
'''
'''
''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form.
'''
''' Partial Class frmExample
''' Inherits BaseRibbonForm
'''
''' ...
''' End Class
'''
Public Class BaseRibbonForm
Inherits RibbonForm
Private _Logger As Logger
Private _ErrorHandler As BaseErrorHandler
Protected ReadOnly Property Logger As Logger
Get
Return _Logger
End Get
End Property
Public Sub New()
End Sub
Public Sub Init(LogConfig As LogConfig)
' Get the full name of the inheriting form
' so the log messages have the right classname
Dim oClassName = [GetType]().FullName
' My.LogConfig is undefined in the designer
_Logger = LogConfig?.GetLogger(oClassName)
_ErrorHandler = New BaseErrorHandler(LogConfig, _Logger, Me)
' When you add something, be careful if it
' depends on a global var like My.LogConfig
' you might need to check for its existence with ?
End Sub
''' ============== PUBLIC METHODS ==============
Public Sub ShowInfoMessage(Message As String)
_ErrorHandler.ShowInfoMessage(Message)
End Sub
Public Sub ShowErrorMessage(Exception As Exception)
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
_ErrorHandler.ShowErrorMessage(Exception, oCallingClass)
End Sub
Public Sub ShowErrorMessage(ErrorMessage As String)
Dim oCallingClass = LogConfig.GetClassFullName(IncludeMethodNames:=True, Parts:=2)
_ErrorHandler.ShowErrorMessage(New ApplicationException(ErrorMessage), oCallingClass)
End Sub
End Class
End Namespace