diff --git a/Icarus/Icarus.vbproj b/Icarus/Icarus.vbproj
index 6dae7de..f42ff59 100644
--- a/Icarus/Icarus.vbproj
+++ b/Icarus/Icarus.vbproj
@@ -123,11 +123,6 @@
DispositionPanelV.xaml
-
- ImportPanelV.xaml
-
-
- InstrumentPanelV.xaml
@@ -154,16 +149,16 @@
MachSaveInDbWindowV.xaml
+
+ ManagePartPanelV.xaml
+
+
+ MaterialDbV.xaml
-
- ModifyPartPanelV.xaml
-
-
- MachineBox.xaml
@@ -304,10 +299,6 @@
MSBuild:CompileDesigner
-
- Designer
- MSBuild:Compile
- MSBuild:CompileDesigner
@@ -348,14 +339,14 @@
MSBuild:CompileDesigner
+
+ MSBuild:Compile
+ Designer
+ DesignerMSBuild:Compile
-
- MSBuild:Compile
- Designer
- MSBuild:CompileDesigner
diff --git a/Icarus/LeftPanel/LeftPanelV.xaml b/Icarus/LeftPanel/LeftPanelV.xaml
index acfcd48..d96e2dd 100644
--- a/Icarus/LeftPanel/LeftPanelV.xaml
+++ b/Icarus/LeftPanel/LeftPanelV.xaml
@@ -15,7 +15,8 @@
-
+
+
@@ -36,7 +37,8 @@
-
+
+
diff --git a/Icarus/LeftPanel/LeftPanelVM.vb b/Icarus/LeftPanel/LeftPanelVM.vb
index 91706da..af5e13d 100644
--- a/Icarus/LeftPanel/LeftPanelVM.vb
+++ b/Icarus/LeftPanel/LeftPanelVM.vb
@@ -55,7 +55,8 @@ Public Class LeftPanelVM
Case Panels.SHELLNUMBER
Map.refShellNumberPanelVM.Init()
Case Panels.MODIFYPART
- Map.refModifyPartPanelVM.Init()
+ ''Map.refModifyPartPanelVM.Init()
+ Map.refManagePartPanelVM.Init(ManagePartPanelVM.ManagePartType.MODIFY)
End Select
Map.refViewLayerManagerVM.UpdateForced()
NotifyPropertyChanged(NameOf(SelPanel))
diff --git a/Icarus/ManagePartPanel/ManagePartPanelV.xaml b/Icarus/ManagePartPanel/ManagePartPanelV.xaml
new file mode 100644
index 0000000..2ef5ccf
--- /dev/null
+++ b/Icarus/ManagePartPanel/ManagePartPanelV.xaml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb b/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb
new file mode 100644
index 0000000..82fdceb
--- /dev/null
+++ b/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb
@@ -0,0 +1,3 @@
+Public Class ManagePartPanelV
+
+End Class
diff --git a/Icarus/ManagePartPanel/ManagePartPanelVM.vb b/Icarus/ManagePartPanel/ManagePartPanelVM.vb
new file mode 100644
index 0000000..77bc422
--- /dev/null
+++ b/Icarus/ManagePartPanel/ManagePartPanelVM.vb
@@ -0,0 +1,434 @@
+Imports System.Collections.ObjectModel
+Imports EgtUILib
+Imports EgtWPFLib5
+
+Public Class ManagePartPanelVM
+ Inherits VMBase
+
+ Public Enum ManagePartType
+ IMPORT = 1
+ MODIFY = 2
+ End Enum
+
+ Private m_Type As ManagePartType
+ Friend ReadOnly Property Type As ManagePartType
+ Get
+ Return m_Type
+ End Get
+ End Property
+
+ Private m_nImportedPartId As Integer = GDB_ID.NULL
+ Friend ReadOnly Property nImportedPartId As Integer
+ Get
+ Return m_nImportedPartId
+ End Get
+ End Property
+
+ Private m_ImportedEntityList As New ObservableCollection(Of PartManager_GeomEntity)
+ Public Property ImportedEntityList As ObservableCollection(Of PartManager_GeomEntity)
+ Get
+ Return m_ImportedEntityList
+ End Get
+ Set(value As ObservableCollection(Of PartManager_GeomEntity))
+ m_ImportedEntityList = value
+ End Set
+ End Property
+
+ Private m_SelImportedEntity As PartManager_GeomEntity
+ Public Property SelImportedEntity As PartManager_GeomEntity
+ Get
+ Return m_SelImportedEntity
+ End Get
+ Set(value As PartManager_GeomEntity)
+ m_SelImportedEntity = value
+ EgtDeselectAll()
+ If Not IsNothing(m_SelImportedEntity) Then
+ EgtSelectObj(m_SelImportedEntity.nId)
+ End If
+ EgtDraw()
+ End Set
+ End Property
+ Friend Sub SetSelImportedEntity(nId As Integer)
+ m_SelImportedEntity = m_ImportedEntityList.FirstOrDefault(Function(x) x.nId = nId)
+ EgtDeselectAll()
+ If Not IsNothing(m_SelImportedEntity) Then
+ EgtSelectObj(m_SelImportedEntity.nId)
+ End If
+ EgtDraw()
+ NotifyPropertyChanged(NameOf(SelImportedEntity))
+ End Sub
+
+ Private m_ManagerPartList As New ObservableCollection(Of ManagePart_Part)
+ Public ReadOnly Property ManagerPartList As ObservableCollection(Of ManagePart_Part)
+ Get
+ Return m_ManagerPartList
+ End Get
+ End Property
+
+ Private m_SelManagerPart As ManagePart_Part
+ Friend Sub SetSelManagerPart(SelManagePart_Part As ManagePart_Part)
+ m_SelManagerPart = SelManagePart_Part
+ m_SelManagerLayer = Nothing
+ End Sub
+ Public ReadOnly Property SelManagerPart As ManagePart_Part
+ Get
+ Return m_SelManagerPart
+ End Get
+ End Property
+
+ Private m_SelManagerLayer As ManagePart_Layer
+ Public ReadOnly Property SelManagerLayer As ManagePart_Layer
+ Get
+ Return m_SelManagerLayer
+ End Get
+ End Property
+ Friend Sub SetSelManagerLayer(SelManagePart_Layer As ManagePart_Layer)
+ m_SelManagerPart = m_ManagerPartList.FirstOrDefault(Function(x) x.LayerList.Contains(SelManagePart_Layer))
+ m_SelManagerLayer = SelManagePart_Layer
+ End Sub
+
+ Private m_SelPartManager_GeomEntity As PartManager_GeomEntity
+ Public ReadOnly Property SelPartManager_GeomEntity As PartManager_GeomEntity
+ Get
+ Return m_SelPartManager_GeomEntity
+ End Get
+ End Property
+ Friend Sub SetSelPartManager_GeomEntity(SelPartManager_GeomEntity As PartManager_GeomEntity)
+ For Each CurrPart In m_ManagerPartList
+ Dim CurrLayer As ManagePart_Layer = CurrPart.LayerList.FirstOrDefault(Function(x) x.EntityList.Contains(SelPartManager_GeomEntity))
+ If Not IsNothing(CurrLayer) Then
+ m_SelManagerPart = CurrPart
+ m_SelManagerLayer = CurrLayer
+ Exit For
+ End If
+ Next
+ m_SelPartManager_GeomEntity = SelPartManager_GeomEntity
+ End Sub
+
+ Public ReadOnly Property IsImport_Visibility As Visibility
+ Get
+ Select Case m_Type
+ Case ManagePartType.IMPORT
+ Return Visibility.Visible
+ Case Else ' ManagePartType.MODIFY
+ Return Visibility.Collapsed
+ End Select
+ End Get
+ End Property
+
+ ' Definizione comandi
+ Private m_cmdSetReference As ICommand
+ Private m_cmdAddPart As ICommand
+ Private m_cmdRemovePart As ICommand
+ Private m_cmdOk As ICommand
+ Private m_cmdCancel As ICommand
+
+ Sub New()
+ ' Creo riferimento a questa classe in EgtCAM5Map
+ Map.SetRefManagePartPanelVM(Me)
+ End Sub
+
+#Region "METHODS"
+
+ Friend Sub Init(Type As ManagePartType)
+ m_Type = Type
+ Select Case Type
+ Case ManagePartType.IMPORT
+ ' import
+ m_ImportedEntityList.Clear()
+ m_ManagerPartList.Clear()
+ ' aggiungo geometrie importate a lista
+ m_nImportedPartId = EgtGetLastPart()
+ Dim nLayerId As Integer = EgtGetFirstLayer(m_nImportedPartId)
+ Dim nGeometryId As Integer = EgtGetFirstInGroup(nLayerId)
+ While nGeometryId <> GDB_ID.NULL
+ Dim sGeometryName As String = ""
+ EgtGetName(nGeometryId, sGeometryName)
+ m_ImportedEntityList.Add(New PartManager_GeomEntity(nGeometryId, sGeometryName, Nothing))
+ nGeometryId = EgtGetNext(nGeometryId)
+ End While
+ ' aggiungo primo pezzo
+ m_ManagerPartList.Add(New ManagePart_Part(Nothing))
+ m_ManagerPartList(0).LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID).bIsSelected = True
+ Case ManagePartType.MODIFY
+ ' modify
+ m_ManagerPartList.Clear()
+ ' carico pezzi in lista
+ For Each PrintPart In Map.refTopPanelVM.PartList
+ m_ManagerPartList.Add(New ManagePart_Part(PrintPart))
+ Next
+ End Select
+ NotifyPropertyChanged(NameOf(IsImport_Visibility))
+ End Sub
+
+#End Region ' METHODS
+
+#Region "COMMANDS"
+
+#Region "AddPart"
+
+ Public ReadOnly Property AddPart_Command As ICommand
+ Get
+ If m_cmdAddPart Is Nothing Then
+ m_cmdAddPart = New Command(AddressOf AddPart)
+ End If
+ Return m_cmdAddPart
+ End Get
+ End Property
+
+ Public Sub AddPart()
+ m_ManagerPartList.Add(New ManagePart_Part(Nothing))
+ End Sub
+
+#End Region ' AddPart
+
+#Region "RemovePart"
+
+ Public ReadOnly Property RemovePart_Command As ICommand
+ Get
+ If m_cmdRemovePart Is Nothing Then
+ m_cmdRemovePart = New Command(AddressOf RemovePart)
+ End If
+ Return m_cmdRemovePart
+ End Get
+ End Property
+
+ Public Sub RemovePart()
+ If IsNothing(SelManagerLayer) Then
+ ' rimuovo pezzo
+ m_ManagerPartList.Remove(SelManagerPart)
+ Else
+ ' rimuovo geometria
+ Dim CurrEntity As PartManager_GeomEntity = m_SelPartManager_GeomEntity
+ SelManagerLayer.EntityList.Remove(m_SelPartManager_GeomEntity)
+ ' la rimetto in lista importati
+ ImportedEntityList.Add(CurrEntity)
+ End If
+ End Sub
+
+#End Region ' RemovePart
+
+#Region "Ok"
+
+ Public ReadOnly Property Ok_Command As ICommand
+ Get
+ If m_cmdOk Is Nothing Then
+ m_cmdOk = New Command(AddressOf Ok)
+ End If
+ Return m_cmdOk
+ End Get
+ End Property
+
+ Public Sub Ok()
+ Dim sErr As New List(Of String)
+ ' verifico che tutti i pezzi abbiano una superficie da stampare nel layer apposito
+ For Each CurrPart In m_ManagerPartList
+ For Each CurrLayer In CurrPart.LayerList
+ Select Case CurrLayer.Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ If CurrLayer.EntityList.Count = 0 Then
+ If sErr.Count > 0 Then sErr(sErr.Count - 1) &= Environment.NewLine
+ sErr.Add(CurrPart.ghName & " - No print surface defined!")
+ End If
+ End Select
+ Next
+ Next
+ If sErr.Count > 0 Then
+ MessageBox.Show(String.Concat(sErr), "Error")
+ Return
+ Else
+ ' Creo pezzi e layer necessari
+ For ManagePart_PartIndex = 0 To m_ManagerPartList.Count - 1
+ Dim ManagePart_Part As ManagePart_Part = m_ManagerPartList(ManagePart_PartIndex)
+ Dim frImportedPart As New Frame3d
+ EgtGetGroupGlobFrame(m_nImportedPartId, frImportedPart)
+ Dim nPartId As Integer = EgtCreateGroup(GDB_ID.ROOT, frImportedPart)
+ EgtSetName(nPartId, PART)
+ Dim nFrameId As Integer = GDB_ID.NULL
+ Dim b3PrintSolid As New BBox3d
+ Dim nPrintPartLayerId As Integer = GDB_ID.NULL
+ Dim PrintSolidEntity As PartManager_GeomEntity = Nothing
+ Dim nOriginalPartLayerId As Integer = GDB_ID.NULL
+ Dim nRibsLayerId As Integer = GDB_ID.NULL
+ Dim nShellNumberLayerId As Integer = GDB_ID.NULL
+ Dim nAuxSolidsLayerId As Integer = GDB_ID.NULL
+ Dim nMachStartLayerId As Integer = GDB_ID.NULL
+ Dim nOthersLayerId As Integer = GDB_ID.NULL
+ For Each ManagePart_Layer In ManagePart_Part.LayerList
+ Select Case ManagePart_Layer.Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ nPrintPartLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nPrintPartLayerId, PRINT_SOLID)
+ If ManagePart_Layer.EntityList.Count > 0 Then
+ PrintSolidEntity = ManagePart_Layer.EntityList(0)
+ EgtRelocateGlob(PrintSolidEntity.nId, nPrintPartLayerId, GDB_POS.LAST_SON)
+ ' calcolo box superficie per creazione riferimento
+ EgtGetBBoxGlob(PrintSolidEntity.nId, GDB_BB.STANDARD, b3PrintSolid)
+ End If
+ 'Case ManagePart_Layer.LayerType.ORIGINAL_SOLID
+ ' nOriginalPartLayerId = EgtCreateGroup(nPartId)
+ ' EgtSetName(nOriginalPartLayerId, ORIGINAL_SOLID)
+ ' For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ ' EgtRelocateGlob(PartManager_GeomEntity.nId, nOriginalPartLayerId, GDB_POS.LAST_SON)
+ ' Next
+ Case ManagePart_Layer.LayerType.MACH_START
+ nMachStartLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nMachStartLayerId, LAY_MACH_START)
+ Dim nMachStartId As Integer = GDB_ID.NULL
+ If ManagePart_Layer.EntityList.Count > 0 Then
+ For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ ' se punto o curva compo
+ Dim EntityType As GDB_TY = EgtGetType(PartManager_GeomEntity.nId)
+ Select Case EntityType
+ Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO
+ ' gli cambio layer
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nMachStartLayerId, GDB_POS.LAST_SON)
+ nMachStartId = PartManager_GeomEntity.nId
+ Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
+ ' altrimenti la trasformo in curva compo
+ nMachStartId = EgtCreateCurveCompo(nMachStartLayerId, PartManager_GeomEntity.nId, True)
+ End Select
+ EgtSetName(nMachStartId, START_GEOM)
+ ' coloro l'entita' di rosso
+ Dim c3Red As Color3d
+ c3Red.FromColor(System.Drawing.Color.Red)
+ EgtSetColor(nMachStartId, c3Red)
+ Next
+ Else
+ ' creo punto di partenza
+ Dim ptStart As Point3d = b3PrintSolid.Center() - 0.6 * b3PrintSolid.DimY() * Vector3d.Y_AX() - 0.5 * b3PrintSolid.DimZ() * Vector3d.Z_AX()
+ nMachStartId = EgtCreateGeoPoint(nMachStartLayerId, ptStart, GDB_RT.GLOB)
+ EgtSetName(nMachStartId, START_GEOM)
+ ' coloro l'entita' di rosso
+ Dim c3Red As Color3d
+ c3Red.FromColor(System.Drawing.Color.Red)
+ EgtSetColor(nMachStartId, c3Red)
+ End If
+ Case ManagePart_Layer.LayerType.RIBS
+ nRibsLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nRibsLayerId, LAY_RIBS)
+ For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ EgtSetInfo(PartManager_GeomEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nRibsLayerId, GDB_POS.LAST_SON)
+ ' coloro l'entita' di viola
+ Dim c3LightBlue As Color3d
+ c3LightBlue.FromColor(System.Drawing.Color.MediumOrchid)
+ EgtSetColor(PartManager_GeomEntity.nId, c3LightBlue)
+ Next
+ Case ManagePart_Layer.LayerType.SHELL_NUMBER
+ nShellNumberLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nShellNumberLayerId, LAY_SHELL_NBR)
+ For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ EgtSetInfo(PartManager_GeomEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nShellNumberLayerId, GDB_POS.LAST_SON)
+ ' coloro l'entita' di verde
+ Dim c3LightBlue As Color3d
+ c3LightBlue.FromColor(System.Drawing.Color.Lime)
+ EgtSetColor(PartManager_GeomEntity.nId, c3LightBlue)
+ Next
+ Case ManagePart_Layer.LayerType.AUX_SOLIDS
+ nAuxSolidsLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nAuxSolidsLayerId, LAY_AUX_SOLIDS)
+ For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ EgtSetInfo(PartManager_GeomEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nAuxSolidsLayerId, GDB_POS.LAST_SON)
+ ' coloro l'entita' di oro
+ Dim c3LightBlue As Color3d
+ c3LightBlue.FromColor(System.Drawing.Color.DarkGoldenrod)
+ EgtSetColor(PartManager_GeomEntity.nId, c3LightBlue)
+ Next
+ Case ManagePart_Layer.LayerType.OTHERS
+ nOthersLayerId = EgtCreateGroup(nPartId)
+ EgtSetName(nOthersLayerId, LAY_OTHERS)
+ For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
+ Next
+ If ManagePart_PartIndex = 0 Then
+ For Each PartManager_GeomEntity In ImportedEntityList
+ ' se curva
+ Dim EntityType As GDB_TY = EgtGetType(PartManager_GeomEntity.nId)
+ Select Case EntityType
+ Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
+ ' la trasformo in curva compo
+ EgtCreateCurveCompo(nOthersLayerId, PartManager_GeomEntity.nId, True)
+ Case Else
+ ' altrimenti la sposto solamente
+ EgtRelocateGlob(PartManager_GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
+ End Select
+ Next
+ End If
+ End Select
+ Next
+ ' aggiungo riferimento
+ Dim nReferenceLayerId As Integer = EgtCreateGroup(nPartId)
+ EgtSetName(nReferenceLayerId, LAY_REFERENCE)
+ ' Creo riferimento
+ Dim ptOrig As New Point3d(b3PrintSolid.Min())
+ Dim frPrintSolid As New Frame3d(ptOrig)
+ nFrameId = EgtCreateGeoFrame(nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
+ If nFrameId Then
+ EgtSetName(nFrameId, FRAME_PART)
+ EgtSetMode(nFrameId, GDB_MD.LOCKED)
+ End If
+ EgtSetInfo(nReferenceLayerId, KEY_REFERENCE, ReferenceBtn.References.BL)
+ ' appoggio il pezzo sulla tavola
+ EgtMove(nPartId, New Vector3d(0, 0, -b3PrintSolid.Min.z))
+ ' lo aggiungo a lista pezzi
+ Dim sFilePath As String = ""
+ EgtGetInfo(m_nImportedPartId, FILE_PATH, sFilePath)
+ EgtSetInfo(nPartId, FILE_PATH, sFilePath)
+ EgtSetInfo(nPartId, "PartOnTable", 1)
+ Dim NewPart As New Print3dPartVM(nPartId, nPrintPartLayerId, PrintSolidEntity.nId, nOriginalPartLayerId, nReferenceLayerId, nFrameId, nMachStartLayerId, nRibsLayerId, nShellNumberLayerId, nAuxSolidsLayerId, nOthersLayerId, sFilePath)
+ Map.refTopPanelVM.PartList.Add(NewPart)
+ Next
+ End If
+ 'EgtAddMachGroup("3dPrint")
+ 'EgtSetTable("Tab")
+
+ 'Dim nRawId As Integer = EgtAddRawPart(b3PrintSolid.Min, b3PrintSolid.DimX, b3PrintSolid.DimY, b3PrintSolid.DimZ, New Color3d(128, 128, 128, 30))
+ 'EgtAddPartToRawPart(nPartId, b3PrintSolid.Min, nRawId)
+ 'EgtMoveToCornerRawPart(nRawId, New Point3d(dPosX, dPosY, 0), MCH_CR.BL)
+
+ 'EgtResetCurrMachGroup()
+
+ ' seleziono ultimo pezzo aggiunto
+ Map.refTopPanelVM.SelLastPart()
+ ' elimino vecchio pezzo d'importazione
+ EgtErase(m_nImportedPartId)
+
+ EgtDraw()
+ ' ripristino modalita' standard
+ Map.refTopPanelVM.SelPage = Pages.MODIFY
+ End Sub
+
+#End Region ' Ok
+
+#Region "Cancel"
+
+ Public ReadOnly Property Cancel_Command As ICommand
+ Get
+ If m_cmdCancel Is Nothing Then
+ m_cmdCancel = New Command(AddressOf Cancel)
+ End If
+ Return m_cmdCancel
+ End Get
+ End Property
+
+ Public Sub Cancel()
+ ' elimino pezzo importato
+ EgtErase(m_nImportedPartId)
+ EgtDraw()
+ ' se ci sono pezzi
+ If Map.refTopPanelVM.PartList.Count > 0 Then
+ ' ripristino modalita' standard
+ Map.refTopPanelVM.SelPage = Pages.MODIFY
+ Else
+ Map.refTopPanelVM.SelPage = Pages.NULL
+ End If
+ End Sub
+
+#End Region ' Cancel
+
+#End Region ' COMMANDS
+
+End Class
diff --git a/Icarus/ManagePartPanel/ManagePartUtility.vb b/Icarus/ManagePartPanel/ManagePartUtility.vb
new file mode 100644
index 0000000..74921cd
--- /dev/null
+++ b/Icarus/ManagePartPanel/ManagePartUtility.vb
@@ -0,0 +1,491 @@
+Imports System.Collections.ObjectModel
+Imports EgtUILib
+Imports EgtWPFLib5
+
+Public Class PartManager_GeomEntity
+ Inherits VMBase
+
+ ' layer sotto cui e' questa entita'
+ Private m_OrigLayer As ManagePart_Layer
+ Friend ReadOnly Property OrigLayer As ManagePart_Layer
+ Get
+ Return m_OrigLayer
+ End Get
+ End Property
+
+ 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.refManagePartPanelVM.SetSelPartManager_GeomEntity(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
+ 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_cmdGeomEntityDoubleClick As ICommand
+
+ Sub New(nId As Integer, sName As String, OrigLayer As ManagePart_Layer)
+ m_nId = nId
+ m_sName = sName
+ m_OrigLayer = OrigLayer
+ ' aggiungo voci layer a contextmenu
+ CreateContextMenu(OrigLayer)
+ End Sub
+
+ Friend Sub UpdateContextMenu(OrigLayer As ManagePart_Layer)
+ m_MenuList.Clear()
+ ' aggiungo voci layer a contextmenu
+ CreateContextMenu(OrigLayer)
+ End Sub
+
+ Friend Sub CreateContextMenu(OrigLayer As ManagePart_Layer)
+ For Each ProjectPart In Map.refTopPanelVM.PartList
+ ' verifico in quali layer puo' andare questo elemento
+ Dim EntityType As GDB_TY = EgtGetType(nId)
+ Select Case EntityType
+ Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
+ If Not IsNothing(OrigLayer) Then
+ ' recupero i layer
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.MACH_START Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
+ Else
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
+ End If
+ Case GDB_TY.SRF_MESH
+ If Not IsNothing(OrigLayer) Then
+ ' verifico se volume chiuso
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.PRINT_SOLID Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.SHELL_NUMBER Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.RIBS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.RIBS, ProjectPart))
+ If OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
+ Else
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.RIBS, ProjectPart))
+ m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
+ End If
+ End Select
+ Next
+ End Sub
+
+ Friend Sub UpdateOrigLayer(NewLayer As ManagePart_Layer)
+ m_OrigLayer = NewLayer
+ End Sub
+
+#Region "COMMANDS"
+
+#Region "GeomEntityDoubleClick"
+
+ Public ReadOnly Property GeomEntityDoubleClick_Command As ICommand
+ Get
+ If m_cmdGeomEntityDoubleClick Is Nothing Then
+ m_cmdGeomEntityDoubleClick = New Command(AddressOf GeomEntityDoubleClick)
+ End If
+ Return m_cmdGeomEntityDoubleClick
+ End Get
+ End Property
+
+ Public Sub GeomEntityDoubleClick()
+ If Not IsNothing(Map.refManagePartPanelVM.SelManagerLayer) Then
+ Map.refManagePartPanelVM.ImportedEntityList.Remove(Me)
+ Map.refManagePartPanelVM.SelManagerLayer.EntityList.Add(Me)
+ End If
+ End Sub
+
+#End Region ' ImportedEntity
+
+#End Region ' COMMANDS
+
+End Class
+
+Public Class ManagePart_Part
+ 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.refManagePartPanelVM.SetSelManagerPart(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_PrintPart As Print3dPartVM
+ Public ReadOnly Property PrintPart As Print3dPartVM
+ Get
+ Return m_PrintPart
+ 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 IsNothing(m_PrintPart), m_PrintPart.sImportedFileName, m_nId & " " & m_sName)
+ End Get
+ End Property
+
+ Private m_LayerList As New ObservableCollection(Of ManagePart_Layer)
+ Public ReadOnly Property LayerList As ObservableCollection(Of ManagePart_Layer)
+ Get
+ Return m_LayerList
+ End Get
+ End Property
+
+ Sub New(PrintPart As Print3dPartVM)
+ m_PrintPart = PrintPart
+ If Not IsNothing(PrintPart) Then
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.PRINT_SOLID, "Print", PrintPart))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.MACH_START, "Layer Start", PrintPart))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.RIBS, "Ribs", PrintPart))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.SHELL_NUMBER, "Reduce Shell Number", PrintPart))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.AUX_SOLIDS, "Filled Solids", PrintPart))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.OTHERS, "Others", PrintPart))
+ Else
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.PRINT_SOLID, "Print"))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.MACH_START, "Layer Start"))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.RIBS, "Ribs"))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.SHELL_NUMBER, "Reduce Shell Number"))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.AUX_SOLIDS, "Filled Solids"))
+ m_LayerList.Add(New ManagePart_Layer(ManagePart_Layer.LayerType.OTHERS, "Others"))
+ End If
+ End Sub
+
+End Class
+
+Public Class ManagePart_Layer
+ 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.refManagePartPanelVM.SetSelManagerLayer(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 PartManager_GeomEntity)
+ Public Property EntityList As ObservableCollection(Of PartManager_GeomEntity)
+ Get
+ Return m_EntityList
+ End Get
+ Set(value As ObservableCollection(Of PartManager_GeomEntity))
+ 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 sEntitytName As String = ""
+ EgtGetName(nEntityId, sEntitytName)
+ m_EntityList.Add(New PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ 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 PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ nEntityId = EgtGetNext(nEntityId)
+ EgtGetName(nEntityId, sEntitytName)
+ End While
+ Case LayerType.RIBS
+ m_nLayerId = PrintPart.nRibsLayerId
+ Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
+ 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 PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ 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 PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ 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 PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ '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 PartManager_GeomEntity(nEntityId, sEntitytName, Me))
+ 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 PartManager_GeomEntity
+ Private m_OrigLayer As ManagePart_Layer
+
+ ' pezzo in cui spostare
+ Private m_Part As Print3dPartVM
+
+ ' tipo del layer indicato
+ Private m_Type As ManagePart_Layer.LayerType
+ Public Property Type As ManagePart_Layer.LayerType
+ Get
+ Return m_Type
+ End Get
+ Set(value As ManagePart_Layer.LayerType)
+ m_Type = value
+ End Set
+ End Property
+
+ Public ReadOnly Property sMsg As String
+ Get
+ Dim sType As String = ""
+ Select Case m_Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ sType = "Print"
+ Case ManagePart_Layer.LayerType.MACH_START
+ sType = "Layer Start"
+ Case ManagePart_Layer.LayerType.RIBS
+ sType = "Ribs"
+ Case ManagePart_Layer.LayerType.SHELL_NUMBER
+ sType = "Reduce shell number"
+ Case ManagePart_Layer.LayerType.AUX_SOLIDS
+ sType = "Filled Solids"
+ Case ManagePart_Layer.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 PartManager_GeomEntity, OrigLayer As ManagePart_Layer, Type As ManagePart_Layer.LayerType, Part As Print3dPartVM)
+ m_OrigEntity = OrigEntity
+ m_OrigLayer = OrigLayer
+ m_Type = Type
+ m_Part = Part
+ 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 da pezzo
+ Dim nLayerId As Integer = GDB_ID.NULL
+ Select Case m_Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ nLayerId = m_Part.nPrintSolidLayerId
+ Case ManagePart_Layer.LayerType.MACH_START
+ nLayerId = m_Part.nMachStartLayerId
+ Case ManagePart_Layer.LayerType.RIBS
+ nLayerId = m_Part.nRibsLayerId
+ Case ManagePart_Layer.LayerType.SHELL_NUMBER
+ nLayerId = m_Part.nShellNumberLayerId
+ Case ManagePart_Layer.LayerType.AUX_SOLIDS
+ nLayerId = m_Part.nAuxSolidsLayerId
+ Case ManagePart_Layer.LayerType.OTHERS
+ nLayerId = m_Part.nOthersLayerId
+ End Select
+ ' sposto entita'
+ If EgtRelocateGlob(m_OrigEntity.nId, nLayerId) Then
+ ' elimino info vecchio layer
+ Select Case m_OrigLayer.Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ EgtResetMark(m_OrigEntity.nId)
+ Case ManagePart_Layer.LayerType.MACH_START
+ Case ManagePart_Layer.LayerType.RIBS
+ EgtRemoveInfo(m_OrigEntity.nId, KEY_RIB_TYPE)
+ Case ManagePart_Layer.LayerType.SHELL_NUMBER
+ EgtRemoveInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE)
+ Case ManagePart_Layer.LayerType.AUX_SOLIDS
+ EgtRemoveInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE)
+ Case ManagePart_Layer.LayerType.OTHERS
+ End Select
+ ' sposto in lista
+ m_OrigLayer.EntityList.Remove(m_OrigEntity)
+ Dim NewPart As ManagePart_Part = Map.refManagePartPanelVM.ManagerPartList.FirstOrDefault(Function(x) x.PrintPart.nPartId = m_Part.nPartId)
+ If Not IsNothing(NewPart) Then
+ Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = m_Type)
+ If Not IsNothing(NewLayer) Then
+ NewLayer.EntityList.Add(m_OrigEntity)
+ ' aggiorno riferimenti nell'entita'
+ m_OrigEntity.UpdateOrigLayer(NewLayer)
+ End If
+ End If
+ ' aggiungo info nuovo layer
+ Select Case m_Type
+ Case ManagePart_Layer.LayerType.PRINT_SOLID
+ EgtSetName(m_OrigEntity.nId, PRINT_SOLID)
+ EgtSetColor(m_OrigEntity.nId, c3Print)
+ Case ManagePart_Layer.LayerType.MACH_START
+ EgtSetName(m_OrigEntity.nId, LAY_MACH_START)
+ EgtSetColor(m_OrigEntity.nId, c3MachStart)
+ Case ManagePart_Layer.LayerType.RIBS
+ EgtSetName(m_OrigEntity.nId, LAY_RIBS)
+ EgtSetInfo(m_OrigEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
+ EgtSetColor(m_OrigEntity.nId, c3Rib)
+ Case ManagePart_Layer.LayerType.SHELL_NUMBER
+ EgtSetName(m_OrigEntity.nId, LAY_SHELL_NBR)
+ EgtSetInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
+ EgtSetColor(m_OrigEntity.nId, c3ShellNumber)
+ Case ManagePart_Layer.LayerType.AUX_SOLIDS
+ EgtSetName(m_OrigEntity.nId, LAY_AUX_SOLIDS)
+ EgtSetInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
+ EgtSetColor(m_OrigEntity.nId, c3AuxSolids)
+ Case ManagePart_Layer.LayerType.OTHERS
+ EgtSetName(m_OrigEntity.nId, LAY_OTHERS)
+ EgtSetColor(m_OrigEntity.nId, c3Others)
+ End Select
+ EgtDraw()
+ ' aggiorno riferimenti nel context menu item
+ m_OrigEntity.UpdateContextMenu(m_OrigEntity.OrigLayer)
+ End If
+ End Sub
+
+#End Region ' Cancel
+
+End Class
\ No newline at end of file
diff --git a/Icarus/SceneHost/MySceneHostVM.vb b/Icarus/SceneHost/MySceneHostVM.vb
index 309ac0b..9bceef6 100644
--- a/Icarus/SceneHost/MySceneHostVM.vb
+++ b/Icarus/SceneHost/MySceneHostVM.vb
@@ -1175,7 +1175,7 @@ Public Class MySceneHostVM
While nId <> GDB_ID.NULL
' Recupero l'identificativo del pezzo cui appartiene
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
- If nPartId = Map.refImportPanelVM.nImportedPartId Then
+ If nPartId = Map.refManagePartPanelVM.nImportedPartId Then
Dim EntityType As GDB_TY = EgtGetType(nId)
Select Case EntityType
Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO, GDB_TY.CRV_LINE
@@ -1225,7 +1225,7 @@ Public Class MySceneHostVM
If Not m_bDragToStart Then
' Se selezione da eseguire
ElseIf m_nIdToSel <> GDB_ID.NULL Then
- Map.refImportPanelVM.SetSelImportedEntity(m_nIdToSel)
+ Map.refManagePartPanelVM.SetSelImportedEntity(m_nIdToSel)
End If
' Reset
m_bDrag = False
diff --git a/Icarus/TopPanel/TopPanelVM.vb b/Icarus/TopPanel/TopPanelVM.vb
index 9ac54cc..1cabbe5 100644
--- a/Icarus/TopPanel/TopPanelVM.vb
+++ b/Icarus/TopPanel/TopPanelVM.vb
@@ -395,7 +395,8 @@ Public Class TopPanelVM
Private Sub InitIMPORT()
Map.refLeftPanelVM.SetSelPanel(LeftPanelVM.Panels.IMPORT)
- Map.refImportPanelVM.Init()
+ ''Map.refImportPanelVM.Init()
+ Map.refManagePartPanelVM.Init(ManagePartPanelVM.ManagePartType.IMPORT)
End Sub
Private Function ExitIMPORT()
diff --git a/Icarus/Utility/Dictionary.xaml b/Icarus/Utility/Dictionary.xaml
index 24d00a2..681b201 100644
--- a/Icarus/Utility/Dictionary.xaml
+++ b/Icarus/Utility/Dictionary.xaml
@@ -29,7 +29,7 @@
-
+
@@ -44,7 +44,8 @@
-
+
+