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