Files
EgtDOORCreator/OptionsWindow/OptionModule.vb
T
2025-03-12 11:48:57 +01:00

1196 lines
52 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Friend Module OptionModule
' flag per modalità di visualizzazione file (solo lettura)
Friend ReadOnlyDDF As Boolean = False
' gestione bottoni nella barra SpecialPanel
Friend IsActiveSpecialPanel As Boolean = False
' flag per forzare l'aggiornamento delle dimensioni anta dei file DDT
Friend AdjustDDT As Boolean = False
Friend FileNameFromArgs As String = String.Empty
Friend SaveFileNameFromArgs As String = String.Empty
' Forza la scrittura dello swing Left(L..) oppure Right(R..)
Friend ForcesSideSwing As String = String.Empty
' Parametri che contengono lista delle lingue disponibili e lingua selezionata
Friend m_LanguageList As New ObservableCollection(Of Language)
Friend m_SelectedLanguage As Language
' Elenco delle MTable disponibili nella configurazione corrente
Friend m_MTableList As New ObservableCollection(Of MTable)
Friend m_SelectedMTable As MTable
Friend m_CurrentMachine As String = String.Empty
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
' Parametri per la scelta della versione di stampa ddf
Friend m_sVersionDDF As String = "2"
Friend m_sSpaceTabCompo As String = ""
Friend m_sSpace1Tab As String = ConstCompo.DDF_SPACE3
Friend m_sSpace2Tab As String = ConstCompo.DDF_SPACE5
Friend m_sSpace3Tab As String = ConstCompo.DDF_SPACE5
Friend m_sSpaceHype As String = ConstCompo.DDF_HYPHEN
Friend m_DisableInvertBevel As Visibility = Visibility.Collapsed
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 m_EnableBrowse As Boolean = False
Friend m_nDispostionScreen As Integer = 0
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_AskMeAgainConfirm As Boolean = False
Friend m_DisableHM As Boolean = False
Friend m_DisableDeleteCommandHM As Boolean = False
Friend m_CompoPanelFrameVisibility As Visibility = Visibility.Visible
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_OverlapBottom As String
Friend m_ThicknessBottom As String
Friend m_DepthBottom As String
Friend m_DeltaBottom 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 ColorModifyingParamRef As String = "Yellow"
Friend ColorDisableChapter As String = "Gray"
Friend ColorRefCompo As String = "Gray"
Friend ColorNewGeometry As String = "Black"
Friend m_CompoPaneOrder As List(Of String) = New List(Of String)
Friend m_ExtLineLen As Double
Friend m_ArrowLen As Double
Friend m_TextDist As Double
Friend m_LenIsMM As Integer
Friend m_DecDigit As Integer
Friend m_Font As String
Friend m_TextHeight As Double
Friend m_DimensionHardware As Visibility
Friend m_DimensionDoor As Visibility
' 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
' verifico se il programma è in modalità di sola lettura DDF
If (IniFile.m_nKeyOptions And KEY_OPT.READ_ONLY) <> 0 Then
OptionModule.ReadOnlyDDF = True
ElseIf GetMainPrivateProfileInt(S_GENERAL, "ReadOnly", 0) <> 0 Then
OptionModule.ReadOnlyDDF = True
Else
OptionModule.ReadOnlyDDF = False
End If
' valore indentazione programma
Dim sVer As String = String.Empty
If GetMainPrivateProfileString(S_GENERAL, K_DDFVERSION, "1", sVer) > 0 Then
Dim sItem() As String = sVer.Split(";"c)
m_sVersionDDF = sItem(0).Trim
End If
If m_sVersionDDF = "2" Then
m_sSpaceTabCompo = ConstCompo.DDF_SPACE2
m_sSpace1Tab = ConstCompo.DDF_SPACE2
m_sSpace2Tab = ConstCompo.DDF_SPACE4
m_sSpace3Tab = ConstCompo.DDF_SPACE6
m_sSpaceHype = ConstCompo.DDF_HYPHEN_2
End If
' 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))
' leggo come deve essere visualizzato il programma
Dim nDispositionScreen As Integer = GetMainPrivateProfileInt(S_GENERAL, "DispositionScreen", 0)
If nDispositionScreen < 0 Or nDispositionScreen > 2 Then
m_nDispostionScreen = 0
Else
m_nDispostionScreen = nDispositionScreen
End If
' 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 & " (Directory Template)"))
' 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 & " (Directory Machine)"))
End If
Dim sListLabelDir As String = String.Empty
If GetMainPrivateProfileString(S_REPORT, K_REPORTDIR, "", 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 & " (Directory Report)"))
End If
Dim sListLabelFile As String = String.Empty
If GetMainPrivateProfileString(S_REPORT, K_CURRENTREPORT, "", 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 & " (File Report)"))
End If
Dim sEgtCam5EXE As String = String.Empty
' AndAlso File.Exists(sListLabelFile)
If GetMainPrivateProfileString(S_GENERAL, K_EGTCAMEXE, "", sEgtCam5EXE) > 0 Then
IniFile.m_sEgtCam5EXEPath = sEgtCam5EXE
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_DisableWindowOrder = (GetMainPrivateProfileInt(S_GENERAL, "DisableOrder", 0) <> 0)
m_DisableTemplate = (GetMainPrivateProfileInt(S_GENERAL, "DisableTemplate", 0) <> 0)
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_DisableInvertBevel = If(GetMainPrivateProfileInt(S_GENERAL, K_INVERTBEVEL, 1) = 0, Visibility.Visible, Visibility.Collapsed)
m_VisibilityBtnDesign = If(GetMainPrivateProfileInt(S_REPORT, K_REPORTDESIGNER, 0) = 1, Visibility.Visible, Visibility.Hidden)
m_EnableBrowse = If(GetMainPrivateProfileInt(S_REPORT, K_TEMPLATEBROWSER, 0) = 1, True, False)
m_DimensionDoor = If(GetMainPrivateProfileInt(S_REPORT, K_DOORDIMENSION, 0) = 1, Visibility.Visible, Visibility.Collapsed)
m_DimensionHardware = If(GetMainPrivateProfileInt(S_REPORT, K_HARDWAREDIMENSION, 0) = 1, Visibility.Visible, Visibility.Collapsed)
m_AskMeAgainConfirm = If(GetMainPrivateProfileInt(S_GENERAL, K_ASKMEAGAINCONFIRM, 1) = 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 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
m_CurrMaterial = m_MaterialList(0)
' 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
If GetCurrentMTableList() Then
' abilito la modifica della MTbale solo se Debug superioere a 5
End If
Dim Width As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE_INI, K_WIDTH_INI, "32", Width)
Utility.ConvertCompoConfig(Width, 9999)
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, 9999)
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, 9999)
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", "ErrorValue", "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", "Purple", 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", "ErrorValueAndMissing", "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
DefaultGetPrivateProfileString("Error", "ModifyingParamRef", "Orange", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorModifyingParamRef = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "DisableChapter", "Gray", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorDisableChapter = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "RefCompo", "Gray", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorRefCompo = sColor
Catch ex As Exception
End Try
End If
DefaultGetPrivateProfileString("Error", "NewGeometry", "Balck", sColor)
If Not String.IsNullOrEmpty(sColor) Then
Try
ColorConvert = DirectCast(New BrushConverter().ConvertFrom(sColor), SolidColorBrush)
ColorNewGeometry = sColor
Catch ex As Exception
End Try
End If
'-----------------------------------------------------------------------------------------------------------------
' SIZE JAMB
Dim ThicknessHead As String = String.Empty
DefaultGetPrivateProfileString(S_SIZEJAMB, K_THICKNESSHEAD, "0", ThicknessHead)
Utility.ConvertCompoConfig(ThicknessHead, 100)
m_ThicknessHead = ThicknessHead
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
' LIGHT
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
' OVERLAP
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 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
' THRESHOLD
Dim Exterior As Boolean = False
DefaultGetPrivateProfilesMachining(S_THRESHOLD, K_EXTERIOR, Exterior)
m_Exterior = Exterior
Dim OverlapBottom As String = String.Empty
DefaultGetPrivateProfileString(S_THRESHOLD, K_OVERLAPBOTTOM, "0", OverlapBottom)
Utility.ConvertCompoConfig(OverlapBottom, 100)
m_OverlapBottom = OverlapBottom
Dim ThicknessBottom As String = String.Empty
DefaultGetPrivateProfileString(S_THRESHOLD, K_THICKNESSBOTTOM, "0", ThicknessBottom)
Utility.ConvertCompoConfig(ThicknessBottom, 100)
m_ThicknessBottom = ThicknessBottom
Dim DepthBottom As String = String.Empty
DefaultGetPrivateProfileString(S_THRESHOLD, K_DEPTHBOTTOM, "0", DepthBottom)
Utility.ConvertCompoConfig(DepthBottom, 100)
m_DepthBottom = DepthBottom
Dim DeltaBottom As String = String.Empty
DefaultGetPrivateProfileString(S_THRESHOLD, K_DELTABOTTOM, "0", DeltaBottom)
Utility.ConvertCompoConfig(DeltaBottom, 100)
m_DeltaBottom = DeltaBottom
'--------------------------------------------------------------------------------
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
' Visualizzazione SpecialPanel
Dim btDummy As ButtonItem = Nothing
IsActiveSpecialPanel = GetMainPrivateProfileInt(S_SPECIAL, K_SPECIALENABLE, 0) <> 0 AndAlso GetPrivateProfileButton(S_SPECIAL, K_BUTTON & "1", "", btDummy)
' 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), 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 CreateNewPropertiesList(ByRef LocalPart As Part)
If OptionModule.m_DisableProperties <> Visibility.Visible Then Return
If OptionModule.m_MaterialList.Count > 0 Then
' assegno la proprietà di materiale
If Not IsNothing(LocalPart.SelectedMaterial) Then
LocalPart.SetMaterial(LocalPart.SelectedMaterial)
Else
LocalPart.SetMaterial(OptionModule.m_MaterialList(0))
End If
LocalPart.SetPropertiesList(OptionModule.m_MaterialList(0).PropertiesList)
Return
End If
' configurazione senza materiali
If LocalPart.PropertiesList.Count > 0 Then LocalPart.PropertiesList.Clear()
For Each Item In OptionModule.m_PropertList
LocalPart.PropertiesList.Add(New PropertyItem(Item.Name, Item.GraphicName, Item.IsChecked))
Next
End Sub
Friend Sub CreateNewPropertiesListJamb(ByRef LocalPart As Part)
If OptionModule.m_DisableProperties <> Visibility.Visible Then Return
If OptionModule.m_MaterialList.Count > 0 Then
LocalPart.SetMaterial(OptionModule.m_MaterialList(0))
LocalPart.SetPropertiesList(OptionModule.m_MaterialList(0).PropertiesList)
Return
End If
' configurazione senza materiali
If LocalPart.PropertiesList.Count > 0 Then LocalPart.PropertiesList.Clear()
For Each Item In OptionModule.m_PropertList
LocalPart.PropertiesList.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
Public Function GetCurrentMTableList() As Boolean
If String.IsNullOrEmpty(IniFile.m_sDoorsDirPath) Then Return False
m_MTableList.Clear()
Dim sMTableDir As String = IniFile.m_sDoorsDirPath & "\MTables"
If Not Directory.Exists(sMTableDir) Then
EgtOutLog("Directory " & "'" & sMTableDir & "'" & " not found.")
Return False
End If
Dim Items As String() = Directory.GetFiles(sMTableDir)
' recupero i file che hanno estemsione *.mtl e non sono esclusi
Dim ExcludeList As List(Of String) = GetExludeList()
For Each MTableFile As String In Items
If MTableFile.EndsWith(".mtl") Then
Dim sName As String = Path.GetFileNameWithoutExtension(MTableFile).ToLower
Dim sPath As String = MTableFile
Dim bIsValid As Boolean = True
For Each ExcludedItem As String In ExcludeList
If sName.ToLower.Contains(ExcludedItem) Then
bIsValid = False
Exit For
End If
Next
If bIsValid Then
sName = Path.GetFileNameWithoutExtension(MTableFile)
Dim LocalMTable As New MTable(sName.Trim, sPath.Trim)
m_MTableList.Add(LocalMTable)
End If
End If
Next
If m_MTableList.Count < 1 Then
EgtOutLog("Not valid file in directory " & "'" & sMTableDir & "'" & ".")
Return False
End If
' leggo il nome della MTable attiva
Dim sSelectedMTable As String = String.Empty
Dim bSelected As Boolean = False
If GetMainPrivateProfileString(S_DOORS, K_MTABLE, "", sSelectedMTable) <> 0 Then
For Each ItemFile As MTable In m_MTableList
If ItemFile.FilePath.ToLower = sSelectedMTable.Trim.ToLower Then
m_SelectedMTable = ItemFile
bSelected = True
Exit For
End If
Next
End If
If Not bSelected Then m_SelectedMTable = m_MTableList(0)
Return True
End Function
Private Function GetExludeList() As List(Of String)
Dim LocalList As New List(Of String)
Dim sVal As String = String.Empty
GetMainPrivateProfileString(S_DOORS, "Exclude", "", sVal)
If Not String.IsNullOrWhiteSpace( sVal) Then
Dim sItems As String() = sVal.Split(","c)
For Each Item As String In sItems
LocalList.Add(Item.Trim)
Next
End If
Return LocalList
End Function
Public Sub GetCurrentMachineInMTable()
' aggiorno il file Config.ini dell'EgtCAM5
EgtLuaExecFile(IniFile.m_sConfigDir & "\ChangeConfig.lua")
' assegno variabili
Dim sDir As String = IniFile.m_sDoorsDirPath.Replace("\", "/")
EgtLuaSetGlobStringVar("CCD.NewBaseDir", sDir)
EgtLuaSetGlobStringVar("CCD.NewMTable", m_SelectedMTable.Name)
' eseguo la funzione che esegue la scrittura delle variabili
EgtLuaCallFunction("CCD.GetCurrentMachineInMTable")
Dim sVal As String = ""
EgtLuaGetGlobStringVar("CCD.NewMachineName", sVal)
OptionModule.m_CurrentMachine = sVal
EgtLuaResetGlobVar("CCD")
End Sub
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
Public Class MTable
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