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 String 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_DisableProperties As Visibility Friend m_PropertList As New ObservableCollection(Of PropertyItem) Friend Enum LauncherWindow As Integer Open_window = 0 Open_last_project = 1 Empty = 2 End Enum Friend Enum ConfigType As Integer Door = 0 Assembly = 1 End Enum Friend m_SmartHelp As Boolean = False 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_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_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 calssse 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 Dim DisableOrder As Integer = GetMainPrivateProfileInt(S_GENERAL, "DisableOrder", 0) m_DisableWindowOrder = If(DisableOrder = 0, False, True) Dim DisableTemplate As Integer = GetMainPrivateProfileInt(S_GENERAL, "DisableTemplate", 0) m_DisableTemplate = If(DisableTemplate = 0, False, True) ' imposto unità di misura per interfaccia utente m_bIsMmUnit = (GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0) EgtSetUiUnits(m_bIsMmUnit) If m_bIsMmUnit Then m_SelectedMeasureUnit = m_MeasureUnitList(0) Else m_SelectedMeasureUnit = m_MeasureUnitList(1) End If ' imposto tipo di avvio Dim nOptionLauncher As Integer = GetMainPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 0) ' leggo il direttorio di salvataggio dei progetti Dim sMyProjectDir As String = String.Empty If GetMainPrivateProfileString(S_DOORS, K_MYPROJECTDIR, "", sMyProjectDir) <> 0 Then ' se non esiste il direttorio If Not Directory.Exists(sMyProjectDir) Then ' manntego l'accesso a quello di default EgtOutLog("Warning : " & sMyProjectDir & " does not exist") ' controllo che il direttorio che era stato passato di default esista If Not Directory.Exists(IniFile.m_MyProjectDir) Then ' creo il direttorio Directory.CreateDirectory(IniFile.m_MyProjectDir) End If Else IniFile.m_MyProjectDir = sMyProjectDir End If End If Dim sTemplateDir As String = String.Empty If GetMainPrivateProfileString(S_DOORS, K_TEMPLATEDIR, "", sTemplateDir) <> 0 Then ' se non esiste il direttorio If Not Directory.Exists(sTemplateDir) Then ' manntego l'accesso a quello di default EgtOutLog(String.Format(EgtMsg(50180), sTemplateDir)) ' controllo che il direttorio che era stato passato di default esista If Not Directory.Exists(IniFile.m_TemplateDir) Then ' creo il direttorio Directory.CreateDirectory(IniFile.m_TemplateDir) End If Else IniFile.m_TemplateDir = sTemplateDir End If End If Dim sMachinDir As String = String.Empty If GetMainPrivateProfileString(S_DOORS, K_MACHINDIR, "", sMachinDir) <> 0 Then If Not Directory.Exists(sMachinDir) Then ' mantengo l'accesso a quello di default EgtOutLog(String.Format(EgtMsg(50180), sMachinDir)) ' controllo che il direttorio che era stato passato di default esista Else IniFile.m_MachinProject = sMachinDir End If End If Dim nSmartHelp As Integer = 1 nSmartHelp = GetMainPrivateProfileInt(S_GENERAL, K_SMARTHELP, 1) If nSmartHelp = 0 Then m_SmartHelp = True Else m_SmartHelp = False End If Dim nDisableHM As Integer = 1 nDisableHM = GetMainPrivateProfileInt(S_GENERAL, K_DISABLEHM, 1) If nDisableHM = 0 Then m_DisableHM = True Else m_DisableHM = False End If Dim nDisableDeleteCommandHM As Integer = 1 nDisableDeleteCommandHM = GetMainPrivateProfileInt(S_GENERAL, K_DISABLEDELETECOMMANDHM, 1) If nDisableDeleteCommandHM = 0 Then m_DisableDeleteCommandHM = True Else m_DisableDeleteCommandHM = False End If Dim nDisableProperties As Integer = 1 nDisableProperties = GetMainPrivateProfileInt(S_GENERAL, "DisableProperties", 1) If nDisableProperties = 0 Then m_DDisableProperties = Visibility.Visible Else m_DisableProperties = Visibility.Collapsed End If ' leggo il tipo di Bevel selezionato Dim BevelUp As Visibility DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELU_INI, BevelUp) m_bBevelUp = BevelUp Dim BevelDown As Visibility DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELD_INI, BevelDown) m_bBevelDown = BevelDown '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) ' 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) m_SwingTypeList = SwingTypeList Dim Swing As String = String.Empty DefaultGetPrivateProfileString(S_SIZE_INI, K_SWING_INI, ConstGen.RIGHTHAND, Swing) m_Swing = Swing LoadSwingList() Dim Weight As String = String.Empty DefaultGetPrivateProfileString(S_SIZE_INI, K_WEIGHT_INI, "25", Weight) m_Weight = Weight 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 m_OptionLauncherList.Add(EgtMsg(50206)) m_OptionLauncherList.Add(EgtMsg(50207)) m_OptionLauncherList.Add(EgtMsg(50208)) ' assegno il valore selezioato dalla lista m_SelectedOptionLauncher = m_OptionLauncherList(nOptionLauncher) 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)) For Each Item In OptionModule.m_PropertList 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 LoadSwingList() For Index As Integer = 0 To 3 m_SwingTypeListSinlgeDoor.Add(m_SwingTypeList(Index)) Next For Index As Integer = 4 To 7 m_SwingTypeListLeftDoor.Add(m_SwingTypeList(Index)) Next For Index As Integer = 8 To 11 m_SwingTypeListRightDoor.Add(m_SwingTypeList(Index)) Next 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