- Evitato contextmenu vuoto
- Migliorata gestione nuovo pezzo - Correzioni e migliorie
This commit is contained in:
@@ -82,9 +82,10 @@
|
||||
</TreeView.Resources>
|
||||
<TreeView.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding bIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Setter Property="IsExpanded" Value="True" />
|
||||
<Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
|
||||
<Setter Property="IsSelected" Value="{Binding bIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<Setter Property="IsExpanded" Value="True"/>
|
||||
<Setter Property="ContextMenu" Value="{StaticResource RowMenu}"/>
|
||||
<EventSetter Event="ContextMenuOpening" Handler="Item_ContextMenuOpening"/>
|
||||
</Style>
|
||||
</TreeView.ItemContainerStyle>
|
||||
</TreeView>
|
||||
|
||||
@@ -1,3 +1,24 @@
|
||||
Public Class ManagePartPanelV
|
||||
|
||||
Protected Sub Item_ContextMenuOpening(sender As Object, e As ContextMenuEventArgs)
|
||||
Dim PartItem As ManagePart_Part
|
||||
Dim LayerItem As ManagePart_Layer
|
||||
Dim EntityItem As PartManager_GeomEntity
|
||||
Select Case e.OriginalSource.DataContext.GetType()
|
||||
Case GetType(ManagePart_Part)
|
||||
PartItem = DirectCast(e.OriginalSource.DataContext, ManagePart_Part)
|
||||
If PartItem.MenuList.Count = 0 Then
|
||||
e.Handled = True
|
||||
End If
|
||||
Case GetType(ManagePart_Layer)
|
||||
LayerItem = DirectCast(e.OriginalSource.DataContext, ManagePart_Layer)
|
||||
e.Handled = True
|
||||
Case GetType(PartManager_GeomEntity)
|
||||
EntityItem = DirectCast(e.OriginalSource.DataContext, PartManager_GeomEntity)
|
||||
If EntityItem.MenuList.Count = 0 Then
|
||||
e.Handled = True
|
||||
End If
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -117,6 +117,7 @@ Public Class PartManager_GeomEntity
|
||||
m_MenuList.Clear()
|
||||
Select Case Map.refManagePartPanelVM.Type
|
||||
Case ManagePartPanelVM.ManagePartType.IMPORT
|
||||
Dim bIsSurface As Boolean = False
|
||||
For Each ProjectPart In Map.refManagePartPanelVM.ManagerPartList
|
||||
' verifico in quali layer puo' andare questo elemento
|
||||
Dim EntityType As GDB_TY = EgtGetType(nId)
|
||||
@@ -136,6 +137,7 @@ Public Class PartManager_GeomEntity
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
End If
|
||||
Case GDB_TY.SRF_MESH
|
||||
bIsSurface = True
|
||||
If Not IsNothing(OrigLayer) Then
|
||||
' verifico se volume chiuso
|
||||
If nPrintSolidCount = 0 AndAlso (Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.PRINT_SOLID) Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
|
||||
@@ -143,20 +145,20 @@ Public Class PartManager_GeomEntity
|
||||
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
|
||||
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.RIBS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
|
||||
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
Else
|
||||
If nPrintSolidCount = 0 Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
If bIsSurface Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.CHANGENAME))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.DELETE))
|
||||
Case ManagePartPanelVM.ManagePartType.MODIFY
|
||||
Dim bIsSurface As Boolean = False
|
||||
For Each ProjectPart In Map.refTopPanelVM.PartList
|
||||
' verifico in quali layer puo' andare questo elemento
|
||||
Dim EntityType As GDB_TY = EgtGetType(nId)
|
||||
@@ -172,6 +174,7 @@ Public Class PartManager_GeomEntity
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
End If
|
||||
Case GDB_TY.SRF_MESH
|
||||
bIsSurface = True
|
||||
If Not IsNothing(OrigLayer) Then
|
||||
' verifico se volume chiuso
|
||||
If nPrintSolidCount = 0 AndAlso (ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.PRINT_SOLID) Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
|
||||
@@ -179,17 +182,16 @@ Public Class PartManager_GeomEntity
|
||||
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
|
||||
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.RIBS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
|
||||
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
Else
|
||||
If nPrintSolidCount = 0 Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
If bIsSurface Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.CHANGENAME))
|
||||
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.DELETE))
|
||||
End Select
|
||||
@@ -617,7 +619,20 @@ Public Class GeomEntity_MenuItem
|
||||
ElseIf m_Type = ManagePart_Layer.LayerType.NEWPART Then
|
||||
Select Case Map.refManagePartPanelVM.Type
|
||||
Case ManagePartPanelVM.ManagePartType.IMPORT
|
||||
Map.refManagePartPanelVM.AddPart()
|
||||
Dim NewPart As ManagePart_Part = New ManagePart_Part(Nothing)
|
||||
Map.refManagePartPanelVM.ManagerPartList.Add(NewPart)
|
||||
' elimino entity dalla lista entita' importate
|
||||
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
|
||||
If Not IsNothing(NewPart) Then
|
||||
Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
|
||||
If Not IsNothing(NewLayer) Then
|
||||
NewLayer.EntityList.Add(m_OrigEntity)
|
||||
' aggiorno riferimenti nell'entita'
|
||||
m_OrigEntity.UpdateOrigLayer(NewLayer)
|
||||
End If
|
||||
End If
|
||||
' aggiorno i contextmenu di tutti gli entity
|
||||
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
|
||||
Case ManagePartPanelVM.ManagePartType.MODIFY
|
||||
' recupero path da vecchio pezzo
|
||||
Dim sFilePath As String = ""
|
||||
@@ -882,6 +897,8 @@ Public Class ManagerPart_MenuItem
|
||||
EgtDraw()
|
||||
If bSelFirstPart Then Map.refTopPanelVM.SelFirstPart()
|
||||
End Select
|
||||
' aggiorno riferimenti nel context menu item
|
||||
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
Reference in New Issue
Block a user