diff --git a/Assembly/Assembly.vb b/Assembly/Assembly.vb
index 7aabfd9..363d3bd 100644
--- a/Assembly/Assembly.vb
+++ b/Assembly/Assembly.vb
@@ -7,6 +7,7 @@ Imports System.Text.RegularExpressions
Public Class Assembly
Implements INotifyPropertyChanged
+ Friend Shared BuiltReffCompo As Boolean = True
Private m_OneDoorProperty As Boolean
Public Property OneDoorProperty As Boolean
Get
@@ -669,6 +670,7 @@ Public Class Assembly
Private FileContent() As String
Shared Sub ReadDDFAssembly(sPathDDF As String, ByRef ReadAssembly As Assembly)
+ BuiltReffCompo = False
' restituisce un problema nella lettura di un valore della compo
Dim InvalidValue As String = String.Empty
InvalidValue += "In General Assembly:" + vbCrLf
@@ -682,92 +684,21 @@ Public Class Assembly
MessageBox.Show(EgtMsg(50107), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
End If
Dim bSecure As Boolean = False
+ '---------------------------------------------------------------------------------------------------------------------------------
' leggo riga per riga
- '--------------------------------------------------------------------------------------------------------------------------------------
- ' cerco la fine del file (DA CAMBIARE)
Dim LineIndexDots As Integer = 0
- While (Not Search3Dots(ReadAssembly.FileContent(LineIndexDots)) And LineIndexDots < ReadAssembly.FileContent.Count - 1)
- LineIndexDots += 1
- End While
- '--------------------------------------------------------------------------------------------------------------------------------------
- For IndexLine As Integer = LineIndexDots To ReadAssembly.FileContent.Count - 1
- ' Size
- If IndexLine < ReadAssembly.FileContent.Count - 1 Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "Size") Then
- IndexLine = ReadAssembly.GetSize(IndexLine + 1)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "Size" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- End If
- End If
- ' Light
- If IndexLine < ReadAssembly.FileContent.Count - 1 Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "Light") Then
- IndexLine = ReadAssembly.GetLight(IndexLine + 1)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "Light" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- End If
- End If
- ' Overlap
- If IndexLine < ReadAssembly.FileContent.Count - 1 Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "Overlap") Then
- IndexLine = ReadAssembly.GetOverlap(IndexLine + 1)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "Overlap" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- End If
- End If
- ' Exterior
- If IndexLine < ReadAssembly.FileContent.Count - 1 Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "Exterior") Then
- IndexLine = ReadAssembly.GetExterior(IndexLine + 1)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "Exterior" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- End If
- End If
- ' Profiles
- If IndexLine < ReadAssembly.FileContent.Count - 1 Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "profiles") Then
- IndexLine = ReadAssembly.GetProfiles(IndexLine + 1)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "profiles" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- End If
- End If
- ' Doors
- If IndexLine < ReadAssembly.FileContent.Count Then
- If SearchKey(ReadAssembly.FileContent(IndexLine), "doors") Then
- ' in questo modo non passo dalla proprietà ( in breve quello che accadrebbe usando il metodo Set)
- IndexLine = ReadAssembly.GetValue(IndexLine, "doors", ReadAssembly.m_DoorNumber)
- If IndexLine = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "doors" + vbCrLf)
- ReadAssembly = Nothing
- Exit For
- End If
- ' se sono arrivato fino a qui significa che ormai è terminata la pagina
- If IsNothing(ReadAssembly.m_Exterior) Or Not ReadAssembly.m_Exterior Then
- ReadAssembly.m_Exterior = False
- ReadAssembly.m_OverlapTop = OptionModule.m_OverlapTop
- End If
- End If
- End If
- Next
+ Dim IndexLine As Integer = LineIndexDots
+ ReadAssembly.GetGeneralAssembly(ReadAssembly, IndexLine, InvalidValue)
+ '---------------------------------------------------------------------------------------------------------------------------------
If Not IsNothing(ReadAssembly) Then
- If ReadAssembly.GetDDFDoor() = -1 Then
- InvalidValue += String.Format(EgtMsg(50102), "Door has not been founded in Assembly DDF" + vbCrLf)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Error in reading General Assembly in DDF" + vbCrLf)
ReadAssembly = Nothing
+ Else
+ If ReadAssembly.GetDDFDoor(IndexLine) = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Door has not been founded in Assembly DDF" + vbCrLf)
+ ReadAssembly = Nothing
+ End If
End If
End If
If Not InvalidValue = "In General Assembly:" + vbCrLf Then
@@ -775,6 +706,117 @@ Public Class Assembly
End If
End Sub
+ Public Function GetGeneralAssembly(ReadAssembly As Assembly, ByRef IndexLine As Integer, InvalidValue As String) As Boolean
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Size
+ If IndexLine < ReadAssembly.FileContent.Count - 1 Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "Size") Then
+ IndexLine = ReadAssembly.GetSize(IndexLine + 1)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Size" + vbCrLf)
+ ReadAssembly = Nothing
+ 'Exit For
+ End If
+ End If
+ End If
+ If IndexLine = 0 Then Return False
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Light
+ If IndexLine < ReadAssembly.FileContent.Count - 1 Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "Light") Then
+ IndexLine = ReadAssembly.GetLight(IndexLine + 1)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Light" + vbCrLf)
+ ReadAssembly = Nothing
+ ''Exit For
+ End If
+ End If
+ End If
+ If IndexLine = 0 Then Return False
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Overlap
+ If IndexLine < ReadAssembly.FileContent.Count - 1 Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "Overlap") Then
+ IndexLine = ReadAssembly.GetOverlap(IndexLine + 1)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Overlap" + vbCrLf)
+ ReadAssembly = Nothing
+ 'Exit For
+ End If
+ End If
+ End If
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Exterior
+ If IndexLine < ReadAssembly.FileContent.Count - 1 Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "Exterior") Then
+ IndexLine = ReadAssembly.GetExterior(IndexLine + 1)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "Exterior" + vbCrLf)
+ ReadAssembly = Nothing
+ 'Exit For
+ End If
+ End If
+ End If
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Profiles
+ If IndexLine < ReadAssembly.FileContent.Count - 1 Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "profiles") Then
+ IndexLine = ReadAssembly.GetProfiles(IndexLine + 1)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "profiles" + vbCrLf)
+ ReadAssembly = Nothing
+ 'Exit For
+ End If
+ End If
+ End If
+ IndexLine = ReadAssembly.SkipWhiteSpace(IndexLine)
+ ' Doors
+ If IndexLine < ReadAssembly.FileContent.Count Then
+ If SearchKey(ReadAssembly.FileContent(IndexLine), "doors") Then
+ ' in questo modo non passo dalla proprietà ( in breve quello che accadrebbe usando il metodo Set)
+ IndexLine = ReadAssembly.GetValue(IndexLine, "doors", ReadAssembly.m_DoorNumber)
+ If IndexLine = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), "doors" + vbCrLf)
+ ReadAssembly = Nothing
+ 'Exit For
+ End If
+ ' se sono arrivato fino a qui significa che ormai è terminata la pagina
+ If IsNothing(ReadAssembly.m_Exterior) Or Not ReadAssembly.m_Exterior Then
+ ReadAssembly.m_Exterior = False
+ ReadAssembly.m_OverlapTop = OptionModule.m_OverlapTop
+ End If
+ End If
+ End If
+ Return True
+ End Function
+
+ ' salta le righe che non contengono un metadata
+ Public Function SkipWhiteSpace(Index As Integer) As Integer
+ Dim ExitLoop As Boolean = False
+ While Not ExitLoop And Index < FileContent.Count - 1
+ If FileContent(Index).Contains("##") Then
+ Dim x = Regex.Match(FileContent(Index), "\s*##\s*(.*?\b)\s*:\s*$").Groups(1).Value
+ Dim y = Regex.Match(FileContent(Index), "\s*##\s*(.*?\b)\s*:\s*(.*?\b)$").Groups(1).Value
+ If Not String.IsNullOrWhiteSpace(Regex.Match(FileContent(Index), "\s*##\s*(.*?\b)\s*:\s*$").Groups(1).Value) Then
+ ExitLoop = True
+ ElseIf Not String.IsNullOrWhiteSpace(Regex.Match(FileContent(Index), "\s*##\s*(.*?\b)\s*:\s*(.*?\b)$").Groups(1).Value) Then
+ ExitLoop = True
+ ElseIf Not String.IsNullOrWhiteSpace(Regex.Match(FileContent(Index), "\s*(measures)\s*:\s*(.*?\b)$").Groups(1).Value) Then
+ ExitLoop = True
+ Else
+ Index += 1
+ End If
+ ElseIf Not String.IsNullOrWhiteSpace(Regex.Match(FileContent(Index), "\s*(measures)\s*:\s*(.*?\b)$").Groups(1).Value) Or
+ Not String.IsNullOrWhiteSpace(Regex.Match(FileContent(Index), "\s*(prodce)\s*:\s*(.*?\b)$").Groups(1).Value) Then
+ Index = 0
+ ExitLoop = True
+ Else
+ Index += 1
+ End If
+ End While
+ Return Index
+ End Function
+
' funzione per la ricerca dei valori, restituice la riga successiva
Private Function GetValue(Index As Integer, Name As String, ByRef Var As String) As Integer
If Index = -1 Then
@@ -794,6 +836,7 @@ Public Class Assembly
End If
End If
End Function
+
' funzione per la ricerca dei profili, restituisce la riga successiva
Private Function GetValueProfiles(Index As Integer, Name As String, ByRef Var As EdgeType, ByRef VarMachining As Boolean, ByVal VarOverMaterial As String) As Integer
' Creo una stringa per scrivere gli errori
@@ -865,7 +908,6 @@ Public Class Assembly
Return Index
End Function
-
Private Sub MsgBevel(bFound As Boolean, Edge As String)
If bFound And Not Part.FirstReadingEdge Then
Dim CautionBevel As String = String.Format(EgtMsg(50151), Edge)
@@ -931,8 +973,8 @@ Public Class Assembly
Return Index
End Function
- Public Function GetDDFDoor() As Integer
- Dim Line As Integer = 0
+ Public Function GetDDFDoor(IndexLine As Integer) As Integer
+ Dim Line As Integer = IndexLine
While Line < FileContent.Count - 1 AndAlso Not Search3Dots(FileContent(Line))
Dim Local_Door As New Part
Dim Local_PartDoor As New PartDoor
@@ -940,7 +982,9 @@ Public Class Assembly
' per saltare la riga che è stata appena restituita che contiene "---"
Line += 1
End If
+ ' se la lettura di un oggetto fallisce allora restituisce nothing
Part.ReadDDFPartDoor(FileContent, Line, Local_Door)
+ If IsNothing(Local_Door) Then Return -1
If String.IsNullOrEmpty(Local_Door.TypePart) Then Local_Door.TypePart = "DO_1"
Dim sDoorPiece As String = Local_Door.TypePart
' per eliminare lo swing associato al jamb FL_L --> FL_
@@ -1007,6 +1051,7 @@ Public Class Assembly
End While
DoorVisibility()
MatchCompo()
+ BuiltReffCompo = True
Return 1
End Function
diff --git a/Constants/ConstCompo.vb b/Constants/ConstCompo.vb
index 7bf3fed..bf3d833 100644
--- a/Constants/ConstCompo.vb
+++ b/Constants/ConstCompo.vb
@@ -56,6 +56,9 @@ Module ConstCompo
Public Const K_BOTTOM As String = "bottom"
Public Const K_SCORE As String = " - "
Public Const K_SPACE3 As String = " "
+
+ Public Const K_METADATA As String = "##"
+
Public Const K_SPACE5 As String = " "
Public Const K_PARTIALEND As String = " --- "
Public Const K_END As String = " ... "
diff --git a/Converter/TemplateListConverter.vb b/Converter/TemplateListConverter.vb
new file mode 100644
index 0000000..6fd1e0c
--- /dev/null
+++ b/Converter/TemplateListConverter.vb
@@ -0,0 +1,21 @@
+Public Class TemplateListConverter
+ Implements IValueConverter
+
+ Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert
+ Dim TemplateList As List(Of String) = DirectCast(value, List(Of String))
+ For Index = TemplateList.Count - 1 To 0 Step -1
+ Dim Template As String = TemplateList(Index)
+ If Not Map.refPartPageVM.CurrPart.TypePart.Contains("F") Then
+ If Template.ToLower.Contains(".frame") Then
+ TemplateList.Remove(Template)
+ End If
+ End If
+ Next
+ Return TemplateList
+ End Function
+
+ Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
+ Throw New NotImplementedException
+ End Function
+
+End Class
diff --git a/DdfFile.vb b/DdfFile.vb
index 48739fc..151f4d7 100644
--- a/DdfFile.vb
+++ b/DdfFile.vb
@@ -84,7 +84,7 @@ Friend Module DdfFile
' è specificato il tipo significa che abbiamo un assemblato
DdfFileContent.Add("piece: " & Part.TypePart)
DdfFileContent.Add("")
-
+ ' posizionamento porte
If OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
If Not IsNothing(Part.TypePart) Then
' il posizionamento della prima porta sta nell'origine
@@ -496,9 +496,16 @@ Friend Module DdfFile
Dim EndAssebly As New List(Of String)
EndAssebly.Add("")
EndAssebly.Add("...")
+ Dim FirstPart As Boolean = False
+
+ Dim GeneralAssembly As New List(Of String)
+ If OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
+ WriteGeneralAssembly(GeneralAssembly, CurrAssembly)
+ File.WriteAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
+ FirstPart = True
+ End If
' inizio stampando l'elenco delle porte
- Dim FirstPart As Boolean = False
Select Case CurrAssembly.DoorNumber
Case "1"
WriteDDFPart(CurrAssembly.GetArrayPartDoor(0).Door, sPath, bIsTemplate, FirstPart)
@@ -523,6 +530,7 @@ Friend Module DdfFile
File.AppendAllLines(sPath, SplitPart, Text.Encoding.UTF8)
WriteDDFPart(CurrAssembly.RightJamb, sPath, bIsTemplate, FirstPart)
File.AppendAllLines(sPath, SplitPart, Text.Encoding.UTF8)
+ ' il sill è stampato solo se è nella selezione
If CurrAssembly.Exterior Then
WriteDDFPart(CurrAssembly.TopJamb, sPath, bIsTemplate, FirstPart)
File.AppendAllLines(sPath, SplitPart, Text.Encoding.UTF8)
@@ -533,126 +541,249 @@ Friend Module DdfFile
File.AppendAllLines(sPath, EndAssebly, Text.Encoding.UTF8)
End If
'------------------------------------------------------------------------------------------------------------------
- ' inizio ora a stampare le caratteristiche generali della finestra JambPageVM
+ '' inizio ora a stampare le caratteristiche generali della finestra JambPageVM
+ 'Dim dVal As Double = 0
+ 'Dim GeneralAssembly As New List(Of String)
+ 'GeneralAssembly.Add("")
+ 'GeneralAssembly.Add("#GENERAL ASSEMBLY")
+ 'GeneralAssembly.Add("")
+ 'GeneralAssembly.Add(" " & "Size : ")
+ 'If StringToDouble(CurrAssembly.Thickness, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "thickness : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.Width, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "width : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "width", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add("")
+ 'GeneralAssembly.Add(" " & "Light : ")
+ 'If StringToDouble(CurrAssembly.LightUp, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "up : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "LightUp", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.LightLock, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "lock : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "LightLock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.LightHinge, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "hinge : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "LightHinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.LightBottom, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "bottom : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "LightBottom", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add("")
+ 'GeneralAssembly.Add(" " & "Overlap : ")
+ 'If StringToDouble(CurrAssembly.ThicknessHead, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "thickness : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "ThicknessHead", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.OverlapHinge, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "hinge : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "Overlap Hinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.OverlapLock, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "lock : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "Overlap Lock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'If StringToDouble(CurrAssembly.DeltaThickness, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "deltaT : " & DoubleToString(dVal, 5))
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "Delta Thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ '' i parametri associatia alla condizione di Exterior sono stampati solo se Exterior è true
+ 'If CurrAssembly.Exterior Then
+ ' GeneralAssembly.Add(" " & "Exterior :")
+ ' If StringToDouble(CurrAssembly.OverlapTop, dVal) Then
+ ' GeneralAssembly.Add(ConstCompo.K_SPACE3 & "top : " & DoubleToString(dVal, 5))
+ ' Else
+ ' MessageBox.Show(EgtMsg(50106) & "Overlap Top", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ ' End If
+ 'End If
+ 'GeneralAssembly.Add("")
+ 'GeneralAssembly.Add(" " & ConstCompo.K_PROFILES & ":")
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_LOCKEDGE & ": " & CurrAssembly.LockEdgeType.Name)
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.LockEdgeMachining))
+ 'If Not StringToDouble(CurrAssembly.LockEdgeOverMaterial, dVal) Then
+ ' MessageBox.Show(EgtMsg(50106) & K_LOCKEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_HINGEEDGE & ": " & CurrAssembly.HingeEdgeType.Name)
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.HingeEdgeMachining))
+ 'If Not StringToDouble(CurrAssembly.HingeEdgeOverMaterial, dVal) Then
+ ' MessageBox.Show(EgtMsg(50106) & K_HINGEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_TOP & ": " & CurrAssembly.TopType.Name)
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.TopMachining))
+ 'If Not StringToDouble(CurrAssembly.TopOverMaterial, dVal) Then
+ ' MessageBox.Show(EgtMsg(50106) & K_TOPOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_BOTTOM & ": " & CurrAssembly.BottomType.Name)
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.BottomMachining))
+ 'If Not StringToDouble(CurrAssembly.BottomOverMaterial, dVal) Then
+ ' MessageBox.Show(EgtMsg(50106) & K_BOTTOMOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+
+ 'GeneralAssembly.Add("")
+ 'If Not IsNothing(CurrAssembly.DoorNumber) Then
+ ' GeneralAssembly.Add(" " & "doors : " & CurrAssembly.DoorNumber)
+ 'Else
+ ' MessageBox.Show(EgtMsg(50106) & "Number of Doors", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ ' Return False
+ 'End If
+ 'File.AppendAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
+ Return True
+ End Function
+
+ Public Function WriteGeneralAssembly(ByRef GeneralAssembly As List(Of String), CurrAssembly As Assembly) As Boolean
Dim dVal As Double = 0
- Dim GeneralAssembly As New List(Of String)
- GeneralAssembly.Add("")
+ GeneralAssembly.Add("#EGTDOORCREATOR")
GeneralAssembly.Add("#GENERAL ASSEMBLY")
- GeneralAssembly.Add("")
- GeneralAssembly.Add(" " & "Size : ")
+ GeneralAssembly.Add("#")
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "Size : ")
If StringToDouble(CurrAssembly.Thickness, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "thickness : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "thickness : " & DoubleToString(dVal, 5))
Else
- MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ MessageBox.Show(ConstCompo.K_METADATA & EgtMsg(50106) & "thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.Width, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "width : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "width : " & DoubleToString(dVal, 5))
Else
- MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "width", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ MessageBox.Show(ConstCompo.K_METADATA & EgtMsg(50106) & "width", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
GeneralAssembly.Add("")
- GeneralAssembly.Add(" " & "Light : ")
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "Light : ")
If StringToDouble(CurrAssembly.LightUp, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "up : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "up : " & DoubleToString(dVal, 5))
Else
- MessageBox.Show(ConstCompo.K_SPACE3 & EgtMsg(50106) & "LightUp", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ MessageBox.Show(ConstCompo.K_METADATA & EgtMsg(50106) & "LightUp", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.LightLock, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "lock : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "lock : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "LightLock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.LightHinge, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "hinge : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "hinge : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "LightHinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.LightBottom, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "bottom : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "bottom : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "LightBottom", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- GeneralAssembly.Add("")
- GeneralAssembly.Add(" " & "Overlap : ")
+ GeneralAssembly.Add(ConstCompo.K_METADATA)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "Overlap : ")
If StringToDouble(CurrAssembly.ThicknessHead, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "thickness : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "thickness : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "ThicknessHead", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.OverlapHinge, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "hinge : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "hinge : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "Overlap Hinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.OverlapLock, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "lock : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "lock : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "Overlap Lock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
If StringToDouble(CurrAssembly.DeltaThickness, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "deltaT : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "deltaT : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "Delta Thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
' i parametri associatia alla condizione di Exterior sono stampati solo se Exterior è true
If CurrAssembly.Exterior Then
- GeneralAssembly.Add(" " & "Exterior :")
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "Exterior :")
If StringToDouble(CurrAssembly.OverlapTop, dVal) Then
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & "top : " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & "top : " & DoubleToString(dVal, 5))
Else
MessageBox.Show(EgtMsg(50106) & "Overlap Top", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
End If
- GeneralAssembly.Add("")
- GeneralAssembly.Add(" " & ConstCompo.K_PROFILES & ":")
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_LOCKEDGE & ": " & CurrAssembly.LockEdgeType.Name)
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.LockEdgeMachining))
+ GeneralAssembly.Add(ConstCompo.K_METADATA)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_PROFILES & ":")
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_LOCKEDGE & ": " & CurrAssembly.LockEdgeType.Name)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.LockEdgeMachining))
If Not StringToDouble(CurrAssembly.LockEdgeOverMaterial, dVal) Then
MessageBox.Show(EgtMsg(50106) & K_LOCKEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_HINGEEDGE & ": " & CurrAssembly.HingeEdgeType.Name)
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.HingeEdgeMachining))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_HINGEEDGE & ": " & CurrAssembly.HingeEdgeType.Name)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.HingeEdgeMachining))
If Not StringToDouble(CurrAssembly.HingeEdgeOverMaterial, dVal) Then
MessageBox.Show(EgtMsg(50106) & K_HINGEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_TOP & ": " & CurrAssembly.TopType.Name)
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.TopMachining))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_TOP & ": " & CurrAssembly.TopType.Name)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.TopMachining))
If Not StringToDouble(CurrAssembly.TopOverMaterial, dVal) Then
MessageBox.Show(EgtMsg(50106) & K_TOPOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
- GeneralAssembly.Add(ConstCompo.K_SPACE3 & ConstCompo.K_BOTTOM & ": " & CurrAssembly.BottomType.Name)
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.BottomMachining))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_BOTTOM & ": " & CurrAssembly.BottomType.Name)
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.BottomMachining))
If Not StringToDouble(CurrAssembly.BottomOverMaterial, dVal) Then
MessageBox.Show(EgtMsg(50106) & K_BOTTOMOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- GeneralAssembly.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
+ GeneralAssembly.Add(ConstCompo.K_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
- GeneralAssembly.Add("")
+ GeneralAssembly.Add(K_METADATA)
If Not IsNothing(CurrAssembly.DoorNumber) Then
- GeneralAssembly.Add(" " & "doors : " & CurrAssembly.DoorNumber)
+ GeneralAssembly.Add(K_METADATA & "doors : " & CurrAssembly.DoorNumber)
Else
MessageBox.Show(EgtMsg(50106) & "Number of Doors", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Return False
End If
- File.AppendAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
+ GeneralAssembly.Add(" ")
+ 'File.AppendAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
Return True
End Function
diff --git a/DoorParameters/Compo.vb b/DoorParameters/Compo.vb
index e7059ab..9c2774e 100644
--- a/DoorParameters/Compo.vb
+++ b/DoorParameters/Compo.vb
@@ -202,7 +202,8 @@ Public Class Compo
Next
End If
'----------------------------------------------------------------------------------------------------------------------------------------------
- If Not IsNothing(Me.refJambCompo) Then
+ ' Not IsNothing(Me.refJambCompo) And
+ If Assembly.BuiltReffCompo Then
Dim FrameCompoFile As String = String.Empty
Dim FrameCompoFileConfig As String = String.Empty
Dim nDoorNbr As Integer = 1
@@ -211,6 +212,11 @@ Public Class Compo
Not String.IsNullOrEmpty(FrameCompoFile) Then
If Not SearchFileConfig(FrameCompoFile, FrameCompoFileConfig) Then
MessageBox.Show("Compo does not exist", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
+ If Not IsNothing(Me.refJambCompo) Then
+ Map.refPartPageVM.CurrPart.RemoveRefCompo(Me.refJambCompo)
+ Me.refJambCompo = Nothing
+ return
+ End If
Else
Dim FrameCompoNameDDF As String = String.Empty
Dim FrameCompoName As String = String.Empty
@@ -221,6 +227,13 @@ Public Class Compo
GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, FrameCompoNameDDF, FrameCompoName, CurrCompoPath)
GetPrivateProfileJambSide("PositionSide", "Side", Side, CurrCompoPath)
If String.IsNullOrEmpty(Side) Then Side = Me.CompoType.JambSide
+ '-------------------------------------------------------------------------------------------------------------------------------
+ If IsNothing(Me.refJambCompo) Then
+ Part.CreateRefCompo(Me.CompoType, Me, Map.refAssemblyPageVM.CurrAssembly, FrameCompoFileConfig, FrameCompoFile, Map.refPartPageVM.CurrPart)
+ If CompoMatch.LoadCompoParam(Me) Then Map.refAssemblyPageVM.CurrAssembly.UpDateCurrCompoJamb(Me)
+ Return
+ End If
+ '-------------------------------------------------------------------------------------------------------------------------------
Me.refJambCompo.CompoType.SetDDFName(FrameCompoNameDDF)
Me.refJambCompo.CompoType.SetName(FrameCompoName)
Dim FrameCompoDirectory As String
@@ -290,7 +303,13 @@ Public Class Compo
#Region "SettemplateREFCOMPO"
Friend Sub SetTemplateSelItemRefCompo(value As String, CurrRefCompo As Compo)
Dim CurrConfig As String = CurrRefCompo.CompoType.Path & "\" & CONFIGINI_FILE_NAME
- Dim CurrItemPath As String = CurrRefCompo.CompoType.Path & "\" & value
+ Dim CurrItemPath As String = CurrRefCompo.CompoType.Path
+ If value.Contains(CurrItemPath) Then
+ value = value.Substring(CurrItemPath.Count + 1)
+ CurrItemPath &= "\" & value
+ Else
+ CurrItemPath &= "\" & value
+ End If
Dim ErrorList As String = String.Empty
' se il file ha estensione nge
If Path.HasExtension(CurrItemPath) AndAlso Path.GetExtension(CurrItemPath).ToLower = K_NGEEXTENSION Then
@@ -311,7 +330,9 @@ Public Class Compo
If Not File.Exists(CurrItemPath) Then Return
CurrRefCompo.TemplateSelItem = value
' carico un vettore con le stringhe del file corrente
+ Assembly.BuiltReffCompo = False
Dim ReadCurrCompo() As String = File.ReadAllLines(CurrItemPath)
+ Assembly.BuiltReffCompo = True
Dim EndOfFile As Boolean = False
' leggo il vettore di stringhe del file corrente
For LineIndex = 0 To ReadCurrCompo.Count - 1
@@ -568,7 +589,7 @@ Public Class Compo
ElseIf sItems.Count = 3 Then
' se la text contiente solo 4 parametri
If sItems(1).Split("/"c).Count = 1 Then
- NewCompoParam = New TextBoxOnOffParam(Trim(sItems(1)), MsgControl(Trim(sItems(1)), "-1", sErrorList), Me, sDefaultValue, Nothing, Nothing)
+ NewCompoParam = New TextBoxOnOffParam(Trim(sItems(1)), MsgControl(Trim(sItems(1)), "-1", sErrorList), Me, sDefaultValue, Nothing, Nothing)
Else
NewCompoParam = New TextBoxOnOffParam(Trim(sItems(1).Split("/"c)(0)), Trim(MsgControl(sItems(1).Split("/"c)(0), sItems(1).Split("/"c)(1), sErrorList)), Me, sDefaultValue, Nothing, Nothing)
End If
@@ -967,7 +988,7 @@ End Class
Public Class TextBoxOnOffParam
Inherits TextBoxParam
- Private m_IsActive As Boolean
+ Private m_IsActive As Boolean = True
Public Property IsActive As Boolean
Get
Return m_IsActive
diff --git a/DoorParameters/Part.vb b/DoorParameters/Part.vb
index 49b365b..eb9477c 100644
--- a/DoorParameters/Part.vb
+++ b/DoorParameters/Part.vb
@@ -7,29 +7,8 @@ Imports System.Text.RegularExpressions
Public Class Part
Implements INotifyPropertyChanged
- Friend m_IsModifyDoor As Boolean = False
-
- Friend Shared m_rfModifyTitle As Action(Of Boolean)
-
- ' '' restituisce vero/falso valutando se le componenti o le generals della porta sono state modificate
- ''Private Function IsModify() As Boolean
- '' If m_IsModifyDoor Then Return True
- '' ' se esiste almeno un elemento nella lista dei componenti
- '' If Not IsNothing(Me.CompoList) Then
- '' ' assegno ad una variabile locale il vallore della componente, e ripeto per tutte le componenti della lista
- '' For IndexCompoList = 0 To Me.CompoList.Count - 1
- '' Dim rCompo As Compo = Me.CompoList(IndexCompoList)
- '' If Me.CompoList(IndexCompoList).IsModify Then
- '' Return True
- '' End If
- '' Next
- '' End If
- '' Return False
- ''End Function
-
- 'Friend Sub SetTitle()
- ' m_rfModifyTitle(IsModify)
- 'End Sub
+ ' questa variabile è stata definita condovisa per permettere di essere inizializzata alla prima lettura del DDF
+ Public Shared FirstReadingEdge As Boolean = False
#Region "GENERAL"
@@ -247,7 +226,6 @@ Public Class Part
Get
If String.IsNullOrEmpty(m_Weight) Then
m_Weight = OptionModule.m_Weight
- m_IsModifyDoor = True
End If
Return m_Weight
End Get
@@ -432,8 +410,6 @@ Public Class Part
End Get
Set(value As Boolean)
m_BottomMachining = value
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End Set
End Property
@@ -454,8 +430,6 @@ Public Class Part
Else
MessageBox.Show(EgtMsg(50148), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Asterisk)
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End Set
End Property
@@ -472,8 +446,6 @@ Public Class Part
Else
MessageBox.Show(EgtMsg(50148), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Asterisk)
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End Set
End Property
@@ -490,8 +462,6 @@ Public Class Part
Else
MessageBox.Show(EgtMsg(50148), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Asterisk)
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End Set
End Property
@@ -508,8 +478,6 @@ Public Class Part
Else
MessageBox.Show(EgtMsg(50148), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Asterisk)
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End Set
End Property
@@ -547,6 +515,8 @@ Public Class Part
'Gestione ComboBox e TextBox di ogni compo della pulsantiera letta da Compo.ini
Friend Function AddNewCompo(CurrCompoType As CompoType) As Compo
+ ' disabilito la costruzione del riferimento
+ Assembly.BuiltReffCompo = False
' creo la stringa che contiene la lista degli errori
Dim ErrorList As String = String.Empty
' creo il nuovo compo
@@ -601,8 +571,8 @@ Public Class Part
If Not IsNothing(Me.m_TypePart) AndAlso Not Me.m_TypePart.Contains("F") Then
If Not IsNothing(Map.refAssemblyPageVM.CurrAssembly.LeftJamb) Then
- ' definisco un riferimento ad una variabile che sarà usata nel jamb
- Dim CompoTypeJamb As CompoType
+ '' definisco un riferimento ad una variabile che sarà usata nel jamb
+ 'Dim CompoTypeJamb As CompoType
' costruisco un riferimnto in locale dell'assemblato
Dim CurrAssembly As Assembly = Map.refAssemblyPageVM.CurrAssembly
' il nome del file associato alla componente
@@ -610,96 +580,16 @@ Public Class Part
Dim FrameCompoFileConfig As String = String.Empty
Dim nDoorNbr As Integer = 1
Int32.TryParse(Map.refAssemblyPageVM.CurrAssembly.DoorNumber, nDoorNbr)
+ ' se il file Matching.lua manca nel direttorio allora esco
If CalcCompoMatching(NewCompo.CompoType.Path, nDoorNbr, NewCompo.TemplateSelItem, FrameCompoFile) AndAlso
Not String.IsNullOrEmpty(FrameCompoFile) Then
'------------------------------------------------------------------------------------------------------------------------------------------
If Not SearchFileConfig(FrameCompoFile, FrameCompoFileConfig) Then
MessageBox.Show("Compo does not exist", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
Else
- ' dato il direttorio dove si trova la componente devo ora cercare il file Config.ini per la lettura dei parametri della componente
- Dim FrameCompoNameDDF As String = String.Empty
- Dim FrameCompoName As String = String.Empty
- Dim Side As String = String.Empty
- Dim CurrCompoPath As String = FrameCompoFileConfig
- If File.Exists(CurrCompoPath) Then
- GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, FrameCompoNameDDF, FrameCompoName, CurrCompoPath)
- GetPrivateProfileJambSide("PositionSide", "Side", Side, CurrCompoPath)
- If String.IsNullOrEmpty(Side) Then Side = CurrCompoType.JambSide
- Dim FrameCompoDirectory As String
- FrameCompoDirectory = FrameCompoFileConfig.Remove(FrameCompoFileConfig.LastIndexOf("\"))
- CompoTypeJamb = New CompoType(FrameCompoName, FrameCompoNameDDF, FrameCompoDirectory, Side)
- Else
- ' se non trovo nulla nel direttorio indicato carico il direttorio della componente corrente
- CompoTypeJamb = New CompoType(CurrCompoType.Name, CurrCompoType.DDFName, CurrCompoType.Path, CurrCompoType.JambSide)
- End If
- '------------------------------------------------------------------------------------------------------------------------------------------
- Select Case CurrAssembly.DoorNumber
- Case "1"
- ' questo select case serve per gestire la posizione degli hardware sui Jamb
- Select Case CurrCompoType.JambSide
- Case "Hinge"
- If CurrAssembly.LeftJamb.Swing.Contains("L") Then
- NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- Else
- NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End If
- Case "Lock"
- If CurrAssembly.LeftJamb.Swing.Contains("L") Then
- NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- Else
- NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End If
- Case "Top"
- NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- Case "Bottom"
- NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End Select
- Case "2"
- Select Case CurrCompoType.JambSide
- Case "Hinge"
- If Me.TypePart = "DO_1" Then
- NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- Else
- NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End If
- Case "Lock"
- ' significa che le componenrti stanno solo sulle porte
- If Me.TypePart = "DO_1" And Not Me.Swing.Contains("I") Then
- NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(1).Door.AddRefCompo(CurrCompoType)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- ElseIf Me.TypePart = "DO_2" And Not Me.Swing.Contains("I") Then
- NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(0).Door.AddRefCompo(CurrCompoType)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End If
- Case "Top"
- NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- Case "Bottom"
- NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb)
- NewCompo.refJambCompo.SetTemplateSelItem(FrameCompoFile)
- NewCompo.refJambCompo.IsReadOnly = True
- End Select
- End Select
+ CreateRefCompo(CurrCompoType, NewCompo, CurrAssembly, FrameCompoFileConfig, FrameCompoFile, Me)
End If
+
End If
End If
End If
@@ -724,12 +614,104 @@ Public Class Part
CompoList.Add(NewCompo)
End If
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
+ ' riabilito la costruzion del riferimnto
+ Assembly.BuiltReffCompo = True
Return NewCompo
End Function
+ Friend Shared Sub CreateRefCompo(ByRef CurrCompoType As CompoType, ByRef NewCompo As Compo, ByRef CurrAssembly As Assembly, FrameCompoFileConfig As String, FrameCompoFile As String, CurrDoor As Part)
+ ' disabilito la costruzione del riferimento
+ Assembly.BuiltReffCompo = False
+ ' definisco un riferimento ad una variabile che sarà usata nel jamb
+ Dim CompoTypeJamb As CompoType
+ ' dato il direttorio dove si trova la componente devo ora cercare il file Config.ini per la lettura dei parametri della componente
+ Dim FrameCompoNameDDF As String = String.Empty
+ Dim FrameCompoName As String = String.Empty
+ Dim Side As String = String.Empty
+ Dim CurrCompoPath As String = FrameCompoFileConfig
+ If File.Exists(CurrCompoPath) Then
+ GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, FrameCompoNameDDF, FrameCompoName, CurrCompoPath)
+ GetPrivateProfileJambSide("PositionSide", "Side", Side, CurrCompoPath)
+ If String.IsNullOrEmpty(Side) Then Side = CurrCompoType.JambSide
+ Dim FrameCompoDirectory As String
+ FrameCompoDirectory = FrameCompoFileConfig.Remove(FrameCompoFileConfig.LastIndexOf("\"))
+ CompoTypeJamb = New CompoType(FrameCompoName, FrameCompoNameDDF, FrameCompoDirectory, Side)
+ Else
+ ' se non trovo nulla nel direttorio indicato carico il direttorio della componente corrente
+ CompoTypeJamb = New CompoType(CurrCompoType.Name, CurrCompoType.DDFName, CurrCompoType.Path, CurrCompoType.JambSide)
+ End If
+ '------------------------------------------------------------------------------------------------------------------------------------------
+ Select Case CurrAssembly.DoorNumber
+ Case "1"
+ ' questo select case serve per gestire la posizione degli hardware sui Jamb
+ Select Case CurrCompoType.JambSide
+ Case "Hinge"
+ If CurrAssembly.LeftJamb.Swing.Contains("L") Then
+ NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ Else
+ NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End If
+ Case "Lock"
+ If CurrAssembly.LeftJamb.Swing.Contains("L") Then
+ NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ Else
+ NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End If
+ Case "Top"
+ NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ Case "Bottom"
+ NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End Select
+ Case "2"
+ Select Case CurrCompoType.JambSide
+ Case "Hinge"
+ If CurrDoor.TypePart = "DO_1" Then
+ NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ Else
+ NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End If
+ Case "Lock"
+ ' significa che le componenrti stanno solo sulle porte
+ If CurrDoor.TypePart = "DO_1" And Not CurrDoor.Swing.Contains("I") Then
+ NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(1).Door.AddRefCompo(CurrCompoType)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ ElseIf CurrDoor.TypePart = "DO_2" And Not CurrDoor.Swing.Contains("I") Then
+ NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(0).Door.AddRefCompo(CurrCompoType)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End If
+ Case "Top"
+ NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ Case "Bottom"
+ NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb)
+ NewCompo.refJambCompo.SetTemplateSelItemRefCompo(FrameCompoFile, NewCompo.refJambCompo)
+ NewCompo.refJambCompo.IsReadOnly = True
+ End Select
+ End Select
+ ' riabilito la costruzion del riferimnto
+ Assembly.BuiltReffCompo = True
+ End Sub
+
'Gestione ComboBox e TextBox di ogni compo della pulsantiera letta da Compo.ini
Public Function AddRefCompo(CurrCompoType As CompoType) As Compo
' creo la stringa che contiene la lista degli errori
@@ -749,7 +731,7 @@ Public Class Part
NewCompo.TemplateName = Name
NewCompo.TemplateItemList = TemplateList
If Not SetItemTemplate(NewCompo.CompoType.DDFName) = String.Empty Then
- NewCompo.SetTemplateSelItem(SetItemTemplate(NewCompo.CompoType.DDFName))
+ NewCompo.SetTemplateSelItemRefCompo(NewCompo.CompoType.DDFName, NewCompo)
Else
' se esiste un lista di template
If NewCompo.TemplateItemList.Count > 0 Then
@@ -759,7 +741,7 @@ Public Class Part
SelItemindex += 1
End While
' inizializzo la combobox template
- NewCompo.SetTemplateSelItem(NewCompo.TemplateItemList(SelItemindex))
+ NewCompo.SetTemplateSelItemRefCompo(NewCompo.TemplateItemList(SelItemindex), NewCompo)
End If
End If
@@ -802,8 +784,6 @@ Public Class Part
CompoList.Add(NewCompo)
End If
End If
- 'm_IsModifyDoor = True
- 'SetTitle()
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
Return NewCompo
End Function
@@ -839,6 +819,24 @@ Public Class Part
CompoList.Remove(CompoToRemove)
End Sub
+ Friend Sub RemoveRefCompo(CompoToRemove As Compo)
+ If Not IsNothing(CompoToRemove) Then
+ If Map.refAssemblyPageVM.CurrAssembly.LeftJamb.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.LeftJamb.RemoveCompo(CompoToRemove)
+ ElseIf Map.refAssemblyPageVM.CurrAssembly.RightJamb.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.RightJamb.RemoveCompo(CompoToRemove)
+ ElseIf Map.refAssemblyPageVM.CurrAssembly.TopJamb.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.TopJamb.RemoveCompo(CompoToRemove)
+ ElseIf Map.refAssemblyPageVM.CurrAssembly.BottomJamb.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.BottomJamb.RemoveCompo(CompoToRemove)
+ ElseIf Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(1).Door.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(1).Door.RemoveCompo(CompoToRemove)
+ ElseIf Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.CompoList.IndexOf(CompoToRemove) > -1 Then
+ Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.RemoveCompo(CompoToRemove)
+ End If
+ End If
+ End Sub
+
' aggiorna il ToolTip delle TextBox
Private Sub UpdateToolTip()
For CompoIndex = 0 To m_CompoList.Count - 1
@@ -854,211 +852,6 @@ Public Class Part
#Region "LETTURA DDF"
' Genero una nuova porta da usare nella lettura di un DDF
Private FileContent As String()
- 'Shared Sub ReadDDF(sPathDDF As String, ByRef ReadDoor As Part)
- ' If Not Directory.Exists(IniFile.m_CompoDir) Then
- ' EgtOutLog("CompoDir not found : " & IniFile.m_CompoDir)
- ' MessageBox.Show("CompoDir not found : " & IniFile.m_CompoDir, "ERROR!", MessageBoxButton.OK, MessageBoxImage.Error)
- ' End
- ' Return
- ' End If
- ' ReadDoor.m_IsModifyDoor = False
- ' 'm_Door = ReadDoor
- ' ' restituisce un problema nella lettura di un valore della compo
- ' Dim InvalidValue As String = String.Empty
- ' ' controllo se esite il file DDF
- ' If Not File.Exists(sPathDDF) Then Return
- ' ReadDoor.FileContent = File.ReadAllLines(sPathDDF)
- ' ' se il file esiste ma è vuoto
- ' If ReadDoor.FileContent.Count = 0 Then
- ' MessageBox.Show(EgtMsg(50107), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
- ' End If
- ' Dim bSecure As Boolean = False
- ' ' leggo riga per riga
- ' For LineIndex As Integer = 0 To ReadDoor.FileContent.Count - 1
-
- ' ' pulisco dai commenti
- ' ' FileContent(LineIndex) = FindComments(FileContent(LineIndex))
-
- ' ' Leggo le unità di misura
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_MEASURES) Then
- ' LineIndex = ReadDoor.GetMeasure(LineIndex)
- ' ' se manca una parola chiave nel DDF
- ' If LineIndex = -1 Then
- ' ' carico il messaggio di errore
- ' InvalidValue += String.Format(EgtMsg(50102), K_MEASURES + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' ' interrompo la lettura del file
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' ' Leggo il codice
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_CODE) Then
- ' LineIndex = ReadDoor.GetCode(LineIndex)
- ' ' se manca una parola chiave nel DDF
- ' If LineIndex = -1 Then
- ' ' carico il messaggio di errore
- ' InvalidValue += String.Format(EgtMsg(50102), K_CODE + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' ' interrompo la lettura del file
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' ' Leggo il ordine
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), S_ORDER) Then
- ' LineIndex = ReadDoor.GetOrder(LineIndex + 1)
- ' ' se manca una parola chiave nel DDF
- ' If LineIndex = -1 Then
- ' ' carico il messaggio di errore
- ' InvalidValue += String.Format(EgtMsg(50102), S_ORDER + vbCrLf)
-
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' ' interrompo la lettura del file
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' ' Leggo la data
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_DATE) Then
- ' LineIndex = ReadDoor.GetDate(LineIndex)
- ' ' se manca una parola chiave nel DDF
- ' If LineIndex = -1 Then
- ' ' carico il messaggio di errore
- ' InvalidValue += String.Format(EgtMsg(50102), K_DATE + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' ' interrompo la lettura del file
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' ' size
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_SIZE) Then
- ' LineIndex = ReadDoor.GetSize(LineIndex + 1)
- ' ' se manca una parola chiave nel DDF
- ' If LineIndex = -1 Then
- ' ' carico il messaggio di errore
- ' InvalidValue += String.Format(EgtMsg(50102), K_SIZE + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' ' interrompo la lettura del file
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
-
- ' ' leggo il peso della porta
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_WEIGHT) Then
- ' LineIndex = ReadDoor.GetWeight(LineIndex)
- ' If LineIndex = -1 Then
- ' InvalidValue += String.Format(EgtMsg(50102), K_WEIGHT + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
-
- ' ' swing
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_SWING) Then
- ' LineIndex = ReadDoor.GetSwing(LineIndex)
- ' If LineIndex = -1 Then
- ' InvalidValue += String.Format(EgtMsg(50102), K_SWING + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' ' secure
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_SECURE) Then
- ' bSecure = True
- ' LineIndex += 1
- ' End If
- ' End If
- ' ' profiles
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' If SearchKey(ReadDoor.FileContent(LineIndex), K_PROFILES) Then
- ' LineIndex = ReadDoor.GetProfiles(LineIndex + 1, "")
- ' If LineIndex = -1 Then
- ' InvalidValue += String.Format(EgtMsg(50102), K_PROFILES + vbCrLf)
- ' ' assegno una porta vuota ed esco dal ciclo
- ' ReadDoor = Nothing
- ' Exit For
- ' End If
- ' End If
- ' Else
- ' Exit For
- ' End If
-
- ' ' Compo
- ' ' siccome dopo ogni lettura restituisco la riga successiva: controllo che veramente esiste nel file
- ' If LineIndex < ReadDoor.FileContent.Count - 1 Then
- ' ' se trovo un nome seguito dai due punti
- ' If Not String.IsNullOrWhiteSpace(ReadDoor.SearchName(ReadDoor.FileContent(LineIndex))) Then
- ' ' carivo la stringa letta come nome DDF
- ' Dim CompoNameDDF = ReadDoor.SearchName(ReadDoor.FileContent(LineIndex))
- ' ' passo la riga successiva e il nome DDF alla funzione che controlla se esiste la compo e restituisce la riga successiva
- ' LineIndex = ReadDoor.GetNewCompo(LineIndex + 1, CompoNameDDF, InvalidValue)
- ' ' se restituisco una riga scommentata ma non interpretabile
- ' ElseIf Not String.IsNullOrWhiteSpace(Utility.FindComments(ReadDoor.FileContent(LineIndex))) Then
- ' If Not String.IsNullOrEmpty(InvalidValue) Then InvalidValue &= Environment.NewLine
- ' InvalidValue &= String.Format(EgtMsg(50130), LineIndex)
- ' End If
- ' Else
- ' Exit For
- ' End If
- ' Next
-
- ' ' quando finisce la lettura di tutte le righe esci dal ciclo
- ' If Not String.IsNullOrWhiteSpace(InvalidValue) Then
- ' MessageBox.Show(InvalidValue, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
- ' Else
- ' If Not bSecure Then
- ' DdfFile.WriteDDFPart(ReadDoor, sPathDDF, True, True)
- ' End If
- ' If String.IsNullOrEmpty(ReadDoor.m_Weight) Then
- ' If m_IsCheckedWeight = Visibility.Visible Then
- ' ' se il valore è acceso ma non è presente nel ddf chiedo se spegnere
- ' If MessageBox.Show(EgtMsg(50149), EgtMsg(50110), MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) = MessageBoxResult.Yes Then
- ' ' decido di spegnere
- ' OptionsVM.IsCheckedWeight = False
- ' Else
- ' ' decido di accendere
- ' OptionsVM.IsCheckedWeight = True
- ' ReadDoor.m_Weight = OptionModule.m_Weight
- ' ReadDoor.VisibilityWeight = Visibility.Visible
- ' End If
- ' End If
- ' End If
- ' End If
- 'End Sub
Shared Sub ReadDDFPartDoor(ArrayFile() As String, ByRef LineIndex As Integer, ByRef ReadDoor As Part)
Dim InvalidValue As String = String.Empty
' controllo se esiste il file DDF
@@ -1266,7 +1059,7 @@ Public Class Part
' quando finisce la lettura di tutte le righe esci dal ciclo
' se la stringa dei messaggi contiene delle informazioni allora stampa
If Not String.IsNullOrWhiteSpace(InvalidValue) Then
- MessageBox.Show(InvalidValue, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ MessageBox.Show(InvalidValue, EgtMsg(50101) & " in " & ReadDoor.TypePart, MessageBoxButton.OK, MessageBoxImage.Error)
Else
'' se non è stata trovata nessun Secure allora aggiorno subito il file
'If Not bSecure Then
@@ -1765,8 +1558,7 @@ Public Class Part
End Function
#End Region ' Carica il General della porta
- ' questa variabile è stata definita condovisa per permettere di essere inizializzata alla prima lettura del DDF
- Public Shared FirstReadingEdge As Boolean = False
+
' controllo che i valori passati come spigoli siano presenti nella lista corrente (lettura DDF)
Public Function EdgeTypeControl(Edge As String) As Boolean
Dim bFound As Boolean = False
@@ -1801,7 +1593,6 @@ Public Class Part
Return Index
End If
End If
-
For CompoListIndex = 0 To CompoPanelVM.CompoTypeList.Count() - 1
' eseguo il confronto con il nome delle componenti che è stato acricato nel file Default.ini
If CompoPanelVM.CompoTypeList(CompoListIndex).DDFName = CompoNameDDF Then
@@ -1851,6 +1642,17 @@ Public Class Part
' ed esci dal ciclo while
Exit While
End If
+ ' eseguo un confronto tra il nome del file scritto nel ddf e quello presente nel direttorio
+ For CurrIndex = 0 To m_CurrCompo.TemplateItemList.Count - 1
+ Dim FileNemaRead As String = Path.GetFullPath(CurrCompoTypePath & "\" & m_CurrCompo.TemplateSelItem & ".lua").ToLower
+ Dim FileNameInDir As String = Path.GetFullPath(CurrCompoTypePath & "\" & m_CurrCompo.TemplateItemList(CurrIndex) & ".lua").ToLower
+ If File.Exists(FileNemaRead) Then
+ If FileNemaRead = FileNameInDir Then
+ m_CurrCompo.SetTemplateSelItem(m_CurrCompo.TemplateItemList(CurrIndex))
+ Exit For
+ End If
+ End If
+ Next
'mi sposto nella riga successiva
Index += 1
' leggo i parametri della componente
@@ -1906,7 +1708,6 @@ Public Class Part
End If
'------------------------------------------------------------------------------------------------------------------------------------------------------
End If
-
' se la stringa non ha i due punti
End While
Exit For
@@ -2087,15 +1888,6 @@ Public Class Part
IndexLine += IndexParam
End Sub
- '' salto gli spazi vuoti finoa alla prima riga piena
- 'Public Function SkipWhiteSpace(Array() As String, ByRef Index As Integer, LastIndex As Integer) As Integer
- ' Array(Index) = FindComments(Array(Index))
- ' While String.IsNullOrWhiteSpace(Array(Index)) And Index < LastIndex
- ' Index += 1
- ' Array(Index) = FindComments(Array(Index))
- ' End While
- ' Return Index
- 'End Function
#End Region ' Lettura ddf
' Genero una nuova porta da usare nella lettura di un DDF
diff --git a/DoorParameters/PartPageV.xaml b/DoorParameters/PartPageV.xaml
index c888df9..cc90dc4 100644
--- a/DoorParameters/PartPageV.xaml
+++ b/DoorParameters/PartPageV.xaml
@@ -7,6 +7,7 @@
+
@@ -245,10 +246,12 @@
-
+
diff --git a/DoorParameters/PartPageVM.vb b/DoorParameters/PartPageVM.vb
index 05cbeec..79b0927 100644
--- a/DoorParameters/PartPageVM.vb
+++ b/DoorParameters/PartPageVM.vb
@@ -38,7 +38,6 @@ Public Class PartPageVM
Sub New()
Map.SetRefDoorParametersVM(Me)
- Part.m_rfModifyTitle = AddressOf Map.refMainWindowVM.ModifyTitle
End Sub
#Region "Messages"
diff --git a/EgtDOORCreator.vbproj b/EgtDOORCreator.vbproj
index af47b99..33b6149 100644
--- a/EgtDOORCreator.vbproj
+++ b/EgtDOORCreator.vbproj
@@ -122,6 +122,7 @@
+
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
index 0372f11..b65a307 100644
--- a/My Project/AssemblyInfo.vb
+++ b/My Project/AssemblyInfo.vb
@@ -72,5 +72,5 @@ Imports System.Windows
' by using the '*' as shown below:
'
-
-
+
+