cedcf1dd4f
- aggiunta di nuovo parametro ( ActiveBox); - possibilità di selezionare l'ultimo ddf letto ( in modalità singola porta); - elimino l'errore dopo la modifica dei parametri; - porto il focus sul ddf selezionato ( in modalità progetto).
2097 lines
89 KiB
VB.net
2097 lines
89 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
|
|
Module Modified
|
|
|
|
Sub SetModified()
|
|
If Not Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
|
|
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
|
|
If Not IsNothing(Map.refPartPageVM) AndAlso Not IsNothing(Map.refPartPageVM.CurrPart) Then
|
|
For Each Compo In Map.refPartPageVM.CurrPart.CompoList
|
|
Compo.BorderColor = New BrushConverter().ConvertFrom("#DCDCDC")
|
|
Compo.BackGroundColor = New BrushConverter().ConvertFrom("#FFFFFF")
|
|
Compo.BorderThickness = 1
|
|
Next
|
|
End If
|
|
Else
|
|
Map.refProjectManagerHardwareVM.IsModified = True
|
|
End If
|
|
End Sub
|
|
|
|
End Module
|
|
|
|
Public Class Compo
|
|
Implements INotifyPropertyChanged
|
|
Friend TempFileDDF As String = IniFile.m_sTempDir & "\" & TEMP_FILE
|
|
|
|
Friend LoadDefaultFromLua As Boolean = True
|
|
|
|
' creo la stringa che contiene la lista degli errori
|
|
Dim ErrorList As String = String.Empty
|
|
|
|
Private m_ConfigurationParameters As String
|
|
Public ReadOnly Property ConfigurationParameters As String
|
|
Get
|
|
Return m_ConfigurationParameters
|
|
End Get
|
|
End Property
|
|
|
|
Private m_BorderColor As SolidColorBrush = New BrushConverter().ConvertFrom("#DCDCDC")
|
|
Public Property BorderColor As SolidColorBrush
|
|
Get
|
|
Return m_BorderColor
|
|
End Get
|
|
Set(value As SolidColorBrush)
|
|
m_BorderColor = value
|
|
NotifyPropertyChanged("BorderColor")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_BackGroundColor As SolidColorBrush = New BrushConverter().ConvertFrom("#FFFFFF")
|
|
Public Property BackGroundColor As SolidColorBrush
|
|
Get
|
|
Return m_BackGroundColor
|
|
End Get
|
|
Set(value As SolidColorBrush)
|
|
m_BackGroundColor = value
|
|
NotifyPropertyChanged("BackGroundColor")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_BorderThickness As Integer = 1
|
|
Public Property BorderThickness As Integer
|
|
Get
|
|
Return m_BorderThickness
|
|
End Get
|
|
Set(value As Integer)
|
|
m_BorderThickness = value
|
|
NotifyPropertyChanged("BorderThickness")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_CompoType As CompoType
|
|
Public ReadOnly Property CompoType As CompoType
|
|
Get
|
|
Return m_CompoType
|
|
End Get
|
|
End Property
|
|
|
|
Private m_refCompoJamb As Compo
|
|
Public Property refJambCompo As Compo
|
|
Get
|
|
Return m_refCompoJamb
|
|
End Get
|
|
Set(value As Compo)
|
|
m_refCompoJamb = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsReadOnly As Boolean = True
|
|
Public Property IsReadOnly As Boolean
|
|
Get
|
|
Return m_IsReadOnly
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsReadOnly = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IdCode As String
|
|
Public Property IdCode As String
|
|
Get
|
|
Return m_IdCode
|
|
End Get
|
|
Set(value As String)
|
|
m_IdCode = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_LoadByDefault As Boolean = False
|
|
Public Property LoadByDefault As Boolean
|
|
Get
|
|
Return m_LoadByDefault
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_LoadByDefault = value
|
|
SetImage()
|
|
NotifyPropertyChanged("ImageButton")
|
|
End Set
|
|
End Property
|
|
|
|
Public Sub SetImage()
|
|
If m_LoadByDefault Then
|
|
m_ImageButton = "/Resources/Refresh/Error.png"
|
|
Else
|
|
m_ImageButton = "/Resources/TopCommandBar/X.png"
|
|
End If
|
|
End Sub
|
|
|
|
Private m_ImageButton As String = "/Resources/TopCommandBar/X.png"
|
|
Public ReadOnly Property ImageButton As String
|
|
Get
|
|
Return m_ImageButton
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsFixed As Boolean
|
|
Friend ReadOnly Property IsFixed As Boolean
|
|
Get
|
|
Return m_IsFixed
|
|
End Get
|
|
End Property
|
|
Friend Sub SetIsFixed(IsFixed As Boolean)
|
|
m_IsFixed = IsFixed
|
|
End Sub
|
|
|
|
' utilizzato nel HardwareManager per mostrare i parametri
|
|
Private m_IsActiveChapter As Boolean = True
|
|
Public Property IsActiveChapter As Boolean
|
|
Get
|
|
Return m_IsActiveChapter
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsActiveChapter = value
|
|
If Not IsNothing(Map.refHardwarePageVM) AndAlso Not IsNothing(Map.refHardwarePageVM.CurrHardware) Then
|
|
For Each ItemParam In Me.CompoParamList
|
|
If TypeOf ItemParam Is ActivateParam Then
|
|
Dim Text As ActivateParam = DirectCast(ItemParam, ActivateParam)
|
|
Text.SetIsActivated(m_IsActiveChapter)
|
|
Exit For
|
|
End If
|
|
Next
|
|
SetModified()
|
|
'Map.refHardwarePageVM.CurrHardware.RefreshTempHardware()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End If
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsActiveChapter(IsActive As Boolean)
|
|
m_IsActiveChapter = IsActive
|
|
NotifyPropertyChanged("IsActiveChapter")
|
|
End Sub
|
|
|
|
' utilizzato nel HardwareManager per mostrare i parametri in cascata
|
|
Private m_GroupNameChapter As String = String.Empty
|
|
Public Property GroupNameChapter As String
|
|
Get
|
|
Return m_GroupNameChapter
|
|
End Get
|
|
Set(value As String)
|
|
m_GroupNameChapter = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_GroupVisibilityChapter As Visibility = Visibility.Visible
|
|
Public Property GroupVisibilityChapter As Visibility
|
|
Get
|
|
Return m_GroupVisibilityChapter
|
|
End Get
|
|
Set(value As Visibility)
|
|
m_GroupVisibilityChapter = value
|
|
NotifyPropertyChanged("GroupVisibilityChapter")
|
|
End Set
|
|
End Property
|
|
|
|
#Region "Template ComboBox"
|
|
|
|
#Region "Brand"
|
|
|
|
' lista dei marchi
|
|
Private m_BrandListPart As New ObservableCollection(Of String)
|
|
Public Property BrandListPart As ObservableCollection(Of String)
|
|
Get
|
|
Return m_BrandListPart
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_BrandListPart = value
|
|
End Set
|
|
End Property
|
|
|
|
' selezione del marchio
|
|
Private m_SelBrandPart As String
|
|
Public Property SelBrandPart As String
|
|
Get
|
|
Return m_SelBrandPart
|
|
End Get
|
|
Set(value As String)
|
|
' questa procedura deve essere eseguita SOLO dopo il caricamento della pagina!
|
|
m_SelBrandPart = value
|
|
For IndexModelList As Integer = 0 To m_BrandListPart.Count - 1
|
|
' distinguo il caricamento della lista dei frame
|
|
If m_BrandListPart(IndexModelList) = m_SelBrandPart Then
|
|
If value.ToLower.Contains(".frame") Then
|
|
m_FileList = CompoType.FrameFolderList(IndexModelList).ModelFileList
|
|
Else
|
|
m_FileList = CompoType.FolderList(IndexModelList).ModelFileList
|
|
End If
|
|
Exit For
|
|
End If
|
|
Next
|
|
NotifyPropertyChanged("FileList")
|
|
Dim SelItemindex As Integer = 0
|
|
While SelItemindex < m_FileList.Count - 1 AndAlso Path.HasExtension(m_FileList(SelItemindex))
|
|
SelItemindex += 1
|
|
End While
|
|
If SelItemindex < m_FileList.Count Then
|
|
SelFile = m_FileList(SelItemindex)
|
|
Else
|
|
SelFile = String.Empty
|
|
End If
|
|
End Set
|
|
End Property
|
|
Public Sub SetSelBrand(sSelBrand As String)
|
|
m_SelBrandPart = sSelBrand
|
|
For IndexModelList As Integer = 0 To m_BrandListPart.Count - 1
|
|
If m_BrandListPart(IndexModelList) = m_SelBrandPart Then
|
|
If sSelBrand.ToLower.Contains(".frame") Then
|
|
m_FileList = CompoType.FrameFolderList(IndexModelList).ModelFileList
|
|
Else
|
|
m_FileList = CompoType.FolderList(IndexModelList).ModelFileList
|
|
End If
|
|
Exit For
|
|
End If
|
|
Next
|
|
NotifyPropertyChanged("FileList")
|
|
NotifyPropertyChanged("SelBrandPart")
|
|
End Sub
|
|
|
|
#End Region ' Brand
|
|
|
|
#Region "File"
|
|
|
|
' lista dei file
|
|
Private m_FileList As New ObservableCollection(Of String)
|
|
Public Property FileList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_FileList
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_FileList = value
|
|
End Set
|
|
End Property
|
|
|
|
' selezione del file
|
|
Private m_SelFile As String
|
|
Public Property SelFile As String
|
|
Get
|
|
Return m_SelFile
|
|
End Get
|
|
Set(value As String)
|
|
' se il valore è nothing significa che non è stata fatta nessuna selezione, quindi esco
|
|
If IsNothing(value) Then Return
|
|
m_SelFile = value
|
|
' ricostruisco il nome del template da passare alle funzioni
|
|
Dim ModelDir As String = String.Empty
|
|
'If m_SelBrandPart <> RegexFunction.ModelTemplate(m_CompoType.Path) Then ModelDir = m_SelBrandPart & "\"
|
|
If m_SelBrandPart <> RAD_DIR Then ModelDir = m_SelBrandPart & "\"
|
|
Dim CurrItem As String = ModelDir & m_SelFile
|
|
' passo il nome
|
|
TemplateSelItem = CurrItem
|
|
Map.refAssemblyPageVM.CurrAssembly.SetDimension("CreateRefCompo", Me)
|
|
NotifyPropertyChanged("SelFile")
|
|
End Set
|
|
End Property
|
|
Friend Sub SetSelFile(File As String)
|
|
m_SelFile = File
|
|
' ricostruisco il nome del template da passare alle funzioni
|
|
Dim ModelDir As String = String.Empty
|
|
If m_SelBrandPart <> RegexFunction.ModelTemplate(m_CompoType.Path) Then ModelDir = m_SelBrandPart & "\"
|
|
Dim CurrItem As String = ModelDir & m_SelFile
|
|
' passo il nome
|
|
SetSelTemplate(CurrItem)
|
|
NotifyPropertyChanged("SelFile")
|
|
End Sub
|
|
|
|
#End Region ' File
|
|
|
|
Private m_TemplateVisibility As Visibility
|
|
Public Property TemplateVisibility As Visibility
|
|
Get
|
|
Return m_TemplateVisibility
|
|
End Get
|
|
Set(value As Visibility)
|
|
m_TemplateVisibility = value
|
|
End Set
|
|
End Property
|
|
|
|
' nome grafica (potrebbe essere shape o template)
|
|
Private m_TemplateName As String
|
|
Public Property TemplateName As String
|
|
Get
|
|
Return m_TemplateName
|
|
End Get
|
|
Set(value As String)
|
|
m_TemplateName = value
|
|
End Set
|
|
End Property
|
|
|
|
' nome DDF (potrebbe essere shape o template)
|
|
Private m_TemplateDDFName As String
|
|
Public Property TemplateDDFName As String
|
|
Get
|
|
Return m_TemplateDDFName
|
|
End Get
|
|
Set(value As String)
|
|
m_TemplateDDFName = value
|
|
End Set
|
|
End Property
|
|
|
|
' il messaggio associato al brand
|
|
Public ReadOnly Property BrandMsg As String
|
|
Get
|
|
Return Me.CompoType.FolderName
|
|
End Get
|
|
End Property
|
|
|
|
' Template selezionato
|
|
Private m_TemplateSelItem As String
|
|
Public Property TemplateSelItem As String
|
|
Get
|
|
Return m_TemplateSelItem
|
|
End Get
|
|
Set(value As String)
|
|
SetTemplateSelItem(value)
|
|
LoadByDefault = False
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Private Sub SetSelTemplate(Template As String)
|
|
If Template.Contains(".\") Then Template = Template.Replace(".\", "")
|
|
SetTemplateSelItem(Template)
|
|
SetModified()
|
|
End Sub
|
|
|
|
' ricevuto il nome scritto nel file ddf viene scomposto per asseganare una parte alla proprietà Brand e una a alla proprietà File
|
|
Public Sub SplitBrandFile(TemplateValue As String)
|
|
Dim ItemsTemplate() As String = TemplateValue.Split("\"c)
|
|
' il nome deve contenere: Hardware\Directory.Frame\File
|
|
If ItemsTemplate.Count < 3 Then Return
|
|
SetSelBrand(Trim(ItemsTemplate(1)))
|
|
Dim sFile As String = String.Empty
|
|
sFile &= ItemsTemplate(2)
|
|
For IndexArray As Integer = 2 To ItemsTemplate.Count - 2
|
|
sFile &= "\" & ItemsTemplate(IndexArray)
|
|
IndexArray += 1
|
|
Next
|
|
SetSelFile(sFile)
|
|
End Sub
|
|
|
|
' setta il valore del template
|
|
Friend Sub SetTemplateSelItem(value As String)
|
|
Dim CurrConfig As String = m_CompoType.Path & "\" & CONFIGINI_FILE_NAME
|
|
Dim CurrItemPath As String = m_CompoType.Path & "\" & value
|
|
Dim ErrorList As String = String.Empty
|
|
Dim ConfigDefault As String = String.Empty
|
|
' se il file ha estensione nge
|
|
If Path.HasExtension(CurrItemPath) AndAlso Path.GetExtension(CurrItemPath).ToLower = NGE_EXTENSION Then
|
|
' controllo che esiste il file altrimenti esco
|
|
If Not File.Exists(CurrItemPath) Then Return
|
|
m_TemplateSelItem = value
|
|
' creo la stringa che contiene la lista degli errori
|
|
EgtUILib.GetPrivateProfileString(S_NGECONFIG, K_DEFAULT, "", ConfigDefault, CurrConfig)
|
|
' ricerco la parola chiave Param nella stringa nel file Config.ini
|
|
ReadParamConfig(ErrorList, ConfigDefault)
|
|
ReadDefaultParamLua(CurrItemPath, Me)
|
|
Else
|
|
' se il file non ha estensione allora aggiungo l'estensione .lua
|
|
If Not Path.GetExtension(CurrItemPath).ToLower = LUA_EXTENSION Then
|
|
CurrItemPath &= LUA_EXTENSION
|
|
End If
|
|
' controllo che esista il file altrimenti esco
|
|
If Not File.Exists(CurrItemPath) Then Return
|
|
m_TemplateSelItem = value
|
|
' carico un vettore con le stringhe del file corrente
|
|
Dim ReadCurrCompo() As String = File.ReadAllLines(CurrItemPath)
|
|
For LineIndex = 0 To ReadCurrCompo.Count - 1
|
|
' cerco il titolo [Graphic parameters]: se lo trovo
|
|
If RegexFunction.IsGraphicParametersTitle(ReadCurrCompo(LineIndex)) Then
|
|
' mi preparo per leggere la prima riga dopo il titolo
|
|
Dim ParamIndex As Integer = 1
|
|
ConfigDefault = Trim(RegexFunction.ParamLine(ReadCurrCompo(LineIndex + ParamIndex), K_DEFAULT))
|
|
While String.IsNullOrEmpty(ConfigDefault) And LineIndex + ParamIndex < ReadCurrCompo(LineIndex + ParamIndex).Count
|
|
ParamIndex += 1
|
|
ConfigDefault = Trim(RegexFunction.ParamLine(ReadCurrCompo(LineIndex + ParamIndex), K_DEFAULT))
|
|
End While
|
|
' quando termino il ciclo while posso uscire anche dal for
|
|
Exit For
|
|
End If
|
|
Next
|
|
ReadParamConfig(ErrorList, ConfigDefault)
|
|
ReadDefaultParamLua(CurrItemPath, Me)
|
|
End If
|
|
|
|
If Not String.IsNullOrWhiteSpace(ErrorList) Then EgtOutLog(ErrorList)
|
|
End Sub
|
|
|
|
' setto la lista dei parametri da caricare
|
|
'Private Sub ReadParamConfig(ByRef NewCompoParam As CompoParam, ByRef ErrorList As String, ParamIndex As Integer, DefaultConfig As String)
|
|
Private Sub ReadParamConfig(ByRef ErrorList As String, DefaultConfig As String)
|
|
Dim NewCompoParam As CompoParam = Nothing
|
|
Dim ParamIndex As Integer = 1
|
|
Dim sParam As String = String.Empty
|
|
Dim CurrConfig As String = m_CompoType.Path & "\" & CONFIGINI_FILE_NAME
|
|
Dim S_CHAPTER As String
|
|
If String.IsNullOrWhiteSpace(DefaultConfig) Then
|
|
S_CHAPTER = S_GR_PARAM_DEFAULT & "1"
|
|
Else
|
|
S_CHAPTER = S_GR_PARAM_DEFAULT & DefaultConfig
|
|
End If
|
|
' ripulisco la lista dei parametri sempre!
|
|
If m_ConfigurationParameters <> S_CHAPTER Then m_CompoParamList.Clear()
|
|
m_ConfigurationParameters = S_CHAPTER
|
|
' leggo il nome del parametro che servirà a riordinare le quote in fase di stampa
|
|
GetPrivateProfileTidyLayer(S_CHAPTER, K_PARAM_LAYER, m_TidyParam, CurrConfig)
|
|
While EgtUILib.GetPrivateProfileString(S_CHAPTER, K_PARAM & ParamIndex, "", sParam, CurrConfig) > 0
|
|
If Not String.IsNullOrWhiteSpace(sParam) Then
|
|
' leggo il tipo di parametro
|
|
ReadParam(sParam, NewCompoParam, ErrorList)
|
|
' carico il parametro nella lista della componente
|
|
InsertCompoParam(NewCompoParam, ParamIndex)
|
|
End If
|
|
ParamIndex += 1
|
|
End While
|
|
End Sub
|
|
|
|
' inserisco il parametro letto nella lista dei paramtri senza modificare i parametri già esistenti
|
|
Private Sub InsertCompoParam(NewCompoParam As CompoParam, ParamIndex As Integer)
|
|
If Not IsNothing(NewCompoParam) Then
|
|
' se non esiste l'indice
|
|
If Not m_CompoParamList.Count > ParamIndex - 1 Then
|
|
' creo il parametro
|
|
Me.CompoParamList.Insert(ParamIndex - 1, NewCompoParam)
|
|
Else
|
|
' se esiste ma è diverso il nome DDF o il tipo
|
|
If m_CompoParamList(ParamIndex - 1).DDFName <> NewCompoParam.DDFName OrElse
|
|
Not Object.ReferenceEquals(m_CompoParamList(ParamIndex - 1).GetType(), NewCompoParam.GetType()) Then
|
|
' creo il nuovo parametro
|
|
m_CompoParamList.RemoveAt(ParamIndex - 1)
|
|
m_CompoParamList.Insert(ParamIndex - 1, NewCompoParam)
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
#Region "SettemplateREFCOMPO"
|
|
Friend Sub SetTemplateSelItemRefCompo(sFrameFile As String, CurrRefCompo As Compo)
|
|
' salvo una copia del percorso del direttorio
|
|
Dim CurrItemPath As String = CurrRefCompo.CompoType.Path
|
|
' costruisco il percorso del file Config.ini
|
|
Dim CurrConfig As String = CurrItemPath & "\" & CONFIGINI_FILE_NAME
|
|
' stringa per gestire gli errori
|
|
Dim ErrorList As String = String.Empty
|
|
|
|
' se il nome del file contiente tutto il suo perscorso (cioè la path del direttorio)
|
|
If sFrameFile.Contains(CurrItemPath) Then
|
|
' sottraggo al nome del file il percorso del direttorio
|
|
sFrameFile = sFrameFile.Substring(CurrItemPath.Count + 1)
|
|
CurrItemPath &= "\" & sFrameFile
|
|
Else
|
|
CurrItemPath &= "\" & sFrameFile
|
|
End If
|
|
' CurrItemPath -> il nome del percorso completo del file
|
|
' sFrameFile -> il nome del file che deve essere stampato nel ddf
|
|
|
|
' se il file ha estensione nge
|
|
If Path.HasExtension(CurrItemPath) AndAlso Path.GetExtension(CurrItemPath).ToLower = NGE_EXTENSION Then
|
|
' controllo che esiste il file altrimenti esco
|
|
If Not File.Exists(CurrItemPath) Then Return
|
|
' Possibile errore! sFrame non è il riferiento alla lista m_TemplateItemList
|
|
CurrRefCompo.TemplateSelItem = sFrameFile
|
|
' creo la stringa che contiene la lista degli errori
|
|
Dim ParamIndex As Integer = 1
|
|
Dim ConfigDefault As String = String.Empty
|
|
|
|
EgtUILib.GetPrivateProfileString(S_NGECONFIG, K_DEFAULT, "", ConfigDefault, CurrConfig)
|
|
' ricerco la parola chiave Param nella stringa nel file Cinfig.ini
|
|
ReadParamConfig(ErrorList, ConfigDefault)
|
|
Else
|
|
' se il file non ha estensione allora creo l'estensione .lua
|
|
If Not Path.GetExtension(CurrItemPath).ToLower = LUA_EXTENSION Then
|
|
CurrItemPath &= LUA_EXTENSION
|
|
End If
|
|
' controllo che esiste il file altrimenti esco
|
|
If Not File.Exists(CurrItemPath) Then Return
|
|
Assembly.BuiltReffCompo = False
|
|
CurrRefCompo.TemplateSelItem = sFrameFile
|
|
' carico un vettore con le stringhe del file corrente
|
|
Dim ReadCurrCompo() As String = File.ReadAllLines(CurrItemPath)
|
|
Assembly.BuiltReffCompo = True
|
|
Dim EndOfFile As Boolean = False
|
|
' leggo il vettore di stringhe del file corrente
|
|
For LineIndex = 0 To ReadCurrCompo.Count - 1
|
|
' copio il valore della riga
|
|
Dim CurrCompoFileLine As String = ReadCurrCompo(LineIndex)
|
|
' cerco il titolo [Graphic parameters]: se lo trovo
|
|
If RegexFunction.IsGraphicParametersTitle(CurrCompoFileLine) Then
|
|
' mi preparo per leggere la prima riga dopo il titolo
|
|
Dim ParamIndex As Integer = 1
|
|
Dim NewCompoParam As CompoParam = Nothing
|
|
Dim bIsFinished As Boolean = False
|
|
' se la lettura del primo parametro "--Default=" restituisce un valore non nullo
|
|
If Not String.IsNullOrWhiteSpace(ParamLine(ReadCurrCompo(LineIndex + ParamIndex), K_DEFAULT)) Then
|
|
Dim ConfigDefault As String = Trim(ParamLine(ReadCurrCompo(LineIndex + ParamIndex), K_DEFAULT))
|
|
If Not IsNumeric(ConfigDefault) Then
|
|
' se il valore letto non è numerico allora esco dal cilo per la lettura dei parametri
|
|
Exit For
|
|
Else
|
|
ReadParamConfig(ErrorList, ConfigDefault)
|
|
Exit For
|
|
End If
|
|
Else
|
|
' se il primo parametro non è "Dafault" allora mi aspetto di leggere i parametri
|
|
While Not bIsFinished
|
|
' attualizzo il componente a nulla
|
|
NewCompoParam = Nothing
|
|
' cerco nella riga successiva al titolo il primo parametro
|
|
If Not String.IsNullOrWhiteSpace(ReadCurrCompo(LineIndex + ParamIndex)) Then
|
|
Dim ReadLine As String
|
|
' carico i valori della stringa che seguono la chiave "--Param1="
|
|
ReadLine = ParamLine(ReadCurrCompo(LineIndex + ParamIndex), K_PARAM & ParamIndex)
|
|
' se uno dei paraemtri è completamente sbagliato allora restituisce falso e non riempo la NewCompoParam che rimane Nothing
|
|
bIsFinished = Not ReadParam(ReadLine, NewCompoParam, ErrorList)
|
|
Else
|
|
' altrimenti se la riga è vuota mi sposto alla successiva
|
|
LineIndex += 1
|
|
' e continuo il ciclo while
|
|
Continue While
|
|
End If
|
|
' insrisco la nuova componenenet: se la riga è vuota o la componente non è stata creata allora il componete è Nothing
|
|
InsertCompoParam(NewCompoParam, ParamIndex)
|
|
' se il parametro è stato creato passa alla riga successiva
|
|
If Not bIsFinished Then ParamIndex += 1
|
|
End While
|
|
NotifyPropertyChanged("TemplateSelItem")
|
|
End If
|
|
|
|
' esiste già una lista
|
|
For DeleteIndex = Me.refJambCompo.CompoParamList.Count - 1 To ParamIndex - 1 Step -1
|
|
Me.refJambCompo.CompoParamList.RemoveAt(DeleteIndex)
|
|
Next
|
|
Exit For
|
|
ElseIf LineIndex = ReadCurrCompo.Count - 1 Then
|
|
' se non trovo il capitoletto nel file leggo i parametri di default del file Config.ini
|
|
|
|
Dim ParamIndex As Integer = 1
|
|
Dim NewCompoParam As CompoParam = Nothing
|
|
ReadParamConfigRefCompo(NewCompoParam, ErrorList, ParamIndex, "", CurrRefCompo)
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
If Not String.IsNullOrWhiteSpace(ErrorList) Then EgtOutLog(ErrorList)
|
|
End Sub
|
|
|
|
' setto la lista dei parametri da caricare la lista dei paramestri
|
|
Private Sub ReadParamConfigRefCompo(ByRef NewCompoParam As CompoParam, ByRef ErrorList As String, ParamIndex As Integer, DefaultConfig As String, CurrRefCompo As Compo)
|
|
Dim sParam As String = String.Empty
|
|
Dim CurrConfig As String = CurrRefCompo.CompoType.Path & "\" & CONFIGINI_FILE_NAME
|
|
Dim S_CHAPTER As String
|
|
|
|
If String.IsNullOrWhiteSpace(DefaultConfig) Then
|
|
S_CHAPTER = S_GR_PARAM_DEFAULT & "1"
|
|
Else
|
|
S_CHAPTER = S_GR_PARAM_DEFAULT & DefaultConfig
|
|
End If
|
|
While EgtUILib.GetPrivateProfileString(S_CHAPTER, K_PARAM & ParamIndex, "", sParam, CurrConfig) > 0
|
|
If Not String.IsNullOrWhiteSpace(sParam) Then
|
|
' leggo il tipo di parametro
|
|
ReadParam(sParam, NewCompoParam, ErrorList)
|
|
' carico il parametro nella lista della componente
|
|
InsertCompoParamRef(NewCompoParam, ParamIndex, CurrRefCompo)
|
|
End If
|
|
ParamIndex += 1
|
|
End While
|
|
' controllo di aver tolto tutti i parametri che potrrebbero esistere da una precedente chiamata
|
|
For DeleteIndex = CurrRefCompo.CompoParamList.Count - 1 To ParamIndex - 1 Step -1
|
|
CurrRefCompo.CompoParamList.RemoveAt(DeleteIndex)
|
|
Next
|
|
End Sub
|
|
|
|
' inserisco il parametro letto nella lista dei paramtri senza modificare i parametri già esistenti
|
|
Private Sub InsertCompoParamRef(NewCompoParam As CompoParam, ParamIndex As Integer, CurrRefCompo As Compo)
|
|
If Not IsNothing(NewCompoParam) Then
|
|
' se non esiste l'indice
|
|
If Not CurrRefCompo.CompoParamList.Count > ParamIndex - 1 Then
|
|
' creo il parametro combo
|
|
CurrRefCompo.CompoParamList.Insert(ParamIndex - 1, NewCompoParam)
|
|
Else
|
|
' se esiste ma è diverso il nome DDF
|
|
If Not m_CompoParamList(ParamIndex - 1).DDFName = NewCompoParam.DDFName Then
|
|
' creo il nuovo parametro combo
|
|
CurrRefCompo.CompoParamList.RemoveAt(ParamIndex - 1)
|
|
CurrRefCompo.CompoParamList.Insert(ParamIndex - 1, NewCompoParam)
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' SetTemplateREFCOMPO
|
|
|
|
' Utilizzo nome DDF e nome, restituisco il nome solo se esiste un messaggio associato
|
|
Private Function MsgControl(sDDFName As String, sName As String, ByRef sErrorList As String) As String
|
|
'Se nome è numerico
|
|
Dim nInd As Integer
|
|
If Integer.TryParse(sName, nInd) Then
|
|
' recupero il messaggio
|
|
Dim sMsg As String = EgtMsg(nInd)
|
|
' se non esiste lo sostituico con il nome
|
|
Dim ErrorMsg As String = "Msg" & Trim(sName)
|
|
If String.Equals(sMsg, ErrorMsg) Then
|
|
' Errore nella lettura dei messaggi. Non esiste corrispondenza con il numero {0}.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50119), sName))
|
|
Return sDDFName
|
|
' altrimenti lo restituisco
|
|
Else
|
|
Return sMsg
|
|
End If
|
|
' Altrimenti restituisco il nome
|
|
Else
|
|
Return sName
|
|
End If
|
|
End Function
|
|
|
|
Public Function ReadParam(sReadLine As String, ByRef NewCompoParam As CompoParam, ByRef sErrorList As String) As Boolean
|
|
' Se linea vuota, esco con errore
|
|
If String.IsNullOrWhiteSpace(sReadLine) Then
|
|
' Empty line
|
|
sErrorList = ConcatErrorString(sErrorList, EgtMsg(50167))
|
|
Return False
|
|
End If
|
|
' Scompongo la linea nelle sue parti
|
|
Dim sItems() As String = sReadLine.Split(";"c)
|
|
' Devono esserci almeno due parti
|
|
If sItems.Count() < 2 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), m_CompoType.DDFName, sItems(0))
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' La prima parte definisce la categoria
|
|
Select Case Trim(sItems(0))
|
|
Case INI_COMBOBOX
|
|
' NomeDDF e Nome del combo
|
|
Dim sComboList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sComboList.Count() >= 1 Then sDDFName = Trim(sComboList(0))
|
|
If sComboList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sComboList(0), sComboList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sComboList(0), m_CompoType.Path))
|
|
End If
|
|
' La combobox deve contenere almeno un elemento "ComboBox; NomeDDF/Nome; NomeDDFItem/NomeItem, ...."
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sDDFName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' Ricavo i diversi item
|
|
Dim sComboItemList() As String = sItems(2).Split(","c)
|
|
Dim ComboItemList As New ObservableCollection(Of String)
|
|
Dim DDFComboItemList As New ObservableCollection(Of String)
|
|
For ItemIndex = 0 To sComboItemList.Count - 1
|
|
Dim ComboItem() As String = sComboItemList(ItemIndex).Split("/"c)
|
|
' se esiste il NomeDDFItem
|
|
If ComboItem.Count >= 1 Then DDFComboItemList.Add(Trim(ComboItem(0)))
|
|
' se esiste anche il NomeItem
|
|
If ComboItem.Count >= 2 Then
|
|
' carico la lista con i nomi
|
|
ComboItemList.Add(Trim(MsgControl(ComboItem(0), ComboItem(1), sErrorList)))
|
|
Else
|
|
' se esiste solo un nome considero sia il nome DDF
|
|
ComboItemList.Add(Trim(ComboItem(0)))
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), ComboItem(0), m_CompoType.Path))
|
|
End If
|
|
Next
|
|
' Creo il parametro
|
|
NewCompoParam = New ComboBoxParam(sDDFName, sName, Me, ComboItemList, DDFComboItemList, ComboItemList(0))
|
|
Return True
|
|
|
|
Case INI_COMBOBOX_ONOFF
|
|
' NomeDDF e Nome del combo
|
|
Dim sComboList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sComboList.Count() >= 1 Then sDDFName = Trim(sComboList(0))
|
|
If sComboList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sComboList(0), sComboList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sComboList(0), m_CompoType.Path))
|
|
End If
|
|
' La combobox deve contenere almeno un elemento "ComboBox; NomeDDF/Nome; NomeDDFItem/NomeItem, ...."
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sDDFName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' Ricavo i diversi item
|
|
Dim sComboItemList() As String = sItems(2).Split(","c)
|
|
Dim ComboItemList As New ObservableCollection(Of String)
|
|
Dim DDFComboItemList As New ObservableCollection(Of String)
|
|
For ItemIndex = 0 To sComboItemList.Count - 1
|
|
Dim ComboItem() As String = sComboItemList(ItemIndex).Split("/"c)
|
|
' se esiste il NomeDDFItem
|
|
If ComboItem.Count >= 1 Then DDFComboItemList.Add(Trim(ComboItem(0)))
|
|
' se esiste anche il NomeItem
|
|
If ComboItem.Count >= 2 Then
|
|
' carico la lista con i nomi
|
|
ComboItemList.Add(Trim(MsgControl(ComboItem(0), ComboItem(1), sErrorList)))
|
|
Else
|
|
' se esiste solo un nome considero sia il nome DDF
|
|
ComboItemList.Add(Trim(ComboItem(0)))
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), ComboItem(0), m_CompoType.Path))
|
|
End If
|
|
Next
|
|
' Creo il parametro
|
|
NewCompoParam = New ComboBoxOnOffParam(sDDFName, sName, Me, ComboItemList, DDFComboItemList, ComboItemList(0))
|
|
Return True
|
|
|
|
Case INI_TEXTBOX
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sDDFName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxParam(sDDFName, sName, Me, "0.000", Nothing, Nothing)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double
|
|
If StringToDouble(sItems(2), dDefaultValue) AndAlso dDefaultValue < dHeight Then
|
|
'Dim sDefaultValue As String = DoubleToString(dDefaultValue, 5)
|
|
NewCompoParam = New TextBoxParam(sDDFName, sName, Me, Trim(sItems(2)), Nothing, Nothing)
|
|
Return True
|
|
Else
|
|
NewCompoParam = New TextBoxParam(sDDFName, sName, Me, "0.000", Nothing, Nothing)
|
|
' Errore nell'espressione {0}. {1} non associa nulla.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50147), NewCompoParam.Name, sItems(2)))
|
|
Return True
|
|
End If
|
|
|
|
Case INI_TEXTBOX_ONOFF
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sDDFName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, "0.000", Nothing, Nothing)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double
|
|
If StringToDouble(sItems(2), dDefaultValue) AndAlso dDefaultValue < dHeight Then
|
|
'Dim sDefaultValue As String = DoubleToString(dDefaultValue, 5)
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, Trim(sItems(2)), Nothing, Nothing)
|
|
Return True
|
|
Else
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, "0.000", Nothing, Nothing)
|
|
' Errore nell'espressione {0}. {1} non associa nulla.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50147), NewCompoParam.Name, sItems(2)))
|
|
Return True
|
|
End If
|
|
End Select
|
|
Return False
|
|
End Function
|
|
|
|
Public Function ReadParamHardware(sReadLine As String, sHelpParam As String, ByRef NewCompoParam As CompoParam, ByRef sErrorList As String) As Boolean
|
|
' Se linea vuota, esco con errore
|
|
If String.IsNullOrWhiteSpace(sReadLine) Then
|
|
' Empty Line
|
|
sErrorList = ConcatErrorString(sErrorList, EgtMsg(50167))
|
|
Return False
|
|
End If
|
|
' Scompongo la linea nelle sue parti
|
|
Dim sItems() As String = sReadLine.Split(";"c)
|
|
' Devono esserci almeno due parti
|
|
If sItems.Count() < 2 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), m_CompoType.DDFName, sItems(0))
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' La prima parte definisce la categoria
|
|
Select Case Trim(sItems(0))
|
|
Case INI_COMBOBOX
|
|
' NomeDDF e Nome del combo "ComboBox; LG/geometry name; MortiseHinge/MortiseHinge, LG/LG"
|
|
Dim sComboList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sComboList.Count() >= 1 Then sDDFName = Trim(sComboList(0))
|
|
If sComboList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sComboList(0), sComboList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sComboList(0), m_CompoType.Path))
|
|
End If
|
|
' La combobox deve contenere almeno un elemento "ComboBox; NomeDDF/Nome; NomeDDFItem/NomeItem, ...."
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sDDFName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' Ricavo i diversi item
|
|
Dim sComboItemList() As String = sItems(2).Split(","c)
|
|
Dim ComboItemList As New ObservableCollection(Of String)
|
|
Dim DDFComboItemList As New ObservableCollection(Of String)
|
|
For ItemIndex = 0 To sComboItemList.Count - 1
|
|
Dim ComboItem() As String = sComboItemList(ItemIndex).Split("/"c)
|
|
' se esiste il NomeDDFItem
|
|
If ComboItem.Count >= 1 Then DDFComboItemList.Add(Trim(ComboItem(0)))
|
|
' se esiste anche il NomeItem
|
|
If ComboItem.Count >= 2 Then
|
|
' carico la lista con i nomi
|
|
ComboItemList.Add(Trim(MsgControl(ComboItem(0), ComboItem(1), sErrorList)))
|
|
Else
|
|
' se esiste solo un nome considero sia il nome DDF
|
|
ComboItemList.Add(Trim(ComboItem(0)))
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), ComboItem(0), m_CompoType.Path))
|
|
End If
|
|
Next
|
|
' Creo il parametro
|
|
NewCompoParam = New ComboBoxParam(sDDFName, sName, Me, ComboItemList, DDFComboItemList, ComboItemList(0), sHelpParam)
|
|
Return True
|
|
Case INI_COMBOBOX_LUA
|
|
' NomeDDF e Nome del combo "ComboBoxLua; LG/geometry name; key1/L; refParam"
|
|
Dim sComboList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sComboList.Count() >= 1 Then sLuaName = Trim(sComboList(0))
|
|
If sComboList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sComboList(0), sComboList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sComboList(0), m_CompoType.Path))
|
|
End If
|
|
' La combobox deve contenere almeno un elemento "ComboBoxLua; NomeDDF/Nome; Key/NomePara,etro, ...."
|
|
Dim sNameGeometry As String = String.Empty
|
|
If sItems.Count < 3 Then
|
|
If Not CompoMatch.ReserchInTable(Me.CompoType.DDFName, "", sNameGeometry) Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
End If
|
|
' prima chiave di ricerca trovata
|
|
If sItems.Count >= 3 Then
|
|
Dim sKey1() As String = sItems(2).Split("/"c)
|
|
Dim sKeyParamLua As String = String.Empty
|
|
Dim sKey1Param As String = String.Empty
|
|
If sKey1.Count() >= 1 Then sKey1Param = Trim(sKey1(0))
|
|
If sKey1.Count() >= 2 Then
|
|
sKeyParamLua = Trim(sKey1(1))
|
|
Else
|
|
sKeyParamLua = Trim(sKey1(0))
|
|
End If
|
|
If Not CompoMatch.ReserchInTable(Me.CompoType.DDFName, sKeyParamLua, sNameGeometry) Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
End If
|
|
' cerco la seconda chiave di ricerca (il nome del parametero associato all'utensile - di solito il diametro)
|
|
' Bisogna modificare i valori della tabella!
|
|
Dim sKey2ParamLua As String = String.Empty
|
|
If sItems.Count > 3 Then
|
|
Dim sKey2() As String = sItems(3).Split("/"c)
|
|
Dim sKey2Param As String = String.Empty
|
|
If sKey2.Count() >= 1 Then sKey2Param = Trim(sKey2(0))
|
|
End If
|
|
|
|
' Ricavo i diversi item da CompoMatch.ReserchInTable
|
|
If String.IsNullOrEmpty(sNameGeometry) Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
Dim sComboItemList() As String = sNameGeometry.Split(","c)
|
|
Dim ComboItemList As New ObservableCollection(Of String)
|
|
Dim LuaComboItemList As New ObservableCollection(Of String)
|
|
For ItemIndex = 0 To sComboItemList.Count - 1
|
|
ComboItemList.Add(Trim(sComboItemList(ItemIndex)))
|
|
LuaComboItemList.Add(Trim("'" & sComboItemList(ItemIndex) & "'"))
|
|
Next
|
|
' Creo il parametro
|
|
NewCompoParam = New ComboBoxParamLua(sLuaName, sName, Me, ComboItemList, LuaComboItemList, ComboItemList(0), sHelpParam, sKey2ParamLua)
|
|
Return True
|
|
|
|
Case INI_COMBOBOX_ONOFF
|
|
' NomeDDF e Nome del combo
|
|
Dim sComboList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sComboList.Count() >= 1 Then sDDFName = Trim(sComboList(0))
|
|
If sComboList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sComboList(0), sComboList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sComboList(0), m_CompoType.Path))
|
|
End If
|
|
' La combobox deve contenere almeno un elemento "ComboBox; NomeDDF/Nome; NomeDDFItem/NomeItem, ...."
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sDDFName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
' Ricavo i diversi item
|
|
Dim sComboItemList() As String = sItems(2).Split(","c)
|
|
Dim ComboItemList As New ObservableCollection(Of String)
|
|
Dim DDFComboItemList As New ObservableCollection(Of String)
|
|
For ItemIndex = 0 To sComboItemList.Count - 1
|
|
Dim ComboItem() As String = sComboItemList(ItemIndex).Split("/"c)
|
|
' se esiste il NomeDDFItem
|
|
If ComboItem.Count >= 1 Then DDFComboItemList.Add(Trim(ComboItem(0)))
|
|
' se esiste anche il NomeItem
|
|
If ComboItem.Count >= 2 Then
|
|
' carico la lista con i nomi
|
|
ComboItemList.Add(Trim(MsgControl(ComboItem(0), ComboItem(1), sErrorList)))
|
|
Else
|
|
' se esiste solo un nome considero sia il nome DDF
|
|
ComboItemList.Add(Trim(ComboItem(0)))
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), ComboItem(0), m_CompoType.Path))
|
|
End If
|
|
Next
|
|
' Creo il parametro
|
|
NewCompoParam = New ComboBoxOnOffParam(sDDFName, sName, Me, ComboItemList, DDFComboItemList, ComboItemList(0), sHelpParam)
|
|
Return True
|
|
|
|
Case INI_TEXTBOX
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxParam(sLuaName, sName, Me, "0.000", Nothing, Nothing)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' Se ci sono almeno 3 elementi "TextBox; NomeDDF/Nome; inch/4.5000"
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double = 0.0
|
|
|
|
Dim sTypeValue As String = String.Empty
|
|
Dim sValue As String = String.Empty
|
|
Dim sValueList() As String = sItems(2).Split("/"c)
|
|
|
|
If sValueList.Count() >= 1 Then sValue = Trim(sValueList(0))
|
|
If sValueList.Count() >= 2 Then
|
|
sTypeValue = Trim(sValueList(1))
|
|
Else
|
|
sTypeValue = ConstGen.MM
|
|
End If
|
|
|
|
' a seconda del tipo Eseguo il controllo della variabile
|
|
Dim sDefaultValue As String = "0.0"
|
|
Select Case sTypeValue
|
|
Case ConstGen.VAL_DOUBLE
|
|
If StringToDouble(sValue, dDefaultValue) Then
|
|
sDefaultValue = DoubleToString(dDefaultValue, 5)
|
|
Else
|
|
Return False
|
|
End If
|
|
Case ConstGen.INCHES
|
|
' ricevo un valore in Inches
|
|
If OptionModule.m_SelectedMeasureUnit = ConstGen.MM Then
|
|
' converto il valore caricato in mm
|
|
If StringToLen(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
' altrimenti esco
|
|
Return False
|
|
End If
|
|
Else
|
|
' non deovo convertire il valore caricato perchè è nella stessa unità dell'interfaccia
|
|
If StringToDouble(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
Return False
|
|
End If
|
|
End If
|
|
Case ConstGen.MM
|
|
If Not StringToDouble(sValue, dDefaultValue) Then Return False
|
|
' ricevo un numero in mm e lo voglio convertire nell'unità dell'interfaccia
|
|
sDefaultValue = LenToString(dDefaultValue, 4)
|
|
Case ConstGen.VAL_STRING
|
|
sDefaultValue = sValue
|
|
Case Else ' il tipo non è tra quelli indicati sopra
|
|
' Errore nell'espressione {0}. {1} non associa nulla.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50147), NewCompoParam.Name, sItems(2)))
|
|
Return False
|
|
End Select
|
|
NewCompoParam = New TextBoxParam(sLuaName, sName, Me, sDefaultValue, Nothing, Nothing, sTypeValue, sHelpParam)
|
|
Return True
|
|
|
|
Case INI_TEXTBOX_ONOFF
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sDDFName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, "0.000", Nothing, Nothing, sHelpParam)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double
|
|
If StringToDouble(sItems(2), dDefaultValue) AndAlso dDefaultValue < dHeight Then
|
|
Dim sDefaultValue As String = DoubleToString(dDefaultValue, 5)
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, sDefaultValue, Nothing, Nothing, sHelpParam)
|
|
Return True
|
|
Else
|
|
NewCompoParam = New TextBoxOnOffParam(sDDFName, sName, Me, "0.000", Nothing, Nothing, sHelpParam)
|
|
' Errore nell'espressione {0}. {1} non associa nulla.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50147), NewCompoParam.Name, sItems(2)))
|
|
Return True
|
|
End If
|
|
|
|
Case INI_TEXTBOXNGE
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sDDFName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sDDFName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sDDFName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxNgeParam(sDDFName, sName, Me, "", Nothing, Nothing, sHelpParam)
|
|
Return True
|
|
End If
|
|
If Not IsNothing(sItems(2)) Then
|
|
NewCompoParam = New TextBoxNgeParam(sDDFName, sName, Me, sItems(2), Nothing, Nothing, sHelpParam)
|
|
Return True
|
|
Else
|
|
NewCompoParam = New TextBoxNgeParam(sDDFName, sName, Me, "", Nothing, Nothing, sHelpParam)
|
|
Return True
|
|
End If
|
|
|
|
Case INI_TEXTBOXDGC
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxOnOffParam(sLuaName, sName, Me, "0.000", Nothing, Nothing, sHelpParam)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double = 0.0
|
|
|
|
Dim sTypeValue As String = String.Empty
|
|
Dim sValue As String = String.Empty
|
|
Dim sValueList() As String = sItems(2).Split("/"c)
|
|
|
|
If sValueList.Count() >= 1 Then sValue = Trim(sValueList(0))
|
|
If sValueList.Count() >= 2 Then
|
|
sTypeValue = Trim(sValueList(1))
|
|
Else
|
|
sTypeValue = ConstGen.MM
|
|
End If
|
|
|
|
' il tipo di parametro che posso accettare è mm o inch
|
|
Dim sDefaultValue As String = "0.0"
|
|
Select Case sTypeValue
|
|
Case ConstGen.INCHES
|
|
' ricevo un valore in Inches
|
|
If OptionModule.m_SelectedMeasureUnit = ConstGen.MM Then
|
|
' converto il valore caricato in mm
|
|
If StringToLen(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa per interfaccia
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
' altrimenti esco
|
|
Return False
|
|
End If
|
|
Else
|
|
' non deovo convertire il valore caricato perchè è nella stessa unità dell'interfaccia
|
|
If StringToDouble(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa per interfaccia
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
Return False
|
|
End If
|
|
End If
|
|
Case ConstGen.MM
|
|
If Not StringToDouble(sValue, dDefaultValue) Then Return False
|
|
' ricevo un numero in mm e lo voglio convertire nell'unità dell'interfaccia
|
|
sDefaultValue = LenToString(dDefaultValue, 4)
|
|
End Select
|
|
|
|
If sItems.Count < 4 Then
|
|
' significa che si comporta come fosse una semplice TextBox
|
|
NewCompoParam = New TextBoxParam(sLuaName, sName, Me, sDefaultValue, Nothing, Nothing, sTypeValue, sHelpParam)
|
|
Return True
|
|
End If
|
|
|
|
Dim sConst() As String = sItems(3).Split(","c)
|
|
Dim sListConst As New List(Of String)
|
|
sListConst.Add("0") ' il primo parametro della lista deve essere sempre quello nullo
|
|
For Index As Integer = 0 To sConst.Count - 1
|
|
If Trim(sConst(Index)) = "0" Then Continue For
|
|
sListConst.Add(Trim(sConst(Index)))
|
|
Next
|
|
NewCompoParam = New TextBoxDGCParam(sLuaName, sName, Me, sDefaultValue, Nothing, Nothing, sListConst, sTypeValue, sHelpParam)
|
|
Return True
|
|
|
|
Case INI_TEXTBOXTHICKNESS
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
' Se ci sono 2 elementi "TextBox; NomeDDF/Nome"
|
|
If sItems.Count < 3 Then
|
|
NewCompoParam = New TextBoxOnOffParam(sLuaName, sName, Me, "0.000", Nothing, Nothing, sHelpParam)
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
Return True
|
|
End If
|
|
' recupero il valore di default
|
|
Dim dHeight As Double = 500 ' Attenzione ai mm
|
|
Dim dDefaultValue As Double = 0.0
|
|
|
|
Dim sTypeValue As String = String.Empty
|
|
Dim sValue As String = String.Empty
|
|
Dim sValueList() As String = sItems(2).Split("/"c)
|
|
|
|
If sValueList.Count() >= 1 Then sValue = Trim(sValueList(0))
|
|
If sValueList.Count() >= 2 Then
|
|
sTypeValue = Trim(sValueList(1))
|
|
Else
|
|
sTypeValue = ConstGen.MM
|
|
End If
|
|
|
|
' il tipo di parametro che posso accettare è mm o inch
|
|
Dim sDefaultValue As String = "0.0"
|
|
Select Case sTypeValue
|
|
Case ConstGen.INCHES
|
|
' ricevo un valore in Inches
|
|
If OptionModule.m_SelectedMeasureUnit = ConstGen.MM Then
|
|
' converto il valore caricato in mm
|
|
If StringToLen(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa per interfaccia
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
' altrimenti esco
|
|
Return False
|
|
End If
|
|
Else
|
|
' non deovo convertire il valore caricato perchè è nella stessa unità dell'interfaccia
|
|
If StringToDouble(sValue, dDefaultValue) Then
|
|
' restituisco il valore convertito in mm in stringa per interfaccia
|
|
sDefaultValue = DoubleToString(dDefaultValue, 4)
|
|
Else
|
|
Return False
|
|
End If
|
|
End If
|
|
Case ConstGen.MM
|
|
If Not StringToDouble(sValue, dDefaultValue) Then Return False
|
|
' ricevo un numero in mm e lo voglio convertire nell'unità dell'interfaccia
|
|
sDefaultValue = LenToString(dDefaultValue, 4)
|
|
End Select
|
|
Dim sListConst As New List(Of ItemConstThickness)({New ItemConstThickness("thru", -1), New ItemConstThickness("half", -0.5), New ItemConstThickness(OptionModule.m_SelectedMeasureUnit, 0)})
|
|
NewCompoParam = New TextBoxThicknessParam(sLuaName, sName, Me, sDefaultValue, Nothing, Nothing, sListConst, sTypeValue, sHelpParam)
|
|
Return True
|
|
|
|
Case INI_CHECKBOX
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
Dim nInd As Integer
|
|
Dim bCheck As Boolean = False
|
|
If Integer.TryParse(sItems(2), nInd) Then
|
|
If nInd = 1 Then bCheck = True Else bCheck = False
|
|
Else
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
End If
|
|
NewCompoParam = New CheckBoxParam(sLuaName, sName, Me, bCheck, sHelpParam)
|
|
Return True
|
|
Case INI_GHOST
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
End If
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName, sHelpParam)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
Dim DefaultValue As String = String.Empty
|
|
DefaultValue = Trim(sItems(2))
|
|
If String.IsNullOrEmpty(DefaultValue) Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
NewCompoParam = New GhostParam(sLuaName, sName, Me, DefaultValue)
|
|
Return True
|
|
|
|
Case "ActiveBox"
|
|
' NomeDDF e Nome del Text
|
|
Dim sTextList() As String = sItems(1).Split("/"c)
|
|
Dim sLuaName As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
If sTextList.Count() >= 1 Then sLuaName = Trim(sTextList(0))
|
|
If sTextList.Count() >= 2 Then
|
|
sName = Trim(MsgControl(sTextList(0), sTextList(1), sErrorList))
|
|
Else
|
|
sName = sLuaName
|
|
' Errore nella lettura del nome {0} in {1}. Attesa una corrispondenza numerica.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50120), sTextList(0), m_CompoType.Path))
|
|
End If
|
|
If sItems.Count < 3 Then
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste.
|
|
Dim sError As String = String.Format(EgtMsg(50121), sLuaName, m_CompoType.DDFName)
|
|
sErrorList = ConcatErrorString(sErrorList, sError)
|
|
Return False
|
|
End If
|
|
Dim nInd As Integer
|
|
Dim bCheck As Boolean = False
|
|
If Integer.TryParse(sItems(2), nInd) Then
|
|
If nInd = 1 Then bCheck = True Else bCheck = False
|
|
Else
|
|
' Errore nella lettura {0} nel parametro {1} della componente: non esiste il valore.
|
|
sErrorList = ConcatErrorString(sErrorList, String.Format(EgtMsg(50125), sName, m_CompoType.DDFName))
|
|
End If
|
|
NewCompoParam = New ActivateParam(sLuaName, sName, Me, bCheck, sHelpParam)
|
|
Return True
|
|
|
|
End Select
|
|
Return False
|
|
End Function
|
|
|
|
Public Function ReadDefaultParamLua(sFileNameComplete As String, NewCompo As Compo) As Boolean
|
|
If Not LoadDefaultFromLua Then Return False
|
|
If String.IsNullOrEmpty(sFileNameComplete) Then Return False
|
|
If Not File.Exists(sFileNameComplete) Then Return False
|
|
|
|
Dim sFile() As String = File.ReadAllLines(sFileNameComplete)
|
|
|
|
Dim LineIndex As Integer = 0
|
|
Dim ParamIndex As Integer = 1
|
|
Dim KeyParam As String = String.Empty
|
|
Dim ValueParam As String = String.Empty
|
|
' inizio a leggere tutto il file lua
|
|
For LineIndex = 0 To sFile.Count - 1
|
|
' verifico che eista il titolo [DDF parameters]
|
|
If RegexFunction.IsDDFParameterTitle(sFile(LineIndex)) Then
|
|
For Each ItemParam In NewCompo.CompoParamList
|
|
' recupero il nome del parametro ddf scritto nel file lua
|
|
KeyParam = Trim(RegexFunction.KeyParamLine(sFile(LineIndex + ParamIndex)))
|
|
While String.IsNullOrEmpty(KeyParam) AndAlso KeyParam = ItemParam.DDFName And LineIndex + ParamIndex < sFile(LineIndex + ParamIndex).Count
|
|
ParamIndex += 1
|
|
KeyParam = Trim(RegexFunction.KeyParamLine(sFile(LineIndex + ParamIndex)))
|
|
End While
|
|
If String.IsNullOrEmpty(KeyParam) Then Continue For
|
|
If KeyParam <> ItemParam.DDFName Then Continue For
|
|
ValueParam = RegexFunction.ParamLine(sFile(LineIndex + ParamIndex), KeyParam)
|
|
If String.IsNullOrEmpty(ValueParam) Then Continue For
|
|
LoadParamFromLua(ValueParam, ItemParam)
|
|
LineIndex = LineIndex + ParamIndex
|
|
ParamIndex = 1
|
|
Next
|
|
End If
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
Private Function LoadParamFromLua(sValue As String, ByRef CurrCompoParam As CompoParam) As Boolean
|
|
If TypeOf CurrCompoParam Is TextBoxParam Then
|
|
Dim TempParam As TextBoxParam = DirectCast(CurrCompoParam, TextBoxParam)
|
|
TempParam.SetValue(RegexFunction.Brackets(sValue))
|
|
Return True
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
#End Region ' Template ComboBox
|
|
|
|
Private m_TidyParam As String
|
|
Public Property TidyParam As String
|
|
Get
|
|
Return m_TidyParam
|
|
End Get
|
|
Set(value As String)
|
|
m_TidyParam = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_CompoParamList As New ObservableCollection(Of CompoParam)
|
|
Public Property CompoParamList As ObservableCollection(Of CompoParam)
|
|
Get
|
|
Return m_CompoParamList
|
|
End Get
|
|
Set(value As ObservableCollection(Of CompoParam))
|
|
m_CompoParamList = value
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comando
|
|
Private m_CmdDelete As ICommand
|
|
|
|
Sub New(CompoType As CompoType)
|
|
m_CompoType = CompoType
|
|
End Sub
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "DeleteCommand"
|
|
|
|
Public ReadOnly Property DeleteCommand As ICommand
|
|
Get
|
|
If m_CmdDelete Is Nothing Then
|
|
m_CmdDelete = New Command(AddressOf Delete)
|
|
End If
|
|
Return m_CmdDelete
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Delete()
|
|
Dim DeleteNameHardware As String = Me.CompoType.Name
|
|
Map.refPartPageVM.CurrPart.RemoveCompo(Me)
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
SetModified()
|
|
Dim bExist As Boolean = False
|
|
' aggiorno lista hardware di quotatura
|
|
Map.refDimensioningPanelVM.LoadHardwareDimList()
|
|
End Sub
|
|
|
|
#End Region ' DeleteCommand
|
|
|
|
#End Region 'Commands
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class CompoParam
|
|
|
|
Private m_LayerName As String
|
|
Public Property LayerName As String
|
|
Get
|
|
Return m_LayerName
|
|
End Get
|
|
Set(value As String)
|
|
m_LayerName = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Name As String
|
|
Public Property Name As String
|
|
Get
|
|
Return m_Name
|
|
End Get
|
|
Set(value As String)
|
|
m_Name = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_DDFName As String
|
|
Public Property DDFName As String
|
|
Get
|
|
Return m_DDFName
|
|
End Get
|
|
Set(value As String)
|
|
m_DDFName = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_CurrCompo As Compo
|
|
Public Property CurrCompo As Compo
|
|
Get
|
|
Return m_CurrCompo
|
|
End Get
|
|
Set(value As Compo)
|
|
m_CurrCompo = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, Optional sLayerName As String = "")
|
|
m_DDFName = sDDFName
|
|
m_Name = sName
|
|
m_CurrCompo = CurrCompo
|
|
If String.IsNullOrEmpty(sLayerName) Then
|
|
m_LayerName = sDDFName
|
|
Else
|
|
m_LayerName = sLayerName
|
|
End If
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class GhostParam
|
|
Inherits CompoParam
|
|
Implements INotifyPropertyChanged
|
|
|
|
Private m_Value As String
|
|
Public Property Value As String
|
|
Get
|
|
Return m_Value
|
|
End Get
|
|
Set(value As String)
|
|
m_Value = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String)
|
|
MyBase.New(sDDFName, sName, CurrCompo)
|
|
m_Value = sValue
|
|
End Sub
|
|
|
|
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
|
|
End Class
|
|
|
|
Public Class TextBoxParam
|
|
Inherits CompoParam
|
|
Implements INotifyPropertyChanged
|
|
|
|
' utilizzato negli Hardware
|
|
Private m_TypeVar As String
|
|
Public Property TypeVar As String
|
|
Get
|
|
Return m_TypeVar
|
|
End Get
|
|
Set(value As String)
|
|
m_TypeVar = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
Private m_IsReadOnly As Boolean = True
|
|
Public Property IsReadOnly As Boolean
|
|
Get
|
|
Return m_IsReadOnly
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsReadOnly = value
|
|
End Set
|
|
End Property
|
|
|
|
Friend m_Value As String
|
|
Public Property Value As String
|
|
Get
|
|
Return m_Value
|
|
End Get
|
|
Set(value As String)
|
|
m_Value = value
|
|
NotifyPropertyChanged("ToolTipValue")
|
|
SetModified()
|
|
CurrCompo.LoadByDefault = False
|
|
' se la componente non ha un riferimento esce
|
|
If IsNothing(CurrCompo.refJambCompo) Then Return
|
|
' se fallisce il caricamento dei parametri esce
|
|
If Not LoadCompoParam(CurrCompo, Map.refPartPageVM.CurrPart.TypePart) Then Return
|
|
' 50168=No matching param
|
|
If Not UpdateParam() Then MessageBox.Show(EgtMsg(50168), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
ResetCompoParam()
|
|
End Set
|
|
End Property
|
|
Public Sub SetValue(sValue As String)
|
|
m_Value = sValue
|
|
NotifyPropertyChanged("ToolTipValue")
|
|
NotifyPropertyChanged("Value")
|
|
End Sub
|
|
|
|
Public ReadOnly Property ToolTipValue As String
|
|
Get
|
|
Dim dValue As Double = -1
|
|
If StringToDouble(Value, dValue) Then
|
|
Return DoubleToString(dValue, 4)
|
|
Else
|
|
'Invalid expression in {0}.
|
|
Return EgtMsg(50143)
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Private m_ComboValuelList As New List(Of String)
|
|
Public Property ComboValuelList As List(Of String)
|
|
Get
|
|
Return m_ComboValuelList
|
|
End Get
|
|
Set(value As List(Of String))
|
|
m_ComboValuelList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ComboBox As ComboBoxParam
|
|
|
|
Private m_Visibility As Visibility
|
|
Public Property Visibility As Visibility
|
|
Get
|
|
Return m_Visibility
|
|
End Get
|
|
Set(value As Visibility)
|
|
m_Visibility = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Function UpdateParam() As Boolean
|
|
Dim CmpPar As CompoParam = Me
|
|
Dim IndexP As Integer = CurrCompo.CompoParamList.IndexOf(Me)
|
|
Dim CmpRefPar As CompoParam = CurrCompo.refJambCompo.CompoParamList(IndexP)
|
|
For IndexParam As Integer = 0 To CurrCompo.refJambCompo.CompoParamList.Count - 1
|
|
If TypeOf CmpRefPar Is TextBoxParam AndAlso CmpPar.DDFName = CmpRefPar.DDFName Then
|
|
Dim TBoxPar As TextBoxParam = DirectCast(CmpPar, TextBoxParam)
|
|
Dim TBoxRefPar As TextBoxParam = DirectCast(CmpRefPar, TextBoxParam)
|
|
CalcCompoParamValue(TBoxPar.DDFName, TBoxPar.m_Value, TBoxRefPar.m_Value, TBoxRefPar.IsReadOnly, Map.refPartPageVM.CurrPart.TypePart)
|
|
Return True
|
|
ElseIf TypeOf CmpRefPar Is ComboBoxParam AndAlso CmpPar.DDFName = CmpRefPar.DDFName Then
|
|
DirectCast(CmpRefPar, ComboBoxParam).IsReadOnly = False
|
|
Return True
|
|
ElseIf TypeOf CmpRefPar Is TextBoxOnOffParam AndAlso CmpPar.DDFName = CmpRefPar.DDFName Then
|
|
Dim TBoxPar As TextBoxOnOffParam = DirectCast(CmpPar, TextBoxOnOffParam)
|
|
Dim TBoxRefPar As TextBoxOnOffParam = DirectCast(CmpRefPar, TextBoxOnOffParam)
|
|
CalcCompoParamValue(TBoxPar.DDFName, TBoxPar.m_Value, TBoxRefPar.m_Value, TBoxRefPar.IsReadOnly, Map.refPartPageVM.CurrPart.TypePart)
|
|
Return True
|
|
End If
|
|
Next
|
|
Return False
|
|
End Function
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String))
|
|
MyBase.New(sDDFName, sName, CurrCompo)
|
|
m_Value = sValue
|
|
m_ComboBox = ComboBox
|
|
m_ComboValuelList = ComboValuelList
|
|
End Sub
|
|
|
|
' utilizzata per le text degli hardware che possono ricevere diversi tipi di valore
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String), TypeVar As String, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sLayerName)
|
|
m_Value = sValue
|
|
m_ComboBox = ComboBox
|
|
m_ComboValuelList = ComboValuelList
|
|
m_TypeVar = TypeVar
|
|
End Sub
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class ComboBoxParam
|
|
Inherits CompoParam
|
|
Implements INotifyPropertyChanged
|
|
|
|
Private m_IsReadOnly As Boolean = True
|
|
Public Property IsReadOnly As Boolean
|
|
Get
|
|
Return m_IsReadOnly
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsReadOnly = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ItemList As New ObservableCollection(Of String)
|
|
Public Property ItemList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_ItemList
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_ItemList = value
|
|
NotifyPropertyChanged("ItemList")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ItemListDDF As New ObservableCollection(Of String)
|
|
Public Property ItemListDDF As ObservableCollection(Of String)
|
|
Get
|
|
Return m_ItemListDDF
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_ItemListDDF = value
|
|
NotifyPropertyChanged("ItemListDDF")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelItem As String
|
|
Public Property SelItem As String
|
|
Get
|
|
Return m_SelItem
|
|
End Get
|
|
Set(value As String)
|
|
m_SelItem = value
|
|
SetModified()
|
|
CurrCompo.LoadByDefault = False
|
|
Dim CmpPar As CompoParam = Me
|
|
Dim IndexP As Integer = CurrCompo.CompoParamList.IndexOf(Me)
|
|
' se il nome della combobox è side allora ed esiset un riferimento
|
|
If CmpPar.DDFName.ToLower = K_SIDE.ToLower Then
|
|
If Not IsNothing(CurrCompo.refJambCompo) Then Map.refPartPageVM.CurrPart.RemoveCompo(CurrCompo, True)
|
|
CurrCompo.SetTemplateSelItem(CurrCompo.TemplateSelItem)
|
|
Map.refAssemblyPageVM.CurrAssembly.CreateCompoOnJamb(CurrCompo, Trim(m_SelItem))
|
|
End If
|
|
' verifico di essere nella configurazione HardwareManager e che la Compo chiamata si chiama "Match File"
|
|
If Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage And CmpPar.CurrCompo.TemplateName = "Match File" Then
|
|
Select Case CmpPar.DDFName
|
|
Case ConstCompo.MATCHING_INI
|
|
' devo caricare la lista dei Brand da associare
|
|
Dim BLD As ObservableCollection(Of CompoBrandDir) = Map.refHardwarePageVM.CurrHardware.SelectMatching(Me, Me.CurrCompo)
|
|
Map.refHardwarePageVM.CurrHardware.SelectFileMatching(Me, BLD)
|
|
Case ConstCompo.BRAND_INI
|
|
Map.refHardwarePageVM.CurrHardware.SlectBrandMatching(Me)
|
|
End Select
|
|
End If
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Friend Sub SetSelItem(value As String)
|
|
m_SelItem = value
|
|
' verifico di essere nella configurazione HardwareManager e che la Compo chiamata si chiama "Match File"
|
|
If Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage And Me.CurrCompo.TemplateName = "Match File" Then
|
|
Select Case Me.DDFName
|
|
Case ConstCompo.MATCHING_INI
|
|
' devo caricare la lista dei Brand da associare
|
|
Dim BLD As ObservableCollection(Of CompoBrandDir) = Map.refHardwarePageVM.CurrHardware.SelectMatching(Me, Me.CurrCompo)
|
|
Map.refHardwarePageVM.CurrHardware.SelectFileMatching(Me, BLD)
|
|
Case ConstCompo.BRAND_INI
|
|
Map.refHardwarePageVM.CurrHardware.SlectBrandMatching(Me)
|
|
End Select
|
|
End If
|
|
NotifyPropertyChanged("SelItem")
|
|
End Sub
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, ref_ItemList As ObservableCollection(Of String), ref_ItemListDDF As ObservableCollection(Of String), sSelItem As String, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sLayerName)
|
|
ItemList = ref_ItemList
|
|
ItemListDDF = ref_ItemListDDF
|
|
m_SelItem = sSelItem
|
|
End Sub
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class TextBoxOnOffParam
|
|
Inherits TextBoxParam
|
|
|
|
Private m_IsActive As Boolean = True
|
|
Public Property IsActive As Boolean
|
|
Get
|
|
Return m_IsActive
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsActive = value
|
|
SetModified()
|
|
CurrCompo.LoadByDefault = False
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsActive(IsActive As Boolean)
|
|
m_IsActive = IsActive
|
|
'NotifyPropertyChanged("IsActive")
|
|
End Sub
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String), Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sValue, ComboBox, ComboValuelList, sLayerName)
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class TextBoxNgeParam
|
|
Inherits TextBoxParam
|
|
|
|
Private m_IsActive As Boolean = False
|
|
Public Property IsActive As Boolean
|
|
Get
|
|
Return m_IsActive
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsActive = value
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsActive(IsActive As Boolean)
|
|
m_IsActive = IsActive
|
|
'NotifyPropertyChanged("IsActive")
|
|
End Sub
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String), Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sValue, ComboBox, ComboValuelList, sLayerName)
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class TextBoxDGCParam
|
|
Inherits TextBoxParam
|
|
|
|
Private m_ConstList As List(Of String)
|
|
Public Property ConstList As List(Of String)
|
|
Get
|
|
Return m_ConstList
|
|
End Get
|
|
Set(value As List(Of String))
|
|
m_ConstList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelConst As String
|
|
Public Property SelConst As String
|
|
Get
|
|
Return m_SelConst
|
|
End Get
|
|
Set(value As String)
|
|
m_SelConst = value
|
|
SetModified()
|
|
End Set
|
|
End Property
|
|
Public Sub SetConst(SelConst As String)
|
|
m_SelConst = SelConst
|
|
NotifyPropertyChanged("SelConst")
|
|
End Sub
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String), ConstList As List(Of String), TypeVar As String, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sValue, ComboBox, ComboValuelList, TypeVar, sLayerName)
|
|
m_ConstList = ConstList
|
|
m_SelConst = m_ConstList(0)
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class TextBoxThicknessParam
|
|
Inherits TextBoxParam
|
|
|
|
Private m_ConstList As List(Of ItemConstThickness)
|
|
Public Property ConstList As List(Of ItemConstThickness)
|
|
Get
|
|
Return m_ConstList
|
|
End Get
|
|
Set(value As List(Of ItemConstThickness))
|
|
m_ConstList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelConst As ItemConstThickness
|
|
Public Property SelConst As ItemConstThickness
|
|
Get
|
|
Return m_SelConst
|
|
End Get
|
|
Set(value As ItemConstThickness)
|
|
m_SelConst = value
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
If m_SelConst.dValue = 0 Then
|
|
IsEnableMeasure = True
|
|
Else
|
|
IsEnableMeasure = False
|
|
End If
|
|
End Set
|
|
End Property
|
|
Public Sub SetConst(SelConst As ItemConstThickness)
|
|
m_SelConst = SelConst
|
|
If m_SelConst.dValue = 0 Then
|
|
IsEnableMeasure = True
|
|
Else
|
|
IsEnableMeasure = False
|
|
End If
|
|
NotifyPropertyChanged("SelConst")
|
|
End Sub
|
|
|
|
Private m_IsEnableMeasure As Boolean = True
|
|
Public Property IsEnableMeasure As Boolean
|
|
Get
|
|
Return m_IsEnableMeasure
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsEnableMeasure = value
|
|
NotifyPropertyChanged("IsEnableMeasure")
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, sValue As String, ComboBox As ComboBoxParam, ComboValuelList As List(Of String), ConstList As List(Of ItemConstThickness), TypeVar As String, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sValue, ComboBox, ComboValuelList, TypeVar, sLayerName)
|
|
m_ConstList = ConstList
|
|
m_SelConst = m_ConstList(2)
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class CheckBoxParam
|
|
Inherits CompoParam
|
|
Implements INotifyPropertyChanged
|
|
|
|
Private m_IsChecked As Boolean = False
|
|
Public Property IsChecked As Boolean
|
|
Get
|
|
Return m_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsChecked = value
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsChecked(IsChecked As Boolean)
|
|
m_IsChecked = IsChecked
|
|
NotifyPropertyChanged("IsChecked")
|
|
End Sub
|
|
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, IsChecked As Boolean, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sLayerName)
|
|
m_IsChecked = IsChecked
|
|
End Sub
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class ComboBoxOnOffParam
|
|
Inherits ComboBoxParam
|
|
|
|
Private m_IsActive As Boolean = True
|
|
Public Property IsActive As Boolean
|
|
Get
|
|
Return m_IsActive
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsActive = value
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsActive(IsActive As Boolean)
|
|
m_IsActive = IsActive
|
|
'NotifyPropertyChanged("IsActive")
|
|
End Sub
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, ItemList As ObservableCollection(Of String), ItemListDDF As ObservableCollection(Of String), sSelItem As String, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, ItemList, ItemListDDF, sSelItem, sLayerName)
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class ComboBoxParamLua
|
|
Inherits ComboBoxParam
|
|
' serve solo per distinguere le liste che sono caricate da file GeometryNameList.ini
|
|
|
|
' riceve il nome del parametro associato alla geometria di lavorazione
|
|
Private Property m_refParam As String
|
|
Public Property refParam As String
|
|
Get
|
|
Return m_refParam
|
|
End Get
|
|
Set(value As String)
|
|
m_refParam = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_NameWorking As String
|
|
Public Property NameWorking As String
|
|
Get
|
|
Return m_NameWorking
|
|
End Get
|
|
Set(value As String)
|
|
m_NameWorking = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_TypeWorking As String
|
|
Public Property TypeWorking As String
|
|
Get
|
|
Return m_TypeWorking
|
|
End Get
|
|
Set(value As String)
|
|
m_TypeWorking = value
|
|
End Set
|
|
End Property
|
|
|
|
Public ReadOnly Property VisibilityButtonAddGeometry As Visibility
|
|
Get
|
|
Return OptionModule.m_DisableAddGeometry
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, ItemList As ObservableCollection(Of String), ItemListDDF As ObservableCollection(Of String), sSelItem As String, Optional sLayerName As String = "", Optional sKey2 As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, ItemList, ItemListDDF, sSelItem, sLayerName)
|
|
m_refParam = sKey2
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class ItemConstThickness
|
|
|
|
Private m_Name As String
|
|
Public Property Name As String
|
|
Get
|
|
Return m_Name
|
|
End Get
|
|
Set(value As String)
|
|
m_Name = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_dValue As Double
|
|
Public Property dValue As Double
|
|
Get
|
|
Return m_dValue
|
|
End Get
|
|
Set(value As Double)
|
|
m_dValue = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(Message As String, dVal As Double)
|
|
m_Name = Message
|
|
m_dValue = dVal
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class ActivateParam
|
|
Inherits CompoParam
|
|
Implements INotifyPropertyChanged
|
|
|
|
Private m_IsActivated As Boolean = False
|
|
Public Property IsActivated As Boolean
|
|
Get
|
|
Return m_IsActivated
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsChecked = value
|
|
SetModified()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Set
|
|
End Property
|
|
Public Sub SetIsActivated(IsActivate As Boolean)
|
|
m_IsActivated = IsActivate
|
|
NotifyPropertyChanged("IsChecked")
|
|
End Sub
|
|
|
|
|
|
Sub New(sDDFName As String, sName As String, CurrCompo As Compo, IsActivate As Boolean, Optional sLayerName As String = "")
|
|
MyBase.New(sDDFName, sName, CurrCompo, sLayerName)
|
|
m_IsActivated = IsActivate
|
|
End Sub
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
End Class |