Files
2024-09-27 17:13:15 +02:00

338 lines
9.5 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtPHOTOLib
Public Class TopCommandBarVM
Inherits VMBase
Private m_bFirstResearch As Boolean = True
#Region "FIELDS & PROPERTIES"
Friend m_MruFiles As New MruList
Public ReadOnly Property MruFileNames As ObservableCollection(Of String)
Get
Return m_MruFiles.FileNames
End Get
End Property
Private m_Search_IsChecked As Boolean = False
Public Property Search_IsChecked As Boolean
Get
Return m_Search_IsChecked
End Get
Set(value As Boolean)
If value Then
If m_bFirstResearch Then
' Resetto la data corrente per la prima ricerca
PhotoMap.refSearchPanelVM.StartAddedDate = Nothing
PhotoMap.refSearchPanelVM.NotifyPropertyChanged("StartAddedDate")
PhotoMap.refSearchPanelVM.EndAddedDate = Nothing
PhotoMap.refSearchPanelVM.NotifyPropertyChanged("EndAddedDate")
m_bFirstResearch = False
End If
PhotoMap.refSearchPanelVM.InitSearchPanel()
Else
PhotoMap.refListPageVM.InitListPage()
End If
m_Search_IsChecked = value
PhotoMap.refSearchPanelVM.SetSearchPanel_Visibility(m_Search_IsChecked)
NotifyPropertyChanged("Search_IsChecked")
End Set
End Property
Friend Sub SetSearch_IsChecked(value As Boolean)
m_Search_IsChecked = value
Map.refSearchPanelVM.SetSearchPanel_Visibility(m_Search_IsChecked)
PhotoMap.refSearchPanelVM.SetSearch_IsChecked(value)
NotifyPropertyChanged("Search_IsChecked")
End Sub
Private m_Search_IsEnabled As Boolean = True
Public Property Search_IsEnabled As Boolean
Get
Return m_Search_IsEnabled
End Get
Set(value As Boolean)
m_Search_IsEnabled = value
PhotoMap.refSearchPanelVM.Search_IsEnabled = m_Search_IsEnabled
NotifyPropertyChanged("Search_IsEnabled")
End Set
End Property
Public Sub SetSearch_IsEnable()
m_Search_IsEnabled = EgtPHOTOLib.PhotoMap.refSearchPanelVM.Search_IsEnabled
NotifyPropertyChanged("Search_IsEnabled")
End Sub
' Definizione comandi
Private m_cmdNew As ICommand
Private m_cmdOpen As ICommand
Private m_cmdOpenMruFile As ICommand
Private m_cmdSave As ICommand
Private m_cmdSaveAs As ICommand
Private m_cmdExport As ICommand
Private m_cmdOptions As ICommand
Private m_cmdSendFeedback As ICommand
#Region "ToolTip"
'Proprietà ToolTip
Public ReadOnly Property NewToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 1)
End Get
End Property
Public ReadOnly Property SearchToolTip As String
Get
Return EgtMsg(92151)
End Get
End Property
Public ReadOnly Property OpenToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 2)
End Get
End Property
Public ReadOnly Property SaveToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 3)
End Get
End Property
Public ReadOnly Property SaveAsToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 4)
End Get
End Property
Public ReadOnly Property InsertToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 5)
End Get
End Property
Public ReadOnly Property ImportToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 6)
End Get
End Property
Public ReadOnly Property ExportToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 7)
End Get
End Property
Public ReadOnly Property OptionsToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 9)
End Get
End Property
Public ReadOnly Property SendFeedbackToolTip As String
Get
Return EgtMsg(MSG_TOPCOMMANDBAR + 13)
End Get
End Property
#End Region ' ToolTip
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefTopCommandBarVM(Me)
' Impostazioni MruLists
m_MruFiles.Init(S_MRUFILES, 8)
End Sub
#End Region ' CONSTRUCTOR
#Region "COMMANDS"
#Region "NewCommand"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property NewCommand As ICommand
Get
If m_cmdNew Is Nothing Then
m_cmdNew = New Command(AddressOf NewCmd)
End If
Return m_cmdNew
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Friend Sub NewCmd(Optional bUseDefaults As Boolean = False)
' passo alla libreria l'oggetto Camera che è stato inizializzato nel Omag-PHOTO
EgtPHOTOLib.MainData.SetCamera(Map.refMainWindowVM.m_Camera)
Dim bIsSaved As Boolean = False
If Not IsNothing(EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab) Then
If EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsModified Then
' 91125: Salvare le modifiche correnti? - 92201: Avviso
If MessageBox.Show(EgtMsg(91125), EgtMsg(92201), MessageBoxButton.YesNo, MessageBoxImage.Asterisk) = MessageBoxResult.Yes Then
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Save()
bIsSaved = True
End If
Else
bIsSaved = True
End If
If Not bIsSaved Then
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Cancel(Nothing)
Else
EgtPHOTOLib.PhotoMap.refListPageVM.RefreshLisPage()
End If
End If
Map.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.NEWSLAB
End Sub
#End Region ' NewCommand
#Region "OpenCommand"
''' <summary>
''' Returns a command that do Open.
''' </summary>
Public ReadOnly Property OpenCommand As ICommand
Get
If m_cmdOpen Is Nothing Then
m_cmdOpen = New Command(AddressOf Open)
End If
Return m_cmdOpen
End Get
End Property
''' <summary>
''' Execute the Open. This method is invoked by the OpenCommand.
''' </summary>
Friend Sub Open()
OpenProject(String.Empty)
End Sub
Friend Sub OpenProject(sFilePath As String)
Map.refSceneHostVM.OpenProject(sFilePath)
End Sub
#End Region ' OpenCommand
#Region "OpenMruFileCommand"
''' <summary>
''' Returns a command that do Open.
''' </summary>
Public ReadOnly Property OpenMruFileCommand As ICommand
Get
If m_cmdOpenMruFile Is Nothing Then
m_cmdOpenMruFile = New Command(AddressOf OpenMruFile)
End If
Return m_cmdOpenMruFile
End Get
End Property
''' <summary>
''' Execute the Open. This method is invoked by the OpenCommand.
''' </summary>
Public Sub OpenMruFile(ByVal param As Object)
OpenProject(DirectCast(param, String).Replace("__", "_"))
End Sub
#End Region ' OpenMruFileCommand
#Region "SaveCommand"
''' <summary>
''' Returns a command that do Save.
''' </summary>
Public ReadOnly Property SaveCommand As ICommand
Get
If m_cmdSave Is Nothing Then
m_cmdSave = New Command(AddressOf Save)
End If
Return m_cmdSave
End Get
End Property
''' <summary>
''' Execute the Save. This method is invoked by the SaveCommand.
''' </summary>
Public Sub Save(ByVal param As Object)
Map.refSceneHostVM.SaveProject()
End Sub
#End Region ' SaveCommand
#Region "SaveAsCommand"
''' <summary>
''' Returns a command that do SaveAs.
''' </summary>
Public ReadOnly Property SaveAsCommand As ICommand
Get
If m_cmdSaveAs Is Nothing Then
m_cmdSaveAs = New Command(AddressOf SaveAs)
End If
Return m_cmdSaveAs
End Get
End Property
''' <summary>
''' Execute the SaveAs. This method is invoked by the SaveAsCommand.
''' </summary>
Public Sub SaveAs(ByVal param As Object)
Map.refSceneHostVM.SaveAsProject()
End Sub
#End Region ' SaveAsCommand
#Region "ExportCommand"
''' <summary>
''' Returns a command that do Export.
''' </summary>
Public ReadOnly Property ExportCommand As ICommand
Get
If m_cmdExport Is Nothing Then
m_cmdExport = New Command(AddressOf Export)
End If
Return m_cmdExport
End Get
End Property
''' <summary>
''' Execute the Export. This method is invoked by the ExportCommand.
''' </summary>
Public Sub Export(ByVal param As Object)
Map.refSceneHostVM.ExportProject()
End Sub
#End Region ' ExportCommand
#Region "OptionsCommand"
''' <summary>
''' Returns a command that do Export.
''' </summary>
Public ReadOnly Property OptionsCommand As ICommand
Get
If m_cmdOptions Is Nothing Then
m_cmdOptions = New Command(AddressOf Options)
End If
Return m_cmdOptions
End Get
End Property
''' <summary>
''' Execute the Export. This method is invoked by the ExportCommand.
''' </summary>
Public Sub Options(ByVal param As Object)
Dim OptionWindow As New OptionWindowV(Application.Current.MainWindow, New OptionWindowVM)
OptionWindow.ShowDialog()
End Sub
#End Region ' OptionsCommand
#End Region ' Commands
End Class