Initial population

This commit is contained in:
Jon
2026-03-07 19:38:21 -06:00
commit 46735bddd3
59 changed files with 12911 additions and 0 deletions

354
frmEditHymnTuneName.vb Normal file
View File

@@ -0,0 +1,354 @@
Imports System.Windows.Forms
Public Class frmEditHymnTuneName
Inherits BaseEditForm
Private mobjDetailHymnTuneName As New clsHymnTuneName
#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 txtHymnTuneName As Windows.Forms.TextBox
Friend WithEvents grpAlternateTuneNames As Windows.Forms.GroupBox
Friend WithEvents lstAlternateTuneNames As Windows.Forms.ListBox
Friend WithEvents btnAddAlternateHymnTuneName As Windows.Forms.Button
Friend WithEvents btnRemoveAlternateHymnTuneName As Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.lblHymnTuneName = New Windows.Forms.Label
Me.txtHymnTuneName = New Windows.Forms.TextBox
Me.grpAlternateTuneNames = New Windows.Forms.GroupBox
Me.btnRemoveAlternateHymnTuneName = New Windows.Forms.Button
Me.btnAddAlternateHymnTuneName = New Windows.Forms.Button
Me.lstAlternateTuneNames = New Windows.Forms.ListBox
Me.fraAddEdit.SuspendLayout()
Me.grpAlternateTuneNames.SuspendLayout()
Me.SuspendLayout()
'
'fraAddEdit
'
Me.fraAddEdit.Controls.Add(Me.grpAlternateTuneNames)
Me.fraAddEdit.Controls.Add(Me.txtHymnTuneName)
Me.fraAddEdit.Controls.Add(Me.lblHymnTuneName)
Me.fraAddEdit.Location = New System.Drawing.Point(8, 300)
Me.fraAddEdit.Size = New System.Drawing.Size(1072, 228)
Me.fraAddEdit.Controls.SetChildIndex(Me.lblHymnTuneName, 0)
Me.fraAddEdit.Controls.SetChildIndex(Me.txtHymnTuneName, 0)
Me.fraAddEdit.Controls.SetChildIndex(Me.grpAlternateTuneNames, 0)
'
'lblHymnTuneName
'
Me.lblHymnTuneName.Location = New System.Drawing.Point(16, 24)
Me.lblHymnTuneName.Name = "lblHymnTuneName"
Me.lblHymnTuneName.Size = New System.Drawing.Size(96, 16)
Me.lblHymnTuneName.TabIndex = 3
Me.lblHymnTuneName.Text = "Hymn Tune Name"
'
'txtHymnTuneName
'
Me.txtHymnTuneName.Location = New System.Drawing.Point(112, 24)
Me.txtHymnTuneName.Name = "txtHymnTuneName"
Me.txtHymnTuneName.Size = New System.Drawing.Size(448, 20)
Me.txtHymnTuneName.TabIndex = 4
'
'grpAlternateTuneNames
'
Me.grpAlternateTuneNames.Controls.Add(Me.btnRemoveAlternateHymnTuneName)
Me.grpAlternateTuneNames.Controls.Add(Me.btnAddAlternateHymnTuneName)
Me.grpAlternateTuneNames.Controls.Add(Me.lstAlternateTuneNames)
Me.grpAlternateTuneNames.Location = New System.Drawing.Point(8, 48)
Me.grpAlternateTuneNames.Name = "grpAlternateTuneNames"
Me.grpAlternateTuneNames.Size = New System.Drawing.Size(552, 168)
Me.grpAlternateTuneNames.TabIndex = 5
Me.grpAlternateTuneNames.TabStop = False
Me.grpAlternateTuneNames.Text = "Alternate Tune Names for this Tune"
'
'btnRemoveAlternateHymnTuneName
'
Me.btnRemoveAlternateHymnTuneName.Location = New System.Drawing.Point(464, 48)
Me.btnRemoveAlternateHymnTuneName.Name = "btnRemoveAlternateHymnTuneName"
Me.btnRemoveAlternateHymnTuneName.Size = New System.Drawing.Size(80, 24)
Me.btnRemoveAlternateHymnTuneName.TabIndex = 2
Me.btnRemoveAlternateHymnTuneName.Text = "Remove"
'
'btnAddAlternateHymnTuneName
'
Me.btnAddAlternateHymnTuneName.Location = New System.Drawing.Point(464, 16)
Me.btnAddAlternateHymnTuneName.Name = "btnAddAlternateHymnTuneName"
Me.btnAddAlternateHymnTuneName.Size = New System.Drawing.Size(80, 24)
Me.btnAddAlternateHymnTuneName.TabIndex = 1
Me.btnAddAlternateHymnTuneName.Text = "Add..."
'
'lstAlternateTuneNames
'
Me.lstAlternateTuneNames.Location = New System.Drawing.Point(8, 16)
Me.lstAlternateTuneNames.Name = "lstAlternateTuneNames"
Me.lstAlternateTuneNames.Size = New System.Drawing.Size(440, 147)
Me.lstAlternateTuneNames.TabIndex = 0
'
'frmEditHymnTuneName
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(1088, 534)
Me.Name = "frmEditHymnTuneName"
Me.StartPosition = Windows.Forms.FormStartPosition.Manual
Me.Text = "Edit Hymn Tune Name"
Me.fraAddEdit.ResumeLayout(False)
Me.fraAddEdit.PerformLayout()
Me.grpAlternateTuneNames.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
Protected Overrides Sub LoadExistingItemsList()
Dim lobjHymnTuneName As clsHymnTuneName
Dim lobjHymnTuneNames As System.Collections.Generic.List(Of clsHymnTuneName)
SetUpExistingItemsHeaders()
lobjHymnTuneNames = clsHymnTuneName.GetAllHymnTuneNames
Me.ExistingItemsListSuspendLayout()
For Each lobjHymnTuneName In lobjHymnTuneNames
Me.ExistingObjectsListItems.Add(ConvertHymnTuneNameToListViewItem(lobjHymnTuneName))
Next
Me.ExistingItemsListResumeLayout()
End Sub
Private Sub SetUpExistingItemsHeaders()
Me.ExistingObjectsListColumns.Add("Hymn Tune Name", 800, HorizontalAlignment.Left)
'Me.ExistingObjectsListColumns.Add("Column2", 0, HorizontalAlignment.Left)
'Me.ExistingObjectsListColumns.Add("Column3", 200, HorizontalAlignment.Left)
'Set up sorting rules
Dim lobjBaseEditFormColumnSortRules(0) As clsGridColumnSortRule
lobjBaseEditFormColumnSortRules(0) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
MyBaseEditFormColumnSortRules = lobjBaseEditFormColumnSortRules
End Sub
Protected Overrides Sub InitializeDetailControls()
'Load data to detail controls here at form load time
txtHymnTuneName.MaxLength = MyGlobals.HYMN_TUNE_NAME_SIZE
End Sub
Protected Overrides Sub SetFocusToFirstDetailControlForEdit()
txtHymnTuneName.Focus()
End Sub
Protected Overrides Function DetailControlsHaveDifferentDataThanExistingData(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
Dim lobjSavedHymnTuneName As clsHymnTuneName
Dim lblnReturnValue As Boolean = False
lobjSavedHymnTuneName = CType(lstvwExistingItem.Tag, clsHymnTuneName)
mobjDetailHymnTuneName.HymnTuneName = txtHymnTuneName.Text
'Alternate tune names should already be in mobjDetailHymnTuneName
If lobjSavedHymnTuneName.StateIsIdentical(mobjDetailHymnTuneName) Then
Return False
Else
Return True
End If
End Function
Protected Overrides Function DetailControlsHaveSignificantData() As Boolean
If txtHymnTuneName.Text.Trim.Length > 0 Then
Return True
End If
Return False
End Function
Protected Overrides Sub EmptyOutDetailControls()
txtHymnTuneName.Text = ""
lstAlternateTuneNames.Items.Clear()
mobjDetailHymnTuneName = New clsHymnTuneName
End Sub
Protected Overrides Function LoadExistingDataToDetailControls(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
Dim lobjHymnTuneName As clsHymnTuneName
Dim lblnReturnValue As Boolean = False
lobjHymnTuneName = CType(lstvwExistingItem.Tag, clsHymnTuneName)
lobjHymnTuneName.Refresh()
txtHymnTuneName.Text = lobjHymnTuneName.HymnTuneName
Dim objDictionaryEntry As DictionaryEntry
Dim objOtherHymnTuneName As clsHymnTuneName
For Each objDictionaryEntry In lobjHymnTuneName.OtherHymnTuneNamesForTune
objOtherHymnTuneName = CType(objDictionaryEntry.Value, clsHymnTuneName)
lstAlternateTuneNames.Items.Add(objOtherHymnTuneName)
Next
mobjDetailHymnTuneName = CType(lobjHymnTuneName.Clone(), clsHymnTuneName)
Return True
End Function
Protected Overrides Function ConfirmOKToDeleteExistingItem(ByVal lstvwItemToDelete As Windows.Forms.ListViewItem) As Boolean
Dim lobjHymnTuneName As clsHymnTuneName
Dim lstrReferencedBy As String = ""
lobjHymnTuneName = CType(lstvwItemToDelete.Tag, clsHymnTuneName)
If Not lobjHymnTuneName.OKToDelete(lstrReferencedBy) Then
MessageBox.Show("Can't delete hymn tune name: " + lobjHymnTuneName.HymnTuneName + ". 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 hymn tune name: " + lobjHymnTuneName.HymnTuneName + "?", "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 lobjHymnTuneName As clsHymnTuneName
lobjHymnTuneName = CType(lstvwItemToDelete.Tag, clsHymnTuneName)
Return lobjHymnTuneName.Delete()
End Function
Protected Overrides Function SaveNewItem() As Boolean
Dim lstrErrorString As String = ""
mobjDetailHymnTuneName.HymnTuneName = txtHymnTuneName.Text
'Alternate tune names should already be in mobjDetailHymnTuneName
If Not mobjDetailHymnTuneName.Validate(lstrErrorString) Then
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
End If
If Not mobjDetailHymnTuneName.Save() Then
Return False
End If
'Refresh to pick up any other alternate hymn tune names that
'may have gotten added by adding an entry
mobjDetailHymnTuneName.Refresh()
Me.ExistingObjectsListItems.Add(ConvertHymnTuneNameToListViewItem(mobjDetailHymnTuneName))
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 ConvertHymnTuneNameToListViewItem(ByVal lobjHymnTuneName As clsHymnTuneName) As ListViewItem
Dim lobjItem As ListViewItem
lobjItem = New ListViewItem(lobjHymnTuneName.HymnTuneName)
'lobjItem.SubItems.Add("Item1Col2")
'lobjItem.SubItems.Add("Item1Col3")
lobjItem.Tag = lobjHymnTuneName
Return lobjItem
End Function
Protected Overrides Function SaveNewDataForExistingItem(ByVal lstvwExistingItem As Windows.Forms.ListViewItem) As Boolean
Dim lstrErrorString As String = ""
mobjDetailHymnTuneName.HymnTuneName = txtHymnTuneName.Text
If Not mobjDetailHymnTuneName.Validate(lstrErrorString) Then
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
End If
If Not mobjDetailHymnTuneName.Save() Then
Return False
End If
mobjDetailHymnTuneName.Refresh()
Me.ExistingObjectsListItems.Remove(lstvwExistingItem)
Me.ExistingObjectsListItems.Add(ConvertHymnTuneNameToListViewItem(mobjDetailHymnTuneName))
Return True
End Function
Private Sub txtHymnTuneName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtHymnTuneName.TextChanged
MyBase.DetailDataHasChanged()
End Sub
Private Sub btnAddAlternateHymnTuneName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddAlternateHymnTuneName.Click
If txtHymnTuneName.Text.Trim.Length = 0 Then
MessageBox.Show("Cannot add alternate hymn tune name when no hymn tune name has been entered")
Exit Sub
End If
Dim objNewAlternateHymnTuneName As clsHymnTuneName
mobjDetailHymnTuneName.HymnTuneName = txtHymnTuneName.Text.Trim
objNewAlternateHymnTuneName = frmAddAlternateHymnTuneName.GetAlternateHymnTuneNameChosen(mobjDetailHymnTuneName)
If objNewAlternateHymnTuneName Is Nothing Then
'User cancelled
Else
lstAlternateTuneNames.Items.Add(objNewAlternateHymnTuneName)
mobjDetailHymnTuneName.AddAlternateHymnTuneName(objNewAlternateHymnTuneName)
MyBase.DetailDataHasChanged()
End If
End Sub
Private Sub btnRemoveAlternateHymnTuneName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveAlternateHymnTuneName.Click
If txtHymnTuneName.Text.Trim.Length = 0 Then
MessageBox.Show("Cannot remove alternate hymn tune name when no hymn tune name has been entered")
Exit Sub
End If
If lstAlternateTuneNames.SelectedItems.Count = 0 Then
MessageBox.Show("Must select an alternate hymn tune name to remove")
Exit Sub
End If
Dim objHymnTuneNameToRemove As clsHymnTuneName
objHymnTuneNameToRemove = CType(lstAlternateTuneNames.SelectedItem, clsHymnTuneName)
mobjDetailHymnTuneName.RemoveAlternateHymnTuneName(objHymnTuneNameToRemove)
lstAlternateTuneNames.Items.RemoveAt(lstAlternateTuneNames.SelectedIndex)
MyBase.DetailDataHasChanged()
End Sub
End Class