diff --git a/Icarus/ModifyPartPanel/ModifyPartPanelV.xaml b/Icarus/ModifyPartPanel/ModifyPartPanelV.xaml index e1368ae..5709294 100644 --- a/Icarus/ModifyPartPanel/ModifyPartPanelV.xaml +++ b/Icarus/ModifyPartPanel/ModifyPartPanelV.xaml @@ -60,11 +60,22 @@ + + + + + + diff --git a/Icarus/ModifyPartPanel/ModifyPartUtility.vb b/Icarus/ModifyPartPanel/ModifyPartUtility.vb index fbfa7fa..d2dca66 100644 --- a/Icarus/ModifyPartPanel/ModifyPartUtility.vb +++ b/Icarus/ModifyPartPanel/ModifyPartUtility.vb @@ -43,12 +43,25 @@ Public Class ModifyEntity End Get End Property + Private m_MenuList As New List(Of MenuItemVm) + Public Property MenuList As List(Of MenuItemVm) + Get + Return m_MenuList + End Get + Set(value As List(Of MenuItemVm)) + m_MenuList = value + End Set + End Property + ' Definizione comandi Private m_cmdImportedEntity As ICommand Sub New(nId As Integer, sName As String) m_nId = nId m_sName = sName + ' aggiungo voci layer a contextmenu + m_MenuList.Add(New MenuItemVm(Me, ModifyLayer.LayerType.RIBS)) + End Sub #Region "COMMANDS" @@ -142,7 +155,7 @@ Public Class ModifyLayer RIBS = 3 SHELL_NUMBER = 4 AUX_SOLIDS = 5 - OTHERS = 7 + OTHERS = 6 End Enum Private m_nLayerId As Integer @@ -200,9 +213,9 @@ Public Class ModifyLayer 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)) + Dim sEntitytName As String = "" + EgtGetName(nEntityId, sEntitytName) + m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName)) Case LayerType.MACH_START m_nLayerId = PrintPart.nMachStartLayerId Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) @@ -216,16 +229,122 @@ Public Class ModifyLayer 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)) + Dim sEntitytName As String = "" + EgtGetName(nEntityId, sEntitytName) + While nEntityId <> GDB_ID.NULL + Dim RibType As Integer = RibEntity.RibTypes.FROMDRAW + EgtGetInfo(nEntityId, KEY_RIB_TYPE, RibType) + If RibType = RibEntity.RibTypes.FROMIMPORT Then + m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName)) + End If + nEntityId = EgtGetNext(nEntityId) + EgtGetName(nEntityId, sEntitytName) + End While Case LayerType.SHELL_NUMBER m_nLayerId = PrintPart.nShellNumberLayerId + Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) + Dim sEntitytName As String = "" + EgtGetName(nEntityId, sEntitytName) + While nEntityId <> GDB_ID.NULL + Dim ShellType As Integer = ShellNumberEntity.ShellNumberTypes.FROMDRAW + EgtGetInfo(nEntityId, KEY_SHELLNBR_TYPE, ShellType) + If ShellType = ShellNumberEntity.ShellNumberTypes.FROMIMPORT Then + m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName)) + End If + nEntityId = EgtGetNext(nEntityId) + EgtGetName(nEntityId, sEntitytName) + End While Case LayerType.AUX_SOLIDS m_nLayerId = PrintPart.nAuxSolidsLayerId + Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId) + Dim sEntitytName As String = "" + EgtGetName(nEntityId, sEntitytName) + While nEntityId <> GDB_ID.NULL + 'Dim ShellType As Integer = ShellNumberEntity.ShellNumberTypes.FROMDRAW + 'EgtGetInfo(nEntityId, KEY_SHELLNBR_TYPE, ShellType) + 'If ShellType = ShellNumberEntity.ShellNumberTypes.FROMIMPORT Then + m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName)) + 'End If + nEntityId = EgtGetNext(nEntityId) + EgtGetName(nEntityId, sEntitytName) + End While Case LayerType.OTHERS m_nLayerId = PrintPart.nOthersLayerId + 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 End Select End Sub End Class + +Public Class MenuItemVm + Inherits VMBase + + ' enita' di origine + Private m_OrigEntity As ModifyEntity + + ' tipo del layer indicato + Private m_Type As ModifyLayer.LayerType + Public Property Type As ModifyLayer.LayerType + Get + Return m_Type + End Get + Set(value As ModifyLayer.LayerType) + m_Type = value + End Set + End Property + + Public ReadOnly Property sMsg As String + Get + Dim sType As String = "" + Select Case m_Type + Case ModifyLayer.LayerType.PRINT_SOLID + sType = "Print" + Case ModifyLayer.LayerType.MACH_START + sType = "Layer Start" + Case ModifyLayer.LayerType.RIBS + sType = "Ribs" + Case ModifyLayer.LayerType.SHELL_NUMBER + sType = "Reduce shell number" + Case ModifyLayer.LayerType.AUX_SOLIDS + sType = "Filled Solids" + Case ModifyLayer.LayerType.OTHERS + sType = "Others" + End Select + Return "Move to " & sType + End Get + End Property + + ' Definizione comando + Private m_cmdCommand As ICommand + + Sub New(OrigEntity As ModifyEntity, Type As ModifyLayer.LayerType) + m_OrigEntity = OrigEntity + m_Type = Type + End Sub + +#Region "Cancel" + + Public ReadOnly Property MenuItem_Command As ICommand + Get + If m_cmdCommand Is Nothing Then + m_cmdCommand = New Command(AddressOf Command) + End If + Return m_cmdCommand + End Get + End Property + + Public Sub Command() + ' recupero layer in cui spostare l'elemento + + End Sub + +#End Region ' Cancel + +End Class \ No newline at end of file