4c679fbd48
- Migliorato AboutBox. - Miglioramenti per compatibilità con nuova versione WPFLib5.
234 lines
7.4 KiB
VB.net
234 lines
7.4 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
''' <summary>
|
|
''' Class that represent a FamilyMachining in the treeview.
|
|
''' It's an element in the treeview that represent a folder, but also a machining family
|
|
''' </summary>
|
|
'Public Class MyFamilyMachiningTreeViewItem
|
|
' Inherits FamilyMachiningTreeViewItem
|
|
|
|
' ' Actions
|
|
' Friend Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean)
|
|
|
|
' ''' <summary>
|
|
' ''' Property that determines if the Machining is selected or not
|
|
' ''' </summary>
|
|
' Public Overrides Property IsSelected As Boolean
|
|
' Get
|
|
' Return m_IsSelected
|
|
' End Get
|
|
' Set(value As Boolean)
|
|
' If (value <> m_IsSelected) Then
|
|
' m_IsSelected = value
|
|
' If value Then
|
|
' m_delIsEnabledBtns(True, False, False)
|
|
' End If
|
|
' End If
|
|
' End Set
|
|
' End Property
|
|
|
|
' Private m_MachiningType As MCH_MY
|
|
' ''' <summary>
|
|
' ''' Property that determines the machining type of the family
|
|
' ''' </summary>
|
|
' Public Property MachiningType As MCH_MY
|
|
' Get
|
|
' Return m_MachiningType
|
|
' End Get
|
|
' Set(value As MCH_MY)
|
|
' m_MachiningType = value
|
|
' End Set
|
|
' End Property
|
|
|
|
' ' Proprietà che permette di nascondere tutti i parametri di lavorazione grazie al binding ed al converter
|
|
' Public ReadOnly Property Type As Integer
|
|
' Get
|
|
' Return MCH_MY.NONE
|
|
' End Get
|
|
' End Property
|
|
|
|
' ''' <summary>
|
|
' ''' Constructor that receive the name of the FamilyMachiningTreeViewItem, the MachiningType, and set
|
|
' ''' the picture(Folder.png)
|
|
' ''' </summary>
|
|
' Sub New(Name As String, MachiningType As MCH_MY)
|
|
' MyBase.New(Name)
|
|
' Me.MachiningType = MachiningType
|
|
' Me.PictureString = "/Resources/TreeView/Folder.png"
|
|
' End Sub
|
|
|
|
'End Class
|
|
|
|
''' <summary>
|
|
''' Class that represent a Machining in the treeview.
|
|
''' It's an element in the treeview that represent the child of familymachiningtreeviewitem, but also the class that read and write in the machining's database
|
|
''' </summary>
|
|
Public Class MyMachiningTreeViewItem
|
|
Inherits MachiningTreeViewItem
|
|
|
|
#Region "Machining Property"
|
|
|
|
'ObservableCollection che contiene le variabili per il combobox LeadInType
|
|
Private m_MaterialList As New ObservableCollection(Of MachiningMaterial)
|
|
Public Property MaterialList As ObservableCollection(Of MachiningMaterial)
|
|
Get
|
|
Return m_MaterialList
|
|
End Get
|
|
Set(value As ObservableCollection(Of MachiningMaterial))
|
|
m_MaterialList = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SelMaterial As MachiningMaterial
|
|
Public Property SelMaterial As MachiningMaterial
|
|
Get
|
|
Return m_SelMaterial
|
|
End Get
|
|
Set(value As MachiningMaterial)
|
|
m_SelMaterial = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedSystemNotes As Boolean = False
|
|
Private m_SystemNotes As String
|
|
''' <summary>
|
|
''' Property that read and write to the Machining's database the User Notes
|
|
''' </summary>
|
|
Public Property SystemNotes As String
|
|
Get
|
|
Return m_SystemNotes
|
|
End Get
|
|
Set(value As String)
|
|
If value = String.Empty Or value <> m_SystemNotes Then
|
|
m_SystemNotes = value
|
|
Dim DbSystemNotes As String = String.Empty
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, DbSystemNotes)
|
|
m_IsModifiedSystemNotes = If(value <> DbSystemNotes, True, False)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewMachining), True)
|
|
End If
|
|
End Set
|
|
End Property
|
|
Private Sub SetSystemNotes()
|
|
' Scrivo stringa materiali da lista
|
|
Dim sMaterialString As String = String.Empty
|
|
For Each Material In m_MaterialList
|
|
If Material.MinThickness > 0 Or Material.MaxThickness > 0 Then
|
|
sMaterialString += Material.nId.ToString & "," & LenToString(Material.MinThickness, 0) & "," & LenToString(Material.MaxThickness, 0) & ";"
|
|
End If
|
|
Next
|
|
SystemNotes = sMaterialString
|
|
End Sub
|
|
|
|
#End Region ' Machining Property
|
|
|
|
#Region "Constructors"
|
|
|
|
Sub New(Name As String, Type As MCH_MY, IsValisTool As Boolean, Parent As InheritableTreeViewItem)
|
|
MyBase.New(Name, Type, IsValisTool, Parent)
|
|
End Sub
|
|
|
|
#End Region ' Constructors
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Overrides Sub ReadMachiningParam()
|
|
MyBase.ReadMachiningParam()
|
|
EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx())
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, SystemNotes)
|
|
' Compilo lista materiali
|
|
m_MaterialList.Clear()
|
|
For Each Material In CurrentMachine.Materials
|
|
m_MaterialList.Add(New MachiningMaterial(Material.nId, Material.sName, AddressOf SetSystemNotes))
|
|
Next
|
|
If m_SystemNotes <> String.Empty Then
|
|
Dim sItems() = m_SystemNotes.Split(";".ToCharArray)
|
|
Dim Index As Integer = 0
|
|
For Each Material In m_MaterialList
|
|
Dim Param() As String = sItems(Index).Split(",".ToCharArray)
|
|
Dim nParId As Integer = 0
|
|
If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then
|
|
Dim dVal As Double = 0
|
|
StringToLen(Param(1), dVal)
|
|
Material.SetMinThickness(dVal)
|
|
StringToLen(Param(2), dVal)
|
|
Material.SetMaxThickness(dVal)
|
|
'Material.bIsActive = True
|
|
Index += 1
|
|
Else
|
|
'Material.bIsActive = False
|
|
End If
|
|
Next
|
|
End If
|
|
NotifyPropertyChanged("MaterialList")
|
|
End Sub
|
|
|
|
Public Overrides Sub WriteMachiningParam()
|
|
MyBase.WriteMachiningParam()
|
|
EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx())
|
|
EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, SystemNotes)
|
|
End Sub
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "Validation"
|
|
|
|
Public Overrides ReadOnly Property IsModified() As Boolean
|
|
Get
|
|
Return MyBase.IsModified OrElse m_IsModifiedSystemNotes
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Sub IsModifiedReset()
|
|
MyBase.IsModifiedReset()
|
|
m_IsModifiedSystemNotes = False
|
|
End Sub
|
|
|
|
#End Region ' Validation
|
|
|
|
End Class
|
|
|
|
Public Class MachiningMaterial
|
|
Inherits Material
|
|
|
|
Friend m_refSetSystemNotes As Action
|
|
|
|
Private m_MinThickness As String
|
|
Public Property MinThickness As String
|
|
Get
|
|
Return m_MinThickness
|
|
End Get
|
|
Set(value As String)
|
|
m_MinThickness = value
|
|
m_refSetSystemNotes()
|
|
End Set
|
|
End Property
|
|
Friend Sub SetMinThickness(value As String)
|
|
m_MinThickness = value
|
|
End Sub
|
|
|
|
Private m_MaxThickness As String
|
|
Public Property MaxThickness As String
|
|
Get
|
|
Return m_MaxThickness
|
|
End Get
|
|
Set(value As String)
|
|
m_MaxThickness = value
|
|
m_refSetSystemNotes()
|
|
End Set
|
|
End Property
|
|
Friend Sub SetMaxThickness(value As String)
|
|
m_MaxThickness = value
|
|
End Sub
|
|
|
|
Sub New(nId As Integer, sName As String, refSetSystemNotes As Action)
|
|
MyBase.New(nId, sName)
|
|
m_MinThickness = 0
|
|
m_MaxThickness = 0
|
|
m_refSetSystemNotes = refSetSystemNotes
|
|
End Sub
|
|
|
|
End Class |