Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Public Class ModifyEntity Inherits VMBase Private m_bIsSelected As Boolean Public Property bIsSelected As Boolean Get Return m_bIsSelected End Get Set(value As Boolean) m_bIsSelected = value ' seleziono in scena EgtDeselectAll() If Not IsNothing(value) Then EgtSelectObj(m_nId) End If EgtDraw() ' segno come elemento selezionato in treeview Map.refModifyPartPanelVM.SetSelModifyEntity(Me) End Set End Property Private m_nId As Integer = GDB_ID.NULL Public ReadOnly Property nId As Integer Get Return m_nId End Get End Property Private m_sName As String Public ReadOnly Property sName As String Get Return m_sName End Get End Property Public ReadOnly Property ghName As String Get Return m_nId & If(Not String.IsNullOrWhiteSpace(m_sName), " - " & m_sName, "") End Get End Property ' Definizione comandi Private m_cmdImportedEntity As ICommand Sub New(nId As Integer, sName As String) m_nId = nId m_sName = sName End Sub #Region "COMMANDS" #Region "ImportedEntity" Public ReadOnly Property ImportedEntity_DoubleClick As ICommand Get If m_cmdImportedEntity Is Nothing Then m_cmdImportedEntity = New Command(AddressOf ImportedEntity) End If Return m_cmdImportedEntity End Get End Property Public Sub ImportedEntity() If Not IsNothing(Map.refImportPanelVM.SelImportLayer) Then 'Map.refModifyPartPanelVM.ImportedEntityList.Remove(Me) Map.refModifyPartPanelVM.SelModifyLayer.EntityList.Add(Me) End If End Sub #End Region ' ImportedEntity #End Region ' COMMANDS End Class Public Class ModifyPart Inherits VMBase Private m_bIsSelected As Boolean Public Property bIsSelected As Boolean Get Return m_bIsSelected End Get Set(value As Boolean) m_bIsSelected = value Map.refModifyPartPanelVM.SetSelModifyPart(Me) End Set End Property Private m_nId As Integer Public ReadOnly Property nId As Integer Get Return m_nId End Get End Property Private m_sName As String Public Property sName As String Get Return m_sName End Get Set(value As String) m_sName = value End Set End Property Public ReadOnly Property ghName As String Get Return If(Not String.IsNullOrWhiteSpace(m_sName), m_nId & " - " & m_sName, "Part" & m_nId) End Get End Property Private m_LayerList As New ObservableCollection(Of ModifyLayer) Public ReadOnly Property LayerList As ObservableCollection(Of ModifyLayer) Get Return m_LayerList End Get End Property Sub New(PrintPart As Print3dPartVM) 'm_nId = If(Map.refImportPanelVM.ImportPartList.Count = 0, 1, Map.refImportPanelVM.ImportPartList.Max(Function(x) x.m_nId) + 1) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.PRINT_SOLID, "Print", PrintPart)) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.MACH_START, "Layer Start", PrintPart)) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.RIBS, "Ribs", PrintPart)) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.SHELL_NUMBER, "Reduce Shell Number", PrintPart)) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.AUX_SOLIDS, "Filled Solids", PrintPart)) m_LayerList.Add(New ModifyLayer(ImportLayer.LayerType.OTHERS, "Others", PrintPart)) End Sub End Class Public Class ModifyLayer Inherits VMBase Public Enum LayerType As Integer PRINT_SOLID = 1 MACH_START = 2 RIBS = 3 SHELL_NUMBER = 4 AUX_SOLIDS = 5 OTHERS = 7 End Enum Private m_nLayerId As Integer Private m_bIsSelected As Boolean Public Property bIsSelected As Boolean Get Return m_bIsSelected End Get Set(value As Boolean) m_bIsSelected = value Map.refModifyPartPanelVM.SetSelModifyLayer(Me) End Set End Property Private m_Type As LayerType Public Property Type As LayerType Get Return m_Type End Get Set(value As LayerType) m_Type = value End Set End Property Private m_sName As String Public Property sName As String Get Return m_sName End Get Set(value As String) m_sName = value End Set End Property Private m_EntityList As New ObservableCollection(Of ModifyEntity) Public Property EntityList As ObservableCollection(Of ModifyEntity) Get Return m_EntityList End Get Set(value As ObservableCollection(Of ModifyEntity)) m_EntityList = value End Set End Property Sub New(Type As LayerType, sName As String) m_Type = Type m_sName = sName End Sub Sub New(Type As LayerType, sName As String, PrintPart As Print3dPartVM) m_Type = Type m_sName = sName Select Case Type Case LayerType.PRINT_SOLID m_nLayerId = PrintPart.nPrintSolidLayerId Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) Dim sEnitytName As String = "" EgtGetName(nEntityId, sEnitytName) m_EntityList.Add(New ModifyEntity(nEntityId, sEnitytName)) Case LayerType.MACH_START m_nLayerId = PrintPart.nMachStartLayerId Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) Dim sEntitytName As String = "" EgtGetName(nEntityId, sEntitytName) While nEntityId <> GDB_ID.NULL m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName)) nEntityId = EgtGetNext(nEntityId) EgtGetName(nEntityId, sEntitytName) End While Case LayerType.RIBS m_nLayerId = PrintPart.nRibsLayerId Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) Dim sEnitytName As String = "" EgtGetName(nEntityId, sEnitytName) m_EntityList.Add(New ModifyEntity(nEntityId, sEnitytName)) Case LayerType.SHELL_NUMBER m_nLayerId = PrintPart.nShellNumberLayerId Case LayerType.AUX_SOLIDS m_nLayerId = PrintPart.nAuxSolidsLayerId Case LayerType.OTHERS m_nLayerId = PrintPart.nOthersLayerId End Select End Sub End Class