Imports System.Collections.ObjectModel
Imports EgtUILib
Public Class InputExpanderVM
Inherits ViewModelBase
#Region "FIELDS & PROPERTIES"
' Expander fields
Private m_IsExpanded As Boolean
Public Property IsExpanded As Boolean
Get
Return m_IsExpanded
End Get
Set(value As Boolean)
m_IsExpanded = value
OnPropertyChanged("IsExpanded")
End Set
End Property
Private m_IsEnabled As Boolean
Public Property IsEnabled As Boolean
Get
Return m_IsEnabled
End Get
Set(value As Boolean)
m_IsEnabled = value
OnPropertyChanged("IsEnabled")
End Set
End Property
Private m_Title As String
Public Property Title As String
Get
Return m_Title
End Get
Set(value As String)
m_Title = value
OnPropertyChanged("Title")
End Set
End Property
' TextBlock fields
Private m_TextBlock As String
Public Property TextBlock As String
Get
Return m_TextBlock
End Get
Set(value As String)
m_TextBlock = value
OnPropertyChanged("TextBlock")
End Set
End Property
' TextBox fields
Private m_TextBox As String
Public Property TextBox As String
Get
Return m_TextBox
End Get
Set(value As String)
m_TextBox = value
Map.refProjectVM.NotifyInputText(value)
OnPropertyChanged("TextBox")
End Set
End Property
Private m_TextVisibility As Visibility
Public Property TextVisibility As Visibility
Get
Return m_TextVisibility
End Get
Set(value As Visibility)
If value <> m_TextVisibility Then
m_TextVisibility = value
OnPropertyChanged("TextVisibility")
End If
End Set
End Property
Private m_FocusTextBox As Boolean
Public Property FocusTextBox As Boolean
Get
Return m_FocusTextBox
End Get
Set(value As Boolean)
m_FocusTextBox = value
OnPropertyChanged("FocusTextBox")
End Set
End Property
'CheckBox fields
Private m_CheckBoxText As String
Public Property CheckBoxText As String
Get
Return m_CheckBoxText
End Get
Set(value As String)
m_CheckBoxText = value
OnPropertyChanged("CheckBoxText")
End Set
End Property
Private m_IsChecked As Boolean
Public Property IsChecked As Boolean
Get
Return m_IsChecked
End Get
Set(value As Boolean)
If value <> m_IsChecked Then
Map.refProjectVM.SetLastBoolean(value)
m_IsChecked = value
OnPropertyChanged("IsChecked")
End If
End Set
End Property
Private m_CheckVisibility As Visibility
Public Property CheckVisibility As Visibility
Get
Return m_CheckVisibility
End Get
Set(value As Visibility)
If value <> m_CheckVisibility Then
m_CheckVisibility = value
OnPropertyChanged("CheckVisibility")
End If
End Set
End Property
' ComboBox fields
Private m_ComboItemsList As New ObservableCollection(Of String)
Public Property ComboItemsList As ObservableCollection(Of String)
Get
Return m_ComboItemsList
End Get
Set(value As ObservableCollection(Of String))
m_ComboItemsList = value
OnPropertyChanged("ComboItemsList")
End Set
End Property
Private m_ComboSelectedIndex As Integer
Public Property ComboSelectedIndex As Integer
Get
Return m_ComboSelectedIndex
End Get
Set(value As Integer)
Map.refProjectVM.SetLastInteger(value)
m_ComboSelectedIndex = value
OnPropertyChanged("ComboSelectedIndex")
End Set
End Property
Private m_ComboVisibility As Visibility
Public Property ComboVisibility As Visibility
Get
Return m_ComboVisibility
End Get
Set(value As Visibility)
If value <> m_ComboVisibility Then
m_ComboVisibility = value
OnPropertyChanged("ComboVisibility")
End If
End Set
End Property
' Buttons fields
Private m_ShowBtnVisibility As Visibility
Public Property ShowBtnVisibility As Visibility
Get
Return m_ShowBtnVisibility
End Get
Set(value As Visibility)
m_ShowBtnVisibility = value
OnPropertyChanged("ShowBtnVisibility")
End Set
End Property
' Commands definition
Private m_cmdShow As ICommand
Private m_cmdDone As ICommand
#Region "Messages"
Public ReadOnly Property ShowMsg As String
Get
Return EgtMsg(MSG_DRAWOPTION + 14)
End Get
End Property
Public ReadOnly Property OkMsg As String
Get
Return EgtMsg(MSG_DRAWOPTION + 15)
End Get
End Property
#End Region
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New()
' Creo riferimento a questa classe in EgtCAM5Map
Map.SetRefInputExpanderVM(Me)
End Sub
#End Region ' Constructor
#Region "COMMANDS"
#Region "ShowCommand"
'''
''' Returns a command that do Point.
'''
Public ReadOnly Property ShowCommand As ICommand
Get
If m_cmdShow Is Nothing Then
m_cmdShow = New RelayCommand(AddressOf Show, AddressOf CanShow)
End If
Return m_cmdShow
End Get
End Property
'''
''' Execute the Point. This method is invoked by the PointCommand.
'''
Public Sub Show(ByVal param As Object)
Map.refProjectVM.Show(TextBox)
End Sub
'''
''' Returns always true.
'''
Private Function CanShow(ByVal param As Object) As Boolean
Return If(m_ShowBtnVisibility = Visibility.Visible, True, False)
End Function
#End Region ' ShowCommand
#Region "DoneCommand"
'''
''' Returns a command that do Point.
'''
Public ReadOnly Property DoneCommand As ICommand
Get
If m_cmdDone Is Nothing Then
m_cmdDone = New RelayCommand(AddressOf Done, AddressOf CanDone)
End If
Return m_cmdDone
End Get
End Property
'''
''' Execute the Point. This method is invoked by the PointCommand.
'''
Public Sub Done(ByVal param As Object)
Map.refProjectVM.Done(m_TextBox)
End Sub
'''
''' Returns always true.
'''
Private Function CanDone(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' DoneCommand
#End Region
#Region "METHODS"
Friend Sub PrepareInputBox(PrepareInputBoxParam As PrepareInputBoxParam)
Title = PrepareInputBoxParam.sTitle
If PrepareInputBoxParam.sLabel <> "" Then
TextBlock = PrepareInputBoxParam.sLabel
TextBox = ""
TextVisibility = Visibility.Visible
End If
If PrepareInputBoxParam.sCheckLabel <> "" Then
CheckBoxText = PrepareInputBoxParam.sCheckLabel
CheckVisibility = Visibility.Visible
End If
If PrepareInputBoxParam.bShowCombo Then
ComboItemsList.Clear()
ComboVisibility = Visibility.Visible
End If
If PrepareInputBoxParam.bShowBtn Then
ShowBtnVisibility = Visibility.Visible
End If
IsEnabled = True
IsExpanded = True
FocusTextBox = True
End Sub
Friend Sub ResetInputBox()
Title = EgtMsg(MSG_DRAWOPTION + 5)
TextVisibility = Visibility.Collapsed
CheckVisibility = Visibility.Collapsed
ComboVisibility = Visibility.Collapsed
ShowBtnVisibility = Visibility.Collapsed
IsExpanded = False
IsEnabled = False
End Sub
Friend Function SetInputBoxText(ByVal sVal As String) As Boolean
TextBox = sVal
FocusTextBox = True
Return True
End Function
Friend Function ChangeInputBoxCheck() As Boolean
IsChecked = Not m_IsChecked
Return True
End Function
Friend Function SetInputBoxCheck(ByVal bCheck As Boolean) As Boolean
IsChecked = bCheck
Map.refProjectVM.SetLastBoolean(IsChecked)
Return True
End Function
Friend Sub AddInputBoxCombo(AddInputBoxComboParam As AddInputBoxComboParam)
AddInputBoxCombo(AddInputBoxComboParam.sText, AddInputBoxComboParam.bSelected)
End Sub
Private Function AddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) As Boolean
ComboItemsList.Add(sText)
If bSelected Then
ComboSelectedIndex = ComboItemsList.Count - 1
End If
Return True
End Function
#End Region ' Methods
End Class