127492cb8b
- aggiunta gestione processing file btl da linea di comando.
84 lines
2.2 KiB
VB.net
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
|