1179 lines
41 KiB
VB.net
1179 lines
41 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
Imports EgtBEAMWALL.Core
|
|
Imports MS.Internal
|
|
Imports Ionic.Zip
|
|
|
|
Public Class ConfigurationPageVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Public Enum ConfigSubPages As Integer
|
|
GENERAL = 0
|
|
MACHINE = 1
|
|
PDFEDITOR = 2
|
|
End Enum
|
|
|
|
Private m_QParametersModified As Boolean = False
|
|
Friend ReadOnly Property QParametersModified As Boolean
|
|
Get
|
|
Return m_QParametersModified
|
|
End Get
|
|
End Property
|
|
Friend Sub ResetQParametersModified()
|
|
m_QParametersModified = False
|
|
End Sub
|
|
|
|
Private m_SelConfigSubPage As ConfigSubPages = ConfigSubPages.GENERAL
|
|
Public Property SelConfigSubPage As Integer
|
|
Get
|
|
Return m_SelConfigSubPage
|
|
End Get
|
|
Set(value As Integer)
|
|
m_SelConfigSubPage = value
|
|
If m_SelConfigSubPage = ConfigSubPages.GENERAL Then
|
|
' Controllo se il file CustomConfig Json è stato modificato
|
|
If Map.refStrategyManagerVM.bIsModifyStrategy Then Map.refStrategyManagerVM.SaveCustomConfigJson()
|
|
SetGeneral_Visibility(Visibility.Visible)
|
|
SetStrategyManager_Visibility(Visibility.Collapsed)
|
|
SetPDFEditor_Visibility(Visibility.Collapsed)
|
|
ElseIf m_SelConfigSubPage = ConfigSubPages.MACHINE Then
|
|
' Controllo se il file CustomConfig Json è stato modificato
|
|
If Map.refStrategyManagerVM.bIsModifyStrategy Then Map.refStrategyManagerVM.SaveCustomConfigJson()
|
|
SetGeneral_Visibility(Visibility.Collapsed)
|
|
SetStrategyManager_Visibility(Visibility.Collapsed)
|
|
SetPDFEditor_Visibility(Visibility.Collapsed)
|
|
ElseIf m_SelConfigSubPage = ConfigSubPages.PDFEDITOR Then
|
|
' Controllo se il file CustomConfig Json è stato modificato
|
|
If Map.refStrategyManagerVM.bIsModifyStrategy Then Map.refStrategyManagerVM.SaveCustomConfigJson()
|
|
SetPDFEditor_Visibility(Visibility.Visible)
|
|
SetGeneral_Visibility(Visibility.Collapsed)
|
|
SetStrategyManager_Visibility(Visibility.Collapsed)
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
' flag modifica parametri Macchina
|
|
Friend bModifyMachParam As Boolean
|
|
|
|
Public ReadOnly Property MachinePanelVM As MachinePanelVM
|
|
Get
|
|
Return Map.refMachinePanelVM
|
|
End Get
|
|
End Property
|
|
|
|
'Private m_ConfigMachTableList As New ObservableCollection(Of MachTable)
|
|
'Public Property ConfigMachTableList As ObservableCollection(Of MachTable)
|
|
' Get
|
|
' Return m_ConfigMachTableList
|
|
' End Get
|
|
' Set(value As ObservableCollection(Of MachTable))
|
|
' m_ConfigMachTableList = value
|
|
' End Set
|
|
'End Property
|
|
|
|
Public ReadOnly Property Custom_Visibility As Visibility
|
|
Get
|
|
If QBTLParamVMList(0).bIsP Then
|
|
Return Visibility.Collapsed
|
|
Else
|
|
Return Visibility.Visible
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
' lista dei parametri Q di un Process
|
|
Private m_QBTLParamVMList_View As CollectionView = Nothing
|
|
Protected m_QBTLParamVMList As New ObservableCollection(Of QBTLParamVM)
|
|
Public Property QBTLParamVMList As ObservableCollection(Of QBTLParamVM)
|
|
Get
|
|
Return m_QBTLParamVMList
|
|
End Get
|
|
Set(value As ObservableCollection(Of QBTLParamVM))
|
|
m_QBTLParamVMList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_PRCList As New ObservableCollection(Of PRC)
|
|
Public ReadOnly Property PRCList As ObservableCollection(Of PRC)
|
|
Get
|
|
Return m_PRCList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_LanguageList As New ObservableCollection(Of Language)
|
|
Public ReadOnly Property LanguageList As ObservableCollection(Of Language)
|
|
Get
|
|
Return m_LanguageList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_UnitMeasureList As List(Of String) = New List(Of String)({"inch", "mm"})
|
|
Public ReadOnly Property UnitMeasureList As List(Of String)
|
|
Get
|
|
Return m_UnitMeasureList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelectedLanguage As Language
|
|
Public Property SelectedLanguage As Language
|
|
Get
|
|
Return m_SelectedLanguage
|
|
End Get
|
|
Set(value As Language)
|
|
If value IsNot m_SelectedLanguage Then
|
|
m_SelectedLanguage = value
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Public Property SelMeasureUnit As Integer
|
|
Get
|
|
Return If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH)
|
|
End Get
|
|
Set(value As Integer)
|
|
' salvo unità di misura precedente
|
|
Dim PrevMeasureUnit As MeasureUnitOpt = If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH)
|
|
If value <> PrevMeasureUnit Then
|
|
' cambio unità di misura
|
|
EgtSetUiUnits(DirectCast(value, MeasureUnitOpt) = MeasureUnitOpt.MM)
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SectionTime As Double
|
|
Public Property SectionTime As String
|
|
Get
|
|
Return DoubleToString(m_SectionTime, 5)
|
|
End Get
|
|
Set(value As String)
|
|
Dim dVal As Double = 0
|
|
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
|
m_SectionTime = dVal
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_PartTime As Double
|
|
Public Property PartTime As String
|
|
Get
|
|
Return DoubleToString(m_PartTime, 5)
|
|
End Get
|
|
Set(value As String)
|
|
Dim dVal As Double = 0
|
|
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
|
m_PartTime = dVal
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bPrintLabel_IsChecked As Boolean
|
|
Public Property bPrintLabel_IsChecked As String
|
|
Get
|
|
Return m_bPrintLabel_IsChecked
|
|
End Get
|
|
Set(value As String)
|
|
m_bPrintLabel_IsChecked = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bBackupRunning As Boolean = False
|
|
Public ReadOnly Property bBackupRunning As Boolean
|
|
Get
|
|
Return m_bBackupRunning
|
|
End Get
|
|
End Property
|
|
|
|
Private m_bRestoreRunning As Boolean = False
|
|
Public ReadOnly Property bRestoreRunning As Boolean
|
|
Get
|
|
Return m_bRestoreRunning
|
|
End Get
|
|
End Property
|
|
|
|
Private m_bExternalBackupActive As Boolean
|
|
Public Property bExternalBackupActive As Boolean
|
|
Get
|
|
Return m_bExternalBackupActive
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bExternalBackupActive = value
|
|
WriteMainPrivateProfileString(S_BACKUPANDRESTORE, K_EXTERNALBACKUPACTIVE, If(m_bExternalBackupActive, 1, 0))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ExternalBackupFolderPath As String
|
|
Public Property ExternalBackupFolderPath As String
|
|
Get
|
|
Return m_ExternalBackupFolderPath
|
|
End Get
|
|
Set(value As String)
|
|
m_ExternalBackupFolderPath = value
|
|
WriteMainPrivateProfileString(S_BACKUPANDRESTORE, K_EXTERNALFILEPATH, m_ExternalBackupFolderPath)
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ReminderList As New List(Of IdNameStruct)({New IdNameStruct(0, EgtMsg(61988)), New IdNameStruct(1, EgtMsg(61989)), New IdNameStruct(2, EgtMsg(61990)), New IdNameStruct(7, EgtMsg(61991)), New IdNameStruct(14, EgtMsg(61992)), New IdNameStruct(30, EgtMsg(61993))})
|
|
Public ReadOnly Property ReminderList As List(Of IdNameStruct)
|
|
Get
|
|
Return m_ReminderList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelReminder As IdNameStruct
|
|
Public Property SelReminder As IdNameStruct
|
|
Get
|
|
Return m_SelReminder
|
|
End Get
|
|
Set(value As IdNameStruct)
|
|
m_SelReminder = value
|
|
WriteMainPrivateProfileString(S_BACKUPANDRESTORE, K_REMINDERFREQUENCY, m_SelReminder.Id)
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bGeneral_Visibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property General_Visibility As Visibility
|
|
Get
|
|
Return m_bGeneral_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetGeneral_Visibility(value As Visibility)
|
|
m_bGeneral_Visibility = value
|
|
NotifyPropertyChanged(NameOf(General_Visibility))
|
|
End Sub
|
|
|
|
Private m_bStrategyManager_Visibility As Visibility = Visibility.Visible
|
|
Public ReadOnly Property StrategyManager_Visibility As Visibility
|
|
Get
|
|
Return m_bStrategyManager_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetStrategyManager_Visibility(value As Visibility)
|
|
m_bStrategyManager_Visibility = value
|
|
NotifyPropertyChanged(NameOf(StrategyManager_Visibility))
|
|
End Sub
|
|
|
|
Private m_bMachine_Visibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property Machine_Visibility As Visibility
|
|
Get
|
|
Return m_bMachine_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetMachine_Visibility(value As Visibility)
|
|
m_bMachine_Visibility = value
|
|
NotifyPropertyChanged(NameOf(Machine_Visibility))
|
|
End Sub
|
|
|
|
Private m_bPDFEditor_Visibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property PDFEditor_Visibility As Visibility
|
|
Get
|
|
Return m_bPDFEditor_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetPDFEditor_Visibility(value As Visibility)
|
|
m_bPDFEditor_Visibility = value
|
|
NotifyPropertyChanged(NameOf(PDFEditor_Visibility))
|
|
End Sub
|
|
|
|
Friend m_MachineParameter_Visibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property MachineParameter_Visibility As Visibility
|
|
Get
|
|
Return m_MachineParameter_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetMachineParameter_Visibility(value As Visibility)
|
|
m_MachineParameter_Visibility = value
|
|
NotifyPropertyChanged(NameOf(MachineParameter_Visibility))
|
|
End Sub
|
|
|
|
Private m_bVerifyImportBTL_IsChecked As Boolean = False
|
|
Public Property bVerifyImportBTL_IsChecked As String
|
|
Get
|
|
Return m_bVerifyImportBTL_IsChecked
|
|
End Get
|
|
Set(value As String)
|
|
m_bVerifyImportBTL_IsChecked = value
|
|
WriteMainPrivateProfileString(S_GENERAL, K_VERIFYIMPORTBTL, If(m_bVerifyImportBTL_IsChecked, 1, 0))
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdSave As ICommand
|
|
Private m_cmdChooseExternalBackupFolderPath As ICommand
|
|
Private m_cmdBackup As ICommand
|
|
Private m_cmdRestore As ICommand
|
|
|
|
#Region "Messages"
|
|
|
|
Public ReadOnly Property L_Msg As String
|
|
Get
|
|
Return EgtMsg(61803)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property T_Msg As String
|
|
Get
|
|
Return EgtMsg(61804)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property PRC_Msg As String
|
|
Get
|
|
Return EgtMsg(61805)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property PND_Msg As String
|
|
Get
|
|
Return EgtMsg(61809)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Type_Msg As String
|
|
Get
|
|
Return EgtMsg(61850)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property NAM_Msg As String
|
|
Get
|
|
Return EgtMsg(61608)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Description_Msg As String
|
|
Get
|
|
Return EgtMsg(61603)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Default_Msg As String
|
|
Get
|
|
Return EgtMsg(61802)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Min_Msg As String
|
|
Get
|
|
Return EgtMsg(61616)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Max_Msg As String
|
|
Get
|
|
Return EgtMsg(61617)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CurrentLanguage_Msg As String
|
|
Get
|
|
Return EgtMsg(6501)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LanguageAdvert_Msg As String
|
|
Get
|
|
Return EgtMsg(6502)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MMUnits_Msg As String
|
|
Get
|
|
Return EgtMsg(6540)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Nesting_Msg As String
|
|
Get
|
|
Return EgtMsg(61829)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SectionTime_Msg As String
|
|
Get
|
|
Return EgtMsg(61806)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property PartTime_Msg As String
|
|
Get
|
|
Return EgtMsg(61807)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DisplayIndex_Msg As String
|
|
Get
|
|
Return EgtMsg(61842)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ColumnName_Msg As String
|
|
Get
|
|
Return EgtMsg(61843)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CanUserReorder_Msg As String
|
|
Get
|
|
Return EgtMsg(61844)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CanUserResize_Msg As String
|
|
Get
|
|
Return EgtMsg(61845)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CanUserSort_Msg As String
|
|
Get
|
|
Return EgtMsg(61846)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property IsReadOnly_Msg As String
|
|
Get
|
|
Return EgtMsg(61847)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Visible_Msg As String
|
|
Get
|
|
Return EgtMsg(61848)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property PrintLabel_Msg As String
|
|
Get
|
|
Return EgtMsg(61894)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property General_Msg As String
|
|
Get
|
|
Return EgtMsg(62535).ToUpper()
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Strategy_Msg As String
|
|
Get
|
|
Return EgtMsg(62569).ToUpper()
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Machine_Msg As String
|
|
Get
|
|
Return EgtMsg(62537).ToUpper()
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property PDFEditor_Msg As String
|
|
Get
|
|
Return EgtMsg(62538).ToUpper()
|
|
End Get
|
|
End Property
|
|
|
|
' Messaggi Versione
|
|
|
|
Public ReadOnly Property CtrlVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61739).ToUpper()
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ActVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61740)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AllVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61741)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property VersionFrom_Msg As String
|
|
Get
|
|
Return EgtMsg(61742)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property NumVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61743)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Version_Msg As String
|
|
Get
|
|
Return EgtMsg(61744)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DateVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61745)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StateVersion_Msg As String
|
|
Get
|
|
Return EgtMsg(61746)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
#End Region ' Fields & Properties
|
|
|
|
#Region "Constructor"
|
|
|
|
Sub New()
|
|
' imposto riferimento in Map
|
|
Map.SetRefConfigurationPageVM(Me)
|
|
' Leggo nome lingua corrente
|
|
Dim sLanguage As String = String.Empty
|
|
GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sLanguage)
|
|
' Leggo elenco lingue disponibili da file ini e imposto lingua corrente
|
|
Dim nIndex As Integer = 1
|
|
While True
|
|
Dim ReadLanguage As Language = GetMainPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
|
|
If IsNothing(ReadLanguage) Then Exit While
|
|
m_LanguageList.Add(ReadLanguage)
|
|
If String.Compare(ReadLanguage.Name, sLanguage, True) = 0 Then
|
|
m_SelectedLanguage = ReadLanguage
|
|
End If
|
|
nIndex += 1
|
|
End While
|
|
' Inizializzo la lingua corrente
|
|
m_SelectedLanguage = m_LanguageList(0)
|
|
Dim sMsgName As String = String.Empty
|
|
IniFile.GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgName)
|
|
For Each Language In m_LanguageList
|
|
If Language.Name = sMsgName Then
|
|
m_SelectedLanguage = Language
|
|
Exit For
|
|
End If
|
|
Next
|
|
' leggo SectionTime e PartTime
|
|
GetMainPrivateProfileString(S_NEST, K_SECTIONTIME, "", SectionTime)
|
|
GetMainPrivateProfileString(S_NEST, K_PARTTIME, "", PartTime)
|
|
m_bPrintLabel_IsChecked = (GetMainPrivateProfileInt(S_PRINTER, K_ENABLE, 0) <> 0)
|
|
' leggo dati per backup
|
|
GetMainPrivateProfileString(S_BACKUPANDRESTORE, K_EXTERNALFILEPATH, "", m_ExternalBackupFolderPath)
|
|
Dim nDefaultReminderFrequency As Integer = GetMainPrivateProfileInt(S_BACKUPANDRESTORE, K_REMINDERFREQUENCY, 1)
|
|
SelReminder = m_ReminderList.FirstOrDefault(Function(x) x.Id = nDefaultReminderFrequency)
|
|
Dim nExternalBackupActive As Integer = GetMainPrivateProfileInt(S_BACKUPANDRESTORE, K_EXTERNALBACKUPACTIVE, 0)
|
|
m_bExternalBackupActive = nExternalBackupActive > 0
|
|
SetMachineParameter_Visibility(Visibility.Collapsed)
|
|
SetMachine_Visibility(Visibility.Collapsed)
|
|
' Recupero flag per verificare se fare solo l'importazione del btl o anche la verifica
|
|
m_bVerifyImportBTL_IsChecked = GetMainPrivateProfileInt(S_GENERAL, K_VERIFYIMPORTBTL, 0) <> 0
|
|
NotifyPropertyChanged(NameOf(bExternalBackupActive))
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
#Region "METHODS"
|
|
|
|
' funzione che verifica la modifica dei valori in Configurazione e ne chiede il salvataggio
|
|
Friend Sub VerifyConfigPageModification()
|
|
Dim bExitFor = False
|
|
Select Case m_SelConfigSubPage
|
|
Case ConfigSubPages.GENERAL
|
|
' aggiorno tutti i valori senza verificare modifiche
|
|
WriteMainPrivateProfileString(S_GENERAL, K_MESSAGES, m_SelectedLanguage.Name)
|
|
WriteMainPrivateProfileString(S_SCENE, K_MMUNITS, SelMeasureUnit.ToString())
|
|
WriteMainPrivateProfileString(S_NEST, K_SECTIONTIME, DoubleToString(m_SectionTime, 5))
|
|
WriteMainPrivateProfileString(S_NEST, K_PARTTIME, DoubleToString(m_PartTime, 5))
|
|
WriteMainPrivateProfileString(S_PRINTER, K_ENABLE, If(m_bPrintLabel_IsChecked, 1, 0))
|
|
Case ConfigSubPages.MACHINE
|
|
'Map.refMachinePanelVM.VerifyConfigPageModification()
|
|
End Select
|
|
End Sub
|
|
|
|
' funzione che verifica l'inserimento della password quando si edita un parametro Macchina
|
|
Friend Function VerifyConfigPagePassword() As Boolean
|
|
' Display message, title, and default value.
|
|
Dim InputPwdWndVM As New InputPwdWndVM()
|
|
Dim InputPwdWnd As New OnlyProdInputPwdWndV(Application.Current.MainWindow, InputPwdWndVM)
|
|
If InputPwdWnd.ShowDialog() Then
|
|
' Lettura PWD dall'INI e confronto
|
|
Dim sPwdIni As String = String.Empty
|
|
If GetMainPrivateProfileString(S_MACH, K_PASSWORD, "", sPwdIni) <> 0 Then
|
|
If sPwdIni = InputPwdWndVM.sPassword Then Return True
|
|
End If
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
' funzione che crea l'elenco dei parametri P o Q di un Process
|
|
Public Function CreateProcessParams(GRPType As Integer, PRC As Integer, IsP As Boolean)
|
|
Dim ParamIndex As Integer = 1
|
|
Dim TempList As New List(Of QBTLParamVM)
|
|
Dim NewBTLParam As BTLParamM = Nothing
|
|
' leggo tutti i parametri P o Q del Process
|
|
ParamIndex = 1
|
|
TempList = New List(Of QBTLParamVM)
|
|
If IsP Then
|
|
While BTLIniFile.GetBeamPrivateProfileParam(GRPType, PRC, 0, IsP, ParamIndex, Nothing, NewBTLParam)
|
|
TempList.Add(New QBTLParamVM(NewBTLParam, GRPType, PRC))
|
|
ParamIndex += 1
|
|
End While
|
|
Else
|
|
If CurrentMachine.nType = MachineType.BOTH Then
|
|
' se macchina di tipo BOTH carico i Q di tipo BEAM e poi di tipo WALL
|
|
While BTLIniFile.GetBeamPrivateProfileParam(GRPType, PRC, IsP, ParamIndex, Nothing, NewBTLParam, MachineType.BEAM)
|
|
TempList.Add(New QBTLParamVM(NewBTLParam, GRPType, PRC))
|
|
ParamIndex += 1
|
|
End While
|
|
ParamIndex = 1
|
|
While BTLIniFile.GetBeamPrivateProfileParam(GRPType, PRC, IsP, ParamIndex, Nothing, NewBTLParam, MachineType.WALL)
|
|
TempList.Add(New QBTLParamVM(NewBTLParam, GRPType, PRC))
|
|
ParamIndex += 1
|
|
End While
|
|
Else
|
|
' altrimenti carico solo quelli corrispondenti al tipo della macchina selezionata
|
|
While BTLIniFile.GetBeamPrivateProfileParam(GRPType, PRC, IsP, ParamIndex, Nothing, NewBTLParam, CurrentMachine.nType)
|
|
TempList.Add(New QBTLParamVM(NewBTLParam, GRPType, PRC))
|
|
ParamIndex += 1
|
|
End While
|
|
End If
|
|
End If
|
|
Return TempList
|
|
End Function
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "SaveCommand"
|
|
|
|
|
|
Public ReadOnly Property SaveCommand As ICommand
|
|
Get
|
|
If m_cmdSave Is Nothing Then
|
|
m_cmdSave = New Command(AddressOf Save)
|
|
End If
|
|
Return m_cmdSave
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Save()
|
|
VerifyConfigPageModification()
|
|
End Sub
|
|
|
|
#End Region ' SaveCommand
|
|
|
|
#Region "ChooseExternalBackupFolderPath"
|
|
|
|
Public ReadOnly Property ChooseExternalBackupFolderPath_Command As ICommand
|
|
Get
|
|
If m_cmdChooseExternalBackupFolderPath Is Nothing Then
|
|
m_cmdChooseExternalBackupFolderPath = New Command(AddressOf ChooseExternalBackupFolderPath)
|
|
End If
|
|
Return m_cmdChooseExternalBackupFolderPath
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub ChooseExternalBackupFolderPath()
|
|
Dim FileDialog As New Microsoft.Win32.SaveFileDialog() With {.InitialDirectory = m_ExternalBackupFolderPath,
|
|
.CheckFileExists = False,
|
|
.CheckPathExists = False,
|
|
.DefaultExt = ".folder",
|
|
.OverwritePrompt = False,
|
|
.FileName = "Select this ",
|
|
.Title = "Backup & Restore File Path"}
|
|
If FileDialog.ShowDialog() Then
|
|
m_ExternalBackupFolderPath = Path.GetDirectoryName(FileDialog.FileName)
|
|
WriteMainPrivateProfileString(S_BACKUPANDRESTORE, K_EXTERNALFILEPATH, m_ExternalBackupFolderPath)
|
|
NotifyPropertyChanged(NameOf(ExternalBackupFolderPath))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' ChooseExternalBackupFolderPath
|
|
|
|
#Region "Backup"
|
|
|
|
Public ReadOnly Property Backup_Command As ICommand
|
|
Get
|
|
If m_cmdBackup Is Nothing Then
|
|
m_cmdBackup = New Command(AddressOf BackupCmd)
|
|
End If
|
|
Return m_cmdBackup
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub BackupCmd()
|
|
Backup(True)
|
|
End Sub
|
|
|
|
Public Sub Backup(bLoadingWindow As Boolean)
|
|
m_bBackupRunning = True
|
|
' verifico se esiste cartella backup, altrimenti la creo
|
|
Dim sBackupFolder As String = Map.refMainWindowVM.MainWindowM.sDataDir & "\Backup"
|
|
If Directory.Exists(sBackupFolder) Then
|
|
' verifico se devo cancellare backup vecchi
|
|
Dim nBackupCount As Integer = 0
|
|
Dim YearDirList() As String = Directory.GetDirectories(sBackupFolder)
|
|
For YearIndex = YearDirList.Length - 1 To 0 Step -1
|
|
Dim nYear As Integer = 0
|
|
Integer.TryParse(Path.GetFileName(YearDirList(YearIndex)), nYear)
|
|
Dim sYearDir As String = sBackupFolder & "\" & nYear
|
|
Dim MonthDirList() As String = Directory.GetDirectories(sYearDir)
|
|
For MonthIndex = MonthDirList.Length - 1 To 0 Step -1
|
|
Dim nMonth As Integer = 0
|
|
Integer.TryParse(Path.GetFileName(MonthDirList(MonthIndex)), nMonth)
|
|
Dim sMonthDir As String = sYearDir & "\" & nMonth
|
|
Dim DayDirList() As String = Directory.GetDirectories(sMonthDir)
|
|
For DayIndex = DayDirList.Length - 1 To 0 Step -1
|
|
Dim nDay As Integer = 0
|
|
Integer.TryParse(Path.GetFileName(DayDirList(DayIndex)), nDay)
|
|
If nBackupCount > 3 Then
|
|
Directory.Delete(sBackupFolder & "\" & nYear & "\" & nMonth & "\" & nDay, True)
|
|
End If
|
|
Next
|
|
DayDirList = Directory.GetDirectories(sMonthDir)
|
|
If IsNothing(DayDirList) OrElse DayDirList.Length = 0 Then
|
|
Directory.Delete(sMonthDir)
|
|
End If
|
|
Next
|
|
MonthDirList = Directory.GetDirectories(sYearDir)
|
|
If IsNothing(MonthDirList) OrElse MonthDirList.Length = 0 Then
|
|
Directory.Delete(sYearDir)
|
|
End If
|
|
Next
|
|
Else
|
|
Directory.CreateDirectory(sBackupFolder)
|
|
End If
|
|
sBackupFolder &= "\" & DateTime.Now().Year
|
|
If Not Directory.Exists(sBackupFolder) Then
|
|
Directory.CreateDirectory(sBackupFolder)
|
|
End If
|
|
sBackupFolder &= "\" & DateTime.Now().Month
|
|
If Not Directory.Exists(sBackupFolder) Then
|
|
Directory.CreateDirectory(sBackupFolder)
|
|
End If
|
|
sBackupFolder &= "\" & DateTime.Now().Day
|
|
If Not Directory.Exists(sBackupFolder) Then
|
|
Directory.CreateDirectory(sBackupFolder)
|
|
End If
|
|
sBackupFolder &= "\" & DateTime.Now().ToString("yyyyMMddHHmmss") & ".bwbck"
|
|
Dim sBackupZipPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\DbBackup.zip"
|
|
' apro finestra di caricamento
|
|
If bLoadingWindow Then LoadingWndHelper.OpenLoadingWnd(ActiveIds.BACKUP, 2, EgtMsg(63022), EgtMsg(63023), 15) ' Backup ' Database backup
|
|
Dim bOk As Boolean = True
|
|
' backup del Db corrente
|
|
Try
|
|
DataLayer.DbConfig.DataBaseDumpToFile(sBackupZipPath)
|
|
Catch ex As Exception
|
|
MessageBox.Show(EgtMsg(62103), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
bOk = False
|
|
End Try
|
|
If bOk AndAlso File.Exists(sBackupZipPath) Then
|
|
If bLoadingWindow Then LoadingWndHelper.UpdateLoadingWnd(ActiveIds.BACKUP, 2, EgtMsg(63024), 15, 100) ' Projects backup
|
|
' backup dei progetti correnti
|
|
Try
|
|
Using zip As New Ionic.Zip.ZipFile(sBackupFolder, Console.Out)
|
|
zip.AlternateEncodingUsage = ZipOption.Always
|
|
zip.AlternateEncoding = Text.Encoding.UTF8
|
|
zip.CompressionMethod = CompressionMethod.None
|
|
' aggiungo Db
|
|
zip.AddItem(sBackupZipPath, "")
|
|
' aggiungo cartella progetti
|
|
Dim sProjectFolder As String = Map.refMainWindowVM.MainWindowM.sDataDir & "\"
|
|
Dim sKey As String = ""
|
|
EgtGetKeyInfo(sKey)
|
|
sKey = sKey.Replace(" ", "")
|
|
Dim sUserFolder As String = ""
|
|
If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
|
|
sUserFolder = sKey.Substring(3, 6)
|
|
sProjectFolder &= sUserFolder
|
|
End If
|
|
zip.AddItem(sProjectFolder, sUserFolder)
|
|
' salvo lo zip
|
|
zip.Save()
|
|
End Using
|
|
Catch ex As Exception
|
|
MessageBox.Show(EgtMsg(62103), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
bOk = False
|
|
End Try
|
|
End If
|
|
' se esiste zip del Db, lo elimino
|
|
If File.Exists(sBackupZipPath) Then
|
|
File.Delete(sBackupZipPath)
|
|
End If
|
|
' se richiesto faccio copia su external source
|
|
If m_bExternalBackupActive Then
|
|
If Directory.Exists(m_ExternalBackupFolderPath) Then
|
|
CopyForExternalBackup(sBackupFolder, m_ExternalBackupFolderPath)
|
|
Else
|
|
MessageBox.Show(EgtMsg(62104), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) ' External folder does not exist or is not reachable! Copy to external folder impossible!
|
|
End If
|
|
End If
|
|
'chiudo finestra di caricamento
|
|
If bLoadingWindow Then LoadingWndHelper.CloseLoadingWnd(ActiveIds.BACKUP)
|
|
m_bBackupRunning = False
|
|
End Sub
|
|
|
|
Private Async Sub CopyForExternalBackup(sBackupFile As String, sExternalBackupFolder As String)
|
|
Using SourceStream As FileStream = File.Open(sBackupFile, FileMode.Open)
|
|
Dim sExternalBackupFile As String = sExternalBackupFolder & "\" & Path.GetFileName(sBackupFile)
|
|
Using DestinationStream As FileStream = File.Create(sExternalBackupFile)
|
|
Await SourceStream.CopyToAsync(DestinationStream)
|
|
End Using
|
|
End Using
|
|
End Sub
|
|
|
|
#End Region ' Backup
|
|
|
|
#Region "Restore"
|
|
|
|
Public ReadOnly Property Restore_Command As ICommand
|
|
Get
|
|
If m_cmdRestore Is Nothing Then
|
|
m_cmdRestore = New Command(AddressOf Restore)
|
|
End If
|
|
Return m_cmdRestore
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Restore()
|
|
' recupero processo del supervisore
|
|
Dim sSupervisorName As String = "EgtBEAMWALL.SupervisorR32"
|
|
Dim localProc As Process() = Process.GetProcessesByName(sSupervisorName)
|
|
' verifico che sia chiuso
|
|
If localProc.Length > 0 Then
|
|
MessageBox.Show(EgtMsg(62105), EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning) ' Please verify the machine is stoped and close the supervisor before proceding with the restore operation!
|
|
Return
|
|
End If
|
|
m_bRestoreRunning = True
|
|
' verifico se esiste backup
|
|
Dim sBackupFolder As String = Map.refMainWindowVM.MainWindowM.sDataDir & "\Backup"
|
|
Dim nYear As Integer = 0
|
|
Dim nMonth As Integer = 0
|
|
Dim nDay As Integer = 0
|
|
Dim sRestorePath As String = ""
|
|
If Directory.Exists(sBackupFolder) Then
|
|
Dim YearDirList() As String = Directory.GetDirectories(sBackupFolder)
|
|
For YearIndex = YearDirList.Length - 1 To 0 Step -1
|
|
nYear = 0
|
|
Integer.TryParse(Path.GetFileName(YearDirList(YearIndex)), nYear)
|
|
Dim sYearDir As String = sBackupFolder & "\" & nYear
|
|
Dim MonthDirList() As String = Directory.GetDirectories(sYearDir)
|
|
For MonthIndex = MonthDirList.Length - 1 To 0 Step -1
|
|
nMonth = 0
|
|
Integer.TryParse(Path.GetFileName(MonthDirList(MonthIndex)), nMonth)
|
|
Dim sMonthDir As String = sYearDir & "\" & nMonth
|
|
Dim DayDirList() As String = Directory.GetDirectories(sMonthDir)
|
|
For DayIndex = DayDirList.Length - 1 To 0 Step -1
|
|
nDay = 0
|
|
Integer.TryParse(Path.GetFileName(DayDirList(DayIndex)), nDay)
|
|
Dim sDayDir As String = sMonthDir & "\" & nDay
|
|
Dim VersionList() As String = Directory.GetFiles(sDayDir)
|
|
If VersionList.Length > 0 Then
|
|
Dim nMaxVersion As Int64 = 0
|
|
For Each item As String In VersionList
|
|
Dim nTmp As Int64 = 0
|
|
Int64.TryParse(Path.GetFileNameWithoutExtension(item), nTmp)
|
|
nMaxVersion = Math.Max(nMaxVersion, nTmp)
|
|
Next
|
|
If nMaxVersion > 0 Then
|
|
sRestorePath = sDayDir & "\" & nMaxVersion & ".bwbck"
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
If Not String.IsNullOrEmpty(sRestorePath) Then Exit For
|
|
Next
|
|
If Not String.IsNullOrEmpty(sRestorePath) Then Exit For
|
|
Next
|
|
End If
|
|
If String.IsNullOrEmpty(sRestorePath) Then
|
|
MessageBox.Show(EgtMsg(62106), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) ' Restore impossible! Last backup not found!
|
|
m_bRestoreRunning = False
|
|
Return
|
|
End If
|
|
If MessageBox.Show(String.Format(EgtMsg(62107), nYear, nMonth, nDay), EgtMsg(15002), MessageBoxButton.OKCancel, MessageBoxImage.Warning) <> MessageBoxResult.OK Then 'Are you sure you want to restore the last backup from {0}\{1}\{2}? If you proceed you will lose actual data!
|
|
m_bRestoreRunning = False
|
|
Return
|
|
End If
|
|
Dim bDoBackup = False
|
|
Select Case MessageBox.Show(EgtMsg(62108), EgtMsg(15003), MessageBoxButton.YesNoCancel, MessageBoxImage.Information) ' Do you want to do a backup of the current project before proceding with the restore?
|
|
Case MessageBoxResult.Yes
|
|
bDoBackup = True
|
|
Case MessageBoxResult.No
|
|
bDoBackup = False
|
|
Case MessageBoxResult.Cancel
|
|
MessageBox.Show(EgtMsg(62109), EgtMsg(15002), MessageBoxButton.OK, MessageBoxImage.Warning)
|
|
m_bRestoreRunning = False
|
|
Return
|
|
End Select
|
|
' apro finestra di caricamento
|
|
LoadingWndHelper.OpenLoadingWnd(ActiveIds.RESTORE, 3, EgtMsg(63025), EgtMsg(63026), If(bDoBackup, 40, 10)) ' Restore ' Database Restore
|
|
If bDoBackup Then
|
|
Backup(False)
|
|
End If
|
|
' recupero cartella corrente dei progetti
|
|
Dim sProjectFolder As String = Map.refMainWindowVM.MainWindowM.sDataDir
|
|
Dim sKey As String = ""
|
|
EgtGetKeyInfo(sKey)
|
|
sKey = sKey.Replace(" ", "")
|
|
Dim sUserFolder As String = ""
|
|
If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
|
|
sUserFolder = sKey.Substring(3, 6)
|
|
End If
|
|
If Directory.Exists(sProjectFolder & "\" & sUserFolder) Then
|
|
' elimino cartella dei progetti
|
|
Directory.Delete(sProjectFolder & "\" & sUserFolder, True)
|
|
End If
|
|
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.RESTORE, 2, EgtMsg(63027), If(bDoBackup, 40, 10), 80) ' Restore data extraction
|
|
' estraggo lo zip nella cartella Temp
|
|
Dim sRestoreDir As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\Restore"
|
|
If Directory.Exists(sRestoreDir) Then
|
|
Directory.Delete(sRestoreDir, True)
|
|
End If
|
|
Directory.CreateDirectory(sRestoreDir)
|
|
Dim bOk As Boolean = True
|
|
' apro file zip
|
|
Try
|
|
Using zip As New Ionic.Zip.ZipFile(sRestorePath, Console.Out)
|
|
' estraggo file da zip
|
|
zip.ExtractAll(sRestoreDir)
|
|
End Using
|
|
Catch ex1 As Exception
|
|
EgtOutLog("Error! Impossible importing Recovery file " & sRestorePath & "!")
|
|
EgtOutLog("Exception in zip: " & ex1.ToString())
|
|
MessageBox.Show(EgtMsg(62110), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) ' Impossible importing Recovery file!
|
|
bOk = False
|
|
End Try
|
|
Dim sBackupTempPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\DbRestore"
|
|
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.RESTORE, 3, EgtMsg(63028), 80, 100) ' Database restore
|
|
If bOk Then
|
|
' restore del Db
|
|
Try
|
|
DataLayer.DbConfig.DataBaseRestoreFromFile(sRestoreDir & "\DbBackup.zip", "", sBackupTempPath)
|
|
Catch ex As Exception
|
|
MessageBox.Show(EgtMsg(62111), EgtMsg(15001), MessageBoxButton.OK, MessageBoxImage.Error) ' Restore failed! Impossible to restore the backup Database
|
|
bOk = False
|
|
End Try
|
|
End If
|
|
If File.Exists(sRestoreDir & "\DbBackup.zip") Then
|
|
File.Delete(sRestoreDir & "\DbBackup.zip")
|
|
End If
|
|
If bOk Then
|
|
' sposto il backup al posto giusto
|
|
Directory.Move(sRestoreDir & "\" & sUserFolder, sProjectFolder & "\" & sUserFolder)
|
|
End If
|
|
If Directory.Exists(sRestoreDir) Then
|
|
Directory.Delete(sRestoreDir)
|
|
End If
|
|
LoadingWndHelper.CloseLoadingWnd(ActiveIds.RESTORE)
|
|
m_bRestoreRunning = False
|
|
End Sub
|
|
|
|
#End Region ' Restore
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|
|
|
|
'Public Class MachParam
|
|
' Inherits VMBase
|
|
|
|
' ' table a cui appartiene il parametro
|
|
' Private m_nParentTable As Integer
|
|
' Friend ReadOnly Property nParentTable As Integer
|
|
' Get
|
|
' Return m_nParentTable
|
|
' End Get
|
|
' End Property
|
|
|
|
' ' indice del parametro
|
|
' Private m_nParamIndex As Integer
|
|
' Friend ReadOnly Property nParamIndex As Integer
|
|
' Get
|
|
' Return m_nParamIndex
|
|
' End Get
|
|
' End Property
|
|
|
|
' ' tipo della variabile
|
|
' Private m_nType As MachParamType
|
|
' Friend ReadOnly Property nType As MachParamType
|
|
' Get
|
|
' Return m_nType
|
|
' End Get
|
|
' End Property
|
|
|
|
' ' parametri da struttura
|
|
' Private m_sName As String
|
|
' Public Property sName As String
|
|
' Get
|
|
' Return m_sName
|
|
' End Get
|
|
' Set(value As String)
|
|
' m_sName = value
|
|
' End Set
|
|
' End Property
|
|
|
|
' ' parametri da geometria
|
|
' Private m_IsModifiedValue As Boolean = False
|
|
' Private m_dValue As Double
|
|
' Private m_sValue As String
|
|
' Public Property sValue As String
|
|
' Get
|
|
' Select Case nType
|
|
' Case MachParamType.DOUBLE_
|
|
' Return DoubleToString(m_dValue, 3)
|
|
' Case MachParamType.LENGTH
|
|
' Return LenToString(m_dValue, 3)
|
|
' Case Else ' stringhe
|
|
' Return m_sValue
|
|
' End Select
|
|
' Return If(nType = MachParamType.LENGTH, LenToString(m_dValue, 3), DoubleToString(m_dValue, 3))
|
|
' End Get
|
|
' Set(value As String)
|
|
' Dim dNewValue As Double
|
|
' ' verifico se valore immesso è diverso dall'originale
|
|
' If nParentTable > 0 Then
|
|
' ' trasformo valori
|
|
' Select Case nType
|
|
' Case MachParamType.DOUBLE_
|
|
' StringToDoubleAdv(value, dNewValue, True)
|
|
' m_IsModifiedValue = Math.Abs(dNewValue - m_dValue) > EPS_SMALL
|
|
' Case MachParamType.LENGTH
|
|
' StringToLenAdv(value, dNewValue, True)
|
|
' m_IsModifiedValue = Math.Abs(dNewValue - m_dValue) > EPS_SMALL
|
|
' Case Else
|
|
' m_IsModifiedValue = String.Compare(value, m_sValue) <> 0
|
|
' End Select
|
|
' End If
|
|
' ' se valore immesso è diverso e password non inserita
|
|
' If m_IsModifiedValue AndAlso Not Map.refConfigurationPageVM.bModifyMachParam Then
|
|
' Map.refConfigurationPageVM.bModifyMachParam = Map.refConfigurationPageVM.VerifyConfigPagePassword()
|
|
' If Not Map.refConfigurationPageVM.bModifyMachParam Then
|
|
' NotifyPropertyChanged(NameOf(sValue))
|
|
' m_IsModifiedValue = False
|
|
' Return
|
|
' End If
|
|
' End If
|
|
|
|
' Select Case nType
|
|
' Case MachParamType.DOUBLE_, MachParamType.LENGTH
|
|
' UpdateParamValue(dNewValue, "")
|
|
' Case Else
|
|
' UpdateParamValue(0, value)
|
|
' End Select
|
|
|
|
' If Map.refConfigurationPageVM.bModifyMachParam Then Map.refConfigurationPageVM.VerifyConfigPageModification()
|
|
' End Set
|
|
' End Property
|
|
' Public Property dValue As Double
|
|
' Get
|
|
' Return m_dValue
|
|
' End Get
|
|
' Set(value As Double)
|
|
' m_dValue = value
|
|
' NotifyPropertyChanged(NameOf(sValue))
|
|
' End Set
|
|
' End Property
|
|
|
|
' ' descrizione del parametro
|
|
' Private m_sDescription As String
|
|
' Public Property sDescription As String
|
|
' Get
|
|
' Return m_sDescription
|
|
' End Get
|
|
' Set(value As String)
|
|
' m_sDescription = value
|
|
' End Set
|
|
' End Property
|
|
|
|
' Private Sub StdInit(nParentTable As Integer, nParamIndex As Integer, Type As MachParamType, sName As String, sDescription As String)
|
|
' m_nParentTable = nParentTable
|
|
' m_nParamIndex = nParamIndex
|
|
' m_nType = Type
|
|
' m_sName = sName
|
|
' m_sDescription = MsgToString(sDescription)
|
|
' End Sub
|
|
|
|
' ' new per double e length
|
|
' Sub New(nParentTable As Integer, nParamIndex As Integer, nType As MachParamType, sParamName As String, dValue As Double, sDescription As String)
|
|
' StdInit(nParentTable, nParamIndex, nType, sParamName, sDescription)
|
|
' m_dValue = dValue 'sValue = DoubleToString(dValue, 3)
|
|
' End Sub
|
|
|
|
' ' new per stringhe
|
|
' Sub New(nParentTable As Integer, nParamIndex As Integer, nType As MachParamType, sParamName As String, sDescription As String)
|
|
' StdInit(nParentTable, nParamIndex, nType, sParamName, sDescription)
|
|
' End Sub
|
|
|
|
' ' new per parametro vuoto
|
|
' Sub New(nType As MachParamType, nParamIndex As Integer, sParamName As String)
|
|
' StdInit(Nothing, nParamIndex, nType, sParamName, "")
|
|
' End Sub
|
|
|
|
' Friend Sub UpdateParamValue(dNewValue As Double, sNewValue As String, Optional bDraw As Boolean = True)
|
|
' Select Case nType
|
|
' Case MachParamType.DOUBLE_, MachParamType.LENGTH
|
|
' m_dValue = dNewValue
|
|
' Case MachParamType.STRING_
|
|
' m_sValue = sNewValue
|
|
' End Select
|
|
' End Sub
|
|
|
|
' Public ReadOnly Property IsModified() As Boolean
|
|
' Get
|
|
' Return m_IsModifiedValue
|
|
' End Get
|
|
' End Property
|
|
|
|
' Public Sub IsModifiedReset()
|
|
' m_IsModifiedValue = False
|
|
' End Sub
|
|
|
|
'End Class
|
|
|
|
'Public Class MachTable
|
|
' Inherits VMBase
|
|
|
|
' ' nome della table
|
|
' Private m_sName As String
|
|
' Public Property sName As String
|
|
' Get
|
|
' Return m_sName
|
|
' End Get
|
|
' Set(value As String)
|
|
' m_sName = value
|
|
' End Set
|
|
' End Property
|
|
|
|
' Private m_MachParamList As New ObservableCollection(Of MachParam)
|
|
' Public Property MachParamList As ObservableCollection(Of MachParam)
|
|
' Get
|
|
' Return m_MachParamList
|
|
' End Get
|
|
' Set(value As ObservableCollection(Of MachParam))
|
|
' m_MachParamList = value
|
|
' End Set
|
|
' End Property
|
|
|
|
' Sub New(Name As String, ParamList As ObservableCollection(Of MachParam))
|
|
' sName = Name
|
|
' MachParamList = ParamList
|
|
' End Sub
|
|
|
|
'End Class
|
|
|
|
'' Tipo parametro nel file di configurazione Macchina
|
|
'Public Enum MachParamType As Integer
|
|
' DOUBLE_ = 1
|
|
' STRING_ = 2
|
|
' COMBO = 3
|
|
' LENGTH = 4
|
|
' CHECKBOX = 5
|
|
'End Enum |