f422f7a25f
-> riscalato i pixel per le immagini Hardware (1500x2000) mentre per la Door è rimasta invariata (3000x4000).
433 lines
15 KiB
VB.net
433 lines
15 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class GeometryListConfigVM
|
|
Inherits VMBase
|
|
|
|
Dim m_HardwareTemp As Hardware
|
|
|
|
#Region "MESSAGES"
|
|
|
|
Public ReadOnly Property Title As String
|
|
Get
|
|
' 50721=New Geometry
|
|
Return EgtMsg(50721)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property GeometryNameMsg As String
|
|
Get
|
|
' 50722=Geometry Name
|
|
Return EgtMsg(50722)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property TypeHardwareMsg As String
|
|
Get
|
|
' 50723=Type Hardware
|
|
Return EgtMsg(50723)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property ParameterMsg As String
|
|
Get
|
|
' 50724=Parameter
|
|
Return EgtMsg(50724)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property SaveMsg As String
|
|
Get
|
|
' 50410=Save
|
|
Return EgtMsg(50410)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
#Region "GEOMETRY NAME"
|
|
|
|
Private m_ColorText As SolidColorBrush = DirectCast(New BrushConverter().ConvertFrom("Black"), SolidColorBrush)
|
|
Public Property ColorText As SolidColorBrush
|
|
Get
|
|
Return m_ColorText
|
|
End Get
|
|
Set(value As SolidColorBrush)
|
|
m_ColorText = value
|
|
NotifyPropertyChanged("ColorText")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_GeometryName As String = "Geometry"
|
|
Public Property GeometryName As String
|
|
Get
|
|
Return m_GeometryName
|
|
End Get
|
|
Set(value As String)
|
|
m_GeometryName = Trim(value)
|
|
If Not GetWorkListGeometryName(m_SelHardware.DDFName) Then
|
|
ColorText = DirectCast(New BrushConverter().ConvertFrom(OptionModule.ColorNewGeometry), SolidColorBrush)
|
|
Else
|
|
ColorText = DirectCast(New BrushConverter().ConvertFrom("Black"), SolidColorBrush)
|
|
End If
|
|
NotifyPropertyChanged("GeometryName")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_GeometryNameList As New ObservableCollection(Of String)
|
|
Public Property GeometryNameList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_GeometryNameList
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_GeometryNameList = value
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Geommetry Name
|
|
|
|
#Region "HARDWARE LIST"
|
|
|
|
Private m_HardwareList As New ObservableCollection(Of CompoType)
|
|
Private m_SelHardware As CompoType
|
|
|
|
Private m_GraphicHardwareList As New ObservableCollection(Of String)
|
|
Public Property GraphicHardwareList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_GraphicHardwareList
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_GraphicHardwareList = value
|
|
NotifyPropertyChanged("GraphicHardwareList")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelGraphicHardware As String
|
|
Public Property SelGraphicHardware As String
|
|
Get
|
|
Return m_SelGraphicHardware
|
|
End Get
|
|
Set(value As String)
|
|
m_SelGraphicHardware = value
|
|
For Each Item In m_HardwareList
|
|
If Item.Name = m_SelGraphicHardware Then
|
|
m_SelHArdware = Item
|
|
Exit For
|
|
End If
|
|
Next
|
|
LoadParamBySelecetedHardware()
|
|
GetWorkListGeometryName(m_SelHardware.DDFName)
|
|
NotifyPropertyChanged("SelGraphicHardware")
|
|
End Set
|
|
End Property
|
|
|
|
#End Region ' Hardware List
|
|
|
|
#Region "PARAMETER LIST"
|
|
|
|
'Private m_Parameter As CompoParam
|
|
|
|
Private m_ParameterList As New ObservableCollection(Of ItemGeometry)
|
|
Public Property ParameterList As ObservableCollection(Of ItemGeometry)
|
|
Get
|
|
Return m_ParameterList
|
|
End Get
|
|
Set(value As ObservableCollection(Of ItemGeometry))
|
|
m_ParameterList = value
|
|
NotifyPropertyChanged("ParameterList")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelParameter As String
|
|
Private m_CurrentWork() As String
|
|
|
|
#End Region ' Parameter List
|
|
|
|
#Region "METODI"
|
|
|
|
Public Function LoadNameComboBoxLua(LocalHardware As Hardware) As Boolean
|
|
' prima di ricaricare la lista deve essere svuotata
|
|
ParameterList.Clear()
|
|
For Each Chapter In LocalHardware.GroupChapters
|
|
For Each Parameter In Chapter.CompoParamList
|
|
If TypeOf Parameter Is ComboBoxParamLua Then
|
|
Dim Text As ComboBoxParamLua = DirectCast(Parameter, ComboBoxParamLua)
|
|
Dim sItem() As String = Text.DDFName.Split("."c)
|
|
If sItem.Count > 0 Then
|
|
ParameterList.Add(New ItemGeometry(sItem(1)))
|
|
Else
|
|
ParameterList.Add(New ItemGeometry(Text.DDFName))
|
|
End If
|
|
End If
|
|
Next
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
Public Function LoadParamBySelecetedHardware() As Boolean
|
|
' creo un HardwareTemporaneo per leggere le sue componenti
|
|
m_HardwareTemp = New Hardware
|
|
m_HardwareTemp.LoadTemplate(m_SelHardware)
|
|
LoadNameComboBoxLua(m_HardwareTemp)
|
|
HardwareTemp = Nothing
|
|
Return True
|
|
End Function
|
|
|
|
Public Sub AddNewGeometryNameList()
|
|
If IsNothing(Map.refHardwarePageVM) OrElse IsNothing(Map.refHardwarePageVM.CurrHardware) Then Return
|
|
For Each ItemGrupoChapter In Map.refHardwarePageVM.CurrHardware.GroupChapters
|
|
If m_SelHardware.DDFName <> ItemGrupoChapter.CompoType.DDFName Then Return
|
|
For Each ItemParam In ItemGrupoChapter.CompoParamList
|
|
If TypeOf ItemParam Is ComboBoxParamLua Then
|
|
Dim Param As ComboBoxParamLua = DirectCast(ItemParam, ComboBoxParamLua)
|
|
Dim sItem() As String = Param.DDFName.Split("."c)
|
|
If sItem.Count = 1 Then Continue For
|
|
Dim NewListGeometry As ObservableCollection(Of String) = Map.refHardwarePageVM.CurrHardware.GetCurrentListGeometry(m_SelHardware.DDFName, sItem(1))
|
|
Param.ItemList = NewListGeometry
|
|
Param.ItemListDDF.Clear()
|
|
For Each ItemGeometryName In NewListGeometry
|
|
Param.ItemListDDF.Add("'" & ItemGeometryName & "'")
|
|
Next
|
|
' eseguo un aggiornamento della selezione
|
|
If ItemParam.ErrorInReading Then
|
|
Param.SelItem = Param.SelItem
|
|
End If
|
|
End If
|
|
Next
|
|
Next
|
|
End Sub
|
|
|
|
Public Function GetWorkListGeometryName(sNameDDF As String) As Boolean
|
|
m_CurrentWork = Nothing
|
|
Dim sGeometry As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
Dim Index As Integer = 1
|
|
Dim WorkList As New List(Of String)
|
|
Dim bNameExists As Boolean = False
|
|
While IniFile.GetGeometryNameList("GeometryNames", CStr(Index), sName, WorkList)
|
|
If m_GeometryName = sName Then
|
|
bNameExists = True
|
|
Exit While
|
|
End If
|
|
Index += 1
|
|
WorkList.Clear()
|
|
End While
|
|
For Each ItemWork In WorkList
|
|
Dim sItems() As String = ItemWork.Split(","c)
|
|
If sItems.Count() > 1 And Trim(sItems(0)) = Trim(sNameDDF) Then
|
|
m_CurrentWork = sItems
|
|
Exit For
|
|
End If
|
|
Next
|
|
For Each ItemParam In m_ParameterList
|
|
ItemParam.IsChecked = False
|
|
ItemParam.IsEnable = True
|
|
Next
|
|
If Not IsNothing(m_CurrentWork) Then
|
|
For Each ItemWork In m_CurrentWork
|
|
For Each ItemParam In m_ParameterList
|
|
If Trim(ItemParam.NameDDF) = Trim(ItemWork) Then
|
|
ItemParam.IsChecked = True
|
|
ItemParam.IsEnable = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
Next
|
|
End If
|
|
Return bNameExists
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
Private m_CmdSave As ICommand
|
|
|
|
#Region "SAVE"
|
|
|
|
Public ReadOnly Property SaveCommand As ICommand
|
|
Get
|
|
If m_CmdSave Is Nothing Then
|
|
m_CmdSave = New Command(AddressOf SaveGeometryName)
|
|
End If
|
|
Return m_CmdSave
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub SaveGeometryName(param As Object)
|
|
Dim sGeometry As String = String.Empty
|
|
Dim sName As String = String.Empty
|
|
Dim Index As Integer = 1
|
|
Dim WorkList As New List(Of String)
|
|
Dim bNameExists As Boolean = False
|
|
Dim bWorkExist As Boolean = False
|
|
Dim bOk As Boolean = True
|
|
Dim sErrMessage As String = String.Empty
|
|
Dim LocalList As New List(Of String)
|
|
Dim sList As String = String.Empty
|
|
' verifico che non ci siano delle copie
|
|
For Each ItemGeometry In ParameterList
|
|
If ItemGeometry.IsChecked And ItemGeometry.IsEnable Then
|
|
WorkList.Clear()
|
|
LocalList.Add(ItemGeometry.NameDDF)
|
|
m_SelParameter = ItemGeometry.NameDDF
|
|
sList = sList & ", " & m_SelParameter
|
|
While IniFile.GetGeometryNameList("GeometryNames", CStr(Index), sName, WorkList)
|
|
If m_GeometryName = sName Then
|
|
bNameExists = True
|
|
Exit While
|
|
End If
|
|
Index += 1
|
|
WorkList.Clear()
|
|
End While
|
|
' verifico il NomeGeometria associato al parametro, ed eventualmente lo inserisco
|
|
If bNameExists Then
|
|
For Each ItemWork In WorkList
|
|
Dim sWorks() As String = ItemWork.Split(","c)
|
|
If sWorks.Count = 1 Then
|
|
' 50568=Error in definition {0} in file GeometryNameList.ini
|
|
sErrMessage = String.Format(EgtMsg(50568), m_GeometryName)
|
|
bOk = False
|
|
Else
|
|
If Trim(sWorks(0)) = Trim(m_SelHardware.DDFName) Then
|
|
For Each ItemParameter In sWorks
|
|
If Trim(ItemParameter) = Trim(m_SelParameter) Then
|
|
' 50554=Parameter {0} is already deinfed in geometry {1}., 50144=Warning
|
|
MessageBox.Show(String.Format(EgtMsg(50554), m_SelParameter, m_GeometryName), EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Warning)
|
|
Return
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
Next
|
|
If LocalList.Count = 0 Then
|
|
' 50570=Nothing has been selected.
|
|
sErrMessage = EgtMsg(50570)
|
|
bOk = False
|
|
End If
|
|
|
|
' verifico che il NomeGeometria, ed eventualmente lo inserisco
|
|
If bNameExists And bOk Then
|
|
sGeometry = Trim(m_GeometryName)
|
|
Dim bExistWork As Boolean = False
|
|
For Each ItemWork In WorkList
|
|
Dim sNamehardware As String = ItemWork.Split(","c)(0)
|
|
If Trim(sNamehardware) = Trim(m_SelHardware.DDFName) Then
|
|
ItemWork = ItemWork & sList
|
|
bExistWork = True
|
|
End If
|
|
Dim sWorks() As String = ItemWork.Split(","c)
|
|
sGeometry = sGeometry & "; "
|
|
If sWorks.Count > 1 Then
|
|
For IndexWork = 0 To sWorks.Count - 1
|
|
If IndexWork = 0 Then
|
|
sGeometry = sGeometry & Trim(sWorks(IndexWork))
|
|
Else
|
|
sGeometry = sGeometry & ", " & Trim(sWorks(IndexWork))
|
|
End If
|
|
Next
|
|
Else
|
|
' 50568=Error in definition {0} in file GeometryNameList.ini
|
|
sErrMessage = String.Format(EgtMsg(50568), m_GeometryName)
|
|
bOk = False
|
|
End If
|
|
Next
|
|
If Not bExistWork Then
|
|
sGeometry = sGeometry & "; " & m_SelHardware.DDFName & sList
|
|
WorkList.Add(m_SelHardware.DDFName & sList)
|
|
End If
|
|
IniFile.SetGeometryNameList("GeometryNames", CStr(Index), sGeometry)
|
|
ElseIf bOk Then
|
|
'Dim sItems() As String = m_Parameter.DDFName.Split("."c)
|
|
If Not String.IsNullOrEmpty(sList) Then
|
|
sGeometry = m_GeometryName & "; " & m_HardwareTemp.HardwareGeneral.DDFName & sList
|
|
IniFile.SetGeometryNameList("GeometryNames", CStr(Index), sGeometry)
|
|
Else
|
|
' 50569=Error in definition {0} in file StdTemplate.ini .
|
|
sErrMessage = String.Format(EgtMsg(50568), sList)
|
|
bOk = False
|
|
End If
|
|
End If
|
|
|
|
' chiudo finestra
|
|
For Each Window In Application.Current.Windows
|
|
If TypeOf Window Is GeometryListConfigV Then
|
|
Dim GeometryListWindow As GeometryListConfigV = DirectCast(Window, GeometryListConfigV)
|
|
GeometryListWindow.Close()
|
|
'aggiorno la tabella in lettura
|
|
CompoMatch.ResetSTU()
|
|
CompoMatch.LoadTableGeometry()
|
|
End If
|
|
Next
|
|
' comunico eventuali errori
|
|
If Not bOk Then
|
|
' 50555=Param Name is not correct, Impossible to save. ,50101=Error
|
|
sErrMessage = EgtMsg(50555) & vbCrLf & sErrMessage
|
|
MessageBox.Show(sErrMessage, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Warning)
|
|
Return
|
|
End If
|
|
AddNewGeometryNameList()
|
|
End Sub
|
|
|
|
#End Region ' Save
|
|
|
|
Sub New(ParamName As String)
|
|
' carico la lista degli Hardware
|
|
For Each Element In Map.refCompoPanelVM.CompoTypeList
|
|
m_HardwareList.Add(Element)
|
|
m_GraphicHardwareList.Add(Element.Name)
|
|
m_HardwareTemp = Map.refHardwarePageVM.CurrHardware
|
|
If Map.refHardwarePageVM.CurrHardware.HardwareGeneral.Name = Element.Name Then
|
|
' selziono il nome da mostrare in grafica
|
|
m_SelGraphicHardware = m_GraphicHardwareList(m_GraphicHardwareList.Count - 1)
|
|
m_SelHardware = Element
|
|
End If
|
|
Next
|
|
If Not String.IsNullOrEmpty(ParamName) Then
|
|
GeometryName = ParamName
|
|
End If
|
|
' carico la lista dei Parametri
|
|
LoadNameComboBoxLua(Map.refHardwarePageVM.CurrHardware)
|
|
GetWorkListGeometryName(m_HardwareTemp.HardwareGeneral.DDFName)
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class ItemGeometry
|
|
Inherits VMBase
|
|
|
|
Private m_NameDDF As String = String.Empty
|
|
Public ReadOnly Property NameDDF As String
|
|
Get
|
|
Return m_NameDDF
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsChecked As Boolean = False
|
|
Public Property IsChecked As Boolean
|
|
Get
|
|
Return m_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsChecked = value
|
|
NotifyPropertyChanged("IsChecked")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsEnable As Boolean = True
|
|
Public Property IsEnable As Boolean
|
|
Get
|
|
Return m_IsEnable
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsEnable = value
|
|
NotifyPropertyChanged("IsEnable")
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(sNameDDF As String)
|
|
m_NameDDF = sNameDDF
|
|
End Sub
|
|
|
|
End Class
|