Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/exceptions/InvalidConfigException.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/exceptions/InvalidConfigException.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/exceptions/InvalidConfigException.vb (revision 1936)
@@ -0,0 +1,11 @@
+Public Class InvalidConfigException
+ Inherits System.ApplicationException
+
+ Public Sub New()
+ MyBase.New("Ongeldige config(s) aanwezig")
+ End Sub
+
+ Public Sub New(boodschap As String)
+ MyBase.New(boodschap)
+ End Sub
+End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.Designer.vb
===================================================================
diff -u -r1935 -r1936
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.Designer.vb (.../FormHoofdscherm.Designer.vb) (revision 1935)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.Designer.vb (.../FormHoofdscherm.Designer.vb) (revision 1936)
@@ -26,12 +26,12 @@
Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
Me.TestToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.InstellingenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+ Me.OverToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
Me.SluitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
Me.FlowLayoutPanelSchermen = New System.Windows.Forms.FlowLayoutPanel()
Me.FileSystemWatcher1 = New System.IO.FileSystemWatcher()
Me.CheckBoxVisualiseer = New System.Windows.Forms.CheckBox()
- Me.OverToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.MenuStrip1.SuspendLayout
CType(Me.FileSystemWatcher1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SuspendLayout
@@ -40,7 +40,7 @@
'
Me.MenuStrip1.BackColor = System.Drawing.Color.Silver
Me.MenuStrip1.Font = New System.Drawing.Font("Segoe UI", 20!)
- Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TestToolStripMenuItem, Me.ToolStripMenuItem1, Me.OverToolStripMenuItem})
+ Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TestToolStripMenuItem, Me.ToolStripMenuItem1})
Me.MenuStrip1.Location = New System.Drawing.Point(0, 0)
Me.MenuStrip1.Name = "MenuStrip1"
Me.MenuStrip1.Size = New System.Drawing.Size(1684, 45)
@@ -49,7 +49,7 @@
'
'TestToolStripMenuItem
'
- Me.TestToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.InstellingenToolStripMenuItem, Me.SluitToolStripMenuItem})
+ Me.TestToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.InstellingenToolStripMenuItem, Me.OverToolStripMenuItem1, Me.SluitToolStripMenuItem})
Me.TestToolStripMenuItem.Name = "TestToolStripMenuItem"
Me.TestToolStripMenuItem.Size = New System.Drawing.Size(106, 41)
Me.TestToolStripMenuItem.Text = "Opties"
@@ -60,6 +60,12 @@
Me.InstellingenToolStripMenuItem.Size = New System.Drawing.Size(231, 42)
Me.InstellingenToolStripMenuItem.Text = "Instellingen"
'
+ 'OverToolStripMenuItem1
+ '
+ Me.OverToolStripMenuItem1.Name = "OverToolStripMenuItem1"
+ Me.OverToolStripMenuItem1.Size = New System.Drawing.Size(231, 42)
+ Me.OverToolStripMenuItem1.Text = "Over"
+ '
'SluitToolStripMenuItem
'
Me.SluitToolStripMenuItem.Name = "SluitToolStripMenuItem"
@@ -97,12 +103,6 @@
Me.CheckBoxVisualiseer.Text = "Visualiseer"
Me.CheckBoxVisualiseer.UseVisualStyleBackColor = true
'
- 'OverToolStripMenuItem
- '
- Me.OverToolStripMenuItem.Name = "OverToolStripMenuItem"
- Me.OverToolStripMenuItem.Size = New System.Drawing.Size(85, 41)
- Me.OverToolStripMenuItem.Text = "Over"
- '
'FormHoofdscherm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
@@ -130,5 +130,5 @@
Friend WithEvents FlowLayoutPanelSchermen As FlowLayoutPanel
Friend WithEvents CheckBoxVisualiseer As CheckBox
Friend WithEvents ToolStripMenuItem1 As ToolStripMenuItem
- Friend WithEvents OverToolStripMenuItem As ToolStripMenuItem
+ Friend WithEvents OverToolStripMenuItem1 As ToolStripMenuItem
End Class
FishEye: Tag 1936 refers to a dead (removed) revision in file `Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigsTextMapper.vb'.
FishEye: No comparison available. Pass `N' to diff?
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/IConfigsClass.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/IConfigsClass.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/IConfigsClass.vb (revision 1936)
@@ -0,0 +1,8 @@
+Public Interface IConfigsClass
+ Sub InitInstellingen(padNaarHoofdconfigBestand As String)
+ Sub OpslaanConfigs()
+ Property ScriptPad As String
+ Property BestandenMapPad As String
+ Property JobControlExePad As String
+ Property GraveerInstellingenXmlPad As String
+End Interface
\ No newline at end of file
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormConfigsWijzigen.vb
===================================================================
diff -u -r1927 -r1936
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormConfigsWijzigen.vb (.../FormConfigsWijzigen.vb) (revision 1927)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormConfigsWijzigen.vb (.../FormConfigsWijzigen.vb) (revision 1936)
@@ -21,7 +21,7 @@
Catch mbcEx As MissingBaseConfigFileException
'Laat de gebruiker een config bestand kiezen
- if MessageBox.Show("Dit is waarschijnlijk de eerste keer dat u dit programma opstart. Gelieve een config bestand te selecteren.") <> DialogResult.OK Then
+ If MessageBox.Show("Dit is waarschijnlijk de eerste keer dat u dit programma opstart. Gelieve een config bestand te selecteren.") <> DialogResult.OK Then
Application.Exit()
End If
@@ -35,6 +35,10 @@
Application.Exit()
Return
End If
+ Catch invC As InvalidConfigException
+ If MessageBox.Show($"Er is een fout met een of meerdere configuraties: {vbNewLine}{invC.Message}") <> DialogResult.OK Then
+ Application.Exit()
+ End If
Catch ex As Exception
ToonError(ex)
End Try
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/ConfigData.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/ConfigData.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/ConfigData.vb (revision 1936)
@@ -0,0 +1,13 @@
+Public Class ConfigData
+ public Property Scriptpad() As ConfigProperty
+ Public Property BestandenMapPad() As ConfigProperty
+ Public Property JobControlExePad() As ConfigProperty
+ Public Property GraveerInstellingenXmlPad() As ConfigProperty
+End Class
+
+Public Class ConfigProperty
+ public Property Schermnaam() As Object
+ Public Property Waarde() As Object
+ Public Property Beschrijving() As String
+ Public Property SubConfigs() As ICollection(Of ConfigProperty)
+End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsClass.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsClass.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsClass.vb (revision 1936)
@@ -0,0 +1,170 @@
+'Robin De Bock Created:30/07/2018 Changed:24/07/2020
+Imports System.IO
+Imports System.Reflection
+Imports System.Text.RegularExpressions
+
+Public Class ConfigsClass
+ Implements IConfigsClass
+
+ Private ReadOnly _configsTextMapper As IConfigsTextMapper
+ Private ReadOnly _configLookup As Hashtable
+ Private _padNaarHoofdconfigBestand As String
+
+ Public Sub New(configsTextMapper As IConfigsTextMapper)
+ _configsTextMapper = configsTextMapper
+ _configLookup = New Hashtable()
+ End Sub
+
+ Public Sub InitInstellingen(padNaarHoofdconfigBestand As String) Implements IConfigsClass.InitInstellingen
+ 'Geen init nodig als deze al is geweest
+ If _configLookup.Count > 0 Then Return
+
+ 'Controle of hoofdconfig bestand wel bestaat
+ If String.IsNullOrEmpty(padNaarHoofdconfigBestand) OrElse Not File.Exists(padNaarHoofdconfigBestand) Then
+ Throw New MissingBaseConfigFileException()
+ End If
+
+ _padNaarHoofdconfigBestand = padNaarHoofdconfigBestand
+
+ Try
+ LaadConfigs()
+ ControleerConfigs()
+ Catch ex As Exception
+ 'Exceptions door de property reflectie (bij de controle) komen in inner exception terecht
+ If IsNothing(ex.InnerException) Then
+ MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Else
+ MessageBox.Show(ex.InnerException.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ End If
+ End Try
+ End Sub
+
+ Private Sub LaadConfigs()
+ 'Hash vullen met configs
+ For Each lijn In _configsTextMapper.GetAllValues(_padNaarHoofdconfigBestand)
+ Dim result = Regex.Match(lijn, "^(\w+) (.+)$", RegexOptions.IgnoreCase)
+ 'Controle op aantal groups
+ If result.Groups.Count <> 3 Then Throw New Exception($"Ongeldige config: '{lijn}'")
+
+ _configLookup.Add(result.Groups(1).ToString().ToUpper(), result.Groups(2).ToString())
+ Next
+ End Sub
+
+ Private Sub ControleerConfigs()
+ ' Elke property eens oproepen om te controleren of de sleutel aanwezig is
+ 'https://stackoverflow.com/questions/531384/how-to-loop-through-all-the-properties-of-a-class
+ Dim type = Me.GetType()
+ For Each prop As PropertyInfo In type.GetProperties()
+ 'Enkel readable properties controleren
+ If prop.CanRead Then prop.GetValue(Me, Nothing)
+ Next
+ End Sub
+
+ Public Sub OpslaanConfigs() Implements IConfigsClass.OpslaanConfigs
+ Try
+ _configsTextMapper.ConfigsOpslaan(_padNaarHoofdconfigBestand, Me)
+ Catch ex As Exception
+ Throw New Exception($"Kon configs niet opslaan{vbNewLine}{ex}")
+ End Try
+ End Sub
+
+ '''
+ ''' Haal waarde op aan de hand van de identificatie
+ '''
+ ''' Type
+ ''' Sleutel
+ ''' Geconverteerd type
+ Private Function HaalWaardeOp(Of T)(identificatie As String) As T
+ If String.IsNullOrEmpty(identificatie) Then Throw New Exception("De sleutel om een config op te vragen mag niet leeg zijn")
+ identificatie = identificatie.ToUpper() ' Hoofdletter ongevoelig
+
+ 'Opzoeken in hashtable
+ If Not _configLookup.ContainsKey(identificatie) Then Throw New Exception($"De sleutel '{identificatie}' is niet aanwezig")
+ 'Ophalen
+ Dim waarde = _configLookup.Item(identificatie)
+ Try
+ 'Converteren
+ Return ConverteerWaarde(Of T)(waarde)
+ Catch ex As Exception
+ Throw New Exception($"Kon waarde voor sleutel '{identificatie}' niet converteren naar {NameOf(T)}{vbNewLine}{ex.Message}")
+ End Try
+ End Function
+
+ Private Shared Function ConverteerWaarde(Of T)(waarde As Object) As T
+ 'Uitzonderingen voor bepaalde types
+
+ 'Expliciete generieke conversie
+ Return DirectCast(waarde, T)
+ End Function
+
+ Private Sub SlaNieuweWaardeOp(identificatie As String, waarde As Object)
+ If String.IsNullOrEmpty(identificatie) Then Throw New Exception("De sleutel om een config op te vragen mag niet leeg zijn")
+ identificatie = identificatie.ToUpper() ' Hoofdletter ongevoelig
+
+ ' Opzoeken in hashtable
+ If Not _configLookup.ContainsKey(identificatie) Then Throw New Exception($"De sleutel '{identificatie}' is niet aanwezig")
+ ' Overschrijven
+ _configLookup.Item(identificatie) = waarde
+ End Sub
+
+#Region "Configs"
+
+ Private Const ScriptPadSleutel = "SCRIPTPAD"
+ Public Property ScriptPad As String Implements IConfigsClass.ScriptPad
+ Get
+ Return HaalWaardeOp(Of String)(ScriptPadSleutel)
+ End Get
+ Set
+ If Not IsNothing(Value) AndAlso File.Exists(Value) Then
+ SlaNieuweWaardeOp(ScriptPadSleutel, Value)
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{ScriptPadSleutel}'")
+ End If
+ End Set
+ End Property
+
+ Private Const BestandenMapPadSleutel = "BESTANDENMAPPAD"
+ Public Property BestandenMapPad As String Implements IConfigsClass.BestandenMapPad
+ Get
+ Return HaalWaardeOp(Of String)(BestandenMapPadSleutel)
+ End Get
+ Set
+ If Not IsNothing(Value) AndAlso Directory.Exists(Value) Then
+ SlaNieuweWaardeOp(BestandenMapPadSleutel, Value)
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{BestandenMapPadSleutel}'")
+ End If
+ End Set
+ End Property
+
+ Private Const JobControlExePadSleutel = "JOBCONTROLEXEPAD"
+ Public Property JobControlExePad As String Implements IConfigsClass.JobControlExePad
+ Get
+ Return HaalWaardeOp(Of String)(JobControlExePadSleutel)
+ End Get
+ Set
+ If Not IsNothing(Value) AndAlso File.Exists(Value) Then
+ SlaNieuweWaardeOp(JobControlExePadSleutel, Value)
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{JobControlExePadSleutel}'")
+ End If
+ End Set
+ End Property
+
+ Private Const GraveerInstellingenXmlPadSleutel = "GRAVEERINSTELLINGENXMLPAD"
+ Public Property GraveerInstellingenXmlPad As String Implements IConfigsClass.GraveerInstellingenXmlPad
+ Get
+ Return HaalWaardeOp(Of String)(GraveerInstellingenXmlPadSleutel)
+ End Get
+ Set
+ If Not IsNothing(Value) AndAlso File.Exists(Value) Then
+ SlaNieuweWaardeOp(GraveerInstellingenXmlPadSleutel, Value)
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{GraveerInstellingenXmlPadSleutel}'")
+ End If
+ End Set
+ End Property
+
+#End Region
+
+End Class
\ No newline at end of file
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/Configs.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/Configs.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigXml/Configs.vb (revision 1936)
@@ -0,0 +1,146 @@
+Imports System.IO
+Imports System.Reflection
+
+Public Class Configs
+ Implements IConfigsClass
+
+ Private ReadOnly _xmlMapper As XmlMapper
+ Private _configData As ConfigData
+ Private _padNaarHoofdconfigBestand As String
+ Sub New(xmlMapper As XmlMapper)
+ _xmlMapper = xmlMapper
+ End Sub
+
+ Public Sub InitInstellingen(padNaarHoofdconfigBestand As String) Implements IConfigsClass.InitInstellingen
+ 'Geen init nodig als deze al is geweest
+ If Not IsNothing(_configData) Then Return
+
+ 'Controle of hoofdconfig bestand wel bestaat
+ If String.IsNullOrEmpty(padNaarHoofdconfigBestand) OrElse Not File.Exists(padNaarHoofdconfigBestand) Then
+ Throw New MissingBaseConfigFileException()
+ End If
+
+ _padNaarHoofdconfigBestand = padNaarHoofdconfigBestand
+
+ Try
+ LaadConfigs()
+ ControleerConfigs()
+ Catch ex As Exception
+ 'Exceptions door de property reflectie (bij de controle) komen in inner exception terecht
+ If IsNothing(ex.InnerException) Then
+ MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Else
+ MessageBox.Show(ex.InnerException.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ End If
+ End Try
+ End Sub
+
+ Private Sub LaadConfigs()
+ Try
+ Dim fs = New FileStream(_padNaarHoofdconfigBestand, FileMode.Open, FileAccess.Read, FileShare.Read)
+ _configData = _xmlMapper.GetData(Of ConfigData)(fs)
+ Catch ex As Exception
+ Throw New Exception($"Kon configs niet opslaan{vbNewLine}{ex}")
+ End Try
+ End Sub
+
+ Private Sub ControleerConfigs()
+ Dim nietGeconfigureerd As New List(Of String)
+ ' Elke property eens oproepen om te controleren of de sleutel aanwezig is
+ 'Lijst tonen van alle properties die niet geconfigureerd waren
+ 'https://stackoverflow.com/questions/531384/how-to-loop-through-all-the-properties-of-a-class
+ Dim type = _configData.GetType()
+ For Each prop As PropertyInfo In type.GetProperties()
+ 'Enkel readable properties controleren
+ If prop.CanRead Then
+ If IsNothing(prop.GetValue(_configData, Nothing)) Then
+ 'Lege property, toevoegen aan lijst
+ nietGeconfigureerd.Add(prop.Name)
+ End If
+ End If
+ Next
+
+ If nietGeconfigureerd.Count > 0 Then
+ Throw New InvalidConfigException($"{String.Join(vbNewLine, nietGeconfigureerd)}")
+ End If
+ End Sub
+
+ Public Sub OpslaanConfigs() Implements IConfigsClass.OpslaanConfigs
+ Try
+ 'Controleert lege velden nog eens
+ ControleerConfigs()
+
+ Dim fs = New FileStream(_padNaarHoofdconfigBestand, FileMode.OpenOrCreate)
+ _xmlMapper.WriteData(fs, _configData)
+ Catch ex As Exception
+ Throw New Exception($"Kon configs niet opslaan{vbNewLine}{ex}")
+ End Try
+ End Sub
+
+ Private Shared Function ConverteerWaarde(Of T)(configp As ConfigProperty) As T
+ Try
+ 'Uitzonderingen voor bepaalde types
+
+ 'Expliciete generieke conversie
+ Return DirectCast(configp.Waarde, T)
+ Catch ex As Exception
+ Throw New InvalidConfigException($"Ongeldig type van {configp.Schermnaam}: waarde '{configp.Waarde}' kan niet geconverteerd worden naar {NameOf(T)}.")
+ End Try
+ End Function
+
+ Public Property ScriptPad As String Implements IConfigsClass.ScriptPad
+ Get
+ Return ConverteerWaarde(Of String)(_configData.Scriptpad)
+ End Get
+ Set
+ ConfigUtil.StelNieuwFilePadIn(Value, _configData.Scriptpad)
+ End Set
+ End Property
+
+ Public Property BestandenMapPad As String Implements IConfigsClass.BestandenMapPad
+ Get
+ Return ConverteerWaarde(Of String)(_configData.BestandenMapPad.Waarde)
+ End Get
+ Set
+ ConfigUtil.StelNieuwFolderPadIn(Value, _configData.BestandenMapPad)
+ End Set
+ End Property
+
+ Public Property JobControlExePad As String Implements IConfigsClass.JobControlExePad
+ Get
+ Return ConverteerWaarde(Of String)(_configData.JobControlExePad.Waarde)
+ End Get
+ Set
+ ConfigUtil.StelNieuwFilePadIn(Value, _configData.JobControlExePad)
+ End Set
+ End Property
+
+ Public Property GraveerInstellingenXmlPad As String Implements IConfigsClass.GraveerInstellingenXmlPad
+ Get
+ Return ConverteerWaarde(Of String)(_configData.GraveerInstellingenXmlPad.Waarde)
+ End Get
+ Set
+ ConfigUtil.StelNieuwFilePadIn(Value, _configData.JobControlExePad)
+ End Set
+ End Property
+
+ Private Class ConfigUtil
+ Public Shared Sub StelNieuwFilePadIn(value As String, ByRef configP As ConfigProperty)
+ If Not IsNothing(value) AndAlso File.Exists(value) Then
+ configP.Waarde = value
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{configP.Schermnaam}'")
+ End If
+ End Sub
+
+ Public Shared Sub StelNieuwFolderPadIn(value As String, ByRef configP As ConfigProperty)
+ If Not IsNothing(value) AndAlso Directory.Exists(value) Then
+ configP.Waarde = value
+ Else
+ Throw New Exception($"Ongeldig nieuw pad voor '{configP.Schermnaam}'")
+ End If
+ End Sub
+ End Class
+
+End Class
+
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj
===================================================================
diff -u -r1935 -r1936
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj (.../Laser Gravering.vbproj) (revision 1935)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj (.../Laser Gravering.vbproj) (revision 1936)
@@ -141,11 +141,15 @@
-
-
+
+
+
+
+
+
AboutBox.vb
@@ -188,6 +192,7 @@
+
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Settings.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Settings.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Settings.vb (revision 1936)
@@ -0,0 +1,11 @@
+
+Namespace My
+
+ 'This class allows you to handle specific events on the settings class:
+ ' The SettingChanging event is raised before a setting's value is changed.
+ ' The PropertyChanged event is raised after a setting's value is changed.
+ ' The SettingsLoaded event is raised after the setting values are loaded.
+ ' The SettingsSaving event is raised before the setting values are saved.
+ Partial Friend NotInheritable Class MySettings
+ End Class
+End Namespace
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsTextMapper.vb
===================================================================
diff -u
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsTextMapper.vb (revision 0)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigText/ConfigsTextMapper.vb (revision 1936)
@@ -0,0 +1,57 @@
+'Robin De Bock Created:27/07/2018 Changed:31/08/2020
+Imports System.IO
+
+Public Interface IConfigsTextMapper
+ Function GetAllValues(path As String) As List(Of String)
+ Sub ConfigsOpslaan(path As String, configs As IConfigsClass)
+End Interface
+
+Class ConfigsTextMapper
+ Implements IConfigsTextMapper
+ Public Function GetAllValues(path As String) As List(Of String) Implements IConfigsTextMapper.GetAllValues
+ Try
+ If System.IO.File.Exists(path) Then 'Bestaat bestand?
+ Dim fileReader As String = My.Computer.FileSystem.ReadAllText(path)
+ fileReader = fileReader.Trim
+ Dim lijnen As String() = fileReader.Split(New String() {Environment.NewLine}, StringSplitOptions.None)
+ 'Alleen bruikbare info uit bestand halen
+ Return lijnen.Where(Function(lijn) Not (lijn = String.Empty Or lijn.StartsWith("%"))).ToList()
+ Else
+ 'Bestand bestaat niet
+ Throw New Exception($"'{path}'{vbNewLine} bestaat niet.")
+ End If
+ Catch ex As ReadOnlyException
+ Throw New Exception($"'{path}'{vbNewLine}bestand is readonly")
+ Catch ex As PathTooLongException
+ Throw New Exception($"'{path}'{vbNewLine}pad is te lang")
+ Catch ex As IOException
+ Throw New Exception($"'{path}'{vbNewLine}is niet bereikbaar")
+ Catch ex As Exception
+ Throw New Exception($"'{path}'{vbNewLine}bestand kon niet worden gelezen {vbNewLine}{ex.Message}")
+ End Try
+ End Function
+
+ Public Sub ConfigsOpslaan(path As String, configs As IConfigsClass) Implements IConfigsTextMapper.ConfigsOpslaan
+ Dim file As System.IO.StreamWriter
+ System.IO.File.WriteAllText(path, "") 'Leegmaken
+ file = My.Computer.FileSystem.OpenTextFileWriter(path, True)
+ 'Info instellen
+ file.WriteLine("%CONFIGURATIEBESTAND Gebruik % voor commentaar (lege lijnen worden genegeerd)")
+ file.WriteLine()
+ file.WriteLine("%SCRIPTPAD CONFIG, pad naar het script dat zal worden aangeroepen")
+ file.WriteLine($"SCRIPTPAD {configs.ScriptPad}")
+ file.WriteLine()
+ file.WriteLine("%BESTANDENMAPPAD, pad naar de map waar alle bestanden staan")
+ file.WriteLine($"BESTANDENMAPPAD {configs.BestandenMapPad}")
+ file.WriteLine()
+ file.WriteLine("%JOBCONTROLEXEPAD, pad naar de exe van JobControl")
+ file.WriteLine($"JOBCONTROLEXEPAD {configs.JobControlExePad}")
+ file.WriteLine()
+ file.WriteLine("%GRAVEERINSTELLINGENXMLPAD, pad naar de xml met graveer instellingen")
+ file.WriteLine($"GRAVEERINSTELLINGENXMLPAD {configs.GraveerInstellingenXmlPad}")
+ file.WriteLine()
+
+ file.Close()
+ End Sub
+
+End Class
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.vb
===================================================================
diff -u -r1935 -r1936
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.vb (.../FormHoofdscherm.vb) (revision 1935)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Formulieren/FormHoofdscherm.vb (.../FormHoofdscherm.vb) (revision 1936)
@@ -31,8 +31,9 @@
_keyboardSubject.AddObserver(Me)
- Catch mbcEx As MissingBaseConfigFileException
- 'Laat de gebruiker een config bestand kiezen
+ Catch ex As Exception When TypeOf ex Is MissingBaseConfigFileException OrElse _
+ TypeOf ex Is InvalidConfigException
+ 'Ander scherm handelt config fouten af
FormConfigsWijzigen.ShowDialog()
Return
Catch ex As Exception
@@ -123,7 +124,7 @@
Application.Exit()
End Sub
- Private Sub OverToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OverToolStripMenuItem.Click
+ Private Sub OverToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles OverToolStripMenuItem1.Click
AboutBox.ShowDialog()
End Sub
FishEye: Tag 1936 refers to a dead (removed) revision in file `Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Configs/ConfigsClass.vb'.
FishEye: No comparison available. Pass `N' to diff?
Index: Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj.DotSettings
===================================================================
diff -u -r1924 -r1936
--- Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj.DotSettings (.../Laser Gravering.vbproj.DotSettings) (revision 1924)
+++ Laser Gravering/nieuw/Laser Gravering_nieuw/Laser Gravering/Laser Gravering.vbproj.DotSettings (.../Laser Gravering.vbproj.DotSettings) (revision 1936)
@@ -1,5 +1,7 @@
True
+ True
+ True
True
True
True