150 lines
5.6 KiB
VB.net
150 lines
5.6 KiB
VB.net
Imports DevExpress.Xpf.Editors.Helpers
|
|
Imports DevExpress.Xpf.Editors.Validation
|
|
Imports DevExpress.Xpf.Core
|
|
Imports DevExpress.Xpf.Docking
|
|
|
|
Public Class ErrorValidacion
|
|
Public id As String
|
|
Public Objeto As Object
|
|
Public ErrorContent As Object
|
|
Public Excepcion As Exception
|
|
Public Tipo As DevExpress.XtraEditors.DXErrorProvider.ErrorType
|
|
Public Sub New(id As String, Objeto As Object, ErrorContent As Object, excepcion As Exception, tipo As DevExpress.XtraEditors.DXErrorProvider.ErrorType)
|
|
Me.id = id
|
|
Me.Objeto = Objeto
|
|
Me.ErrorContent = ErrorContent
|
|
Me.Excepcion = excepcion
|
|
Me.Tipo = tipo
|
|
End Sub
|
|
|
|
'Public Sub New(Objeto As Object, ErrorContent As Object, excepcion As Exception, tipo As DevExpress.XtraEditors.DXErrorProvider.ErrorType)
|
|
' Me.id = Objeto.name
|
|
' Me.Objeto = Objeto
|
|
' Me.ErrorContent = ErrorContent
|
|
' Me.Excepcion = excepcion
|
|
' Me.Tipo = tipo
|
|
'End Sub
|
|
End Class
|
|
Public Class ErroresValidacion
|
|
Public Errores As New List(Of ErrorValidacion)
|
|
' Private ApCabLin As ApCabLin
|
|
Private PanelErrores As LayoutPanel
|
|
Public ReadOnly Property Count As Integer
|
|
Get
|
|
Return Errores.Count
|
|
End Get
|
|
End Property
|
|
'Public Sub New(apcablin As ApCabLin)
|
|
' Me.ApCabLin = apcablin
|
|
'End Sub
|
|
Public Sub New(PanelErrores As LayoutPanel)
|
|
Me.PanelErrores = PanelErrores
|
|
End Sub
|
|
|
|
|
|
Public Sub AgregaError(ErrorValidacion As ErrorValidacion, e As DevExpress.Xpf.Editors.ValidationEventArgs)
|
|
Try
|
|
Dim ev = (From er In Errores Select er Where er.id = ErrorValidacion.id)
|
|
If ev.Count = 0 Then
|
|
Errores.Add(ErrorValidacion)
|
|
Else
|
|
ev.First.Objeto = ErrorValidacion.Objeto
|
|
ev.First.ErrorContent = ErrorValidacion.ErrorContent
|
|
ev.First.Excepcion = ErrorValidacion.Excepcion
|
|
ev.First.Tipo = ErrorValidacion.Tipo
|
|
End If
|
|
MuestraErrores()
|
|
If (e Is Nothing OrElse e.IsValid) Then
|
|
If ErrorValidacion.Objeto IsNot Nothing Then BaseEditHelper.SetValidationError(ErrorValidacion.Objeto, New BaseValidationError(ErrorValidacion.ErrorContent, ErrorValidacion.Excepcion, ErrorValidacion.Tipo))
|
|
Else
|
|
If Not e.IsValid Then
|
|
e.SetError(ErrorValidacion.ErrorContent, ErrorValidacion.Tipo)
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
Public Sub EliminaError(id As String)
|
|
Try
|
|
Dim ev = (From er In Errores Select er Where er.id = id)
|
|
If ev.Count > 0 Then
|
|
BaseEditHelper.SetValidationError(ev.First.Objeto, Nothing)
|
|
Errores.Remove(ev.First)
|
|
If Errores.Count = 0 AndAlso PanelErrores.Visibility <> Visibility.Hidden Then
|
|
PanelErrores.GetDockLayoutManager.DockController.Hide(PanelErrores)
|
|
PanelErrores.Visibility = Visibility.Hidden
|
|
Else
|
|
RellenaErrores()
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Public Sub LimpiarErrores(Patron As String)
|
|
Try
|
|
Dim i As Integer
|
|
Dim ev As ErrorValidacion
|
|
For i = Errores.Count - 1 To 0 Step -1
|
|
ev = Errores(i)
|
|
If Errores(i).id.ToLower.StartsWith(Patron.ToLower) Then
|
|
If Not ev.Objeto Is Nothing Then
|
|
BaseEditHelper.SetValidationError(ev.Objeto, Nothing)
|
|
End If
|
|
Errores.Remove(ev)
|
|
End If
|
|
Next
|
|
If Errores.Count = 0 AndAlso PanelErrores.Visibility <> Visibility.Hidden Then
|
|
PanelErrores.GetDockLayoutManager.DockController.Hide(PanelErrores)
|
|
PanelErrores.Visibility = Visibility.Hidden
|
|
End If
|
|
Catch ex As Exception
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
|
|
Friend Sub LimpiarErrores(Optional SoloCritical As Boolean = True)
|
|
Try
|
|
Dim i As Integer
|
|
Dim ev As ErrorValidacion
|
|
|
|
For i = Errores.Count - 1 To 0 Step -1
|
|
If Not SoloCritical OrElse Errores(i).Tipo = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical Then
|
|
ev = Errores(i)
|
|
If Not ev.Objeto Is Nothing Then
|
|
BaseEditHelper.SetValidationError(ev.Objeto, Nothing)
|
|
End If
|
|
Errores.Remove(ev)
|
|
End If
|
|
Next
|
|
If PanelErrores.Visibility <> Visibility.Hidden Then
|
|
PanelErrores.GetDockLayoutManager.DockController.Hide(PanelErrores)
|
|
PanelErrores.Visibility = Visibility.Hidden
|
|
End If
|
|
Catch ex As Exception
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
Sub MuestraErrores()
|
|
Try
|
|
RellenaErrores()
|
|
Dim dm = PanelErrores.GetDockLayoutManager
|
|
dm.DockController.Dock(PanelErrores)
|
|
PanelErrores.Visibility = Visibility.Visible
|
|
Catch ex As Exception
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
Sub RellenaErrores()
|
|
Dim ecvs As New CollectionViewSource
|
|
Dim le = (From er In Errores Select er.ErrorContent).ToList
|
|
PanelErrores.DataContext = le
|
|
End Sub
|
|
End Class
|
|
|