287 lines
11 KiB
VB.net
287 lines
11 KiB
VB.net
Imports System.Windows.Forms
|
|
|
|
Public Class frmEditHymnal
|
|
Inherits OrganLit.BaseEditForm
|
|
|
|
Private mobjDetailHymnal As New clsHymnal
|
|
|
|
#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 lblHymnalName As Windows.Forms.Label
|
|
Friend WithEvents txtHymnalName As Windows.Forms.TextBox
|
|
Friend WithEvents Label1 As Windows.Forms.Label
|
|
Friend WithEvents txtHymnalAbbreviation As Windows.Forms.TextBox
|
|
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
|
|
Me.lblHymnalName = New Windows.Forms.Label
|
|
Me.txtHymnalName = New Windows.Forms.TextBox
|
|
Me.Label1 = New Windows.Forms.Label
|
|
Me.txtHymnalAbbreviation = New Windows.Forms.TextBox
|
|
Me.fraAddEdit.SuspendLayout()
|
|
Me.SuspendLayout()
|
|
'
|
|
'fraAddEdit
|
|
'
|
|
Me.fraAddEdit.Controls.Add(Me.txtHymnalAbbreviation)
|
|
Me.fraAddEdit.Controls.Add(Me.Label1)
|
|
Me.fraAddEdit.Controls.Add(Me.txtHymnalName)
|
|
Me.fraAddEdit.Controls.Add(Me.lblHymnalName)
|
|
Me.fraAddEdit.Location = New System.Drawing.Point(10, 481)
|
|
Me.fraAddEdit.Size = New System.Drawing.Size(1064, 111)
|
|
Me.fraAddEdit.Controls.SetChildIndex(Me.lblHymnalName, 0)
|
|
Me.fraAddEdit.Controls.SetChildIndex(Me.txtHymnalName, 0)
|
|
Me.fraAddEdit.Controls.SetChildIndex(Me.Label1, 0)
|
|
Me.fraAddEdit.Controls.SetChildIndex(Me.txtHymnalAbbreviation, 0)
|
|
'
|
|
'lblHymnalName
|
|
'
|
|
Me.lblHymnalName.Location = New System.Drawing.Point(8, 24)
|
|
Me.lblHymnalName.Name = "lblHymnalName"
|
|
Me.lblHymnalName.Size = New System.Drawing.Size(80, 16)
|
|
Me.lblHymnalName.TabIndex = 3
|
|
Me.lblHymnalName.Text = "Hymnal Name"
|
|
'
|
|
'txtHymnalName
|
|
'
|
|
Me.txtHymnalName.Location = New System.Drawing.Point(128, 24)
|
|
Me.txtHymnalName.Name = "txtHymnalName"
|
|
Me.txtHymnalName.Size = New System.Drawing.Size(360, 20)
|
|
Me.txtHymnalName.TabIndex = 4
|
|
'
|
|
'Label1
|
|
'
|
|
Me.Label1.Location = New System.Drawing.Point(8, 56)
|
|
Me.Label1.Name = "Label1"
|
|
Me.Label1.Size = New System.Drawing.Size(112, 16)
|
|
Me.Label1.TabIndex = 5
|
|
Me.Label1.Text = "Hymnal Abbreviation"
|
|
'
|
|
'txtHymnalAbbreviation
|
|
'
|
|
Me.txtHymnalAbbreviation.Location = New System.Drawing.Point(128, 56)
|
|
Me.txtHymnalAbbreviation.Name = "txtHymnalAbbreviation"
|
|
Me.txtHymnalAbbreviation.Size = New System.Drawing.Size(88, 20)
|
|
Me.txtHymnalAbbreviation.TabIndex = 6
|
|
'
|
|
'frmEditHymnal
|
|
'
|
|
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
|
|
Me.ClientSize = New System.Drawing.Size(1080, 598)
|
|
Me.Name = "frmEditHymnal"
|
|
Me.StartPosition = Windows.Forms.FormStartPosition.Manual
|
|
Me.Text = "Edit Hymnal"
|
|
Me.fraAddEdit.ResumeLayout(False)
|
|
Me.fraAddEdit.PerformLayout()
|
|
Me.ResumeLayout(False)
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
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 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 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 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 = 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 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 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
|