Files
OmagPHOTO/Project/ProjectVM.vb
T
Emmanuele Sassi 53c8d6d934 OmagPHOTO :
- Aggiunta lista lastre che scorre e gestisce migliaia di lastre.
- Miglioramenti e correzioni varie.
2018-01-15 10:14:32 +00:00

135 lines
4.2 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtWPFLib5
Imports EgtUILib
Public Class ProjectVM
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Friend Enum ProjectModeOpt As Integer
LIST = 1
DETAIL = 2
NEWSLAB = 3
End Enum
Private m_SelProjectMode As ProjectModeOpt
Friend Property SelProjectMode As ProjectModeOpt
Get
Return m_SelProjectMode
End Get
Set(value As ProjectModeOpt)
' Esco dallo stato corrente
Select Case m_SelProjectMode
Case ProjectModeOpt.LIST
Map.refTopCommandBarVM.Search_IsEnabled = False
Case ProjectModeOpt.DETAIL, ProjectModeOpt.NEWSLAB
EgtNewFile()
End Select
' Entro nel nuovo stato
m_SelProjectMode = value
Select Case m_SelProjectMode
Case ProjectModeOpt.LIST
Map.refTopCommandBarVM.Search_IsEnabled = True
Map.refListPageVM.InitListPage()
Case ProjectModeOpt.DETAIL
Map.refDetailPageVM.InitDetailPage()
Map.refOptionPanelVM.InitOptionPanel()
Case ProjectModeOpt.NEWSLAB
Map.refOptionPanelVM.InitOptionPanel()
End Select
NotifyPropertyChanged("ProjectContent")
NotifyPropertyChanged("OptionContent")
End Set
End Property
Private m_ListPageV As New ListPageV
Private m_DetailPageV As New DetailPageV
Public ReadOnly Property ProjectContent As FrameworkElement
Get
Select Case m_SelProjectMode
Case ProjectModeOpt.LIST
Return m_ListPageV
Case ProjectModeOpt.DETAIL
Return m_DetailPageV
Case ProjectModeOpt.NEWSLAB
Return m_DetailPageV
Case Else
Return m_ListPageV
End Select
End Get
End Property
Private m_SlabList As New ObservableCollection(Of Slab)
Public Property SlabList As ObservableCollection(Of Slab)
Get
Return m_SlabList
End Get
Set(value As ObservableCollection(Of Slab))
m_SlabList = value
Map.refListPageVM.NotifyPropertyChanged("SlabList")
End Set
End Property
Private m_SelSlab As Slab
Public Property SelSlab As Slab
Get
Return m_SelSlab
End Get
Set(value As Slab)
m_SelSlab = value
NotifyPropertyChanged("SelSlab")
End Set
End Property
Private m_StateList As New List(Of IdNameStruct)({New IdNameStruct(Slab.StateOpt.AVAILABLE, "AVAILABLE"),
New IdNameStruct(Slab.StateOpt.ASSIGNED, "ASSIGNED"),
New IdNameStruct(Slab.StateOpt.TAKEN, "TAKEN")})
Public ReadOnly Property StateList As List(Of IdNameStruct)
Get
Return m_StateList
End Get
End Property
Private m_MaterialList As New List(Of String)
Public Property MaterialList As List(Of String)
Get
Return m_MaterialList
End Get
Set(value As List(Of String))
m_MaterialList = value
Map.refOptionPanelVM.NotifyPropertyChanged("MaterialList")
End Set
End Property
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR"
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefProjectVM(Me)
' Setto la ricerca come non attiva
Map.refTopCommandBarVM.SetSearch_IsChecked(False)
' Leggo lista materiali da file ini
Dim Index As Integer = 1
Dim sMaterial As String = String.Empty
While GetMainPrivateProfileString(S_MATERIALS, K_MATERIAL & Index, "", sMaterial) > 0
If Not String.IsNullOrWhiteSpace(sMaterial) Then
MaterialList.Add(sMaterial)
End If
Index += 1
End While
' Creo lista stati per SearchPanel
Dim SearchStateList As New List(Of IdNameStruct)(StateList)
SearchStateList.Insert(0, New IdNameStruct(0, String.Empty))
Map.refSearchPanelVM.SetStateList(SearchStateList)
' Creo lastre random
'AddRandomRows(5000)
End Sub
#End Region ' CONSTRUCTOR
End Class