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