From 365dc151277c80f00be3bba9c8025c02d9fb3a9c Mon Sep 17 00:00:00 2001 From: Demetrio Cassarino Date: Fri, 26 Jun 2026 12:54:55 +0200 Subject: [PATCH 1/2] -aggiunto controllo modifica configurazione strategie in chiusura programma -spostato pulsante aggiorna strategie --- .../MainWindow/MainWindowV.xaml.vb | 3 + .../StrategyManager/ParameterStrategyV.xaml | 276 +++++++++--------- .../StrategyManager/StrategyManagerV.xaml | 17 +- .../StrategyManager/StrategyManagerVM.vb | 5 +- .../StrategyManager/StrategyV.xaml | 8 - 5 files changed, 153 insertions(+), 156 deletions(-) diff --git a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb index 2dd746a6..cd774256 100644 --- a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb +++ b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb @@ -48,6 +48,9 @@ Public Class MainWindowV e.Cancel = True Return End If + If Map.refStrategyManagerVM.bIsModifyStrategy Then + Map.refStrategyManagerVM.SaveCustomConfigJson() + End If If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then e.Cancel = True Return diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml index 1102d80d..1e7ac409 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml +++ b/EgtBEAMWALL.Optimizer/StrategyManager/ParameterStrategyV.xaml @@ -4,137 +4,151 @@ xmlns:OPTIMIZER="clr-namespace:EgtBEAMWALL.Optimizer" VerticalAlignment="Top" Margin="5,10,0,0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml index 974960f7..0b000e64 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml +++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml @@ -144,21 +144,8 @@ - - - - - - - - + diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb index ee65396f..c0ed81ac 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb +++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb @@ -106,9 +106,8 @@ Public Class StrategyManagerVM TmpImage = ImageRoot & Item.sImage Item.sImage = TmpImage End If - ' Gestisco visibilita' pulsante Update Feature - SetUpdate_Visibility(If(Item.sName <> "Feature", True, False)) m_SelTreeItem = Item + SetUpdate_Visibility(False) NotifyPropertyChanged(NameOf(SelTreeItem)) End Sub @@ -1086,6 +1085,8 @@ Public Class Topology End Get Set(value As Strategy) m_SelParamStrategy = value + ' Gestisco visibilita' pulsante Update Feature + Map.refStrategyManagerVM.SetUpdate_Visibility(If(Map.refStrategyManagerVM.SelTreeItem.sName <> "Feature", True, False)) NotifyPropertyChanged(NameOf(SelParamStrategy)) End Set End Property diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyV.xaml b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyV.xaml index 05410960..d775fa99 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyV.xaml +++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyV.xaml @@ -70,14 +70,6 @@ - - From d473c7ad886edd8d1b825942d37a6778837f45fb Mon Sep 17 00:00:00 2001 From: Demetrio Cassarino Date: Mon, 29 Jun 2026 11:18:18 +0200 Subject: [PATCH 2/2] -aggiunto controllo su configurationpage -aggiornato gestione index strategie --- .../ConfigurationPage/ConfigurationPageVM.vb | 35 +++++++++++++++++++ .../ConfigurationProgramV.xaml | 14 ++++---- .../ForcedStrategyPanelVM.vb | 12 +++++++ .../MainWindow/MainWindowV.xaml.vb | 4 +++ .../StrategyManager/StrategyManagerVM.vb | 20 +++++++++++ EgtBEAMWALL.Optimizer/Utility/Dictionary.xaml | 7 ++++ 6 files changed, 86 insertions(+), 6 deletions(-) diff --git a/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationPageVM.vb b/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationPageVM.vb index 77663dcf..a1d7bfad 100644 --- a/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationPageVM.vb +++ b/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationPageVM.vb @@ -68,6 +68,7 @@ Public Class ConfigurationPageVM End Get End Property + Public OrigSelectedLanguage As Language Private m_SelectedLanguage As Language Public Property SelectedLanguage As Language Get @@ -80,6 +81,7 @@ Public Class ConfigurationPageVM End Set End Property + Public nOrigSelMeasureUnit As Integer = If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH) Public Property SelMeasureUnit As Integer Get Return If(EgtUiUnitsAreMM(), MeasureUnitOpt.MM, MeasureUnitOpt.INCH) @@ -94,6 +96,7 @@ Public Class ConfigurationPageVM End Set End Property + Public sOrigSectionTime As String Private m_SectionTime As Double Public Property SectionTime As String Get @@ -107,6 +110,7 @@ Public Class ConfigurationPageVM End Set End Property + Public sOrigPartTime As String Private m_PartTime As Double Public Property PartTime As String Get @@ -120,6 +124,7 @@ Public Class ConfigurationPageVM End Set End Property + Public bOrigPrintLabel_IsChecked As Boolean Private m_bPrintLabel_IsChecked As Boolean Public Property bPrintLabel_IsChecked As String Get @@ -144,6 +149,7 @@ Public Class ConfigurationPageVM End Get End Property + Public bOrigExternalBackupActive As Boolean Private m_bExternalBackupActive As Boolean Public Property bExternalBackupActive As Boolean Get @@ -155,6 +161,7 @@ Public Class ConfigurationPageVM End Set End Property + Public sOrigExternalBackupFolderPath As String Private m_ExternalBackupFolderPath As String Public Property ExternalBackupFolderPath As String Get @@ -173,6 +180,7 @@ Public Class ConfigurationPageVM End Get End Property + Public OrigSelReminder As IdNameStruct Private m_SelReminder As IdNameStruct Public Property SelReminder As IdNameStruct Get @@ -579,16 +587,23 @@ Public Class ConfigurationPageVM Exit For End If Next + OrigSelectedLanguage = m_SelectedLanguage ' leggo SectionTime e PartTime GetMainPrivateProfileString(S_NEST, K_SECTIONTIME, "", SectionTime) + sOrigSectionTime = SectionTime GetMainPrivateProfileString(S_NEST, K_PARTTIME, "", PartTime) + sOrigPartTime = PartTime m_bPrintLabel_IsChecked = (GetMainPrivateProfileInt(S_PRINTER, K_ENABLE, 0) <> 0) + bOrigPrintLabel_IsChecked = m_bPrintLabel_IsChecked ' leggo dati per backup GetMainPrivateProfileString(S_BACKUPANDRESTORE, K_EXTERNALFILEPATH, "", m_ExternalBackupFolderPath) + sOrigExternalBackupFolderPath = m_ExternalBackupFolderPath Dim nDefaultReminderFrequency As Integer = GetMainPrivateProfileInt(S_BACKUPANDRESTORE, K_REMINDERFREQUENCY, 1) SelReminder = m_ReminderList.FirstOrDefault(Function(x) x.Id = nDefaultReminderFrequency) + OrigSelReminder = SelReminder Dim nExternalBackupActive As Integer = GetMainPrivateProfileInt(S_BACKUPANDRESTORE, K_EXTERNALBACKUPACTIVE, 0) m_bExternalBackupActive = nExternalBackupActive > 0 + bOrigExternalBackupActive = m_bExternalBackupActive SetMachineParameter_Visibility(False) SetMachine_Visibility(False) ' Recupero flag per verificare se fare solo l'importazione del btl o anche la verifica @@ -629,6 +644,26 @@ Public Class ConfigurationPageVM Return False End Function + Friend Function SaveConfigPage() As Boolean + If OrigSelectedLanguage.Name <> m_SelectedLanguage.Name OrElse + sOrigSectionTime <> SectionTime OrElse + sOrigPartTime <> PartTime OrElse + bOrigPrintLabel_IsChecked <> m_bPrintLabel_IsChecked OrElse + sOrigExternalBackupFolderPath <> m_ExternalBackupFolderPath OrElse + OrigSelReminder.Name <> SelReminder.Name OrElse + bOrigExternalBackupActive <> m_bExternalBackupActive OrElse + nOrigSelMeasureUnit <> SelMeasureUnit Then + Select Case EgtBEAMWALL.Core.EgtMessageBoxV.Show(Application.Current.MainWindow, EgtMsg(62593), EgtMsg(15003), MessageBoxButton.YesNo, MessageBoxImage.Question) + Case MessageBoxResult.Yes + VerifyConfigPageModification() + Return True + Case MessageBoxResult.No + Return False + End Select + End If + Return True + End Function + '''' '''' Seleziona il tema se presente '''' diff --git a/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationProgramV.xaml b/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationProgramV.xaml index 44917fd2..d928b011 100644 --- a/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationProgramV.xaml +++ b/EgtBEAMWALL.Optimizer/ConfigurationPage/ConfigurationProgramV.xaml @@ -19,19 +19,21 @@ Style="{StaticResource Optimizer_TabControl}"> + + + - + + - - - + diff --git a/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb b/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb index af306b02..3a53bde2 100644 --- a/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb +++ b/EgtBEAMWALL.Optimizer/ForcedStrategyPanel/ForcedStrategyPanelVM.vb @@ -29,10 +29,22 @@ Public Class ForcedStrategyPanelVM End Get Set(value As Strategy) m_SelStrategy = value + SetUpdate_Visibility(False) NotifyPropertyChanged(NameOf(SelStrategy)) End Set End Property + Private m_bUpdate_Visibility As Visibility = Visibility.Collapsed + Public ReadOnly Property Update_Visibility As Visibility + Get + Return m_bUpdate_Visibility + End Get + End Property + Friend Sub SetUpdate_Visibility(value As Boolean) + m_bUpdate_Visibility = If(value, Visibility.Visible, Visibility.Collapsed) + NotifyPropertyChanged(NameOf(Update_Visibility)) + End Sub + Private m_CurrentFeature As BTLFeatureM ' Definizione Comandi diff --git a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb index cd774256..cf25d264 100644 --- a/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb +++ b/EgtBEAMWALL.Optimizer/MainWindow/MainWindowV.xaml.vb @@ -51,6 +51,10 @@ Public Class MainWindowV If Map.refStrategyManagerVM.bIsModifyStrategy Then Map.refStrategyManagerVM.SaveCustomConfigJson() End If + If Not Map.refConfigurationPageVM.SaveConfigPage() Then + e.Cancel = True + Return + End If If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then e.Cancel = True Return diff --git a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb index c0ed81ac..ba6fe1ad 100644 --- a/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb +++ b/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerVM.vb @@ -527,6 +527,11 @@ Public Class StrategyManagerVM Public Sub MoveUpSelectedStrategy() ' Controllo se SelectedActiveStrategy se è nullo esco If IsNothing(m_SelTreeItem.SelActiveStrategy) Then Return + ' Trova l’elemento con indice -1 + Dim mRemovedItemStrategyList As List(Of Strategy) = m_SelTreeItem.StrategyList.Where(Function(s) s.nIndexInList = -1).ToList() + For Each RemovedItemStrategy In mRemovedItemStrategyList + m_SelTreeItem.StrategyList.Remove(RemovedItemStrategy) + Next ' Recupero indice elemento selezionato in lista Dim IndexActiveStrategy As Integer = m_SelTreeItem.StrategyList.IndexOf(m_SelTreeItem.SelActiveStrategy) ' Recupero indice elemento selezionato in lista @@ -542,9 +547,14 @@ Public Class StrategyManagerVM For Index As Integer = 0 To m_SelTreeItem.StrategyList.Count - 1 m_SelTreeItem.StrategyList(Index).nIndexInList = Index Next + ' Reinserisco elementi rimossi + For Each RemovedItemStrategy In mRemovedItemStrategyList + m_SelTreeItem.StrategyList.Add(RemovedItemStrategy) + Next ' Setto a true booleano per modifica SetbIsModifyStrategy(True) ' Aggiorno la lista + m_SelTreeItem.AvailableStrategyList_View.Refresh() m_SelTreeItem.ActiveStrategyList_View.Refresh() End Sub @@ -566,6 +576,11 @@ Public Class StrategyManagerVM ''' Public Sub MoveDownSelectedStrategy() If IsNothing(m_SelTreeItem.SelActiveStrategy) Then Return + ' Trova l’elemento con indice -1 + Dim mRemovedItemStrategyList As List(Of Strategy) = m_SelTreeItem.StrategyList.Where(Function(s) s.nIndexInList = -1).ToList() + For Each RemovedItemStrategy In mRemovedItemStrategyList + m_SelTreeItem.StrategyList.Remove(RemovedItemStrategy) + Next ' Recupero indice elemento selezionato in lista Dim IndexActiveStrategy As Integer = m_SelTreeItem.StrategyList.IndexOf(m_SelTreeItem.SelActiveStrategy) ' Recupero indice elemento selezionato in lista @@ -581,9 +596,14 @@ Public Class StrategyManagerVM For Index As Integer = 0 To m_SelTreeItem.StrategyList.Count - 1 m_SelTreeItem.StrategyList(Index).nIndexInList = Index Next + ' Reinserisco elementi rimossi + For Each RemovedItemStrategy In mRemovedItemStrategyList + m_SelTreeItem.StrategyList.Add(RemovedItemStrategy) + Next ' Setto a true booleano per modifica SetbIsModifyStrategy(True) ' Aggiorno la lista + m_SelTreeItem.AvailableStrategyList_View.Refresh() m_SelTreeItem.ActiveStrategyList_View.Refresh() End Sub diff --git a/EgtBEAMWALL.Optimizer/Utility/Dictionary.xaml b/EgtBEAMWALL.Optimizer/Utility/Dictionary.xaml index 70c049d8..5f24a3ca 100644 --- a/EgtBEAMWALL.Optimizer/Utility/Dictionary.xaml +++ b/EgtBEAMWALL.Optimizer/Utility/Dictionary.xaml @@ -828,6 +828,13 @@ + +