0887fdf3fa
- gestione creazione/apertura singola porta.
745 lines
33 KiB
VB.net
745 lines
33 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_DisableProperties As Visibility
|
|
Friend m_PropertList As New ObservableCollection(Of PropertyItem)
|
|
Friend m_PropertListJamb As New ObservableCollection(Of PropertyItem)
|
|
|
|
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_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 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 AndAlso Directory.Exists(sTemplateDir) Then
|
|
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 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)
|
|
|
|
' 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 la lista delle proprietà
|
|
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)
|
|
If PropertyList.Count > 0 Then LoadPropertiesList(PropertyList, m_PropertListJamb)
|
|
|
|
' Leggo le dimensioni della porta dal file Default.ini
|
|
Dim Width As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_SIZE_INI, K_WIDTH_INI, "32", Width)
|
|
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)
|
|
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)
|
|
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)
|
|
DefaultGetPrivateProfileObservableCollection(S_EDGE, K_EDGETYPE_LIST_INI, EdgeTypeList)
|
|
m_StaticEdgeTypeList = EdgeTypeList
|
|
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)
|
|
m_LockEdgeOverMaterial = LockEdgeOverMaterial
|
|
Dim HingeEdgeOverMaterial As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_HINGEDGEOVERMATERIAL_INI, "", HingeEdgeOverMaterial)
|
|
m_HingeEdgeOverMaterial = HingeEdgeOverMaterial
|
|
Dim TopOverMaterial As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_TOPOVERMATERIAL_INI, "", TopOverMaterial)
|
|
m_TopOverMaterial = TopOverMaterial
|
|
Dim BottomOverMaterial As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIAL, K_BOTTOMOVERMATERIAL_INI, "", BottomOverMaterial)
|
|
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)
|
|
'-----------------------------------------------------------------------------------------------------------------
|
|
|
|
Dim ThicknessJamb As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_SIZEJAMB, K_THICKNESS, "25", ThicknessJamb)
|
|
m_ThicknessJamb = ThicknessJamb
|
|
Dim WidthJamb As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_SIZEJAMB, K_WIDTH, "25", WidthJamb)
|
|
m_WidthJamb = WidthJamb
|
|
|
|
Dim LightUp As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTUP, "25", LightUp)
|
|
m_LightUp = LightUp
|
|
Dim LightLock As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTLOCK, "25", LightLock)
|
|
m_LightLock = LightLock
|
|
Dim LightHinge As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTHINGE, "25", LightHinge)
|
|
m_LightHinge = LightHinge
|
|
Dim LightBottom As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_LIGHT, K_LIGHTBOTTOM, "25", LightBottom)
|
|
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)
|
|
m_ThicknessHead = ThicknessHead
|
|
Dim OverlapHinge As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERLAP, K_OVERLAPHINGE, "0", OverlapHinge)
|
|
m_OverlapHinge = OverlapHinge
|
|
Dim OverlapLock As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERLAP, K_OVERLAPLOCK, "0", OverlapLock)
|
|
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)
|
|
m_OverlapTop = OverlapTop
|
|
Dim DeltaT As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERLAP, K_DELTAT, "0", DeltaT)
|
|
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)
|
|
m_TotalHeight = TotalH
|
|
Dim TotalW As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_TOTALDIMENSION, K_TOTALWIDTH, "38", TotalW)
|
|
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, "", LockEdgeOverMaterialAss)
|
|
m_LockEdgeOverMaterialAssembly = LockEdgeOverMaterialAss
|
|
Dim HingeEdgeOverMaterialAss As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_HINGEDGEOVERMATERIAL_INI, "", HingeEdgeOverMaterialAss)
|
|
m_HingeEdgeOverMaterialAssembly = HingeEdgeOverMaterialAss
|
|
Dim TopOverMaterialAss As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_TOPOVERMATERIAL_INI, "", TopOverMaterialAss)
|
|
m_TopOverMaterialAssembly = TopOverMaterialAss
|
|
Dim BottomOverMaterialAss As String = String.Empty
|
|
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_BOTTOMOVERMATERIAL_INI, "", BottomOverMaterialAss)
|
|
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 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
|
|
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 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
|