From fa0a03f210f03bdcd3595f2fa9951866a10e59de Mon Sep 17 00:00:00 2001 From: Renzo Lanza Date: Fri, 30 Oct 2020 09:46:54 +0000 Subject: [PATCH] EgtCAM5 2.2j7 : - aggiunto expander dei parametri SurfFinishing alle Operazioni --- EgtCAM5.vbproj | 7 + My Project/AssemblyInfo.vb | 4 +- .../MachiningParameterExpanderVM.vb | 6 + .../SurfFinishingParameterExpanderV.xaml | 279 ++++++++++++++++++ .../SurfFinishingParameterExpanderV.xaml.vb | 83 ++++++ 5 files changed, 377 insertions(+), 2 deletions(-) create mode 100644 OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml create mode 100644 OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml.vb diff --git a/EgtCAM5.vbproj b/EgtCAM5.vbproj index 045cbde..9bbbf25 100644 --- a/EgtCAM5.vbproj +++ b/EgtCAM5.vbproj @@ -160,6 +160,9 @@ EstimationsExpanderV.xaml + + SurfFinishingParameterExpanderV.xaml + StoneMillingParameterExpanderV.xaml @@ -429,6 +432,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 9258756..3fa1769 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -70,6 +70,6 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderVM.vb b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderVM.vb index 859e927..d10bb28 100644 --- a/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderVM.vb +++ b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderVM.vb @@ -81,6 +81,7 @@ Public Class MachiningParameterExpanderVM Dim StoneSawRoughParamExpanderV As StoneSawRoughingParameterExpanderV Dim StoneMillParamExpanderV As StoneMillingParameterExpanderV Dim StoneDrillParamExpanderV As StoneDrillingParameterExpanderV + Dim SurfFinishParamExpanderV As SurfFinishingParameterExpanderV Dim WjParamExpanderV As WaterjettingParameterExpanderV Private Sub Dummy() @@ -116,6 +117,7 @@ Public Class MachiningParameterExpanderVM StoneSawRoughParamExpanderV.DataContext = Nothing StoneMillParamExpanderV.DataContext = Nothing StoneDrillParamExpanderV.DataContext = Nothing + SurfFinishParamExpanderV.DataContext = Nothing WjParamExpanderV.DataContext = Nothing m_CurrOperation.ReadOperationParam() @@ -171,6 +173,9 @@ Public Class MachiningParameterExpanderVM Case MCH_OY.CHISELING ChiselParamExpanderV.DataContext = m_CurrOperation Return ChiselParamExpanderV + Case MCH_OY.SURFFINISHING + SurfFinishParamExpanderV.DataContext = m_CurrOperation + Return SurfFinishParamExpanderV Case MCH_OY.WATERJETTING WjParamExpanderV.DataContext = m_CurrOperation Return WjParamExpanderV @@ -231,6 +236,7 @@ Public Class MachiningParameterExpanderVM StoneSawRoughParamExpanderV = New StoneSawRoughingParameterExpanderV StoneMillParamExpanderV = New StoneMillingParameterExpanderV StoneDrillParamExpanderV = New StoneDrillingParameterExpanderV + SurfFinishParamExpanderV = New SurfFinishingParameterExpanderV WjParamExpanderV = New WaterjettingParameterExpanderV NotifyPropertyChanged("ParamExpanderPageV") diff --git a/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml new file mode 100644 index 0000000..41f95cb --- /dev/null +++ b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml @@ -0,0 +1,279 @@ + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml.vb b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml.vb new file mode 100644 index 0000000..fb8d9eb --- /dev/null +++ b/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/SurfFinishingParameterExpanderV.xaml.vb @@ -0,0 +1,83 @@ +Imports EgtWPFLib5 +Imports EgtWPFLib5.EgtFloating + +Public Class SurfFinishingParameterExpanderV + + Private EgtFloatingTray As EgtFloatingTray + Private EgtFloatingPanel As EgtFloatingPanel + + Private m_bFirst As Boolean = True + + Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded + If m_bFirst Then + EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me) + EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me) + AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged + PanelHeight = EgtFloatingPanel.ActualHeight + Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight + m_bFirst = False + End If + CalculateOperationParametersStackPanelMaxHeight() + End Sub + + Dim m_bSizeChanging As Boolean = False + + Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs) + If m_bSizeChanging Then Return + m_bSizeChanging = True + CalculateOperationParametersStackPanelMaxHeight() + m_bSizeChanging = False + End Sub + + Dim PanelHeight As Double = 0 + Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 + + Private Sub CalculateOperationParametersStackPanelMaxHeight() + Dim AutomaticCloseExpanderStackPanelHeight As Double = 0 + Dim OpenedExpanderList As New List(Of Boolean) + For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1 + If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then + Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander) + If IndexedExpander.IsExpanded Then + OpenedExpanderList.Add(True) + IndexedExpander.IsExpanded = False + Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement) + CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity)) + AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height + ' Sottraggo anche i padding + AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom) + Else + OpenedExpanderList.Add(False) + End If + Else + OpenedExpanderList.Add(False) + End If + Next + Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight + AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight + For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1 + If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then + Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander) + If OpenedExpanderList(Index) Then + IndexedExpander.IsExpanded = True + End If + End If + Next + End Sub + + ' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject + Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T + Dim target As DependencyObject = dependencyObject + Do + target = LogicalTreeHelper.GetParent(target) + Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T) + If IsNothing(target) Then + target = dependencyObject + Do + target = VisualTreeHelper.GetParent(target) + Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T) + End If + Return TryCast(target, T) + End Function + +End Class