Files
EgtCAM5/Special-GunStock/GunStockParamListItem.vb
T
Dario Sassi 127492cb8b EgtCAm5 :
- aggiunta gestione processing file btl da linea di comando.
2019-01-08 10:54:32 +00:00

84 lines
2.2 KiB
VB.net

Imports System.ComponentModel
Imports EgtUILib
Public Class GunStockParamListItem
Implements INotifyPropertyChanged
Private m_ValidateList As Action
Private m_Name As String
Public ReadOnly Property Name As String
Get
Return m_Name
End Get
End Property
Private m_Value As String
Public Property Value As String
Get
Return m_Value
End Get
Set(value As String)
m_Value = value
GetValidationError("Value")
m_ValidateList()
End Set
End Property
Private m_dOrigVal As Double
Public ReadOnly Property dOrigVal As Double
Get
Return m_dOrigVal
End Get
End Property
Private m_dMin As Double = 0
Private m_dMax As Double = 0
Private m_Error As String
Public ReadOnly Property ErrorMsg As String
Get
Return m_Error
End Get
End Property
Sub New(sName As String, dValue As Double, dMin As Double, dMax As Double, ValidateList As Action)
m_Name = sName
m_dMin = dMin
m_dMax = dMax
m_dOrigVal = dValue
m_ValidateList = ValidateList
Value = DoubleToString(dValue, 4)
End Sub
Private Sub GetValidationError(ByVal propertyName As String)
Select Case propertyName
Case "Value"
Me.ValidateValue()
End Select
End Sub
Private Sub ValidateValue()
m_Error = String.Empty
If String.IsNullOrEmpty(m_Value) Then
m_Error = m_Name & " " & EgtMsg(MSG_GUNSTOCK + 10)
Else
Dim dVal As Double = 0
StringToDouble(m_Value, dVal)
If Not (dVal > m_dMin - EPS_SMALL And dVal < m_dMax + EPS_SMALL) Then
m_Error = EgtMsg(MSG_GUNSTOCK + 11) & " " & DoubleToString(m_dMin, 3) & " " &
EgtMsg(MSG_GUNSTOCK + 12) & " " & DoubleToString(m_dMax, 3) & "."
End If
End If
NotifyPropertyChanged("ErrorMsg")
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