Files
OrganLit/frmEditComposer.vb
2026-04-21 16:35:57 -05:00

174 lines
6.4 KiB
VB.net

Imports System.Windows.Forms
Public Class frmEditComposer
Private mobjDetailComposer As New clsComposer
Protected Overrides Sub LoadExistingItemsList()
Dim lobjComposer As clsComposer
Dim lobjComposers As System.Collections.Generic.List(Of clsComposer)
SetUpExistingItemsHeaders()
lobjComposers = clsComposer.GetAllComposers
Me.ExistingItemsListSuspendLayout()
For Each lobjComposer In lobjComposers
Me.ExistingObjectsListItems.Add(ConvertComposerToListViewItem(lobjComposer))
Next
Me.ExistingItemsListResumeLayout()
End Sub
Private Sub SetUpExistingItemsHeaders()
Me.ExistingObjectsListColumns.Add("Composer 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
txtComposerName.MaxLength = MyGlobals.COMPOSER_NAME_SIZE
End Sub
Protected Overrides Sub SetFocusToFirstDetailControlForEdit()
txtComposerName.Focus()
End Sub
Protected Overrides Function DetailControlsHaveDifferentDataThanExistingData(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
Dim lobjSavedComposer As clsComposer
Dim lblnReturnValue As Boolean = False
lobjSavedComposer = CType(lstvwExistingItem.Tag, clsComposer)
mobjDetailComposer.ComposerName = txtComposerName.Text
If lobjSavedComposer.StateIsIdentical(mobjDetailComposer) Then
Return False
Else
Return True
End If
End Function
Protected Overrides Function DetailControlsHaveSignificantData() As Boolean
If txtComposerName.Text.Trim.Length > 0 Then
Return True
End If
Return False
End Function
Protected Overrides Sub EmptyOutDetailControls()
txtComposerName.Text = ""
mobjDetailComposer = New clsComposer
End Sub
Protected Overrides Function LoadExistingDataToDetailControls(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
Dim lobjComposer As clsComposer
Dim lblnReturnValue As Boolean = False
lobjComposer = CType(lstvwExistingItem.Tag, clsComposer)
txtComposerName.Text = lobjComposer.ComposerName
mobjDetailComposer = CType(lobjComposer.Clone(), clsComposer)
Return True
End Function
Protected Overrides Function ConfirmOKToDeleteExistingItem(ByVal lstvwItemToDelete As System.Windows.Forms.ListViewItem) As Boolean
Dim lobjComposer As clsComposer
Dim lstrReferencedBy As String = ""
lobjComposer = CType(lstvwItemToDelete.Tag, clsComposer)
If Not lobjComposer.OKToDelete(lstrReferencedBy) Then
MessageBox.Show("Can't delete composer: " + lobjComposer.ComposerName + ". 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 composer: " + lobjComposer.ComposerName + "?", "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 lobjComposer As clsComposer
lobjComposer = CType(lstvwItemToDelete.Tag, clsComposer)
Return lobjComposer.Delete()
End Function
Protected Overrides Function SaveNewItem() As Boolean
Dim lstrErrorString As String = ""
mobjDetailComposer.ComposerName = txtComposerName.Text
If Not mobjDetailComposer.Validate(lstrErrorString) Then
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
End If
If Not mobjDetailComposer.Save() Then
Return False
End If
Me.ExistingObjectsListItems.Add(ConvertComposerToListViewItem(mobjDetailComposer))
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 ConvertComposerToListViewItem(ByVal lobjComposer As clsComposer) As ListViewItem
Dim lobjItem As ListViewItem
lobjItem = New ListViewItem(lobjComposer.ComposerName)
'lobjItem.SubItems.Add("Item1Col2")
'lobjItem.SubItems.Add("Item1Col3")
lobjItem.Tag = lobjComposer
Return lobjItem
End Function
Protected Overrides Function SaveNewDataForExistingItem(ByVal lstvwExistingItem As System.Windows.Forms.ListViewItem) As Boolean
Dim lstrErrorString As String = ""
mobjDetailComposer.ComposerName = txtComposerName.Text
If Not mobjDetailComposer.Validate(lstrErrorString) Then
MessageBox.Show(lstrErrorString, "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
End If
If Not mobjDetailComposer.Save() Then
Return False
End If
Me.ExistingObjectsListItems.Remove(lstvwExistingItem)
Me.ExistingObjectsListItems.Add(ConvertComposerToListViewItem(mobjDetailComposer))
Return True
End Function
Private Sub txtComposerName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtComposerName.TextChanged
MyBase.DetailDataHasChanged()
End Sub
End Class