Imports System.Collections.ObjectModel Imports System.IO Imports EgtUILib Imports EgtWPFLib5 Imports EgtBEAMWALL.Core Public Class MyInstrumentPanelVM Inherits InstrumentPanelVM Public ReadOnly Property ChangeParam_Visibility As Visibility Get Return If(Map.refMainMenuVM.SelPage = Pages.VIEW, Visibility.Visible, Visibility.Collapsed) End Get End Property Private m_InstrumentPanel_IsEnabled As Boolean = True Public Property InstrumentPanel_IsEnabled As Boolean Get Return m_InstrumentPanel_IsEnabled End Get Set(value As Boolean) m_InstrumentPanel_IsEnabled = value End Set End Property Dim m_PrevBottomPanelPage As BottomPanelVM.PartFeatureTab = BottomPanelVM.PartFeatureTab.STRUCTURE_ Private m_Statistics_IsChecked As Boolean = False Public Property Statistics_IsChecked As Boolean Get Return m_Statistics_IsChecked End Get Set(value As Boolean) m_Statistics_IsChecked = value If Map.refMainMenuVM.SelPage = Pages.VIEW Then If value Then ' salvo pagina precedente m_PrevBottomPanelPage = Map.refBottomPanelVM.SelPartFeatureTab ' aggiorno valori totali Map.refProjectVM.BTLStructureVM.CalcGlobalUpdate() ' seleziono pagina Statistics Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.STATISTICS) Else ' seleziono pagina precedente Map.refBottomPanelVM.SetSelPartFeatureTab(m_PrevBottomPanelPage) End If ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then If value Then ' aggiorno valori totali If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then Map.refProjectVM.MachGroupPanelVM.CalcGlobalUpdate() ' aggiorno conto materiali usati Map.refStatisticsVM.LoadRawPart() ' seleziono pagina Statistics Map.refTopPanelVM.SetSelTab(TopPanelVM.Tabs.STATISTICS) Else ' seleziono pagina precedente Map.refTopPanelVM.SetSelTab(TopPanelVM.Tabs.OPTIMIZATION) End If End If End Set End Property Friend Sub SetStatisticsIsChecked(value As Boolean) m_Statistics_IsChecked = value NotifyPropertyChanged(NameOf(Statistics_IsChecked)) End Sub ' Definizione comandi Private m_cmdData As ICommand Private m_cmdChangeParameter As ICommand Private m_cmdStatistics As ICommand #Region "Messages" Public ReadOnly Property ChangeParam_ToolTip As String Get Return EgtMsg(61900) End Get End Property Public ReadOnly Property Statistics_Msg As String Get Return EgtMsg(61923) End Get End Property #End Region ' Messages #Region "CONSTRUCTORS" Sub New() ' imposto riferimento in Map Map.SetRefInstrumentPanelVM(Me) End Sub #End Region ' CONSTRUCTORS #Region "METHODS" Public Overrides Function OnPostGetDistIsChecked() As Boolean If Not Map.refFreeContourManagerVM.bIsActive Then Map.refSceneHostVM.MainScene.SetStatusNull() Return True End Function Friend Sub SetGetDistance_IsChecked(bIsChecked As Boolean) GetDistIsChecked = bIsChecked End Sub Friend Sub ResetStatisticsIsChecked() If Statistics_IsChecked Then Statistics_IsChecked = False NotifyPropertyChanged(NameOf(Statistics_IsChecked)) End If End Sub Friend Sub SetInstrumentPanelIsEnabled(bIsEnabled As Boolean) m_InstrumentPanel_IsEnabled = bIsEnabled NotifyPropertyChanged(NameOf(InstrumentPanel_IsEnabled)) End Sub #End Region ' METHODS #Region "COMMANDS" #Region "Data" ''' ''' Returns a command that do Open. ''' Public ReadOnly Property Data_Command As ICommand Get If m_cmdData Is Nothing Then m_cmdData = New Command(AddressOf Data) End If Return m_cmdData End Get End Property ''' ''' Execute the Open. This method is invoked by the OpenCommand. ''' Friend Sub Data() Dim BTLDataWnd As New BTLDataWndV(Application.Current.MainWindow, New BTLDataWndVM()) BTLDataWnd.ShowDialog() End Sub #End Region ' Data #Region "ChangeParameter" ''' ''' Returns a command that do Open. ''' Public ReadOnly Property ChangeParameter_Command As ICommand Get If m_cmdChangeParameter Is Nothing Then m_cmdChangeParameter = New Command(AddressOf ChangeParameter) End If Return m_cmdChangeParameter End Get End Property ''' ''' Execute the Open. This method is invoked by the OpenCommand. ''' Friend Sub ChangeParameter() If (Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso (IsNothing(Map.refProjManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM)) OrElse (Map.refMainMenuVM.SelPage = Pages.MACHINING AndAlso (IsNothing(Map.refProdManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM)))) Then Return Dim ChangeParameterWndVM As New ChangeParameterWndVM Dim ChangeParameterWnd As New ChangeParameterWndV(Application.Current.MainWindow, ChangeParameterWndVM) If ChangeParameterWnd.ShowDialog() Then LoadingWndHelper.OpenLoadingWnd(ActiveIds.CHANGEPARAM, 1, EgtMsg(63014), "", 100) ' Modifying parameters ' faccio passare pezzi If Not IsNothing(ChangeParameterWndVM.SelParam) Then For Each Part In Map.refProjectVM.BTLStructureVM.BTLPartVMList For Each Feature In Part.BTLFeatureVMList.Where(Function(x) x.nPRC = ChangeParameterWndVM.SelPRC.nPRC AndAlso CalcBeamPrivateProfileGRP(x.nSelGRP) = ChangeParameterWndVM.SelPRC.nGRP) If ChangeParameterWndVM.SelParam.BTLParamM.nType = BTLParamType.CHECKBOX AndAlso Feature.bDO = ChangeParameterWndVM.SelParam.bActualValue Then Feature.bDO = ChangeParameterWndVM.SelParam.bNewValue Else Dim ParamList As ObservableCollection(Of BTLParamVM) If ChangeParameterWndVM.SelParam.BTLParamM.bIsP Then ParamList = Feature.PBTLParamVMList Else ParamList = Feature.QBTLParamVMList End If For Each Param In ParamList.Where(Function(x) x.sName = ChangeParameterWndVM.SelParam.sName) Select Case Param.nType Case BTLParamType.DOUBLE_, BTLParamType.LENGTH If Param.dValue = ChangeParameterWndVM.SelParam.dActualValue Then Param.UpdateParamValue(ChangeParameterWndVM.SelParam.dNewValue, "") '' rinfresco valori parametri feature correntemente selezionata 'If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso ' Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM) AndAlso ' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM Is Feature Then ' Param.NotifyPropertyChanged("sValue") 'End If End If Case BTLParamType.STRING_ If Param.sValue = ChangeParameterWndVM.SelParam.sActualValue Then Param.UpdateParamValue(0, ChangeParameterWndVM.SelParam.sNewValue) '' rinfresco valori parametri feature correntemente selezionata 'If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso ' Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM) AndAlso ' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.nPRC = ChangeParameterWndVM.SelPRC.nPRC AndAlso ' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.nSelGRP = ChangeParameterWndVM.SelPRC.nGRP Then ' Param.NotifyPropertyChanged("sValue") 'End If End If End Select Next End If Next '' faccio passare feature 'For Each Feature In Part.FeatureList ' If Feature.nPRC = ChangeParameterWndVM.SelPRC.nPRC Then ' For Each Param In Feature.PParamList ' If Param.sName = ChangeParameterWndVM.SelParam.sName Then ' Select Case Param.nType ' Case BTLParamType.DOUBLE_, BTLParamType.LENGTH ' If Param.dValue = ChangeParameterWndVM.SelParam.dActualValue Then ' Param.dValue = ChangeParameterWndVM.SelParam.dValue ' End If ' Case BTLParamType.STRING_ ' If Param.sValue = ChangeParameterWndVM.SelParam.sActualValue Then ' Param.sValue = ChangeParameterWndVM.SelParam.sValue ' End If ' End Select ' End If ' Next ' End If 'Next Next End If LoadingWndHelper.CloseLoadingWnd(ActiveIds.CHANGEPARAM) End If End Sub #End Region ' ChangeParameter #End Region ' COMMANDS End Class