Initial population
This commit is contained in:
779
frmEditWork.vb
Normal file
779
frmEditWork.vb
Normal file
@@ -0,0 +1,779 @@
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class frmEditWork
|
||||
Inherits OrganLit.BaseEditForm
|
||||
|
||||
Private mobjDetailWork As New clsWork
|
||||
Private m_objHymnTuneNamesHash As Hashtable
|
||||
Private m_objComposersHash As Hashtable
|
||||
Private m_objInstrumentationsHash As Hashtable
|
||||
|
||||
#Region " Windows Form Designer generated code "
|
||||
|
||||
Public Sub New()
|
||||
MyBase.New()
|
||||
|
||||
'This call is required by the Windows Form Designer.
|
||||
InitializeComponent()
|
||||
|
||||
'Add any initialization after the InitializeComponent() call
|
||||
|
||||
End Sub
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If disposing Then
|
||||
If Not (components Is Nothing) Then
|
||||
components.Dispose()
|
||||
End If
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
Friend WithEvents lblHymnTuneName As Windows.Forms.Label
|
||||
Friend WithEvents cboHymnTuneName As ComboTypeAhead.ComboTypeAhead
|
||||
Friend WithEvents lblWorkName As Windows.Forms.Label
|
||||
Friend WithEvents txtWorkName As Windows.Forms.TextBox
|
||||
Friend WithEvents lblBook As Windows.Forms.Label
|
||||
Friend WithEvents lblPageNumber As Windows.Forms.Label
|
||||
Friend WithEvents txtPageNumber As Windows.Forms.TextBox
|
||||
Friend WithEvents cboBook As Windows.Forms.ComboBox
|
||||
Friend WithEvents cboComposerName As ComboTypeAhead.ComboTypeAhead
|
||||
Friend WithEvents lblComposerName As Windows.Forms.Label
|
||||
Friend WithEvents cboInstrumentationName As ComboTypeAhead.ComboTypeAhead
|
||||
Friend WithEvents lblInstrumentation As Windows.Forms.Label
|
||||
Friend WithEvents txtOpusInfo As Windows.Forms.TextBox
|
||||
Friend WithEvents lblOpusInfo As Windows.Forms.Label
|
||||
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
|
||||
Me.lblWorkName = New Windows.Forms.Label()
|
||||
Me.txtWorkName = New Windows.Forms.TextBox()
|
||||
Me.lblBook = New Windows.Forms.Label()
|
||||
Me.lblHymnTuneName = New Windows.Forms.Label()
|
||||
Me.cboHymnTuneName = New ComboTypeAhead.ComboTypeAhead()
|
||||
Me.lblPageNumber = New Windows.Forms.Label()
|
||||
Me.txtPageNumber = New Windows.Forms.TextBox()
|
||||
Me.cboBook = New Windows.Forms.ComboBox()
|
||||
Me.cboComposerName = New ComboTypeAhead.ComboTypeAhead()
|
||||
Me.lblComposerName = New Windows.Forms.Label()
|
||||
Me.txtOpusInfo = New Windows.Forms.TextBox()
|
||||
Me.lblOpusInfo = New Windows.Forms.Label()
|
||||
Me.cboInstrumentationName = New ComboTypeAhead.ComboTypeAhead()
|
||||
Me.lblInstrumentation = New Windows.Forms.Label()
|
||||
Me.fraAddEdit.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'fraAddEdit
|
||||
'
|
||||
Me.fraAddEdit.Controls.Add(Me.cboInstrumentationName)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblInstrumentation)
|
||||
Me.fraAddEdit.Controls.Add(Me.txtOpusInfo)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblOpusInfo)
|
||||
Me.fraAddEdit.Controls.Add(Me.cboComposerName)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblComposerName)
|
||||
Me.fraAddEdit.Controls.Add(Me.cboBook)
|
||||
Me.fraAddEdit.Controls.Add(Me.txtPageNumber)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblPageNumber)
|
||||
Me.fraAddEdit.Controls.Add(Me.cboHymnTuneName)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblHymnTuneName)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblBook)
|
||||
Me.fraAddEdit.Controls.Add(Me.txtWorkName)
|
||||
Me.fraAddEdit.Controls.Add(Me.lblWorkName)
|
||||
Me.fraAddEdit.Location = New System.Drawing.Point(12, 381)
|
||||
Me.fraAddEdit.Size = New System.Drawing.Size(1123, 220)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblWorkName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.txtWorkName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblBook, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblHymnTuneName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.cboHymnTuneName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblPageNumber, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.txtPageNumber, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.cboBook, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblComposerName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.cboComposerName, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblOpusInfo, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.txtOpusInfo, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.lblInstrumentation, 0)
|
||||
Me.fraAddEdit.Controls.SetChildIndex(Me.cboInstrumentationName, 0)
|
||||
'
|
||||
'lblWorkName
|
||||
'
|
||||
Me.lblWorkName.Location = New System.Drawing.Point(19, 127)
|
||||
Me.lblWorkName.Name = "lblWorkName"
|
||||
Me.lblWorkName.Size = New System.Drawing.Size(115, 18)
|
||||
Me.lblWorkName.TabIndex = 8
|
||||
Me.lblWorkName.Text = "Work Name"
|
||||
'
|
||||
'txtWorkName
|
||||
'
|
||||
Me.txtWorkName.Location = New System.Drawing.Point(134, 127)
|
||||
Me.txtWorkName.Name = "txtWorkName"
|
||||
Me.txtWorkName.Size = New System.Drawing.Size(701, 22)
|
||||
Me.txtWorkName.TabIndex = 9
|
||||
'
|
||||
'lblBook
|
||||
'
|
||||
Me.lblBook.Location = New System.Drawing.Point(19, 18)
|
||||
Me.lblBook.Name = "lblBook"
|
||||
Me.lblBook.Size = New System.Drawing.Size(96, 19)
|
||||
Me.lblBook.TabIndex = 0
|
||||
Me.lblBook.Text = "Book"
|
||||
'
|
||||
'lblHymnTuneName
|
||||
'
|
||||
Me.lblHymnTuneName.Location = New System.Drawing.Point(19, 182)
|
||||
Me.lblHymnTuneName.Name = "lblHymnTuneName"
|
||||
Me.lblHymnTuneName.Size = New System.Drawing.Size(115, 19)
|
||||
Me.lblHymnTuneName.TabIndex = 12
|
||||
Me.lblHymnTuneName.Text = "Hymn Tune Name"
|
||||
'
|
||||
'cboHymnTuneName
|
||||
'
|
||||
Me.cboHymnTuneName.Location = New System.Drawing.Point(134, 182)
|
||||
Me.cboHymnTuneName.Name = "cboHymnTuneName"
|
||||
Me.cboHymnTuneName.Size = New System.Drawing.Size(346, 24)
|
||||
Me.cboHymnTuneName.Sorted = True
|
||||
Me.cboHymnTuneName.TabIndex = 13
|
||||
'
|
||||
'lblPageNumber
|
||||
'
|
||||
Me.lblPageNumber.Location = New System.Drawing.Point(19, 46)
|
||||
Me.lblPageNumber.Name = "lblPageNumber"
|
||||
Me.lblPageNumber.Size = New System.Drawing.Size(96, 19)
|
||||
Me.lblPageNumber.TabIndex = 2
|
||||
Me.lblPageNumber.Text = "Page Number"
|
||||
'
|
||||
'txtPageNumber
|
||||
'
|
||||
Me.txtPageNumber.Location = New System.Drawing.Point(134, 46)
|
||||
Me.txtPageNumber.Name = "txtPageNumber"
|
||||
Me.txtPageNumber.Size = New System.Drawing.Size(77, 22)
|
||||
Me.txtPageNumber.TabIndex = 3
|
||||
'
|
||||
'cboBook
|
||||
'
|
||||
Me.cboBook.DropDownStyle = Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.cboBook.Location = New System.Drawing.Point(134, 18)
|
||||
Me.cboBook.Name = "cboBook"
|
||||
Me.cboBook.Size = New System.Drawing.Size(509, 24)
|
||||
Me.cboBook.Sorted = True
|
||||
Me.cboBook.TabIndex = 1
|
||||
'
|
||||
'cboComposerName
|
||||
'
|
||||
Me.cboComposerName.Location = New System.Drawing.Point(134, 99)
|
||||
Me.cboComposerName.Name = "cboComposerName"
|
||||
Me.cboComposerName.Size = New System.Drawing.Size(509, 24)
|
||||
Me.cboComposerName.Sorted = True
|
||||
Me.cboComposerName.TabIndex = 7
|
||||
'
|
||||
'lblComposerName
|
||||
'
|
||||
Me.lblComposerName.Location = New System.Drawing.Point(19, 99)
|
||||
Me.lblComposerName.Name = "lblComposerName"
|
||||
Me.lblComposerName.Size = New System.Drawing.Size(115, 19)
|
||||
Me.lblComposerName.TabIndex = 6
|
||||
Me.lblComposerName.Text = "Composer Name"
|
||||
'
|
||||
'txtOpusInfo
|
||||
'
|
||||
Me.txtOpusInfo.Location = New System.Drawing.Point(134, 155)
|
||||
Me.txtOpusInfo.Name = "txtOpusInfo"
|
||||
Me.txtOpusInfo.Size = New System.Drawing.Size(250, 22)
|
||||
Me.txtOpusInfo.TabIndex = 11
|
||||
'
|
||||
'lblOpusInfo
|
||||
'
|
||||
Me.lblOpusInfo.Location = New System.Drawing.Point(19, 155)
|
||||
Me.lblOpusInfo.Name = "lblOpusInfo"
|
||||
Me.lblOpusInfo.Size = New System.Drawing.Size(115, 18)
|
||||
Me.lblOpusInfo.TabIndex = 10
|
||||
Me.lblOpusInfo.Text = "Opus Info"
|
||||
'
|
||||
'cboInstrumentationName
|
||||
'
|
||||
Me.cboInstrumentationName.Location = New System.Drawing.Point(134, 73)
|
||||
Me.cboInstrumentationName.Name = "cboInstrumentationName"
|
||||
Me.cboInstrumentationName.Size = New System.Drawing.Size(509, 24)
|
||||
Me.cboInstrumentationName.Sorted = True
|
||||
Me.cboInstrumentationName.TabIndex = 5
|
||||
'
|
||||
'lblInstrumentation
|
||||
'
|
||||
Me.lblInstrumentation.Location = New System.Drawing.Point(19, 73)
|
||||
Me.lblInstrumentation.Name = "lblInstrumentation"
|
||||
Me.lblInstrumentation.Size = New System.Drawing.Size(115, 18)
|
||||
Me.lblInstrumentation.TabIndex = 4
|
||||
Me.lblInstrumentation.Text = "Instrumentation"
|
||||
'
|
||||
'frmEditWork
|
||||
'
|
||||
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 15)
|
||||
Me.ClientSize = New System.Drawing.Size(1143, 608)
|
||||
Me.MinimumSize = New System.Drawing.Size(1018, 655)
|
||||
Me.Name = "frmEditWork"
|
||||
Me.StartPosition = Windows.Forms.FormStartPosition.Manual
|
||||
Me.Text = "Edit Work"
|
||||
Me.fraAddEdit.ResumeLayout(False)
|
||||
Me.fraAddEdit.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
Protected Overrides Sub LoadExistingItemsList()
|
||||
Dim lobjWork As clsWork
|
||||
Dim lobjWorks As System.Collections.Generic.List(Of clsWork)
|
||||
|
||||
SetUpExistingItemsHeaders()
|
||||
|
||||
lobjWorks = clsWork.GetAllWorks
|
||||
|
||||
Me.ExistingItemsListSuspendLayout()
|
||||
|
||||
For Each lobjWork In lobjWorks
|
||||
Me.ExistingObjectsListItems.Add(ConvertWorkToListViewItem(lobjWork))
|
||||
Next
|
||||
|
||||
Me.ExistingItemsListResumeLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SetUpExistingItemsHeaders()
|
||||
Me.ExistingObjectsListColumns.Add("Composer", 200, HorizontalAlignment.Left)
|
||||
Me.ExistingObjectsListColumns.Add("Work Name", 300, HorizontalAlignment.Left)
|
||||
Me.ExistingObjectsListColumns.Add("Book", 300, HorizontalAlignment.Left)
|
||||
Me.ExistingObjectsListColumns.Add("Page", 100, HorizontalAlignment.Right)
|
||||
Me.ExistingObjectsListColumns.Add("Hymn Tune Name", 200, HorizontalAlignment.Left)
|
||||
Me.ExistingObjectsListColumns.Add("Instrumentation", 200, HorizontalAlignment.Left)
|
||||
|
||||
'Set up sorting rules
|
||||
Dim lobjBaseEditFormColumnSortRules(5) As clsGridColumnSortRule
|
||||
|
||||
'First column, sort by Composer, then Work Name
|
||||
lobjBaseEditFormColumnSortRules(0) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
||||
lobjBaseEditFormColumnSortRules(0).SubColumnSort = New clsGridSubColumnSortRule(1, clsGridSubColumnSortRule.enumSortType.SortAsNumber, Nothing)
|
||||
'Second column, sort by Work Name, then Composer
|
||||
lobjBaseEditFormColumnSortRules(1) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
||||
lobjBaseEditFormColumnSortRules(1).SubColumnSort = New clsGridSubColumnSortRule(0, clsGridSubColumnSortRule.enumSortType.SortAsString, Nothing)
|
||||
'Third column, sort by Book, then Page
|
||||
lobjBaseEditFormColumnSortRules(2) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
||||
lobjBaseEditFormColumnSortRules(2).SubColumnSort = New clsGridSubColumnSortRule(3, clsGridSubColumnSortRule.enumSortType.SortAsNumber, Nothing)
|
||||
'Fourth column, sort by Book, then Page
|
||||
lobjBaseEditFormColumnSortRules(3) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortNone)
|
||||
lobjBaseEditFormColumnSortRules(3).SubColumnSort = New clsGridSubColumnSortRule(2, clsGridSubColumnSortRule.enumSortType.SortAsString, New clsGridSubColumnSortRule(3, clsGridSubColumnSortRule.enumSortType.SortAsNumber, Nothing))
|
||||
'Fifth column, sort by Hymn Tune Name, then Composer
|
||||
lobjBaseEditFormColumnSortRules(4) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
||||
lobjBaseEditFormColumnSortRules(4).SubColumnSort = New clsGridSubColumnSortRule(0, clsGridSubColumnSortRule.enumSortType.SortAsString, Nothing)
|
||||
'Sixth column, sort by Instrumentation, then Book, then Page
|
||||
lobjBaseEditFormColumnSortRules(5) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
||||
lobjBaseEditFormColumnSortRules(5).SubColumnSort = New clsGridSubColumnSortRule(2, clsGridSubColumnSortRule.enumSortType.SortAsString, New clsGridSubColumnSortRule(3, clsGridSubColumnSortRule.enumSortType.SortAsNumber, Nothing))
|
||||
|
||||
MyBaseEditFormColumnSortRules = lobjBaseEditFormColumnSortRules
|
||||
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub InitializeDetailControls()
|
||||
|
||||
'Load data to detail controls here at form load time
|
||||
txtWorkName.MaxLength = MyGlobals.WORK_NAME_SIZE
|
||||
txtOpusInfo.MaxLength = MyGlobals.OPUS_INFO_SIZE
|
||||
cboComposerName.MaxLength = MyGlobals.COMPOSER_NAME_SIZE
|
||||
cboInstrumentationName.MaxLength = MyGlobals.INSTRUMENTATION_NAME_SIZE
|
||||
cboHymnTuneName.MaxLength = MyGlobals.HYMN_TUNE_NAME_SIZE
|
||||
|
||||
txtPageNumber.Text = ""
|
||||
txtWorkName.Text = ""
|
||||
txtOpusInfo.Text = ""
|
||||
|
||||
'Only set up book if first time in
|
||||
If cboBook.Items.Count = 0 Then
|
||||
Dim objBook As clsBook
|
||||
Dim objBooks As System.Collections.Generic.List(Of clsBook)
|
||||
|
||||
Me.cboBook.Items.Clear()
|
||||
|
||||
objBooks = clsBook.GetAllBooks
|
||||
For Each objBook In objBooks
|
||||
Me.cboBook.Items.Add(objBook)
|
||||
Next
|
||||
|
||||
'Select first book if there is one
|
||||
If Me.cboBook.Items.Count > 0 Then
|
||||
Me.cboBook.SelectedIndex = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
If m_objComposersHash Is Nothing Then
|
||||
m_objComposersHash = New Hashtable
|
||||
End If
|
||||
|
||||
If cboComposerName.Items.Count = 0 Then
|
||||
Dim objComposer As clsComposer
|
||||
Dim objComposers As System.Collections.Generic.List(Of clsComposer)
|
||||
|
||||
Me.cboComposerName.Items.Clear()
|
||||
m_objComposersHash = New Hashtable
|
||||
|
||||
objComposers = clsComposer.GetAllComposers
|
||||
For Each objComposer In objComposers
|
||||
AddComposerToForm(objComposer)
|
||||
Next
|
||||
End If
|
||||
|
||||
If m_objInstrumentationsHash Is Nothing Then
|
||||
m_objInstrumentationsHash = New Hashtable
|
||||
End If
|
||||
|
||||
If cboInstrumentationName.Items.Count = 0 Then
|
||||
Dim objInstrumentation As clsInstrumentation
|
||||
Dim objInstrumentations As System.Collections.Generic.List(Of clsInstrumentation)
|
||||
|
||||
Me.cboInstrumentationName.Items.Clear()
|
||||
m_objInstrumentationsHash = New Hashtable
|
||||
|
||||
objInstrumentations = clsInstrumentation.GetAllInstrumentations
|
||||
For Each objInstrumentation In objInstrumentations
|
||||
AddInstrumentationToForm(objInstrumentation)
|
||||
Next
|
||||
End If
|
||||
|
||||
If cboHymnTuneName.Items.Count = 0 Then
|
||||
Dim objHymnTuneName As clsHymnTuneName
|
||||
Dim objHymnTuneNames As System.Collections.Generic.List(Of clsHymnTuneName)
|
||||
|
||||
Me.cboHymnTuneName.Items.Clear()
|
||||
m_objHymnTuneNamesHash = New Hashtable
|
||||
|
||||
objHymnTuneNames = clsHymnTuneName.GetAllHymnTuneNames
|
||||
For Each objHymnTuneName In objHymnTuneNames
|
||||
AddHymnTuneNameToForm(objHymnTuneName)
|
||||
Next
|
||||
|
||||
Me.cboHymnTuneName.Items.Add(MyGlobals.NONE_STRING)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub SetFocusToFirstDetailControlForEdit()
|
||||
cboBook.Focus()
|
||||
End Sub
|
||||
|
||||
Protected Overrides Function DetailControlsHaveDifferentDataThanExistingData(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
|
||||
Dim lobjSavedWork As clsWork
|
||||
Dim lblnReturnValue As Boolean = False
|
||||
|
||||
lobjSavedWork = CType(lstvwExistingItem.Tag, clsWork)
|
||||
|
||||
Dim objComposer As clsComposer
|
||||
Select Case cboComposerName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objComposer = Nothing
|
||||
Case Else
|
||||
objComposer = CType(MyGlobals.GetItemFromHashWithStringKey(cboComposerName.Text.ToUpper.Trim, m_objComposersHash), clsComposer)
|
||||
If objComposer Is Nothing Then
|
||||
objComposer = New clsComposer(cboComposerName.Text.Trim)
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objInstrumentation As clsInstrumentation
|
||||
Select Case cboInstrumentationName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objInstrumentation = Nothing
|
||||
Case Else
|
||||
objInstrumentation = CType(MyGlobals.GetItemFromHashWithStringKey(cboInstrumentationName.Text.ToUpper.Trim, m_objInstrumentationsHash), clsInstrumentation)
|
||||
If objInstrumentation Is Nothing Then
|
||||
objInstrumentation = New clsInstrumentation(cboInstrumentationName.Text.Trim)
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objHymnTuneName As clsHymnTuneName
|
||||
Select Case cboHymnTuneName.Text.ToUpper.Trim
|
||||
Case MyGlobals.NONE_STRING.ToUpper, ""
|
||||
objHymnTuneName = Nothing
|
||||
Case Else
|
||||
objHymnTuneName = CType(MyGlobals.GetItemFromHashWithStringKey(cboHymnTuneName.Text.ToUpper.Trim, m_objHymnTuneNamesHash), clsHymnTuneName)
|
||||
If objHymnTuneName Is Nothing Then
|
||||
objHymnTuneName = New clsHymnTuneName(cboHymnTuneName.Text.Trim)
|
||||
End If
|
||||
End Select
|
||||
|
||||
mobjDetailWork.Book = CType(cboBook.SelectedItem, clsBook)
|
||||
mobjDetailWork.PageNumberAsString = txtPageNumber.Text
|
||||
mobjDetailWork.WorkName = txtWorkName.Text
|
||||
mobjDetailWork.Composer = objComposer
|
||||
mobjDetailWork.Instrumentation = objInstrumentation
|
||||
mobjDetailWork.OpusInfo = txtOpusInfo.Text
|
||||
mobjDetailWork.HymnTuneName = objHymnTuneName
|
||||
|
||||
If lobjSavedWork.StateIsIdentical(mobjDetailWork) Then
|
||||
Return False
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
End Function
|
||||
|
||||
Protected Overrides Function DetailControlsHaveSignificantData() As Boolean
|
||||
If txtWorkName.Text.Trim.Length > 0 _
|
||||
OrElse txtPageNumber.Text.Trim.Length > 0 _
|
||||
OrElse txtOpusInfo.Text.Trim.Length > 0 Then
|
||||
'Pre-load composer from book, if composer hasn't already been set
|
||||
If cboComposerName.Text.Trim.Length = 0 Then
|
||||
Dim objBook As clsBook
|
||||
objBook = CType(cboBook.SelectedItem, clsBook)
|
||||
If objBook.Composer Is Nothing Then
|
||||
'Do nothing - this is collection
|
||||
Else
|
||||
cboComposerName.Text = objBook.Composer.ComposerName
|
||||
End If
|
||||
End If
|
||||
|
||||
'Pre-load instrumentation from book, if instrumentation hasn't already been set
|
||||
If cboInstrumentationName.Text.Trim.Length = 0 Then
|
||||
Dim objBook As clsBook
|
||||
objBook = CType(cboBook.SelectedItem, clsBook)
|
||||
If objBook.Instrumentation Is Nothing Then
|
||||
'Do nothing - this is collection
|
||||
Else
|
||||
cboInstrumentationName.Text = objBook.Instrumentation.InstrumentationName
|
||||
End If
|
||||
End If
|
||||
|
||||
Return True
|
||||
End If
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Protected Overrides Sub EmptyOutDetailControls()
|
||||
InitializeDetailControls()
|
||||
txtWorkName.Text = ""
|
||||
txtPageNumber.Text = ""
|
||||
cboComposerName.Text = ""
|
||||
cboInstrumentationName.Text = ""
|
||||
txtOpusInfo.Text = ""
|
||||
cboHymnTuneName.Text = ""
|
||||
|
||||
mobjDetailWork = New clsWork
|
||||
End Sub
|
||||
|
||||
Protected Overrides Function LoadExistingDataToDetailControls(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
|
||||
Dim lobjWork As clsWork
|
||||
Dim lblnReturnValue As Boolean = False
|
||||
lobjWork = CType(lstvwExistingItem.Tag, clsWork)
|
||||
|
||||
'MessageBox.Show(lobjWork.Book.ToString)
|
||||
'cboBook.SelectedText = lobjWork.Book.ToString
|
||||
cboBook.Text = lobjWork.Book.ToString
|
||||
txtPageNumber.Text = lobjWork.PageNumberAsString
|
||||
txtWorkName.Text = lobjWork.WorkName
|
||||
|
||||
If lobjWork.Composer Is Nothing Then
|
||||
cboComposerName.Text = ""
|
||||
Else
|
||||
cboComposerName.Text = lobjWork.Composer.ComposerName
|
||||
End If
|
||||
|
||||
If lobjWork.Instrumentation Is Nothing Then
|
||||
cboInstrumentationName.Text = ""
|
||||
Else
|
||||
cboInstrumentationName.Text = lobjWork.Instrumentation.InstrumentationName
|
||||
End If
|
||||
|
||||
txtOpusInfo.Text = lobjWork.OpusInfo
|
||||
|
||||
If lobjWork.HymnTuneName Is Nothing Then
|
||||
cboHymnTuneName.Text = MyGlobals.NONE_STRING
|
||||
Else
|
||||
cboHymnTuneName.Text = lobjWork.HymnTuneName.HymnTuneName
|
||||
End If
|
||||
|
||||
mobjDetailWork = CType(lobjWork.Clone(), clsWork)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Protected Overrides Function ConfirmOKToDeleteExistingItem(ByVal lstvwItemToDelete As Windows.Forms.ListViewItem) As Boolean
|
||||
Dim lobjWork As clsWork
|
||||
Dim lstrReferencedBy As String = ""
|
||||
|
||||
lobjWork = CType(lstvwItemToDelete.Tag, clsWork)
|
||||
|
||||
If Not lobjWork.OKToDelete(lstrReferencedBy) Then
|
||||
MessageBox.Show("Can't delete work: " + lobjWork.ToString + ". Currently used by " + lstrReferencedBy + ".", "Unable to delete", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim ldrDialogResult As DialogResult = MessageBox.Show("Are you sure you want to delete work: " + lobjWork.ToString + "?", "Delete confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
|
||||
If ldrDialogResult = Windows.Forms.DialogResult.No Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Protected Overrides Function DeleteExistingItem(ByVal lstvwItemToDelete As Windows.Forms.ListViewItem) As Boolean
|
||||
Dim lobjWork As clsWork
|
||||
lobjWork = CType(lstvwItemToDelete.Tag, clsWork)
|
||||
|
||||
Return lobjWork.Delete()
|
||||
End Function
|
||||
|
||||
Protected Overrides Function SaveNewItem() As Boolean
|
||||
Dim lstrErrorString As String = ""
|
||||
Dim lblnAddedNewComposer As Boolean
|
||||
Dim lblnAddedNewInstrumentation As Boolean
|
||||
Dim lblnAddedNewHymnTuneName As Boolean
|
||||
|
||||
lblnAddedNewComposer = False
|
||||
lblnAddedNewInstrumentation = False
|
||||
lblnAddedNewHymnTuneName = False
|
||||
|
||||
Dim objComposer As clsComposer
|
||||
Select Case cboComposerName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objComposer = Nothing
|
||||
Case Else
|
||||
objComposer = CType(MyGlobals.GetItemFromHashWithStringKey(cboComposerName.Text.ToUpper.Trim, m_objComposersHash), clsComposer)
|
||||
If objComposer Is Nothing Then
|
||||
objComposer = New clsComposer(cboComposerName.Text.Trim)
|
||||
lblnAddedNewComposer = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objInstrumentation As clsInstrumentation
|
||||
Select Case cboInstrumentationName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objInstrumentation = Nothing
|
||||
Case Else
|
||||
objInstrumentation = CType(MyGlobals.GetItemFromHashWithStringKey(cboInstrumentationName.Text.ToUpper.Trim, m_objInstrumentationsHash), clsInstrumentation)
|
||||
If objInstrumentation Is Nothing Then
|
||||
objInstrumentation = New clsInstrumentation(cboInstrumentationName.Text.Trim)
|
||||
lblnAddedNewInstrumentation = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objHymnTuneName As clsHymnTuneName
|
||||
Select Case cboHymnTuneName.Text.ToUpper.Trim
|
||||
Case MyGlobals.NONE_STRING.ToUpper, ""
|
||||
objHymnTuneName = Nothing
|
||||
Case Else
|
||||
objHymnTuneName = CType(MyGlobals.GetItemFromHashWithStringKey(cboHymnTuneName.Text.ToUpper.Trim, m_objHymnTuneNamesHash), clsHymnTuneName)
|
||||
If objHymnTuneName Is Nothing Then
|
||||
objHymnTuneName = New clsHymnTuneName(cboHymnTuneName.Text.Trim)
|
||||
lblnAddedNewHymnTuneName = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
mobjDetailWork.Book = CType(cboBook.SelectedItem, clsBook)
|
||||
mobjDetailWork.PageNumberAsString = txtPageNumber.Text
|
||||
mobjDetailWork.WorkName = txtWorkName.Text
|
||||
mobjDetailWork.Composer = objComposer
|
||||
mobjDetailWork.Instrumentation = objInstrumentation
|
||||
mobjDetailWork.OpusInfo = txtOpusInfo.Text
|
||||
mobjDetailWork.HymnTuneName = objHymnTuneName
|
||||
|
||||
If Not mobjDetailWork.Validate(lstrErrorString) Then
|
||||
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not mobjDetailWork.Save() Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If lblnAddedNewComposer Then
|
||||
AddComposerToForm(objComposer)
|
||||
End If
|
||||
|
||||
If lblnAddedNewInstrumentation Then
|
||||
AddInstrumentationToForm(objInstrumentation)
|
||||
End If
|
||||
|
||||
If lblnAddedNewHymnTuneName Then
|
||||
AddHymnTuneNameToForm(objHymnTuneName)
|
||||
End If
|
||||
|
||||
Me.ExistingObjectsListItems.Add(ConvertWorkToListViewItem(mobjDetailWork))
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Protected Overrides Sub UserRequestedToExit()
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub EditOrAddStarting()
|
||||
CType(Me.ParentForm, frmMain).DisableMenus()
|
||||
End Sub
|
||||
Protected Overrides Sub EditOrAddCompleted()
|
||||
CType(Me.ParentForm, frmMain).EnableMenus()
|
||||
End Sub
|
||||
|
||||
Private Function ConvertWorkToListViewItem(ByVal lobjWork As clsWork) As ListViewItem
|
||||
Dim lobjItem As ListViewItem
|
||||
|
||||
If lobjWork.Composer Is Nothing Then
|
||||
lobjItem = New ListViewItem("")
|
||||
Else
|
||||
lobjItem = New ListViewItem(lobjWork.Composer.ComposerName)
|
||||
End If
|
||||
|
||||
lobjItem.SubItems.Add(lobjWork.WorkName)
|
||||
lobjItem.SubItems.Add(lobjWork.Book.ToString)
|
||||
lobjItem.SubItems.Add(lobjWork.PageNumberAsString)
|
||||
If lobjWork.HymnTuneName Is Nothing Then
|
||||
lobjItem.SubItems.Add(MyGlobals.NONE_STRING)
|
||||
Else
|
||||
lobjItem.SubItems.Add(lobjWork.HymnTuneName.HymnTuneName)
|
||||
End If
|
||||
lobjItem.SubItems.Add(lobjWork.Instrumentation.InstrumentationName)
|
||||
|
||||
'If lobjWork.HymnTuneName Is Nothing Then
|
||||
' lobjItem.SubItems.Add(MyGlobals.NONE_STRING)
|
||||
'Else
|
||||
' lobjItem.SubItems.Add(lobjWork.HymnTuneName.HymnTuneName)
|
||||
'End If
|
||||
|
||||
lobjItem.Tag = lobjWork
|
||||
|
||||
Return lobjItem
|
||||
|
||||
End Function
|
||||
|
||||
Protected Overrides Function SaveNewDataForExistingItem(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
|
||||
Dim lstrErrorString As String = ""
|
||||
Dim lblnAddedNewComposer As Boolean
|
||||
Dim lblnAddedNewInstrumentation As Boolean
|
||||
Dim lblnAddedNewHymnTuneName As Boolean
|
||||
|
||||
lblnAddedNewComposer = False
|
||||
lblnAddedNewInstrumentation = False
|
||||
lblnAddedNewHymnTuneName = False
|
||||
|
||||
Dim objComposer As clsComposer
|
||||
Select Case cboComposerName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objComposer = Nothing
|
||||
Case Else
|
||||
objComposer = CType(MyGlobals.GetItemFromHashWithStringKey(cboComposerName.Text.ToUpper.Trim, m_objComposersHash), clsComposer)
|
||||
If objComposer Is Nothing Then
|
||||
objComposer = New clsComposer(cboComposerName.Text.Trim)
|
||||
lblnAddedNewComposer = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objInstrumentation As clsInstrumentation
|
||||
Select Case cboInstrumentationName.Text.ToUpper.Trim
|
||||
Case ""
|
||||
objInstrumentation = Nothing
|
||||
Case Else
|
||||
objInstrumentation = CType(MyGlobals.GetItemFromHashWithStringKey(cboInstrumentationName.Text.ToUpper.Trim, m_objInstrumentationsHash), clsInstrumentation)
|
||||
If objInstrumentation Is Nothing Then
|
||||
objInstrumentation = New clsInstrumentation(cboInstrumentationName.Text.Trim)
|
||||
lblnAddedNewInstrumentation = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim objHymnTuneName As clsHymnTuneName
|
||||
Select Case cboHymnTuneName.Text.ToUpper.Trim
|
||||
Case MyGlobals.NONE_STRING.ToUpper, ""
|
||||
objHymnTuneName = Nothing
|
||||
Case Else
|
||||
objHymnTuneName = CType(MyGlobals.GetItemFromHashWithStringKey(cboHymnTuneName.Text.ToUpper.Trim, m_objHymnTuneNamesHash), clsHymnTuneName)
|
||||
If objHymnTuneName Is Nothing Then
|
||||
objHymnTuneName = New clsHymnTuneName(cboHymnTuneName.Text.Trim)
|
||||
lblnAddedNewHymnTuneName = True
|
||||
End If
|
||||
End Select
|
||||
|
||||
|
||||
mobjDetailWork.Book = CType(cboBook.SelectedItem, clsBook)
|
||||
mobjDetailWork.PageNumberAsString = txtPageNumber.Text
|
||||
mobjDetailWork.WorkName = txtWorkName.Text
|
||||
mobjDetailWork.Composer = objComposer
|
||||
mobjDetailWork.Instrumentation = objInstrumentation
|
||||
mobjDetailWork.OpusInfo = txtOpusInfo.Text
|
||||
mobjDetailWork.HymnTuneName = objHymnTuneName
|
||||
|
||||
If Not mobjDetailWork.Validate(lstrErrorString) Then
|
||||
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Not mobjDetailWork.Save() Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If lblnAddedNewComposer Then
|
||||
AddComposerToForm(objComposer)
|
||||
End If
|
||||
|
||||
If lblnAddedNewInstrumentation Then
|
||||
AddInstrumentationToForm(objInstrumentation)
|
||||
End If
|
||||
|
||||
If lblnAddedNewHymnTuneName Then
|
||||
AddHymnTuneNameToForm(objHymnTuneName)
|
||||
End If
|
||||
|
||||
Me.ExistingObjectsListItems.Remove(lstvwExistingItem)
|
||||
Me.ExistingObjectsListItems.Add(ConvertWorkToListViewItem(mobjDetailWork))
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub txtWorkName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtWorkName.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub cboComposerName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboComposerName.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub cboInstrumentationName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboInstrumentationName.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub cboHymnTuneName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboHymnTuneName.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub txtPageNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPageNumber.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub txtOpusInfo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtOpusInfo.TextChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub cboBook_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboBook.SelectedIndexChanged
|
||||
MyBase.DetailDataHasChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub txtPageNumber_KeyPress(ByVal sender As System.Object, ByVal e As Windows.Forms.KeyPressEventArgs) Handles txtPageNumber.KeyPress
|
||||
If Not MyGlobals.AllowKeypressInNumericTextBox(e.KeyChar) Then
|
||||
e.Handled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub AddComposerToForm(ByVal objComposer As clsComposer)
|
||||
Me.cboComposerName.Items.Add(objComposer.ComposerName)
|
||||
m_objComposersHash.Add(objComposer.ComposerName.ToUpper, objComposer)
|
||||
End Sub
|
||||
|
||||
Protected Sub AddInstrumentationToForm(ByVal objInstrumentation As clsInstrumentation)
|
||||
Me.cboInstrumentationName.Items.Add(objInstrumentation.InstrumentationName)
|
||||
m_objInstrumentationsHash.Add(objInstrumentation.InstrumentationName.ToUpper, objInstrumentation)
|
||||
End Sub
|
||||
|
||||
Protected Sub AddHymnTuneNameToForm(ByVal objHymnTuneName As clsHymnTuneName)
|
||||
Me.cboHymnTuneName.Items.Add(objHymnTuneName.HymnTuneName)
|
||||
m_objHymnTuneNamesHash.Add(objHymnTuneName.HymnTuneName.ToUpper, objHymnTuneName)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user