120 lines
4.5 KiB
VB.net
120 lines
4.5 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class ListPageSlabVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Public ReadOnly Property SlabList As ObservableCollection(Of Slab)
|
|
Get
|
|
If IsNothing(PhotoMap.refProjectVM) Then Return Nothing
|
|
Return PhotoMap.refProjectVM.SlabList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_bAutoScrollOnTopList As Boolean = False
|
|
Public Property bAutoScrollOnTopList As Boolean
|
|
Get
|
|
Return m_bAutoScrollOnTopList
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bAutoScrollOnTopList = value
|
|
NotifyPropertyChanged("bAutoScrollOnTopList")
|
|
End Set
|
|
End Property
|
|
|
|
' definizione comandi
|
|
Private m_cmdSlabBtn As ICommand
|
|
|
|
#End Region ' FIELDS & PROPERTIES
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
' Creo riferimento a questa classe in StoneMap
|
|
PhotoMap.SetRefListPageVM(Me)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Sub InitListPage()
|
|
If PhotoMap.refSearchPanelVM.Search_IsChecked Then
|
|
PhotoMap.refSearchPanelVM.Search()
|
|
Else
|
|
PhotoMap.refProjectVM.SlabList = New ObservableCollection(Of Slab)(ManageDb.ExecuteSlabReaderQuery("SELECT * FROM " & Slab.DB_SLABS & " ORDER BY " & Slab.DB_MATERIAL & ", " & Slab.DB_STATE))
|
|
PhotoMap.refProjectVM.DateTimeList = New ObservableCollection(Of DataTimeRecord)(ManageDb.ExecuteDataTimeReaderQuery("SELECT * FROM " & Slab.DB_DATATIME))
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub RefreshLisPage()
|
|
' leggo la tabella DataTime
|
|
Dim localDataTimeObervableCollection As ObservableCollection(Of DataTimeRecord) = New ObservableCollection(Of DataTimeRecord)(ManageDb.ExecuteDataTimeReaderQuery("SELECT * FROM " & Slab.DB_DATATIME))
|
|
Dim bRefreshAll As Boolean = False
|
|
' verifico che abbiano lo stesso numero di elementi
|
|
If localDataTimeObervableCollection.Count <> PhotoMap.refProjectVM.DateTimeList.Count Then
|
|
' allora devo aggiornare senza prcedere alla verifica
|
|
bRefreshAll = True
|
|
Else
|
|
' verifico che le due tabelle siano uguali, altrimenti aggiorno la lista
|
|
For Each Record In localDataTimeObervableCollection
|
|
For Each Item In PhotoMap.refProjectVM.DateTimeList
|
|
' se le due chiavi coincidono
|
|
If Item.CurrentKey = Record.CurrentKey Then
|
|
If Item.sLastDate <> Record.sLastDate Then
|
|
bRefreshAll = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
If bRefreshAll Then
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If Not bRefreshAll Then Return
|
|
PhotoMap.refProjectVM.DateTimeList = localDataTimeObervableCollection
|
|
' carico la lista delle lastre da DB
|
|
Dim localObservableCollection As ObservableCollection(Of Slab) = New ObservableCollection(Of Slab)(ManageDb.ExecuteSlabReaderQuery("SELECT * FROM " & Slab.DB_SLABS & " ORDER BY " & Slab.DB_MATERIAL & ", " & Slab.DB_STATE))
|
|
PhotoMap.refProjectVM.SlabList = localObservableCollection
|
|
' disattivo l'autoscroll
|
|
PhotoMap.refListPageVM.bAutoScrollOnTopList = False
|
|
'PhotoMap.refProjectVM.SlabList = New ObservableCollection(Of Slab)(ManageDb.ExecuteSlabReaderQuery("SELECT * FROM " & Slab.DB_SLABS & " ORDER BY " & Slab.DB_MATERIAL & ", " & Slab.DB_STATE))
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "SlabBtn"
|
|
|
|
Public Event SlabIsSelected(ByRef sender As Object, ByVal e As EventArgs)
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property SlabBtn_Command() As ICommand
|
|
Get
|
|
If m_cmdSlabBtn Is Nothing Then
|
|
m_cmdSlabBtn = New Command(AddressOf SlabBtn)
|
|
End If
|
|
Return m_cmdSlabBtn
|
|
End Get
|
|
End Property
|
|
|
|
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
|
Public Sub SlabBtn(ByVal param As Object)
|
|
PhotoMap.refProjectVM.SelSlab = param
|
|
PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.DETAIL
|
|
PhotoMap.refProjectVM.SelSlab.IsSelected = MainData.nKey
|
|
PhotoMap.refOptionPanelVM.IsSelected()
|
|
' vrificare se qualche altro utetnte sta cercando di accedere alla stessa lastra
|
|
RaiseEvent SlabIsSelected(Me, EventArgs.Empty)
|
|
End Sub
|
|
|
|
#End Region ' SlabBtn
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class |