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