Files
icarus/Icarus/MaterialDb/Material.vb
DarioS 2c04b2e5cc Icarus 2.4j4 :
- aggiunto Grid da Oggetto anche in Start Layer
- corretta gestione tipo slice in DB lavorazioni.
2022-10-28 20:39:40 +02:00

892 lines
30 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports System.Text
Imports EgtUILib
Imports EgtWPFLib5
Public Class Material
Inherits VMBase
Private m_CathegoryList As New ObservableCollection(Of MaterialCathegory)
Public ReadOnly Property CathegoryList As ObservableCollection(Of MaterialCathegory)
Get
Return m_CathegoryList
End Get
End Property
Private m_bIsModified As Boolean
Public ReadOnly Property bIsModified As Boolean
Get
Return m_bIsModified
End Get
End Property
Friend Sub UpdateIsModified()
m_bIsModified = m_CathegoryList.Any(Function(x) x.MaterialParamList.Any(Function(y) y.bIsModified))
NotifyPropertyChanged(NameOf(ghName))
End Sub
Private m_nIndex As Integer
Public ReadOnly Property nIndex As Integer
Get
Return m_nIndex
End Get
End Property
Private m_sGUID As String
Public ReadOnly Property sGUID As String
Get
Return m_sGUID
End Get
End Property
Private m_sName As String
Public Property sName As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
Map.refMaterialDbVM.SetNameVisibility(False)
NotifyPropertyChanged(NameOf(ghName))
End Set
End Property
Public ReadOnly Property ghName As String
Get
Return m_sName & If(m_bIsModified, "*", "")
End Get
End Property
Private m_dK As Double
Public ReadOnly Property dK As Double
Get
Return m_dK
End Get
End Property
Private m_dC1 As Double
Public ReadOnly Property dC1 As Double
Get
Return m_dC1
End Get
End Property
Private m_dC2 As Double
Public ReadOnly Property dC2 As Double
Get
Return m_dC2
End Get
End Property
Private m_dDensity As Double
Public ReadOnly Property dDensity As Double
Get
Return m_dDensity
End Get
End Property
Private m_dAMax As Double
Public ReadOnly Property dAMax As Double
Get
Return m_dAMax
End Get
End Property
Private m_dATrg As Double
Public ReadOnly Property dATrg As Double
Get
Return m_dATrg
End Get
End Property
Private m_dAMin As Double
Public ReadOnly Property dAMin As Double
Get
Return m_dAMin
End Get
End Property
Private m_dBMax As Double
Public ReadOnly Property dBMax As Double
Get
Return m_dBMax
End Get
End Property
Private m_dBTrg As Double
Public ReadOnly Property dBTrg As Double
Get
Return m_dBTrg
End Get
End Property
Private m_dBMin As Double
Public ReadOnly Property dBMin As Double
Get
Return m_dBMin
End Get
End Property
Private m_dKW As Double
Friend ReadOnly Property dKW As Double
Get
Return m_dKW
End Get
End Property
Private m_dKZ As Double
Friend ReadOnly Property dKZ As Double
Get
Return m_dKZ
End Get
End Property
Private m_dKN As Double
Friend ReadOnly Property dKN As Double
Get
Return m_dKN
End Get
End Property
' per lettura da file
Sub New(nIndex As Integer)
m_nIndex = nIndex
ReadMaterialParamString(nIndex, MAT_GUID, "", m_sGUID)
ReadMaterialParamString(nIndex, MAT_NAME, "", m_sName)
'EgtGetStringUtf8FromIni(nIndex, MAT_NAME, "", m_sName, sMatIniFilePath)
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.GENERAL, nIndex))
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.TEMPERATURES, nIndex))
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.CONSTANT, nIndex))
For Each Cathegory In m_CathegoryList
For Each MaterialParam In Cathegory.MaterialParamList
AddHandler MaterialParam.PropertyChanged, AddressOf OnMaterialParamPropertyChanged
Next
Next
End Sub
' per copia
Sub New()
m_nIndex = Map.refMaterialDbVM.MaterialList.Max(Function(x) x.nIndex) + 1
m_sGUID = Guid.NewGuid.ToString()
m_sName = "New Material Param"
Dim nCopyIndex As Integer = Map.refMaterialDbVM.SelMaterial.m_nIndex
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.GENERAL, nCopyIndex))
Dim Orig As StringMaterialParam = m_CathegoryList(0).MaterialParamList.FirstOrDefault(Function(x) x.Type = MaterialParam.Params.ORIG)
If Not IsNothing(Orig) Then
Orig.SetGuid(Map.refMaterialDbVM.SelMaterial.m_sGUID)
End If
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.TEMPERATURES, nCopyIndex))
m_CathegoryList.Add(New MaterialCathegory(MaterialCathegory.Cathegories.CONSTANT, nCopyIndex))
For Each Cathegory In m_CathegoryList
For Each MaterialParam In Cathegory.MaterialParamList
AddHandler MaterialParam.PropertyChanged, AddressOf OnMaterialParamPropertyChanged
Next
Next
m_bIsModified = True
End Sub
Sub New(nIndex As Integer, sGUID As String, sName As String)
m_nIndex = nIndex
m_sName = sName
m_sGUID = sGUID
m_dK = ReadMaterialParamDouble(m_nIndex, MAT_K, 0)
m_dC1 = ReadMaterialParamDouble(m_nIndex, MAT_C1, 0)
m_dC2 = ReadMaterialParamDouble(m_nIndex, MAT_C2, 0)
m_dDensity = ReadMaterialParamDouble(m_nIndex, MAT_DENSITY, 0)
m_dAMax = ReadMaterialParamDouble(m_nIndex, MAT_AMAX, 0)
m_dATrg = ReadMaterialParamDouble(m_nIndex, MAT_ATRG, 0)
m_dAMin = ReadMaterialParamDouble(m_nIndex, MAT_AMIN, 0)
m_dBMax = ReadMaterialParamDouble(m_nIndex, MAT_BMAX, 0)
m_dBTrg = ReadMaterialParamDouble(m_nIndex, MAT_BTRG, 0)
m_dBMin = ReadMaterialParamDouble(m_nIndex, MAT_BMIN, 0)
m_dKW = ReadMaterialParamDouble(m_nIndex, MAT_KW, 0)
m_dKZ = ReadMaterialParamDouble(m_nIndex, MAT_KZ, 0)
m_dKN = ReadMaterialParamDouble(m_nIndex, MAT_KN, 0)
End Sub
Private Sub ReadAllParams()
'm_nSlicingType = ReadMaterialParamDouble(m_nIndex, MAC_SLICINGTYPE, 0, CurrentMachine.sMachiningFilePath)
'm_dStrandH = ReadMaterialParamDouble(m_nIndex, MAC_STRANDH, 0, CurrentMachine.sMachiningFilePath)
'm_dStrandW = ReadMaterialParamDouble(m_nIndex, MAC_STRANDW, 0, CurrentMachine.sMachiningFilePath)
'm_nStrandCount = ReadMaterialParamDouble(m_nIndex, MAC_STRANDCOUNT, 0, CurrentMachine.sMachiningFilePath)
'm_dOffset = ReadMaterialParamDouble(m_nIndex, MAC_OFFSET, 0, CurrentMachine.sMachiningFilePath)
'm_dStartPointOffsetOnSlice = ReadMaterialParamDouble(m_nIndex, MAC_STARTPOINTOFFSETONSLICE, 0, CurrentMachine.sMachiningFilePath)
'm_dStrandOrder = ReadMaterialParamDouble(m_nIndex, MAC_STRANDORDER, 0, CurrentMachine.sMachiningFilePath)
'm_dDirection = ReadMaterialParamDouble(m_nIndex, MAC_DIRECTION, 0, CurrentMachine.sMachiningFilePath)
'm_dLinkType = ReadMaterialParamDouble(m_nIndex, MAC_LINKTYPE, 0, CurrentMachine.sMachiningFilePath)
'm_dLinkParam = ReadMaterialParamDouble(m_nIndex, MAC_LINKPARAM, 0, CurrentMachine.sMachiningFilePath)
'm_dLinkZup = ReadMaterialParamDouble(m_nIndex, MAC_LINKZUP, 0, CurrentMachine.sMachiningFilePath)
'm_dOffsetLeadPoint = ReadMaterialParamDouble(m_nIndex, MAC_OFFSETLEADPOINT, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadIn = ReadMaterialParamDouble(m_nIndex, MAC_LEADIN, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadInTangDist = ReadMaterialParamDouble(m_nIndex, MAC_LEADINTANGDIST, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadInOrthoDist = ReadMaterialParamDouble(m_nIndex, MAC_LEADINORTHODIST, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadOut = ReadMaterialParamDouble(m_nIndex, MAC_LEADOUT, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadOutTangDist = ReadMaterialParamDouble(m_nIndex, MAC_LEADOUTTANGDIST, 0, CurrentMachine.sMachiningFilePath)
'm_dLeadOutOrthoDist = ReadMaterialParamDouble(m_nIndex, MAC_LEADOUTORTHODIST, 0, CurrentMachine.sMachiningFilePath)
'm_dCoastingLen = ReadMaterialParamDouble(m_nIndex, MAC_COASTINGLEN, 0, CurrentMachine.sMachiningFilePath)
'm_dCoastingFeed = ReadMaterialParamDouble(m_nIndex, MAC_COASTINGFEED, 0, CurrentMachine.sMachiningFilePath)
'm_dWipeLen = ReadMaterialParamDouble(m_nIndex, MAC_WIPELEN, 0, CurrentMachine.sMachiningFilePath)
'm_dWipeFeedPu = ReadMaterialParamDouble(m_nIndex, MAC_WIPEFEEDPU, 0, CurrentMachine.sMachiningFilePath)
'm_dFloorCount = ReadMaterialParamDouble(m_nIndex, MAC_FLOORCOUNT, 0, CurrentMachine.sMachiningFilePath)
'm_dG0Feed = ReadMaterialParamDouble(m_nIndex, MAC_G0FEED, 0, CurrentMachine.sMachiningFilePath)
'm_dToolDiam = ReadMaterialParamDouble(m_nIndex, MAC_TOOLDIAM, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsOverlap = ReadMaterialParamDouble(m_nIndex, MAC_RIBSOVERLAP, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsStrandCount = ReadMaterialParamDouble(m_nIndex, MAC_RIBSSTRANDCOUNT, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLink = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLINK, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsInvertOrder = ReadMaterialParamDouble(m_nIndex, MAC_RIBSINVERTORDER, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsInvertDirection = ReadMaterialParamDouble(m_nIndex, MAC_RIBSINVERTDIRECTION, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadInInvert = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADININVERT, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadInLen = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADINLEN, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadOutInvert = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADOUTINVERT, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadOutLen = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADOUTLEN, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadOutCoasting = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADOUTCOASTING, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadOutWipe = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADOUTWIPE, 0, CurrentMachine.sMachiningFilePath)
'm_dRibsLeadOutWipeDir = ReadMaterialParamDouble(m_nIndex, MAC_RIBSLEADOUTWIPEDIR, 0, CurrentMachine.sMachiningFilePath)
End Sub
Friend Sub Save()
If bIsModified Then
' salvo tutti i parametri su orig
SaveParams()
' resetto stato di modificata
UpdateIsModified()
' segno Db come modificato
Map.refMaterialDbVM.SetIsModified(True)
End If
End Sub
Private Sub SaveParams()
For Each Cathegory In m_CathegoryList
Cathegory.SaveParams()
Next
End Sub
Friend Sub ResetModification()
If bIsModified Then
' annullo le modifiche di tutti i parametri
SaveParams()
' resetto stato di modificata
UpdateIsModified()
End If
End Sub
Private Sub ResetParams()
For Each Cathegory In m_CathegoryList
Cathegory.ResetParams()
Next
End Sub
Friend Sub WriteParamsOnDb(nIndex As Integer)
WriteMaterialParam(nIndex, MAT_GUID, m_sGUID)
WriteMaterialParam(nIndex, MAT_NAME, m_sName)
' EgtWriteStringUtf8toIni(nIndex, MAT_NAME, m_sName)
For Each Cathegory In m_CathegoryList
Cathegory.WriteParamOnDb(nIndex)
Next
End Sub
Private Sub OnMaterialParamPropertyChanged(sender As Object, e As PropertyChangedEventArgs)
Select Case e.PropertyName
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue)
m_bIsModified = m_CathegoryList.Any(Function(x) x.MaterialParamList.Any(Function(y) y.bIsModified))
NotifyPropertyChanged(NameOf(ghName))
End Select
End Sub
End Class
Public Class MaterialIndex
Private m_nIndex As Integer
Public ReadOnly Property nIndex As Integer
Get
Return m_nIndex
End Get
End Property
Private m_sGUID As String
Public ReadOnly Property sGUID As String
Get
Return m_sGUID
End Get
End Property
Private m_sName As String
Public ReadOnly Property sName As String
Get
Return m_sName
End Get
End Property
Sub New(nIndex As Integer, sGUID As String, sName As String)
m_nIndex = nIndex
m_sGUID = sGUID
m_sName = sName
End Sub
End Class
Public Class MaterialCathegory
Inherits VMBase
Public Enum Cathegories As Integer
GENERAL = 1
TEMPERATURES = 2
CONSTANT = 3
End Enum
Private m_Type As Cathegories
Public ReadOnly Property Type As Cathegories
Get
Return m_Type
End Get
End Property
Private m_sName As String
Public ReadOnly Property sName As String
Get
Return m_sName
End Get
End Property
Private m_MaterialParamList As List(Of MaterialParam)
Public ReadOnly Property MaterialParamList As List(Of MaterialParam)
Get
Return m_MaterialParamList
End Get
End Property
Private m_Cathegory_IsExpanded As Boolean
Public Property Cathegory_IsExpanded As Boolean
Get
Return m_Cathegory_IsExpanded
End Get
Set(value As Boolean)
m_Cathegory_IsExpanded = value
End Set
End Property
Private m_Cathegory_Visibility As Visibility = Visibility.Collapsed
Public ReadOnly Property Cathegory_Visibility As Visibility
Get
Return m_Cathegory_Visibility
End Get
End Property
Sub New(Type As Cathegories, nIndex As Integer)
m_Type = Type
Select Case m_Type
Case Cathegories.GENERAL
m_sName = "General"
m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.K, nIndex),
New NumericMaterialParam(MaterialParam.Params.DENSITY, nIndex),
New StringMaterialParam(MaterialParam.Params.ORIG, nIndex)})
m_Cathegory_Visibility = Visibility.Visible
Case Cathegories.TEMPERATURES
m_sName = "Temperatures"
m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.T1, nIndex),
New NumericMaterialParam(MaterialParam.Params.T2, nIndex),
New NumericMaterialParam(MaterialParam.Params.T3, nIndex),
New NumericMaterialParam(MaterialParam.Params.T4, nIndex),
New NumericMaterialParam(MaterialParam.Params.T5, nIndex)})
m_Cathegory_Visibility = Visibility.Visible
Case Cathegories.CONSTANT
m_sName = "Constant"
m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.C1, nIndex),
New NumericMaterialParam(MaterialParam.Params.C2, nIndex),
New NumericMaterialParam(MaterialParam.Params.AMAX, nIndex),
New NumericMaterialParam(MaterialParam.Params.ATRG, nIndex),
New NumericMaterialParam(MaterialParam.Params.AMIN, nIndex),
New NumericMaterialParam(MaterialParam.Params.BMAX, nIndex),
New NumericMaterialParam(MaterialParam.Params.BTRG, nIndex),
New NumericMaterialParam(MaterialParam.Params.BMIN, nIndex),
New NumericMaterialParam(MaterialParam.Params.KW, nIndex),
New NumericMaterialParam(MaterialParam.Params.KZ, nIndex),
New NumericMaterialParam(MaterialParam.Params.KN, nIndex)})
m_Cathegory_Visibility = If(Map.refMainWindowVM.MainWindowM.nUserLevel >= 5, Visibility.Visible, Visibility.Collapsed)
End Select
NotifyPropertyChanged(NameOf(Cathegory_Visibility))
End Sub
Friend Sub SaveParams()
For Each Param In m_MaterialParamList
Param.SaveParam()
Next
End Sub
Friend Sub ResetParams()
For Each Param In m_MaterialParamList
Param.ResetParam()
Next
End Sub
Friend Sub WriteParamOnDb(nIndex As Integer)
For Each Param In m_MaterialParamList
Param.WriteParamOnDb(nIndex)
Next
End Sub
End Class
Public MustInherit Class MaterialParam
Inherits VMBase
Public Enum Params As Integer
NAME = 2
T1 = 3
T2 = 4
T3 = 5
T4 = 6
T5 = 7
K = 8
C1 = 9
C2 = 10
DENSITY = 11
AMAX = 12
ATRG = 13
AMIN = 14
BMAX = 15
BTRG = 16
BMIN = 17
KW = 18
KZ = 19
KN = 20
ORIG = 21
End Enum
Private m_Type As Params
Public ReadOnly Property Type As Params
Get
Return m_Type
End Get
End Property
Private m_sName As String
Public ReadOnly Property sName As String
Get
Return m_sName
End Get
End Property
Public MustOverride ReadOnly Property bIsModified As Boolean
Sub New(Type As Params)
m_Type = Type
Select Case m_Type
Case Params.T1
m_sName = "Temperature 1"
Case Params.T2
m_sName = "Temperature 2"
Case Params.T3
m_sName = "Temperature 3"
Case Params.T4
m_sName = "Temperature 4"
Case Params.T5
m_sName = "Temperature 5"
Case Params.K
m_sName = "Constant"
Case Params.C1
m_sName = "C1"
Case Params.C2
m_sName = "C2"
Case Params.DENSITY
m_sName = "Density"
Case Params.AMAX
m_sName = "A Max"
Case Params.ATRG
m_sName = "A Target"
Case Params.AMIN
m_sName = "A Min"
Case Params.BMAX
m_sName = "B Max"
Case Params.BTRG
m_sName = "B Target"
Case Params.BMIN
m_sName = "B Min"
Case Params.KW
m_sName = "KW"
Case Params.KZ
m_sName = "KZ"
Case Params.KN
m_sName = "KN"
Case Params.ORIG
m_sName = "Original"
End Select
End Sub
Friend MustOverride Sub WriteParamOnDb(nIndex As Integer)
Friend MustOverride Sub SaveParam()
Friend MustOverride Sub ResetParam()
End Class
Public Class NumericMaterialParam
Inherits MaterialParam
Private m_bIsLen As Boolean = False
Private m_dValue As Double
Public Property dValue As String
Get
Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue)
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
End If
NotifyPropertyChanged(NameOf(dValue))
End Set
End Property
Private m_dOrigValue As Double
Public ReadOnly Property dOrigValue As Double
Get
Return m_dOrigValue
End Get
End Property
Public Overrides ReadOnly Property bIsModified As Boolean
Get
Return m_dValue <> m_dOrigValue
End Get
End Property
Sub New(Type As Params, nIndex As Integer)
MyBase.New(Type)
Select Case Type
Case Params.T1
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T1, 0)
m_bIsLen = False
Case Params.T2
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T2, 0)
m_bIsLen = False
Case Params.T3
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T3, 0)
m_bIsLen = False
Case Params.T4
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T4, 0)
m_bIsLen = False
Case Params.T5
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T5, 0)
m_bIsLen = False
Case Params.K
m_dValue = ReadMaterialParamDouble(nIndex, MAT_K, 0)
m_bIsLen = False
Case Params.C1
m_dValue = ReadMaterialParamDouble(nIndex, MAT_C1, 0)
m_bIsLen = False
Case Params.C2
m_dValue = ReadMaterialParamDouble(nIndex, MAT_C2, 0)
m_bIsLen = False
Case Params.DENSITY
m_dValue = ReadMaterialParamDouble(nIndex, MAT_DENSITY, 0)
m_bIsLen = False
Case Params.AMAX
m_dValue = ReadMaterialParamDouble(nIndex, MAT_AMAX, 0)
m_bIsLen = False
Case Params.ATRG
m_dValue = ReadMaterialParamDouble(nIndex, MAT_ATRG, 0)
m_bIsLen = False
Case Params.AMIN
m_dValue = ReadMaterialParamDouble(nIndex, MAT_AMIN, 0)
m_bIsLen = False
Case Params.BMAX
m_dValue = ReadMaterialParamDouble(nIndex, MAT_BMAX, 0)
m_bIsLen = False
Case Params.BTRG
m_dValue = ReadMaterialParamDouble(nIndex, MAT_BTRG, 0)
m_bIsLen = False
Case Params.BMIN
m_dValue = ReadMaterialParamDouble(nIndex, MAT_BMIN, 0)
m_bIsLen = False
Case Params.KW
m_dValue = ReadMaterialParamDouble(nIndex, MAT_KW, 0)
m_bIsLen = False
Case Params.KZ
m_dValue = ReadMaterialParamDouble(nIndex, MAT_KZ, 0)
m_bIsLen = False
Case Params.KN
m_dValue = ReadMaterialParamDouble(nIndex, MAT_KN, 0)
m_bIsLen = False
End Select
m_dOrigValue = m_dValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Dim sWriteValue As String = ""
If m_bIsLen Then
sWriteValue = LenToString(m_dValue, 5)
Else
sWriteValue = DoubleToString(m_dValue, 5)
End If
Select Case Type
Case Params.T1
WriteMaterialParam(nIndex, MAT_T1, sWriteValue)
Case Params.T2
WriteMaterialParam(nIndex, MAT_T2, sWriteValue)
Case Params.T3
WriteMaterialParam(nIndex, MAT_T3, sWriteValue)
Case Params.T4
WriteMaterialParam(nIndex, MAT_T4, sWriteValue)
Case Params.T5
WriteMaterialParam(nIndex, MAT_T5, sWriteValue)
Case Params.K
WriteMaterialParam(nIndex, MAT_K, sWriteValue)
Case Params.C1
WriteMaterialParam(nIndex, MAT_C1, sWriteValue)
Case Params.C2
WriteMaterialParam(nIndex, MAT_C2, sWriteValue)
Case Params.DENSITY
WriteMaterialParam(nIndex, MAT_DENSITY, sWriteValue)
Case Params.AMAX
WriteMaterialParam(nIndex, MAT_AMAX, sWriteValue)
Case Params.ATRG
WriteMaterialParam(nIndex, MAT_ATRG, sWriteValue)
Case Params.AMIN
WriteMaterialParam(nIndex, MAT_AMIN, sWriteValue)
Case Params.BMAX
WriteMaterialParam(nIndex, MAT_BMAX, sWriteValue)
Case Params.BTRG
WriteMaterialParam(nIndex, MAT_BTRG, sWriteValue)
Case Params.BMIN
WriteMaterialParam(nIndex, MAT_BMIN, sWriteValue)
Case Params.KW
WriteMaterialParam(nIndex, MAT_KW, sWriteValue)
Case Params.KZ
WriteMaterialParam(nIndex, MAT_KZ, sWriteValue)
Case Params.KN
WriteMaterialParam(nIndex, MAT_KN, sWriteValue)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_dOrigValue = m_dValue
End Sub
Friend Overrides Sub ResetParam()
m_dValue = m_dOrigValue
End Sub
End Class
Public Class StringMaterialParam
Inherits MaterialParam
Private m_sGUID As String
Public Property sGUID As String
Get
Return m_sGUID
End Get
Set(value As String)
m_sGUID = value
End Set
End Property
Friend Sub SetGuid(sGUID As String)
Dim OrigMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = sGUID)
If Not IsNothing(OrigMaterial) Then
m_sGUID = OrigMaterial.sGUID
m_sValue = OrigMaterial.sName
End If
End Sub
Private m_sValue As String
Public Property sValue As String
Get
Return m_sValue
End Get
Set(value As String)
m_sValue = value
NotifyPropertyChanged(NameOf(sValue))
End Set
End Property
Private m_sOrigValue As String
Public ReadOnly Property sOrigValue As String
Get
Return m_sOrigValue
End Get
End Property
Public Overrides ReadOnly Property bIsModified As Boolean
Get
Return m_sValue <> m_sOrigValue
End Get
End Property
Private m_bIsReadOnly As Boolean = True
Public ReadOnly Property bIsReadOnly As Boolean
Get
Return m_bIsReadOnly
End Get
End Property
Private m_String_Visibility As Visibility = Visibility.Collapsed
Public ReadOnly Property String_Visibility As Visibility
Get
Return m_String_Visibility
End Get
End Property
Sub New(Type As Params, nIndex As Integer)
MyBase.New(Type)
Select Case Type
Case Params.ORIG
Dim sOrigGUID As String = ""
ReadMaterialParamString(nIndex, MAT_ORIG, "", sOrigGUID)
If sOrigGUID = "***" Then
m_sGUID = sOrigGUID
m_sValue = sOrigGUID
' se livello alto, lo visualizzo comunque
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 Then
m_String_Visibility = Visibility.Visible
Else
m_String_Visibility = Visibility.Collapsed
End If
Else
Dim OrigMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = sOrigGUID)
If Not IsNothing(OrigMaterial) Then
m_sGUID = OrigMaterial.sGUID
m_sValue = OrigMaterial.sName
' m_sValue = OrigMaterial.sName
End If
m_String_Visibility = Visibility.Visible
End If
NotifyPropertyChanged(NameOf(String_Visibility))
End Select
' verifico chiave per assegnare readonly
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 Then
m_bIsReadOnly = False
End If
m_sOrigValue = m_sValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Select Case Type
Case Params.ORIG
WriteMaterialParam(nIndex, MAT_ORIG, m_sGUID)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_sOrigValue = m_sValue
End Sub
Friend Overrides Sub ResetParam()
m_sValue = m_sOrigValue
End Sub
End Class
Public Class ComboMaterialParam
Inherits MaterialParam
Private m_ValueList As List(Of IdNameStruct)
Public ReadOnly Property ValueList As List(Of IdNameStruct)
Get
Return m_ValueList
End Get
End Property
Private m_SelValue As IdNameStruct
Public Property SelValue As IdNameStruct
Get
Return m_SelValue
End Get
Set(value As IdNameStruct)
m_SelValue = value
NotifyPropertyChanged(NameOf(SelValue))
End Set
End Property
Private m_OrigSelValue As IdNameStruct
Public ReadOnly Property OrigSelValue As IdNameStruct
Get
Return m_OrigSelValue
End Get
End Property
Public Overrides ReadOnly Property bIsModified As Boolean
Get
Return m_SelValue.Id <> m_OrigSelValue.Id
End Get
End Property
Sub New(Type As Params, nIndex As Integer)
MyBase.New(Type)
Select Case Type
'Case Params.STRANDORDER
' m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Material.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside"),
' New IdNameStruct(Material.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside")})
' m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMaterialParamDouble(nIndex, MAC_STRANDORDER, 0))
End Select
m_OrigSelValue = m_SelValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Select Case Type
'Case Params.STRANDORDER
' WriteMaterialParam(nIndex, MAC_STRANDORDER, m_SelValue.Id)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_OrigSelValue = m_SelValue
End Sub
Friend Overrides Sub ResetParam()
m_SelValue = m_OrigSelValue
End Sub
End Class
Public Class CheckMaterialParam
Inherits MaterialParam
Private m_bValue As Boolean
Public Property bValue As Boolean
Get
Return m_bValue
End Get
Set(value As Boolean)
m_bValue = value
NotifyPropertyChanged(NameOf(bValue))
End Set
End Property
Private m_bOrigValue As String
Public ReadOnly Property bOriValue As String
Get
Return m_bOrigValue
End Get
End Property
Public Overrides ReadOnly Property bIsModified As Boolean
Get
Return m_bValue <> m_bOrigValue
End Get
End Property
Sub New(Type As Params, nIndex As Integer)
MyBase.New(Type)
Select Case Type
End Select
m_bOrigValue = m_bValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Select Case Type
End Select
End Sub
Friend Overrides Sub SaveParam()
m_bOrigValue = m_bValue
End Sub
Friend Overrides Sub ResetParam()
m_bValue = m_bOrigValue
End Sub
End Class