Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/KeyboardScherm.vb
===================================================================
diff -u -r1926 -r1928
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/KeyboardScherm.vb (.../KeyboardScherm.vb) (revision 1926)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/KeyboardScherm.vb (.../KeyboardScherm.vb) (revision 1928)
@@ -5,12 +5,14 @@
Implements IObserver
Private _keyboardSubject As IKeyboardSubject
+ Private _subScherm As ISubscherm
Private Sub SubScherm_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
' Kan geen dependecy injection doen via constructor in een WinForm
Using scope = My.MyApplication.Container.BeginLifetimeScope()
_keyboardSubject = scope.Resolve(Of IKeyboardSubject)()
+ _subScherm = scope.Resolve(Of ISubscherm)()
End Using
'Subscriben
@@ -25,14 +27,18 @@
End Sub
Public Sub UpdateObserver(sender As ISubject, Optional o As Object = Nothing) Implements IObserver.UpdateObserver
- If Not TypeOf o Is IKeyboardSubject Then
- Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(IKeyboardSubject)}")
- End If
+ Try
+ If Not TypeOf sender Is IKeyboardSubject Then
+ Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(IKeyboardSubject)}")
+ End If
- Dim keyboardSubject As IKeyboardSubject = sender
- If keyboardSubject.TekstState = KeyBoardSubjectTekstStateEnum.Tekst Then
- 'Tekst tonen
- TextBoxInput.Text = keyboardSubject.Tekst
- End If
+ Dim keyboardSubject As IKeyboardSubject = sender
+ If keyboardSubject.TekstState = KeyBoardSubjectTekstStateEnum.Tekst Then
+ 'Tekst tonen
+ TextBoxInput.Text = keyboardSubject.Tekst
+ End If
+ Catch ex As Exception
+ _subScherm.HandleException(Me, ex)
+ End Try
End Sub
End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.vb (revision 1928)
@@ -0,0 +1,27 @@
+Public Class ExceptionScherm
+ Private ReadOnly _ex As Exception
+
+ Sub New(ex As Exception)
+ ' This call is required by the designer.
+ InitializeComponent()
+
+ ' Add any initialization after the InitializeComponent() call.
+ _ex = ex
+ End Sub
+
+ Private Sub ExceptionScherm_Load(sender As Object, e As EventArgs) Handles Me.Load
+ If IsNothing(_ex.InnerException) Then
+ TextBoxException.Text = _ex.Message
+ Else
+ TextBoxException.Text = _ex.InnerException.Message
+ End If
+ End Sub
+
+ Private Sub LabelFout_Click(sender As Object, e As EventArgs) Handles LabelFout.Click
+ If IsNothing(_ex.InnerException) Then
+ MessageBox.Show(_ex.Message, "Fout in detail...", MessageBoxButtons.OK, MessageBoxIcon.Warning)
+ Else
+ MessageBox.Show(_ex.InnerException.Message, "Fout in detail...", MessageBoxButtons.OK, MessageBoxIcon.Warning)
+ End If
+ End Sub
+End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.resx
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.resx (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.resx (revision 1928)
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtDetailsScherm.vb
===================================================================
diff -u -r1926 -r1928
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtDetailsScherm.vb (.../LaserOpdrachtDetailsScherm.vb) (revision 1926)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtDetailsScherm.vb (.../LaserOpdrachtDetailsScherm.vb) (revision 1928)
@@ -5,12 +5,14 @@
Implements IObserver
Private _controller As ILaseropdrachtController
+ Private _subScherm As ISubscherm
Private Sub SubScherm_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
' Kan geen dependecy injection doen via constructor in een WinForm
Using scope = My.MyApplication.Container.BeginLifetimeScope()
_controller = scope.Resolve(Of ILaseropdrachtController)()
+ _subScherm = scope.Resolve(Of ISubscherm)()
End Using
'Subscriben
@@ -29,28 +31,31 @@
Invoke(updateGuiDelegate, o)
End Sub
- Private Delegate Sub UpdateGuiDelegate(o as Object)
+ Private Delegate Sub UpdateGuiDelegate(o As Object)
Private Sub UpdateGui(o As Object)
- 'Er is een laseropdracht opgezocht
- 'Nothing -> geen resultaten, afbreken
- 'Aanwezig -> informatie tonen
+ Try
+ 'Er is een laseropdracht opgezocht
+ 'Nothing -> geen resultaten, afbreken
+ 'Aanwezig -> informatie tonen
- If IsNothing(o) Then
- ' Niet aanwezig, afbreken
- Return
- End If
+ If IsNothing(o) Then
+ ' Niet aanwezig, afbreken
+ Return
+ End If
- ' Laseropdracht aanwezig, informatie tonen
- If Not TypeOf o Is ILaserOpdracht Then
- Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(ILaserOpdracht)}")
- End If
-
- Dim laserOpdracht As ILaserOpdracht = o
- TextBoxProductID.Text = laserOpdracht.ProductId
- TextBoxKortTekst.Text = laserOpdracht.KortTekst
- TextBoxLogoID.Text = laserOpdracht.LogoId
- TextBoxReferentie.Text = laserOpdracht.Referentie
- TextBoxLadeKleur.Text = laserOpdracht.LadeKleur
- TextBoxBestandsnaam.Text = laserOpdracht.Bestandsnaam
+ ' Laseropdracht aanwezig, informatie tonen
+ If Not TypeOf o Is ILaserOpdracht Then
+ Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(ILaserOpdracht)}")
+ End If
+ Dim laserOpdracht As ILaserOpdracht = o
+ TextBoxProductID.Text = laserOpdracht.ProductId
+ TextBoxKortTekst.Text = laserOpdracht.KortTekst
+ TextBoxLogoID.Text = laserOpdracht.LogoId
+ TextBoxReferentie.Text = laserOpdracht.Referentie
+ TextBoxLadeKleur.Text = laserOpdracht.LadeKleur
+ TextBoxBestandsnaam.Text = laserOpdracht.Bestandsnaam
+ Catch ex As Exception
+ _subScherm.HandleException(Me, ex)
+ End Try
End Sub
End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.resx
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.resx (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.resx (revision 1928)
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ False
+
+
\ No newline at end of file
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj
===================================================================
diff -u -r1927 -r1928
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj (.../Laser Gravering.vbproj) (revision 1927)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj (.../Laser Gravering.vbproj) (revision 1928)
@@ -28,7 +28,7 @@
false
true
1
- 1.4.1.%2a
+ 1.5.0.%2a
false
true
true
@@ -154,6 +154,12 @@
Form
+
+ ExceptionScherm.vb
+
+
+ UserControl
+
KeyboardScherm.vb
@@ -172,6 +178,7 @@
UserControl
+
@@ -211,6 +218,9 @@
FormHoofdscherm.vb
+
+ ExceptionScherm.vb
+
KeyboardScherm.vb
@@ -220,6 +230,9 @@
LaserOpdrachtOpzoekSelecteerStatus.vb
+
+ Subscherm.vb
+
VbMyResourcesResXFileCodeGenerator
Resources.Designer.vb
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/ApplicationEvents.vb
===================================================================
diff -u -r1922 -r1928
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/ApplicationEvents.vb (.../ApplicationEvents.vb) (revision 1922)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/ApplicationEvents.vb (.../ApplicationEvents.vb) (revision 1928)
@@ -28,6 +28,8 @@
' Mappers
builder.RegisterType(Of CacheMapper).As(Of ICacheMapper)()
builder.RegisterType(Of XmlMapper).As(Of IXmlMapper)()
+ 'Forms
+ builder.RegisterType(Of Subscherm).As(Of ISubscherm)()
Container = builder.Build()
End Sub
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtOpzoekSelecteerStatus.vb
===================================================================
diff -u -r1926 -r1928
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtOpzoekSelecteerStatus.vb (.../LaserOpdrachtOpzoekSelecteerStatus.vb) (revision 1926)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/LaserOpdrachtOpzoekSelecteerStatus.vb (.../LaserOpdrachtOpzoekSelecteerStatus.vb) (revision 1928)
@@ -5,18 +5,20 @@
Implements IObserver
Private _controller As ILaseropdrachtController
+ Private _subScherm As ISubscherm
Private Sub SubScherm_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
' Kan geen dependecy injection doen via constructor in een WinForm
Using scope = My.MyApplication.Container.BeginLifetimeScope()
_controller = scope.Resolve(Of ILaseropdrachtController)()
+ _subScherm = scope.Resolve(Of ISubscherm)()
End Using
'Subscriben
_controller.AddObserver(Me)
Catch ex As Exception
- ToonError(ex)
+ ToonError(ex) 'Geen subscherm error handling, want _subScherm kan Nothing zijn
End Try
End Sub
@@ -25,25 +27,30 @@
End Sub
Public Sub UpdateObserver(sender As ISubject, Optional o As Object = Nothing) Implements IObserver.UpdateObserver
+ 'Hier geen exception handling want het kan in een andere thread zitten
Dim updateGuiDelegate As UpdateGuiDelegate = AddressOf UpdateGui
Invoke(updateGuiDelegate, o)
End Sub
Private Delegate Sub UpdateGuiDelegate(o As Object)
Private Sub UpdateGui(o As Object)
- 'Er is een laseropdracht opgezocht
- 'Nothing -> rood tonen
- 'Aanwezig -> controleren of het wel degelijk een laseropdracht is, groen tonen
+ Try
+ 'Er is een laseropdracht opgezocht
+ 'Nothing -> rood tonen
+ 'Aanwezig -> controleren of het wel degelijk een laseropdracht is, groen tonen
- If IsNothing(o) Then
- ' Niet aanwezig, afbreken
- LabelOpzoekFeedbackKleur.BackColor = Color.IndianRed
- Else
- ' Laseropdracht aanwezig
- If Not TypeOf o Is ILaserOpdracht Then
- Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(ILaserOpdracht)}")
+ If IsNothing(o) Then
+ ' Niet aanwezig, afbreken
+ LabelOpzoekFeedbackKleur.BackColor = Color.IndianRed
+ Else
+ ' Laseropdracht aanwezig
+ If Not TypeOf o Is ILaserOpdracht Then
+ Throw New Exception($"{Me.GetType().Name} ondersteunt enkel {NameOf(ILaserOpdracht)}")
+ End If
+ LabelOpzoekFeedbackKleur.BackColor = Color.ForestGreen
End If
- LabelOpzoekFeedbackKleur.BackColor = Color.ForestGreen
- End If
+ Catch ex As Exception
+ _subScherm.HandleException(Me, ex)
+ End Try
End Sub
End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.Designer.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.Designer.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/ExceptionScherm.Designer.vb (revision 1928)
@@ -0,0 +1,89 @@
+ _
+Partial Class ExceptionScherm
+ Inherits System.Windows.Forms.UserControl
+
+ 'UserControl overrides dispose to clean up the component list.
+ _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ 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.
+ _
+ Private Sub InitializeComponent()
+ Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
+ Me.LabelFout = New System.Windows.Forms.Label()
+ Me.TextBoxException = New System.Windows.Forms.TextBox()
+ Me.TableLayoutPanel1.SuspendLayout
+ Me.SuspendLayout
+ '
+ 'TableLayoutPanel1
+ '
+ Me.TableLayoutPanel1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
+ Me.TableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
+ Me.TableLayoutPanel1.ColumnCount = 1
+ Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 349!))
+ Me.TableLayoutPanel1.Controls.Add(Me.LabelFout, 0, 0)
+ Me.TableLayoutPanel1.Controls.Add(Me.TextBoxException, 0, 1)
+ Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
+ Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
+ Me.TableLayoutPanel1.RowCount = 2
+ Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30!))
+ Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100!))
+ Me.TableLayoutPanel1.Size = New System.Drawing.Size(349, 306)
+ Me.TableLayoutPanel1.TabIndex = 1
+ '
+ 'LabelFout
+ '
+ Me.LabelFout.Anchor = System.Windows.Forms.AnchorStyles.None
+ Me.LabelFout.AutoSize = true
+ Me.LabelFout.Font = New System.Drawing.Font("Microsoft Sans Serif", 10!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline),System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+ Me.LabelFout.ForeColor = System.Drawing.Color.DarkRed
+ Me.LabelFout.Location = New System.Drawing.Point(154, 6)
+ Me.LabelFout.Name = "LabelFout"
+ Me.LabelFout.Size = New System.Drawing.Size(40, 17)
+ Me.LabelFout.TabIndex = 2
+ Me.LabelFout.Text = "Fout"
+ '
+ 'TextBoxException
+ '
+ Me.TextBoxException.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
+ Me.TextBoxException.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.TextBoxException.Location = New System.Drawing.Point(3, 33)
+ Me.TextBoxException.Multiline = true
+ Me.TextBoxException.Name = "TextBoxException"
+ Me.TextBoxException.Size = New System.Drawing.Size(343, 270)
+ Me.TextBoxException.TabIndex = 3
+ '
+ 'ExceptionScherm
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.Controls.Add(Me.TableLayoutPanel1)
+ Me.Name = "ExceptionScherm"
+ Me.Size = New System.Drawing.Size(349, 306)
+ Me.TableLayoutPanel1.ResumeLayout(false)
+ Me.TableLayoutPanel1.PerformLayout
+ Me.ResumeLayout(false)
+
+End Sub
+ Friend WithEvents TableLayoutPanel1 As TableLayoutPanel
+ Friend WithEvents LabelFout As Label
+ Friend WithEvents TextBoxException As TextBox
+End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/subschermen/Subscherm.vb (revision 1928)
@@ -0,0 +1,16 @@
+Public Interface ISubscherm
+ Sub HandleException(scherm As Control, ex As Exception)
+End Interface
+
+Public Class Subscherm
+ Implements ISubscherm
+
+ Public Sub HandleException(sender As Control, ex As Exception) Implements ISubscherm.HandleException
+ sender.Controls.Clear()
+ Dim exScherm As New ExceptionScherm(ex) With {
+ .Size = sender.Size
+ }
+ sender.Controls.Add(exScherm)
+ End Sub
+
+End Class