187 lines
7.0 KiB
VB.net
187 lines
7.0 KiB
VB.net
Imports System.Windows.Forms
|
|
|
|
Public Class frmEditHymnal
|
|
Private mobjDetailHymnal As New clsHymnal
|
|
|
|
Protected Overrides Sub LoadExistingItemsList()
|
|
Dim lobjHymnal As clsHymnal
|
|
Dim lcolHymnals As System.Collections.Generic.List(Of clsHymnal)
|
|
|
|
SetUpExistingItemsHeaders()
|
|
|
|
lcolHymnals = clsHymnal.GetAllHymnals
|
|
|
|
Me.ExistingItemsListSuspendLayout()
|
|
|
|
For Each lobjHymnal In lcolHymnals
|
|
Me.ExistingObjectsListItems.Add(ConvertHymnalToListViewItem(lobjHymnal))
|
|
Next
|
|
|
|
Me.ExistingItemsListResumeLayout()
|
|
|
|
End Sub
|
|
|
|
Private Sub SetUpExistingItemsHeaders()
|
|
Me.ExistingObjectsListColumns.Add("Hymnal Name", 400, HorizontalAlignment.Left)
|
|
Me.ExistingObjectsListColumns.Add("Hymnal Abbreviation", 150, HorizontalAlignment.Left)
|
|
'Me.ExistingObjectsListColumns.Add("Column3", 200, HorizontalAlignment.Left)
|
|
|
|
'Set up sorting rules
|
|
Dim lobjBaseEditFormColumnSortRules(1) As clsGridColumnSortRule
|
|
lobjBaseEditFormColumnSortRules(0) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
|
lobjBaseEditFormColumnSortRules(1) = New clsGridColumnSortRule(clsGridColumnSortRule.enumSortType.SortAsString)
|
|
MyBaseEditFormColumnSortRules = lobjBaseEditFormColumnSortRules
|
|
|
|
End Sub
|
|
|
|
Protected Overrides Sub InitializeDetailControls()
|
|
'Load data to detail controls here at form load time
|
|
txtHymnalName.MaxLength = MyGlobals.HYMNAL_NAME_SIZE
|
|
txtHymnalAbbreviation.MaxLength = MyGlobals.HYMNAL_ABBREVIATION_SIZE
|
|
End Sub
|
|
|
|
Protected Overrides Sub SetFocusToFirstDetailControlForEdit()
|
|
txtHymnalName.Focus()
|
|
End Sub
|
|
|
|
Protected Overrides Function DetailControlsHaveDifferentDataThanExistingData(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
|
|
Dim lobjSavedHymnal As clsHymnal
|
|
|
|
lobjSavedHymnal = CType(lstvwExistingItem.Tag, clsHymnal)
|
|
|
|
mobjDetailHymnal.HymnalName = txtHymnalName.Text
|
|
mobjDetailHymnal.HymnalAbbreviation = txtHymnalAbbreviation.Text
|
|
|
|
If lobjSavedHymnal.StateIsIdentical(mobjDetailHymnal) Then
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
Protected Overrides Function DetailControlsHaveSignificantData() As Boolean
|
|
If txtHymnalName.Text.Trim.Length > 0 Then
|
|
Return True
|
|
End If
|
|
If txtHymnalAbbreviation.Text.Trim.Length > 0 Then
|
|
Return True
|
|
End If
|
|
|
|
Return False
|
|
End Function
|
|
|
|
Protected Overrides Sub EmptyOutDetailControls()
|
|
txtHymnalName.Text = ""
|
|
txtHymnalAbbreviation.Text = ""
|
|
mobjDetailHymnal = New clsHymnal
|
|
End Sub
|
|
|
|
Protected Overrides Function LoadExistingDataToDetailControls(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
|
|
Dim lobjHymnal As clsHymnal
|
|
Dim lblnReturnValue As Boolean = False
|
|
lobjHymnal = CType(lstvwExistingItem.Tag, clsHymnal)
|
|
txtHymnalName.Text = lobjHymnal.HymnalName
|
|
|
|
mobjDetailHymnal = CType(lobjHymnal.Clone(), clsHymnal)
|
|
Return True
|
|
End Function
|
|
|
|
Protected Overrides Function ConfirmOKToDeleteExistingItem(ByVal lstvwItemToDelete As System.Windows.Forms.ListViewItem) As Boolean
|
|
Dim lobjHymnal As clsHymnal
|
|
Dim lstrReferencedBy As String = ""
|
|
|
|
lobjHymnal = CType(lstvwItemToDelete.Tag, clsHymnal)
|
|
|
|
If Not lobjHymnal.OKToDelete(lstrReferencedBy) Then
|
|
MessageBox.Show("Can't delete hymnal: " + lobjHymnal.HymnalName + ". 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 hymnal: " + lobjHymnal.HymnalName + "?", "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 lobjHymnal As clsHymnal
|
|
lobjHymnal = CType(lstvwItemToDelete.Tag, clsHymnal)
|
|
|
|
Return lobjHymnal.Delete()
|
|
End Function
|
|
|
|
Protected Overrides Function SaveNewItem() As Boolean
|
|
Dim lstrErrorString As String = ""
|
|
|
|
mobjDetailHymnal.HymnalName = txtHymnalName.Text
|
|
mobjDetailHymnal.HymnalAbbreviation = txtHymnalAbbreviation.Text
|
|
|
|
If Not mobjDetailHymnal.Validate(lstrErrorString) Then
|
|
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
|
Return False
|
|
End If
|
|
|
|
If Not mobjDetailHymnal.Save() Then
|
|
Return False
|
|
End If
|
|
|
|
Me.ExistingObjectsListItems.Add(ConvertHymnalToListViewItem(mobjDetailHymnal))
|
|
|
|
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 ConvertHymnalToListViewItem(ByVal lobjHymnal As clsHymnal) As ListViewItem
|
|
Dim lobjItem As ListViewItem
|
|
lobjItem = New ListViewItem(lobjHymnal.HymnalName)
|
|
lobjItem.SubItems.Add(lobjHymnal.HymnalAbbreviation)
|
|
'lobjItem.SubItems.Add("Item1Col3")
|
|
lobjItem.Tag = lobjHymnal
|
|
|
|
Return lobjItem
|
|
|
|
End Function
|
|
|
|
Protected Overrides Function SaveNewDataForExistingItem(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
|
|
Dim lstrErrorString As String = ""
|
|
|
|
mobjDetailHymnal.HymnalName = txtHymnalName.Text
|
|
mobjDetailHymnal.HymnalAbbreviation = txtHymnalAbbreviation.Text
|
|
|
|
If Not mobjDetailHymnal.Validate(lstrErrorString) Then
|
|
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
|
Return False
|
|
End If
|
|
|
|
If Not mobjDetailHymnal.Save() Then
|
|
Return False
|
|
End If
|
|
|
|
Me.ExistingObjectsListItems.Remove(lstvwExistingItem)
|
|
Me.ExistingObjectsListItems.Add(ConvertHymnalToListViewItem(mobjDetailHymnal))
|
|
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub txtHymnalName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtHymnalName.TextChanged
|
|
MyBase.DetailDataHasChanged()
|
|
End Sub
|
|
|
|
Private Sub txtHymnalAbbreviation_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtHymnalAbbreviation.TextChanged
|
|
MyBase.DetailDataHasChanged()
|
|
End Sub
|
|
|
|
End Class |