232 lines
9.3 KiB
VB.net
232 lines
9.3 KiB
VB.net
Imports System.Windows.Forms
|
|
|
|
Public Class frmEditHymnTuneName
|
|
Private mobjDetailHymnTuneName As New clsHymnTuneName
|
|
|
|
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 System.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 System.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 System.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 = System.Windows.Forms.DialogResult.No Then
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
End Function
|
|
|
|
Protected Overrides Function DeleteExistingItem(ByVal lstvwItemToDelete As System.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 System.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 |