Files
EgtDOORCreator/NewHardware/NewHardwareVM.vb
T
Nicola Pievani 0887fdf3fa EgtDOORCreator 1.9j3 :
- gestione creazione/apertura singola porta.
2018-10-20 10:59:06 +00:00

218 lines
6.4 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtWPFLib5
Imports EgtUILib
' la finestra associata a queta classe serve per gestire la creazione di una copia (ivocata dal bottone Duplica)
Public Class NewHardwareVM
Inherits VMBase
Friend Enum CommandList As Integer
nDuplicate
nNew
End Enum
Private m_Command As Integer
Public ReadOnly Property Command As Integer
Get
Return m_Command
End Get
End Property
Public ReadOnly Property Title As String
Get
Return EgtMsg(50405)
End Get
End Property
Public ReadOnly Property BrandMsg As String
Get
Return EgtMsg(50052)
End Get
End Property
Public ReadOnly Property TemplateMsg As String
Get
Return EgtMsg(50031)
End Get
End Property
Public ReadOnly Property TypeMsg As String
Get
Return EgtMsg(50009)
End Get
End Property
' Comandi
Private m_cmdSave As ICommand
Private m_cmdCancel As ICommand
Private m_CmdCloseNewHardware As ICommand
Private m_HardwareGeneral As CompoType
Private m_ForceToQuit As Boolean = False
Public Property ForceToQuit As Boolean
Get
Return m_ForceToQuit
End Get
Set(value As Boolean)
m_ForceToQuit = value
End Set
End Property
Private m_BrandList As New ObservableCollection(Of String)
Public ReadOnly Property BrandList As ObservableCollection(Of String)
Get
Return m_BrandList
End Get
End Property
Private m_SelBrand As String
Public Property SelBrand As String
Get
Return m_SelBrand
End Get
Set(value As String)
m_SelBrand = value
NotifyPropertyChanged("SelBrand")
End Set
End Property
Private m_Template As String
Public Property Template As String
Get
Return m_Template
End Get
Set(value As String)
m_Template = value
NotifyPropertyChanged("Template")
End Set
End Property
Private m_TypeList As New List(Of TypeHardware)
Public ReadOnly Property TypeList As List(Of TypeHardware)
Get
Return m_TypeList
End Get
End Property
Private m_Type As New TypeHardware(TYPE_STD_TEMPLATE, TYPE_STD_TEMPLATE_INI)
Public Property SelType As TypeHardware
Get
Return m_Type
End Get
Set(value As TypeHardware)
m_Type = value
NotifyPropertyChanged("SelType")
End Set
End Property
Private m_TypeVisibility As Visibility = Visibility.Collapsed
Public Property TypeVisibility As Visibility
Get
Return m_TypeVisibility
End Get
Set(value As Visibility)
m_TypeVisibility = value
End Set
End Property
Sub New(HardwareGeneral As CompoType, nCommand As Integer)
m_Command = nCommand
m_HardwareGeneral = HardwareGeneral
Dim ModelList As New ObservableCollection(Of CompoBrandDir)
'GetDirectoryCompoModel(HardwareGeneral.Path, ModelList)
If m_HardwareGeneral.HardwareFolderList.Count > 0 Then
For Each Folder In m_HardwareGeneral.HardwareFolderList
m_BrandList.Add(Folder.ModelDirGraphic)
Next
NotifyPropertyChanged("BrandList")
Dim SelItemindex As Integer = 0
While m_BrandList(SelItemindex) <> Map.refHardwarePageVM.CurrHardware.SelBrand.ModelDirGraphic And SelItemindex < m_BrandList.Count - 1
SelItemindex += 1
End While
SelBrand = m_BrandList(SelItemindex)
Template = "File Name"
If Map.refHardwarePageVM.CurrHardware.TypeList.Count > 1 Then
TypeVisibility = Visibility.Visible
m_TypeList = Map.refHardwarePageVM.CurrHardware.TypeList
NotifyPropertyChanged("TypeList")
SelType = TypeList(0)
End If
End If
End Sub
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property SaveCmd() As ICommand
Get
If m_cmdSave Is Nothing Then
m_cmdSave = New Command(AddressOf Save)
End If
Return m_cmdSave
End Get
End Property
Public Sub Save(ByVal param As Object)
If m_Command = CommandList.nDuplicate Then
If Map.refHardwarePageVM.CurrHardware.Duplicate(Trim(m_SelBrand), Trim(m_Template)) Then CloseNewHardware()
ElseIf m_Command = CommandList.nNew Then
Map.refProjectManagerHardwareVM.IsModified = False
Map.refHardwarePageVM.CurrHardware.ClearGroupChapters()
' Creo un nuovo hardware
Map.refHardwarePageVM.CurrHardware.NewHardware(m_SelBrand, m_Template, m_Type)
Map.refSceneManagerVM.RefreshBtn()
Map.refHardwarePageVM.CurrHardware.IsEnableType = False
CloseNewHardware()
End If
End Sub
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property CancelCmd() As ICommand
Get
If m_cmdCancel Is Nothing Then
m_cmdCancel = New Command(AddressOf Cancel)
End If
Return m_cmdCancel
End Get
End Property
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Sub Cancel(ByVal param As Object)
ForceToQuit = True
CloseNewHardware()
End Sub
#Region "CloseNewHardwareCommand"
''' <summary>
''' Returns a command that remove the current selected machining.
''' </summary>
Public ReadOnly Property CloseNewHardwareCmd() As ICommand
Get
If m_CmdCloseNewHardware Is Nothing Then
m_CmdCloseNewHardware = New Command(AddressOf CloseNewHardware)
End If
Return m_CmdCloseNewHardware
End Get
End Property
''' <summary>
''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
''' </summary>
Public Function CloseNewHardware() As Boolean
' Chiusura finestra
For Each Window In Application.Current.Windows
If TypeOf Window Is NewHardwareV Then
Dim NewHardwareWindow As NewHardwareV = DirectCast(Window, NewHardwareV)
NewHardwareWindow.Close()
End If
Next
Return True
End Function
#End Region ' CloseOptionsCommand
End Class