From dceabbfa3768ed8a0217f8a4bf38c703be3aaf86 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Sat, 22 May 2021 12:46:18 +0200 Subject: [PATCH] - continuazione implementazione L250 --- .../BTLParam/BTLFeatureVM.vb | 72 ++++++++++++ .../BTLParam/BTLPartVM.vb | 91 +++++++--------- .../BottomPanel/BottomPanelV.xaml | 3 +- .../FeatureManager/FeatureManagerV.xaml | 27 +++-- .../FeatureManager/FeatureManagerVM.vb | 38 ++++++- .../FreeContourManagerV.xaml | 13 +++ .../FreeContourManagerVM.vb | 103 ++++++++++++------ .../Utility/Dictionary.xaml | 1 + 8 files changed, 253 insertions(+), 95 deletions(-) diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb index 32407b26..911798e1 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb @@ -312,7 +312,25 @@ Public Class BTLFeatureVM End Set End Property + Public ReadOnly Property Edit_Visibility As Visibility + Get + Return Visibility.Collapsed 'If(BTLFeatureM.IsFreeContour AndAlso Not Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed) + End Get + End Property + Public ReadOnly Property SaveCancel_Visibility As Visibility + Get + Return Visibility.Collapsed 'If(BTLFeatureM.IsFreeContour AndAlso Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed) + End Get + End Property + Friend Sub RefreshFCMBtnVisibility() + NotifyPropertyChanged(NameOf(Edit_Visibility)) + NotifyPropertyChanged(NameOf(SaveCancel_Visibility)) + End Sub + ' Definizione comandi + Private m_cmdEdit As ICommand + Private m_cmdSave As ICommand + Private m_cmdCancel As ICommand Private m_cmdDeleteFeature As ICommand #Region "CONSTRUCTOR" @@ -493,6 +511,60 @@ Public Class BTLFeatureVM #End Region ' DeleteFeature +#Region "Edit" + + Public ReadOnly Property Edit_Command As ICommand + Get + If m_cmdEdit Is Nothing Then + m_cmdEdit = New Command(AddressOf Edit) + End If + Return m_cmdEdit + End Get + End Property + + Public Sub Edit() + ' attivo modalita' contorno libero + Map.refFreeContourManagerVM.Open() + End Sub + +#End Region ' Edit + +#Region "Save" + + Public ReadOnly Property Save_Command As ICommand + Get + If m_cmdSave Is Nothing Then + m_cmdSave = New Command(AddressOf Save) + End If + Return m_cmdSave + End Get + End Property + + Public Sub Save() + ' disattivo modalita' contorno libero + Map.refFreeContourManagerVM.Close(True) + End Sub + +#End Region ' Save + +#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() + ' disattivo modalita' contorno libero + Map.refFreeContourManagerVM.Close(False) + End Sub + +#End Region ' Cancel + #End Region ' COMMANDS #Region "EVENTS" diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLPartVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLPartVM.vb index ac37d0c6..227584a6 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLPartVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLPartVM.vb @@ -56,7 +56,7 @@ Public Class BTLPartVM End Set End Property - Private Function SetBtlLHW( dBtlL As Double, dBtlH As Double, dBtlW As Double) As Boolean + Private Function SetBtlLHW(dBtlL As Double, dBtlH As Double, dBtlW As Double) As Boolean Dim OldSection As SectionXMaterial = Section ' verifico se ci sono già copie in grezzi Dim nDuploCount As Integer = 0 @@ -95,10 +95,10 @@ Public Class BTLPartVM Public Property sL As String Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsX( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsX(frBeam.VersX(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlL, 3) - ElseIf IsX( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsX(frBeam.VersY(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlH, 3) Else Return LenToString(m_BTLPartM.dBtlW, 3) @@ -111,15 +111,15 @@ Public Class BTLPartVM Dim dBtlW = m_BTLPartM.dBtlW Dim dBtlH = m_BTLPartM.dBtlH Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsX( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsX(frBeam.VersX(), EPS_SMALL) Then dBtlL = dVal - ElseIf IsX( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsX(frBeam.VersY(), EPS_SMALL) Then dBtlH = dVal Else dBtlW = dVal End If - SetBtlLHW( dBtlL, dBtlH, dBtlW) + SetBtlLHW(dBtlL, dBtlH, dBtlW) End If NotifyPropertyChanged(NameOf(sL)) NotifyPropertyChanged(NameOf(sH)) @@ -129,10 +129,10 @@ Public Class BTLPartVM Public ReadOnly Property dL As Double Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsX( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsX(frBeam.VersX(), EPS_SMALL) Then Return m_BTLPartM.dBtlL - ElseIf IsX( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsX(frBeam.VersY(), EPS_SMALL) Then Return m_BTLPartM.dBtlH Else Return m_BTLPartM.dBtlW @@ -148,10 +148,10 @@ Public Class BTLPartVM Public Property sW As String Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsY( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsY(frBeam.VersX(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlL, 3) - ElseIf IsY( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsY(frBeam.VersY(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlH, 3) Else Return LenToString(m_BTLPartM.dBtlW, 3) @@ -164,15 +164,15 @@ Public Class BTLPartVM Dim dBtlW = m_BTLPartM.dBtlW Dim dBtlH = m_BTLPartM.dBtlH Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsY( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsY(frBeam.VersX(), EPS_SMALL) Then dBtlL = dVal - ElseIf IsY( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsY(frBeam.VersY(), EPS_SMALL) Then dBtlH = dVal Else dBtlW = dVal End If - SetBtlLHW( dBtlL, dBtlH, dBtlW) + SetBtlLHW(dBtlL, dBtlH, dBtlW) End If NotifyPropertyChanged(NameOf(sL)) NotifyPropertyChanged(NameOf(sH)) @@ -182,10 +182,10 @@ Public Class BTLPartVM Public ReadOnly Property dW As Double Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsY( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsY(frBeam.VersX(), EPS_SMALL) Then Return m_BTLPartM.dBtlL - ElseIf IsY( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsY(frBeam.VersY(), EPS_SMALL) Then Return m_BTLPartM.dBtlH Else Return m_BTLPartM.dBtlW @@ -201,10 +201,10 @@ Public Class BTLPartVM Public Property sH As String Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsZ( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsZ(frBeam.VersX(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlL, 3) - ElseIf IsZ( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsZ(frBeam.VersY(), EPS_SMALL) Then Return LenToString(m_BTLPartM.dBtlH, 3) Else Return LenToString(m_BTLPartM.dBtlW, 3) @@ -217,15 +217,15 @@ Public Class BTLPartVM Dim dBtlW = m_BTLPartM.dBtlW Dim dBtlH = m_BTLPartM.dBtlH Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsZ( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsZ(frBeam.VersX(), EPS_SMALL) Then dBtlL = dVal - ElseIf IsZ( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsZ(frBeam.VersY(), EPS_SMALL) Then dBtlH = dVal Else dBtlW = dVal End If - SetBtlLHW( dBtlL, dBtlH, dBtlW) + SetBtlLHW(dBtlL, dBtlH, dBtlW) End If NotifyPropertyChanged(NameOf(sL)) NotifyPropertyChanged(NameOf(sH)) @@ -235,10 +235,10 @@ Public Class BTLPartVM Public ReadOnly Property dH As Double Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) - If IsZ( frBeam.VersX(), EPS_SMALL) Then + EgtGetGroupGlobFrame(nPartId, frBeam) + If IsZ(frBeam.VersX(), EPS_SMALL) Then Return m_BTLPartM.dBtlL - ElseIf IsZ( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsZ(frBeam.VersY(), EPS_SMALL) Then Return m_BTLPartM.dBtlH Else Return m_BTLPartM.dBtlW @@ -1162,32 +1162,32 @@ Public Class BTLPartVM Public ReadOnly Property Section As SectionXMaterial Get Dim frBeam As New Frame3d - EgtGetGroupGlobFrame( nPartId, frBeam) + EgtGetGroupGlobFrame(nPartId, frBeam) Dim dL As Double - If IsX( frBeam.VersX(), EPS_SMALL) Then + If IsX(frBeam.VersX(), EPS_SMALL) Then dL = m_BTLPartM.dBtlL - ElseIf IsX( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsX(frBeam.VersY(), EPS_SMALL) Then dL = m_BTLPartM.dBtlH Else dL = m_BTLPartM.dBtlW End If Dim dW As Double - If IsY( frBeam.VersX(), EPS_SMALL) Then + If IsY(frBeam.VersX(), EPS_SMALL) Then dW = m_BTLPartM.dBtlL - ElseIf IsY( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsY(frBeam.VersY(), EPS_SMALL) Then dW = m_BTLPartM.dBtlH Else dW = m_BTLPartM.dBtlW End If Dim dH As Double - If IsZ( frBeam.VersX(), EPS_SMALL) Then + If IsZ(frBeam.VersX(), EPS_SMALL) Then dH = m_BTLPartM.dBtlL - ElseIf IsZ( frBeam.VersY(), EPS_SMALL) Then + ElseIf IsZ(frBeam.VersY(), EPS_SMALL) Then dH = m_BTLPartM.dBtlH Else dH = m_BTLPartM.dBtlW End If - Return New SectionXMaterial( dW, dH, dL, m_BTLPartM.sMATERIAL) + Return New SectionXMaterial(dW, dH, dL, m_BTLPartM.sMATERIAL) End Get End Property @@ -1228,12 +1228,8 @@ Public Class BTLPartVM Return m_SelBTLFeatureVM End Get Set(value As BTLFeatureVM) - If Map.refMainMenuVM.SelPage = Pages.VIEW And Not IsNothing(m_SelBTLFeatureVM) AndAlso m_SelBTLFeatureVM.BTLFeatureM.IsFreeContour() Then - ' disattivo modalita' contorno libero - Map.refFreeContourManagerVM.Close() - End If m_SelBTLFeatureVM = value - If Map.refMainMenuVM.SelPage = Pages.VIEW Then + If Map.refMainMenuVM.SelPage = Pages.VIEW Then If Not IsNothing(m_SelBTLFeatureVM) Then DirectCast(m_SelBTLFeatureVM, BTLFeatureVM).SelGeomFeature() EgtDraw() @@ -1243,11 +1239,8 @@ Public Class BTLPartVM Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.FEATURE) ' deseleziono i parametri If Not IsNothing(SelBTLFeatureVM.SelPBTLParam) Then SelBTLFeatureVM.SelPBTLParam = Nothing - ' se contorno libero - If m_SelBTLFeatureVM.BTLFeatureM.IsFreeContour() Then - ' attivo modalita' contorno libero - Map.refFreeContourManagerVM.Open() - End If + ' rinfresco bottoni freecontour + m_SelBTLFeatureVM.RefreshFCMBtnVisibility() Else EgtDeselectAll() End If diff --git a/EgtBEAMWALL.ViewerOptimizer/BottomPanel/BottomPanelV.xaml b/EgtBEAMWALL.ViewerOptimizer/BottomPanel/BottomPanelV.xaml index a0bb3e29..09aee2b1 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BottomPanel/BottomPanelV.xaml +++ b/EgtBEAMWALL.ViewerOptimizer/BottomPanel/BottomPanelV.xaml @@ -52,7 +52,8 @@ - + diff --git a/EgtBEAMWALL.ViewerOptimizer/FeatureManager/FeatureManagerV.xaml b/EgtBEAMWALL.ViewerOptimizer/FeatureManager/FeatureManagerV.xaml index fb3c3c18..20a5ed63 100644 --- a/EgtBEAMWALL.ViewerOptimizer/FeatureManager/FeatureManagerV.xaml +++ b/EgtBEAMWALL.ViewerOptimizer/FeatureManager/FeatureManagerV.xaml @@ -2,24 +2,33 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5" + xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer" Orientation="Horizontal" Height="28"> - - - - -