EgtDOORCreator 1.9g2 :

- la lista degli swing è configurabile
- è possibile usare le costanti anche nell'assemblato
- è possibile salvare un assemblato in forma di template.
This commit is contained in:
Nicola Pievani
2018-07-25 10:27:09 +00:00
parent fcc4c35702
commit 7a6dc310d9
13 changed files with 295 additions and 137 deletions
+108 -5
View File
@@ -24,6 +24,7 @@ Friend Module OptionModule
Friend m_DisableProperties As Visibility
Friend m_PropertList As New ObservableCollection(Of PropertyItem)
Friend m_PropertListJamb As New ObservableCollection(Of PropertyItem)
Friend Enum LauncherWindow As Integer
Open_window = 0
@@ -44,7 +45,10 @@ Friend Module OptionModule
Friend m_Height As String
Friend m_Thickness As String
Friend m_Weight As String
Friend m_SwingTypeList As New List(Of String)
Friend m_SwingList As New List(Of SwingItemTypeList)
Friend m_Swing As String
Friend m_StaticEdgeTypeList As New ObservableCollection(Of String)
Friend m_LockEdgeType As New EdgeType("", Visibility.Visible)
@@ -155,7 +159,7 @@ Friend Module OptionModule
' Package JAMBS is not available
m_ConfigurationSoftware = ConfigType.Door
End If
Dim DisableOrder As Integer = GetMainPrivateProfileInt(S_GENERAL, "DisableOrder", 0)
m_DisableWindowOrder = If(DisableOrder = 0, False, True)
@@ -282,6 +286,9 @@ Friend Module OptionModule
Dim PropertyList As New ObservableCollection(Of String)
DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLIST_INI, PropertyList)
LoadPropertiesList(PropertyList, m_PropertList)
PropertyList.Clear()
DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLISTJAMB_INI, PropertyList)
LoadPropertiesList(PropertyList, m_PropertListJamb)
' Leggo le dimensioni della porta dal file Default.ini
Dim Width As String = String.Empty
@@ -299,14 +306,18 @@ Friend Module OptionModule
m_Thickness = Thickness
Dim dThickness As Double
If StringToDouble(m_Thickness, dThickness) Then EgtLuaSetGlobNumVar("T", dThickness)
' carico i valori associati allo swing della porta
Dim SwingTypeList As New List(Of String)
DefaultGetPrivateProfileList(S_SIZE_INI, K_SWING_LIST_INI, SwingTypeList)
m_SwingTypeList = SwingTypeList
LoadSwingTypeList(SwingTypeList)
'm_SwingTypeList = SwingTypeList
Dim Swing As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_SWING_INI, ConstGen.RIGHTHAND, Swing)
m_Swing = Swing
LoadSwingList()
Dim Weight As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_WEIGHT_INI, "25", Weight)
m_Weight = Weight
@@ -548,11 +559,27 @@ Friend Module OptionModule
End Sub
Friend Sub CreateNewPropertiesList(ByRef List As ObservableCollection(Of PropertyItem))
If OptionModule.m_DisableProperties <> Visibility.Visible Then Return
If List.Count > 0 Then List.Clear()
For Each Item In OptionModule.m_PropertList
List.Add(New PropertyItem(Item.Name, Item.GraphicName, Item.IsChecked))
Next
End Sub
Friend Sub CreateNewPropertiesListJamb(ByRef List As ObservableCollection(Of PropertyItem))
If OptionModule.m_DisableProperties <> Visibility.Visible Then Return
Dim LocalList As ObservableCollection(Of PropertyItem)
If Not String.IsNullOrEmpty(OptionModule.m_PropertListJamb(0).Name) Then
LocalList = OptionModule.m_PropertListJamb
Else
LocalList = OptionModule.m_PropertList
End If
If List.Count > 0 Then List.Clear()
For Each Item In LocalList
List.Add(New PropertyItem(Item.Name, Item.GraphicName, Item.IsChecked))
Next
End Sub
Friend Sub SetEdgeTypeList(EdgeTypeList As ObservableCollection(Of String), bBevelUp As Boolean, bBevelDown As Boolean)
If Not bBevelUp Then
EdgeTypeList.Remove(ConstGen.BEVEL_UP)
@@ -562,18 +589,94 @@ Friend Module OptionModule
End If
End Sub
Private Sub LoadSwingTypeList(ByRef List As List(Of String))
If List.Count = 0 Then Return
For Each ItemSwing In List
If ItemSwing.Contains("/"c) Then
Dim ItemAlias() As String = ItemSwing.Split("/"c)
Dim Swing As New SwingItemTypeList(ItemAlias(0))
For IndexItem As Integer = 1 To ItemAlias.Count - 1
Swing.AliasList.Add(ItemAlias(IndexItem))
Next
m_SwingList.Add(Swing)
Else
Dim Swing As New SwingItemTypeList(ItemSwing)
m_SwingList.Add(Swing)
End If
Next
End Sub
' carico le liste che devono essere rappresentate a video
Private Sub LoadSwingList()
For Index As Integer = 0 To 3
m_SwingTypeListSinlgeDoor.Add(m_SwingTypeList(Index))
' carico gli swing della porta singola da mostrare a video
If m_SwingList(Index).AliasList.Count = 0 Then
m_SwingTypeListSinlgeDoor.Add(m_SwingList(Index).Name)
m_SwingTypeList.Add(m_SwingList(Index).Name)
Else
For Each Item In m_SwingList(Index).AliasList
m_SwingTypeListSinlgeDoor.Add(Item)
m_SwingTypeList.Add(Item)
Next
End If
Next
For Index As Integer = 4 To 7
m_SwingTypeListLeftDoor.Add(m_SwingTypeList(Index))
' carico gli swing della prima anta
If m_SwingList(Index).AliasList.Count = 0 Then
m_SwingTypeListLeftDoor.Add(m_SwingList(Index).Name)
m_SwingTypeList.Add(m_SwingList(Index).Name)
Else
For Each Item In m_SwingList(Index).AliasList
m_SwingTypeListLeftDoor.Add(Item)
m_SwingTypeList.Add(Item)
Next
End If
Next
For Index As Integer = 8 To 11
m_SwingTypeListRightDoor.Add(m_SwingTypeList(Index))
' carico gli swing della seconda anta
If m_SwingList(Index).AliasList.Count = 0 Then
m_SwingTypeListRightDoor.Add(m_SwingList(Index).Name)
m_SwingTypeList.Add(m_SwingList(Index).Name)
Else
For Each Item In m_SwingList(Index).AliasList
m_SwingTypeListRightDoor.Add(Item)
m_SwingTypeList.Add(Item)
Next
End If
Next
End Sub
Public Sub SetCurrSwing(ByRef SwingAlias As SwingItemTypeList, ByRef SwingDDF As String)
SwingAlias = Nothing
For Each Item In OptionModule.m_SwingList
If Trim(SwingDDF) = Trim(Item.Name) Then
SwingAlias = Item
If Item.AliasList.Count > 0 Then
SwingAlias = Item
If Item.AliasList.Count > 0 Then
SwingAlias.AliasName = Item.AliasList(0)
Swing = Item.AliasList(0)
End If
Else
SwingAlias.AliasName = Item.Name
End If
Exit For
End If
Next
' se arrivo fni qui significa che sicuramente deve esistere un alias
If IsNothing(SwingAlias) Then
For Each ItemSwingList In OptionModule.m_SwingList
For Each ItemAlias In ItemSwingList.AliasList
If Trim(SwingDDF) = Trim(ItemAlias) Then
SwingAlias = ItemSwingList
SwingAlias.AliasName = ItemAlias
Exit For
End If
Next
Next
End If
End Sub
Public Function DispositionVisibility() As Visibility
' se non è selezionata nessuna disposizione allora deve essere selezionabile da interfaccia
If IsNothing(m_Disposition) Then