Files
EgtDOORCreator/OptionsWindow/OptionModule.vb
T
Nicola Pievani a02663d88e EgtDOORCreator 1.8e3 :
- è stato aggiunto il comando "template" che permette di salvare la porta corrente come porta template (con estensione .ddt);
- durante la creazione di una nuova porta è possibile caricare un file .ddt come nuova porta;
- la creazione di un file .ddt in qualsiasi momento non influenza la creazione del file .ddf corrente.
2017-05-11 09:58:31 +00:00

257 lines
11 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtUILib
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)({"mm", "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 Enum LauncherWindow
Open_window = 0
Open_last_project = 1
Empty = 2
End Enum
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_CompoPaneOrder As List(Of String) = New List(Of String)
' inizializzazione lettura variabili ad inizio programma
Friend Sub InitOptionModule()
' 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 GetPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir) = 0 Then
sMsgDir = IniFile.m_sConfigDir
End If
' Leggo file messaggi
Dim sMsgName As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgName)
Dim sMsgFilePath As String = sMsgDir & "\EgalTechEng.txt"
For Each Language In OptionModule.m_LanguageList
If Language.Name = sMsgName Then
OptionModule.m_SelectedLanguage = Language
sMsgFilePath = sMsgDir & "\" & Language.FilePath
End If
Next
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog(EgtMsg(50127))
End If
' imposto unità di misura per interfaccia utente
m_bIsMmUnit = (GetPrivateProfileInt(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
Dim nOptionLauncher As Integer
' leggo il valore
If Not IsNothing(CStr(GetPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 1))) Then
nOptionLauncher = GetPrivateProfileInt(S_LAUNCHERWINDOW, K_LAUNCHER, 1)
End If
' leggo il direttorio di salvataggio dei progetti
Dim sMyProjectDir As String = String.Empty
If GetPrivateProfileString(S_DOORS, K_MYPROJECTDIR, "", sMyProjectDir) <> 0 Then
IniFile.m_MyProjectDir = sMyProjectDir
End If
Dim sTemplateDir As String = String.Empty
If GetPrivateProfileString(S_DOORS, K_TEMPLATEDIR, "", sTemplateDir) <> 0 Then
IniFile.m_TemplateDir = sTemplateDir
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
' Leggo le dimensioni della porta dal file Default.ini
Dim Width As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_WIDTH_INI, "", Width)
m_Width = Width
Dim Height As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_HEIGHT_INI, "", Height)
m_Height = Height
Dim Thickness As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_THICKNESS_INI, "", Thickness)
m_Thickness = Thickness
' carico i valori associati allo swing della porta
Dim SwingTypeList As New List(Of String)
DefaultGetPrivateProfileList(S_SIZE, K_SWING_LIST_INI, SwingTypeList)
m_SwingTypeList = SwingTypeList
Dim Swing As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_SWING_INI, "", Swing)
m_Swing = Swing
Dim Weight As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_WEIGHT_INI, "", Weight)
m_Weight = Weight
Dim WeightVisibility As Visibility = Visibility.Collapsed
DefaultGetPrivateProfilesVisibility(S_SIZE, K_WEIGHTISCHECKED_INI, WeightVisibility)
Door.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)
'For Index = 0 To EdgeTypeList.Count - 1
' Door.m_EdgeTypeList.Add(New EdgeType(EdgeTypeList(Index), True))
'Next
m_StaticEdgeTypeList = EdgeTypeList
OptionsViewModel.CreateEdgeTypeList()
' carico i valori associati agli spigoli
Dim LockEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_LOCKEDGE, "", LockEdgeType)
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
If OptionsViewModel.EdgeTypeList(Index).Name = LockEdgeType Then
m_LockEdgeType = OptionsViewModel.EdgeTypeList(Index)
End If
Next
Dim HingeEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_HINGEDGE_INI, "", HingeEdgeType)
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
If OptionsViewModel.EdgeTypeList(Index).Name = HingeEdgeType Then
m_HingeEdgeType = OptionsViewModel.EdgeTypeList(Index)
End If
Next
Dim TopType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_TOPEDGE_INI, "", TopType)
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
If OptionsViewModel.EdgeTypeList(Index).Name = TopType Then
m_TopType = OptionsViewModel.EdgeTypeList(Index)
End If
Next
Dim BottomType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_BOTTOMEDGE_INI, "", BottomType)
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
If OptionsViewModel.EdgeTypeList(Index).Name = BottomType Then
m_BottomType = OptionsViewModel.EdgeTypeList(Index)
End If
Next
' 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_COMPOORDER, K_COMPOORDER_INI, m_CompoPaneOrder)
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 SetEdgeTypeList(EdgeTypeList As ObservableCollection(Of String), bBevelUp As Boolean, bBevelDown As Boolean)
If Not bBevelUp Then
EdgeTypeList.Remove("BU")
End If
If Not bBevelDown Then
EdgeTypeList.Remove("BD")
End If
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