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