Files
EgtDOORCreator/OptionsWindow/OptionModule.vb
T
Nicola Pievani 13b49e14cb EgtDOORCreator 2.2c1:
-> gestione della stampa quote porta.
2020-03-09 11:37:24 +00:00

899 lines
40 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Friend Module OptionModule
' Parametri che contengono lista delle lingue disponibili e lingua selezionata
Friend m_LanguageList As New ObservableCollection(Of Language)
Friend m_SelectedLanguage As Language
Friend m_OptionLauncherList As New List(Of String)
Friend m_SelectedOptionLauncher As Integer = 0
Friend m_bLauncherOpenOnce As Boolean = False
Friend m_sLastProject As String = String.Empty
' Parametri che contengono lista delle unità di misura disponibili e quella selezionata
Friend m_MeasureUnitList As New List(Of String)({ConstGen.MM, ConstGen.VAL_INCHES})
Friend m_SelectedMeasureUnit As String
Friend m_bIsMmUnit As Boolean
' Paramaetri per la scelta del bevel
Friend m_bBevelUp As Visibility
Friend m_bBevelDown As Visibility
Friend m_DisableAddGeometry As Visibility = Visibility.Collapsed
Friend m_DisableArch As Visibility = Visibility.Collapsed
Friend m_DeleteProject As Boolean = False
Friend m_DisableProperties As Visibility
Friend m_MaterialIsVisible As Visibility = Visibility.Visible
Friend m_PropertList As New ObservableCollection(Of PropertyItem)
Friend m_PropertListJamb As New ObservableCollection(Of PropertyItem)
' lista dei materiali
Friend m_MaterialList As New ObservableCollection(Of MaterialType)
Friend m_CurrMaterial As MaterialType
Friend m_VisibilityBtnDesign As Visibility = Visibility.Collapsed
Friend Enum LauncherOpt As Integer
Open_window = 0
Open_last_project = 1
Empty = 2
End Enum
Friend Const LoOpenOnce As Integer = 10
Friend Enum ConfigType As Integer
Door = 0
Assembly = 1
End Enum
Friend m_SmartHelp As HelpPage = HelpPage.WebBrowserVB
Friend Enum HelpPage
LocalHost
WebBrowserVB
WebBrowserPC
End Enum
Friend m_DisableHM As Boolean = False
Friend m_DisableDeleteCommandHM As Boolean = False
Friend m_Width As String
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)
Friend m_HingeEdgeType As New EdgeType("", Visibility.Visible)
Friend m_TopType As New EdgeType("", Visibility.Visible)
Friend m_BottomType As New EdgeType("", Visibility.Visible)
Friend m_LockEdgeMachining As Boolean
Friend m_HingeEdgeMachining As Boolean
Friend m_TopMachining As Boolean
Friend m_BottomMachining As Boolean
Friend m_LockEdgeOverMaterial As String
Friend m_HingeEdgeOverMaterial As String
Friend m_TopOverMaterial As String
Friend m_BottomOverMaterial As String
Friend m_SwingTypeListSinlgeDoor As New List(Of String)
Friend m_SwingTypeListLeftDoor As New List(Of String)
Friend m_SwingTypeListRightDoor As New List(Of String)
Friend m_ConfigurationSoftware As ConfigType
Friend m_DisableWindowOrder As Boolean
Friend m_DisableTemplate As Boolean
Friend m_SingleDoor As Boolean
Friend m_Disposition As New EdgeType(ConstGen.BEVEL_BYSWING, Visibility.Visible)
Friend m_sDisposition As String = ConstGen.BEVEL_BYSWING
Friend m_IsMM As Boolean = False
Friend m_ThicknessJamb As String
Friend m_WidthJamb As String
Friend m_LightUp As String
Friend m_LightLock As String
Friend m_LightHinge As String
Friend m_LightBottom As String
Friend m_ThicknessHead As String
Friend m_OverlapLock As String
Friend m_OverlapHinge As String
Friend m_Exterior As Boolean
Friend m_OverlapTop As String
Friend m_DeltaThickness As String
Friend m_DoorsListNumber As New List(Of String)
Friend m_DoorsNumber As String
Friend m_TopJambChk As Boolean
Friend m_LeftJambChk As Boolean
Friend m_BottomJambChk As Boolean
Friend m_RightJambChk As Boolean
Friend m_LockEdgeTypeAssembly As New EdgeType("", Visibility.Visible)
Friend m_HingeEdgeTypeAssembly As New EdgeType("", Visibility.Visible)
Friend m_TopTypeAssembly As New EdgeType("", Visibility.Visible)
Friend m_BottomTypeAssembly As New EdgeType("", Visibility.Visible)
Friend m_LockEdgeMachiningAssembly As Boolean
Friend m_HingeEdgeMachiningAssembly As Boolean
Friend m_TopMachiningAssembly As Boolean
Friend m_BottomMachiningAssembly As Boolean
Friend m_LockEdgeOverMaterialAssembly As String
Friend m_HingeEdgeOverMaterialAssembly As String
Friend m_TopOverMaterialAssembly As String
Friend m_BottomOverMaterialAssembly As String
Friend m_TotalDimension As Boolean
Friend m_TotalHeight As String
Friend m_TotalWidth As String
Friend ColorErrorValue As String = "Red"
Friend ColorMissingParameter As String = "Yellow"
Friend ColorLoadByDefault As String = "Red"
Friend ColorErrorAndMissing As String = "Red"
Friend m_CompoPaneOrder As List(Of String) = New List(Of String)
' iniziliazzo il la lettura dei messaggi
Friend Sub ReadMessages()
' Leggo elenco lingue disponibili da file ini
Dim nIndex As Integer = 1
Dim ReadLanguage As Language = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
While Not IsNothing(ReadLanguage)
m_LanguageList.Add(ReadLanguage)
nIndex += 1
ReadLanguage = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
End While
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
Dim sMsgDir As String = String.Empty
If GetMainPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir) = 0 Then
sMsgDir = IniFile.m_sConfigDir
End If
' Leggo file messaggi
Dim sMsgName As String = String.Empty
GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgName)
Dim sMsgFilePath As String = sMsgDir & "\EgalTechEng.txt"
For Each Language In OptionModule.m_LanguageList
If Language.Name = sMsgName Then
GuideV.m_Language = sMsgName
OptionModule.m_SelectedLanguage = Language
sMsgFilePath = sMsgDir & "\" & Language.FilePath
End If
Next
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog(EgtMsg(50127))
End If
End Sub
' inizializzazione lettura variabili ad inizio programma
Friend Sub InitOptionModule()
' la lettura dei file dei messaggi è stata separata (vedere la classe MainWindowModel)
' i valori della pagina dell'assemblato
If (IniFile.m_nKeyOptions And KEY_OPT.JAMBS) <> 0 Then
Dim Config As Integer = GetMainPrivateProfileInt(S_GENERAL, K_RUNAS, 0)
m_ConfigurationSoftware = If(Config = 0, ConfigType.Door, ConfigType.Assembly)
Else
' Package JAMBS is not available
m_ConfigurationSoftware = ConfigType.Door
End If
m_DisableWindowOrder = (GetMainPrivateProfileInt(S_GENERAL, "DisableOrder", 0) <> 0)
m_DisableTemplate = (GetMainPrivateProfileInt(S_GENERAL, "DisableTemplate", 0) <> 0)
' imposto unità di misura per interfaccia utente
m_bIsMmUnit = (GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
EgtSetUiUnits(m_bIsMmUnit)
m_SelectedMeasureUnit = m_MeasureUnitList(If(m_bIsMmUnit, 0, 1))
' imposto tipo di avvio
Dim nLauncher As Integer = GetMainPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 0)
m_SelectedOptionLauncher = (nLauncher Mod LoOpenOnce)
If nLauncher >= LoOpenOnce Then
m_bLauncherOpenOnce = True
WriteMainPrivateProfileString(S_LAUNCHERWINDOW, K_LAUNCHER, m_SelectedOptionLauncher.ToString())
End If
' leggo il direttorio di salvataggio dei progetti
Dim sMyProjectDir As String = String.Empty
If GetMainPrivateProfileString(S_DOORS, K_MYPROJECTDIR, "", sMyProjectDir) > 0 AndAlso Directory.Exists(sMyProjectDir) Then
IniFile.m_MyProjectDir = sMyProjectDir
Else
' mantengo l'accesso a quello di default
EgtOutLog("Warning : " & sMyProjectDir & " does not exist")
' se il direttorio di default non esiste, lo creo
If Not Directory.Exists(IniFile.m_MyProjectDir) Then Directory.CreateDirectory(IniFile.m_MyProjectDir)
End If
Dim sTemplateDir As String = String.Empty
If GetMainPrivateProfileString(S_DOORS, K_TEMPLATEDIR, "", sTemplateDir) > 0 Then
If Not Directory.Exists(sTemplateDir) Then Directory.CreateDirectory(sTemplateDir)
IniFile.m_TemplateDir = sTemplateDir
Else
' mantego l'accesso a quello di default
EgtOutLog(String.Format(EgtMsg(50180), sTemplateDir))
' se il direttorio di default non esiste, lo creo
If Not Directory.Exists(IniFile.m_TemplateDir) Then Directory.CreateDirectory(IniFile.m_TemplateDir)
End If
Dim sMachinDir As String = String.Empty
If GetMainPrivateProfileString(S_DOORS, K_MACHINDIR, "", sMachinDir) > 0 AndAlso Directory.Exists(sMachinDir) Then
IniFile.m_MachinProject = sMachinDir
Else
' mantengo l'accesso a quello di default
EgtOutLog(String.Format(EgtMsg(50180), sMachinDir))
End If
Dim sListLabelDir As String = String.Empty
If GetMainPrivateProfileString(S_LISTLABEL, K_LISTLABELDIR, "", sListLabelDir) > 0 AndAlso Directory.Exists(sListLabelDir) Then
IniFile.m_sListLabelDir = sListLabelDir
Else
' mantengo l'accesso a quello di default
EgtOutLog(String.Format(EgtMsg(50180), sListLabelDir))
End If
Dim sListLabelFile As String = String.Empty
If GetMainPrivateProfileString(S_LISTLABEL, K_LISTLABELFILE, "", sListLabelFile) > 0 AndAlso File.Exists(sListLabelFile) Then
IniFile.m_sListLabelCurrent = sListLabelFile
Else
' mantengo l'accesso a quello di default
EgtOutLog(String.Format(EgtMsg(50180), sListLabelFile))
End If
Dim nHelpSelct As Integer = 0
Select Case GetMainPrivateProfileInt(S_GENERAL, K_SMARTHELP, 1)
Case 0
m_SmartHelp = HelpPage.WebBrowserVB
Case 1
m_SmartHelp = HelpPage.LocalHost
Case 2
m_SmartHelp = HelpPage.WebBrowserPC
Case Else
m_SmartHelp = HelpPage.WebBrowserVB
End Select
m_DisableHM = (GetMainPrivateProfileInt(S_GENERAL, K_DISABLEHM, 1) = 0)
m_DisableDeleteCommandHM = (GetMainPrivateProfileInt(S_GENERAL, K_DISABLEDELETECOMMANDHM, 1) = 0)
m_DisableProperties = If(GetMainPrivateProfileInt(S_GENERAL, K_DISABLEPROPERTIES, 1) = 0, Visibility.Visible, Visibility.Collapsed)
m_DisableAddGeometry = If(GetMainPrivateProfileInt(S_GENERAL, K_DISABLEADDGEOMETRY, 1) = 0, Visibility.Visible, Visibility.Collapsed)
m_DisableArch = If(GetMainPrivateProfileInt(S_GENERAL, K_DISABLEARCH, 1) = 0, Visibility.Visible, Visibility.Collapsed)
m_SingleDoor = If(GetMainPrivateProfileInt(S_GENERAL, K_SINGLEDOOR, 0) = 1, True, False)
m_DeleteProject = If(GetMainPrivateProfileInt(S_GENERAL, K_DELETEPROJECT, 0) = 1, True, False)
m_VisibilityBtnDesign = If(GetMainPrivateProfileInt(S_GENERAL, K_ENABLEBTNDESING, 0) = 1, Visibility.Visible, Visibility.Hidden)
' leggo il tipo di Bevel selezionato
DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELU_INI, m_bBevelUp)
DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELD_INI, m_bBevelDown)
' disposizione in macchina delle porte (variabile globale)
Select Case GetMainPrivateProfileInt(S_GENERAL, K_DISPOSITION, 0)
Case 0
m_Disposition.Name = ConstGen.BEVEL_BYSWING
Case 1
m_Disposition.Name = ConstGen.BEVEL_DOWN
Case 2
m_Disposition.Name = ConstGen.BEVEL_UP
End Select
' questa variabile deve essere usata solo in locale per settare la visibilità della optionpage dei bevel
m_sDisposition = m_Disposition.Name
' se esiste una selezione allora non mostrare a video
If m_Disposition.Name.Contains(ConstGen.BEVEL_UP) Then
m_bBevelUp = Visibility.Visible
m_bBevelDown = Visibility.Collapsed
ElseIf m_Disposition.Name.Contains(ConstGen.BEVEL_DOWN) Then
m_bBevelUp = Visibility.Collapsed
m_bBevelDown = Visibility.Visible
End If
' carico i nomi dei materiali (NomeDDF/NomeGrafica) e le liste di materiali associate
Dim MaterialList As New ObservableCollection(Of String)
DefaultGetPrivateProfileObservableCollection("Material", "MaterialList", MaterialList)
LoadMaterialList (MaterialList)
' se eiste un solo materiale allora non mostro a vodeo
If MaterialList.Count < 2 then
m_MaterialIsVisible = Visibility.Collapsed
End If
Dim PropertyList As New ObservableCollection(Of String)
' se non trovo l'elenco dei materiali allora eseguo le vecchie istruzioni
If Not DefaultGetPrivateProfileMaterialProperties(ConstIni.S_PROPERTIES_INI, "Property", m_MaterialList) then
DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLIST_INI, PropertyList)
m_MaterialIsVisible = Visibility.Collapsed
' carico la vecchia lista di proprietà
LoadPropertiesList(PropertyList, m_PropertList)
' genero una lista fittizia di materiali
MaterialList.Add(GENERICMATERIAL)
LoadMaterialList (MaterialList)
m_MaterialList(0).PropertiesList = m_PropertList
If PropertyList.Count < 1 then
OptionModule.m_DisableProperties = Visibility.Collapsed
End If
PropertyList.Clear()
DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLISTJAMB_INI, PropertyList)
If PropertyList.Count > 0 Then LoadPropertiesList(PropertyList, m_PropertListJamb)
End If
Part.m_MaterilaList = m_MaterialList
' Leggo le dimensioni della porta dal file Default.ini
Dim IsMM As Boolean = False
DefaultGetMmUnits(ConstCompo.S_GENERALINI, ConstCompo.K_MMUNITSINI, IsMM)
m_IsMM = IsMM
Dim Width As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_WIDTH_INI, "32", Width)
Utility.ConvertCompoConfig(Width, 500)
m_Width = Width
Dim dWidth As Double
If StringToDouble(m_Width, dWidth) Then EgtLuaSetGlobNumVar("W", dWidth)
Dim Height As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_HEIGHT_INI, "80", Height)
Utility.ConvertCompoConfig(Height, 500)
m_Height = Height
Dim dHeight As Double
If StringToDouble(m_Height, dHeight) Then EgtLuaSetGlobNumVar("H", dHeight)
Dim Thickness As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_THICKNESS_INI, "1.75", Thickness)
Utility.ConvertCompoConfig(Thickness, 100)
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)
LoadSwingTypeList(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
Dim WeightVisibility As Visibility = Visibility.Collapsed
DefaultGetPrivateProfilesVisibility(S_SIZE_INI, K_WEIGHTISCHECKED_INI, WeightVisibility)
Part.IsCheckedWeight = WeightVisibility
' carico il valori associati al tipo di spigolo
Dim EdgeTypeList As New ObservableCollection(Of String)
If DefaultGetPrivateProfileObservableCollection(S_EDGE, K_EDGETYPE_LIST_INI, EdgeTypeList) Then
m_StaticEdgeTypeList = EdgeTypeList
Else
DefaultGetPrivateProfileNewVersion(S_EDGE, K_EDGETYPE_INI, EdgeTypeList, Part.m_LockEdgeTypeList, Part.m_HingeEdgeTypeList, Part.m_TopEdgeTypeList, Part.m_BottomEdgeTypeList)
m_StaticEdgeTypeList = EdgeTypeList
End If
OptionsVM.CreateEdgeTypeList()
' carico i valori associati agli spigoli
Dim LockEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_LOCKEDGE_INI, "", LockEdgeType)
For Index = 0 To OptionsVM.LockEdgeTypeList.Count - 1
If OptionsVM.LockEdgeTypeList(Index).Name = LockEdgeType Then
m_LockEdgeType = OptionsVM.LockEdgeTypeList(Index)
End If
Next
If String.IsNullOrWhiteSpace(m_LockEdgeType.Name) Then m_LockEdgeType = OptionsVM.LockEdgeTypeList(0)
Dim HingeEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_HINGEDGE_INI, ConstGen.BEVEL_SQUARED, HingeEdgeType)
For Index = 0 To OptionsVM.HingeEdgeTypeList.Count - 1
If OptionsVM.HingeEdgeTypeList(Index).Name = HingeEdgeType Then
m_HingeEdgeType = OptionsVM.HingeEdgeTypeList(Index)
End If
Next
If String.IsNullOrWhiteSpace(m_HingeEdgeType.Name) Then m_HingeEdgeType = OptionsVM.HingeEdgeTypeList(0)
Dim TopType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_TOPEDGE_INI, ConstGen.BEVEL_SQUARED, TopType)
For Index = 0 To OptionsVM.TopEdgeTypeList.Count - 1
If OptionsVM.TopEdgeTypeList(Index).Name = TopType Then
m_TopType = OptionsVM.TopEdgeTypeList(Index)
End If
Next
If String.IsNullOrWhiteSpace(m_TopType.Name) Then m_TopType = OptionsVM.TopEdgeTypeList(0)
Dim BottomType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, ConstGen.BEVEL_SQUARED, BottomType)
For Index = 0 To OptionsVM.BottomEdgeTypeList.Count - 1
If OptionsVM.BottomEdgeTypeList(Index).Name = BottomType Then
m_BottomType = OptionsVM.BottomEdgeTypeList(Index)
End If
Next
If String.IsNullOrWhiteSpace(m_BottomType.Name) Then m_BottomType = OptionsVM.BottomEdgeTypeList(0)
' Carico i valori booleani associati alla lavorazione
Dim LockEdgeMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_LOCKEDGEISCHECKED_INI, LockEdgeMachining)
m_LockEdgeMachining = LockEdgeMachining
Dim HingeEdgeMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_HINGEDGEEISCHECKED_INI, HingeEdgeMachining)
m_HingeEdgeMachining = HingeEdgeMachining
Dim TopMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_TOPISCHECKED_INI, TopMachining)
m_TopMachining = TopMachining
Dim BottomMachining As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHINING, K_BOTTOMISCHECKED_INI, BottomMachining)
m_BottomMachining = BottomMachining
' carico i valori di overmaterial
Dim LockEdgeOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_LOCKEDGEOVERMATERIAL_INI, "", LockEdgeOverMaterial)
Utility.ConvertCompoConfig(LockEdgeOverMaterial, 100)
m_LockEdgeOverMaterial = LockEdgeOverMaterial
Dim HingeEdgeOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_HINGEDGEOVERMATERIAL_INI, "", HingeEdgeOverMaterial)
Utility.ConvertCompoConfig(HingeEdgeOverMaterial, 100)
m_HingeEdgeOverMaterial = HingeEdgeOverMaterial
Dim TopOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_TOPOVERMATERIAL_INI, "", TopOverMaterial)
Utility.ConvertCompoConfig(TopOverMaterial, 100)
m_TopOverMaterial = TopOverMaterial
Dim BottomOverMaterial As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_BOTTOMOVERMATERIAL_INI, "", BottomOverMaterial)
Utility.ConvertCompoConfig(BottomOverMaterial, 100)
m_BottomOverMaterial = BottomOverMaterial
' carico l'ordinamento delle componenti
DefaultGetPrivateProfileList(S_COMPOORDER, K_COMPOORDER_INI, DdfFile.CompoListOrder)
' carico l'ordinamento dei bottoni
DefaultGetPrivateProfileList(S_COMPOOPANELORDER_INI, K_COMPOORDER_INI, m_CompoPaneOrder)
'carico i colori da associare agli errori
Dim sColor As String = String.Empty
Dim ColorConvert As SolidColorBrush
DefaultGetPrivateProfileString("Error", "Value", "Red", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorErrorValue = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "MissingParameter", "Yellow", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorMissingParameter = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "MissingFile", "Red", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorLoadByDefault = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "ValueAndMissing", "Red", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorErrorAndMissing = sColor
Catch ex As Exception
End Try
End If
'-----------------------------------------------------------------------------------------------------------------
Dim ThicknessJamb As String = String.Empty
DefaultGetPrivateProfileString(S_SIZEJAMB, K_THICKNESS, "25", ThicknessJamb)
Utility.ConvertCompoConfig(ThicknessJamb, 100)
m_ThicknessJamb = ThicknessJamb
Dim WidthJamb As String = String.Empty
DefaultGetPrivateProfileString(S_SIZEJAMB, K_WIDTH, "25", WidthJamb)
Utility.ConvertCompoConfig(WidthJamb, 100)
m_WidthJamb = WidthJamb
Dim LightUp As String = String.Empty
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTUP, "25", LightUp)
Utility.ConvertCompoConfig(LightUp, 100)
m_LightUp = LightUp
Dim LightLock As String = String.Empty
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTLOCK, "25", LightLock)
Utility.ConvertCompoConfig(LightLock, 100)
m_LightLock = LightLock
Dim LightHinge As String = String.Empty
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTHINGE, "25", LightHinge)
Utility.ConvertCompoConfig(LightHinge, 100)
m_LightHinge = LightHinge
Dim LightBottom As String = String.Empty
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTBOTTOM, "25", LightBottom)
Utility.ConvertCompoConfig(LightBottom, 100)
m_LightBottom = LightBottom
DefaultGetPrivateProfileList(S_DOORSNUMBER, K_DOORSLISTNUMBER, m_DoorsListNumber)
Dim DoorsNumber As String = String.Empty
DefaultGetPrivateProfileString(S_DOORSNUMBER, K_DOORSELECTEDTNUMBER, "0", DoorsNumber)
m_DoorsNumber = DoorsNumber
Dim ThicknessHead As String = String.Empty
DefaultGetPrivateProfileString(S_OVERLAP, K_THICKNESSHEAD, "0", ThicknessHead)
Utility.ConvertCompoConfig(ThicknessHead, 100)
m_ThicknessHead = ThicknessHead
Dim OverlapHinge As String = String.Empty
DefaultGetPrivateProfileString(S_OVERLAP, K_OVERLAPHINGE, "0", OverlapHinge)
Utility.ConvertCompoConfig(OverlapHinge, 100)
m_OverlapHinge = OverlapHinge
Dim OverlapLock As String = String.Empty
DefaultGetPrivateProfileString(S_OVERLAP, K_OVERLAPLOCK, "0", OverlapLock)
Utility.ConvertCompoConfig(OverlapLock, 100)
m_OverlapLock = OverlapLock
Dim Exterior As Boolean = False
DefaultGetPrivateProfilesMachining(S_OVERLAP, K_EXTERIOR, Exterior)
m_Exterior = Exterior
Dim OverlapTop As String = String.Empty
DefaultGetPrivateProfileString(S_OVERLAP, K_OVERLAPTOP, "0", OverlapTop)
Utility.ConvertCompoConfig(OverlapTop, 100)
m_OverlapTop = OverlapTop
Dim DeltaT As String = String.Empty
DefaultGetPrivateProfileString(S_OVERLAP, K_DELTAT, "0", DeltaT)
Utility.ConvertCompoConfig(DeltaT, 100)
m_DeltaThickness = DeltaT
Dim TotalDim As Boolean = False
DefaultGetPrivateProfilesMachining(S_TOTALDIMENSION, K_STATIC, TotalDim)
m_TotalDimension = TotalDim
Dim TotalH As String = String.Empty
DefaultGetPrivateProfileString(S_TOTALDIMENSION, K_TOTALHEIGHT, "82", TotalH)
Utility.ConvertCompoConfig(TotalH, 100)
m_TotalHeight = TotalH
Dim TotalW As String = String.Empty
DefaultGetPrivateProfileString(S_TOTALDIMENSION, K_TOTALWIDTH, "38", TotalW)
Utility.ConvertCompoConfig(TotalW, 100)
m_TotalWidth = TotalW
Dim TopChk As Boolean = False
DefaultGetPrivateProfilesMachining(S_PART, K_TOPJAMB, TopChk)
m_TopJambChk = TopChk
Dim LeftChk As Boolean = False
DefaultGetPrivateProfilesMachining(S_PART, K_LEFTJAMB, LeftChk)
m_LeftJambChk = LeftChk
Dim BottomChk As Boolean = False
DefaultGetPrivateProfilesMachining(S_PART, K_BOTTOMJAMB, BottomChk)
m_BottomJambChk = BottomChk
Dim RightChk As Boolean = False
DefaultGetPrivateProfilesMachining(S_PART, K_RIGHTJAMB, RightChk)
m_RightJambChk = RightChk
Dim LockEdgeTypeAss As String = String.Empty
DefaultGetPrivateProfileString(S_EDGEASSEMBLY, K_LOCKEDGE, ConstGen.BEVEL_SQUARED, LockEdgeTypeAss)
For Index = 0 To OptionsVM.FrameEdgeTypeList.Count - 1
If OptionsVM.FrameEdgeTypeList(Index).Name = LockEdgeTypeAss Then
m_LockEdgeTypeAssembly = OptionsVM.FrameEdgeTypeList(Index)
End If
Next
Dim HingeEdgeTypeAss As String = String.Empty
DefaultGetPrivateProfileString(S_EDGEASSEMBLY, K_HINGEDGE_INI, ConstGen.BEVEL_SQUARED, HingeEdgeTypeAss)
For Index = 0 To OptionsVM.FrameEdgeTypeList.Count - 1
If OptionsVM.FrameEdgeTypeList(Index).Name = HingeEdgeTypeAss Then
m_HingeEdgeTypeAssembly = OptionsVM.FrameEdgeTypeList(Index)
End If
Next
Dim TopTypeAss As String = String.Empty
DefaultGetPrivateProfileString(S_EDGEASSEMBLY, K_TOPEDGE_INI, ConstGen.BEVEL_SQUARED, TopTypeAss)
For Index = 0 To OptionsVM.FrameEdgeTypeList.Count - 1
If OptionsVM.FrameEdgeTypeList(Index).Name = TopTypeAss Then
m_TopTypeAssembly = OptionsVM.FrameEdgeTypeList(Index)
End If
Next
Dim BottomTypeAss As String = String.Empty
DefaultGetPrivateProfileString(S_EDGEASSEMBLY, K_BOTTOMEDGE_INI, ConstGen.BEVEL_SQUARED, BottomTypeAss)
For Index = 0 To OptionsVM.FrameEdgeTypeList.Count - 1
If OptionsVM.FrameEdgeTypeList(Index).Name = BottomTypeAss Then
m_BottomTypeAssembly = OptionsVM.FrameEdgeTypeList(Index)
End If
Next
' Carico i valori booleani associati alla lavorazione
Dim LockEdgeMachiningAss As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHININGASSEMBLY, K_LOCKEDGEISCHECKED_INI, LockEdgeMachiningAss)
m_LockEdgeMachiningAssembly = LockEdgeMachiningAss
Dim HingeEdgeMachiningAss As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHININGASSEMBLY, K_HINGEDGEEISCHECKED_INI, HingeEdgeMachiningAss)
m_HingeEdgeMachiningAssembly = HingeEdgeMachiningAss
Dim TopMachiningAss As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHININGASSEMBLY, K_TOPISCHECKED_INI, TopMachiningAss)
m_TopMachiningAssembly = TopMachiningAss
Dim BottomMachiningAss As Boolean = False
DefaultGetPrivateProfilesMachining(S_MACHININGASSEMBLY, K_BOTTOMISCHECKED_INI, BottomMachiningAss)
m_BottomMachiningAssembly = BottomMachiningAss
' carico i valori di overmaterial
Dim LockEdgeOverMaterialAss As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_LOCKEDGEOVERMATERIAL_INI, "0", LockEdgeOverMaterialAss)
Utility.ConvertCompoConfig(LockEdgeOverMaterialAss, 100)
m_LockEdgeOverMaterialAssembly = LockEdgeOverMaterialAss
Dim HingeEdgeOverMaterialAss As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_HINGEDGEOVERMATERIAL_INI, "0", HingeEdgeOverMaterialAss)
Utility.ConvertCompoConfig(HingeEdgeOverMaterialAss, 100)
m_HingeEdgeOverMaterialAssembly = HingeEdgeOverMaterialAss
Dim TopOverMaterialAss As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_TOPOVERMATERIAL_INI, "0", TopOverMaterialAss)
Utility.ConvertCompoConfig(TopOverMaterialAss, 100)
m_TopOverMaterialAssembly = TopOverMaterialAss
Dim BottomOverMaterialAss As String = String.Empty
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_BOTTOMOVERMATERIAL_INI, "0", BottomOverMaterialAss)
Utility.ConvertCompoConfig(BottomOverMaterialAss, 100)
m_BottomOverMaterialAssembly = BottomOverMaterialAss
' Lista messaggi per launcher
m_OptionLauncherList.Add(EgtMsg(50206)) 'Open Window
m_OptionLauncherList.Add(EgtMsg(50207)) 'Last Project
m_OptionLauncherList.Add(EgtMsg(50208)) 'Empty
End Sub
Friend sub LoadMaterialList (ByVal List As ObservableCollection(Of string))
If IsNothing(List) then Return
For Each Material In List
Dim Item As String() = Material.Split("/"c)
If Item.Count < 2 then
m_MaterialList.Add(New MaterialType(Item(0),Item(0)))
else
m_MaterialList.Add(New MaterialType(Item(0),Item(1)))
End If
Next
End Sub
Friend Sub LoadPropertiesList(List As ObservableCollection(Of String), ByRef ListToBeLoaded As ObservableCollection(Of PropertyItem))
If List.Count = 0 Then
m_DisableProperties = Visibility.Collapsed
Return
End If
For Each Item In List
If Item.Contains("-") Then
Dim ItemSlpit() As String = Item.Split("-"c)
If ItemSlpit(1).Contains("1") Then
Dim SubItemSplit() As String = ItemSlpit(0).Split("/"c)
If SubItemSplit.Count > 1 Then
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(1), True))
Else
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(0), True))
End If
Else
Dim SubItemSplit() As String = ItemSlpit(0).Split("/"c)
If SubItemSplit.Count > 1 Then
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(1), False))
Else
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(0), False))
End If
End If
Else
Dim SubItemSplit() As String = Item.Split("/"c)
If SubItemSplit.Count > 1 Then
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(1), False))
Else
ListToBeLoaded.Add(New PropertyItem(SubItemSplit(0), SubItemSplit(0), False))
End If
End If
Next
Dim bNoneExists As Boolean = false
For Each Item in ListToBeLoaded
If Item.Name = NONE_DDF then
bNoneExists = true
Exit for
End If
Next
If Not bNoneExists then
ListToBeLoaded.Add(New PropertyItem(NONE_DDF, EgtMsg(50703), False))
End If
End Sub
Friend Sub CreateNewPropertiesList(ByRef List As ObservableCollection(Of PropertyItem), ByRef SelectedMaterial As MaterialType)
If OptionModule.m_DisableProperties <> Visibility.Visible Then Return
If OptionModule.m_MaterialList.Count > 1 Then
SelectedMaterial = OptionModule.m_MaterialList(0)
List = OptionModule.m_MaterialList(0).PropertiesList
return
End if
' configurazione senza materiali
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 OptionModule.m_PropertListJamb.Count > 0 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)
End If
If Not bBevelDown Then
EdgeTypeList.Remove(ConstGen.BEVEL_DOWN)
End If
End Sub
Private Sub LoadSwingTypeList(ByRef List As List(Of String))
If List.Count = 0 Then Return
For Each ItemSwing In List
Dim Vis As Visibility = Visibility.Visible
If ItemSwing.Contains("-"c) Then
Dim ItemSwingVisibility() As String = ItemSwing.Split("-"c)
ItemSwing = ItemSwingVisibility(0)
If ItemSwingVisibility(1) = "0" Then Vis = Visibility.Collapsed
End If
If ItemSwing.Contains("/"c) Then
Dim ItemAlias() As String = ItemSwing.Split("/"c)
Dim Swing As New SwingItemTypeList(ItemAlias(0))
Swing.VisibilityName = Vis
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)
Swing.VisibilityName = Vis
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
If Not m_SwingList(Index).VisibilityName = Visibility.Visible Then Continue For
' 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
If Not m_SwingList(Index).VisibilityName = Visibility.Visible Then Continue For
' 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
If Not m_SwingList(Index).VisibilityName = Visibility.Visible Then Continue For
' 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
' controllo che lo swing letto da ddf appartenga alla lista degli swing visibili ( solo su porta Singola)
If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then
For Each ItemSwing In OptionModule.m_SwingList
If Trim(SwingDDF) = Trim(ItemSwing.Name) And Not ItemSwing.VisibilityName = Visibility.Visible Then
If SwingDDF.Contains("HR") Then
SwingDDF = Trim(SwingDDF)
SwingDDF = SwingDDF.Substring(0, 1) & "HR"
Else
SwingDDF = Trim(SwingDDF)
SwingDDF = SwingDDF.Substring(0, 2)
End If
Exit For
End If
Next
End If
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
Return Visibility.Visible
ElseIf m_Disposition.Name <> ConstGen.BEVEL_UP And m_Disposition.Name <> ConstGen.BEVEL_DOWN Then
Return Visibility.Visible
Else
Return Visibility.Collapsed
End If
End Function
Public Function DispositionBoolean() As Boolean
' per rendere selezionabile la disposizione dalla pagina delle opzioni
If IsNothing(m_sDisposition) Then
Return True
ElseIf m_sDisposition <> ConstGen.BEVEL_UP And m_sDisposition <> ConstGen.BEVEL_DOWN Then
Return True
Else
Return False
End If
End Function
End Module
' Classe che identifica una lingua del programma con nome e path del file dei messaggi
Public Class Language
Private m_sName As String
Private m_sFilePath As String
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Public Property FilePath As String
Get
Return m_sFilePath
End Get
Set(value As String)
m_sFilePath = value
End Set
End Property
Sub New(sName As String, sFilePath As String)
Me.Name = sName
Me.FilePath = sFilePath
End Sub
End Class