From d74bc0f4d29342a619fba8667b59a039dba8dc57 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Thu, 25 May 2023 15:54:32 +0200 Subject: [PATCH] - ottimizzazione costruttori in EgtMessageBoxVM --- Icarus/EgtMessageBox/EgtMessageBoxV.xaml.vb | 3 + Icarus/EgtMessageBox/EgtMessageBoxVM.vb | 71 ++++++--------------- 2 files changed, 22 insertions(+), 52 deletions(-) diff --git a/Icarus/EgtMessageBox/EgtMessageBoxV.xaml.vb b/Icarus/EgtMessageBox/EgtMessageBoxV.xaml.vb index a49860c..390bae4 100644 --- a/Icarus/EgtMessageBox/EgtMessageBoxV.xaml.vb +++ b/Icarus/EgtMessageBox/EgtMessageBoxV.xaml.vb @@ -69,6 +69,7 @@ ''' Stringa che specifica il messaggio da mostrare ''' Stringa che specifica il titolo da mostrare ''' Valore che specifica quali bottoni mostrare + ''' Valore che specifica quale icona mostrare ''' Valore che specifica quale bottone e' stato premuto dall'utente Public Overloads Shared Function Show(Owner As Window, sMessageBoxText As String, sCaption As String, Button As MessageBoxButton, Icon As MessageBoxImage) As MessageBoxResult Dim NewMessagebox As New EgtMessageBoxV(Owner, New EgtMessageBoxVM(sMessageBoxText, sCaption, Button, Icon)) @@ -83,6 +84,8 @@ ''' Stringa che specifica il messaggio da mostrare ''' Stringa che specifica il titolo da mostrare ''' Valore che specifica quali bottoni mostrare + ''' Valore che specifica quale icona mostrare + ''' Valore che specifica il bottone di default ''' Valore che specifica quale bottone e' stato premuto dall'utente Public Overloads Shared Function Show(Owner As Window, sMessageBoxText As String, sCaption As String, Button As MessageBoxButton, Icon As MessageBoxImage, DefaultResult As MessageBoxResult) As MessageBoxResult Dim NewMessagebox As New EgtMessageBoxV(Owner, New EgtMessageBoxVM(sMessageBoxText, sCaption, Button, Icon, DefaultResult)) diff --git a/Icarus/EgtMessageBox/EgtMessageBoxVM.vb b/Icarus/EgtMessageBox/EgtMessageBoxVM.vb index 037544a..76376d6 100644 --- a/Icarus/EgtMessageBox/EgtMessageBoxVM.vb +++ b/Icarus/EgtMessageBox/EgtMessageBoxVM.vb @@ -73,20 +73,12 @@ Public Class EgtMessageBoxVM End Sub Sub New(sMessageBoxText As String, sCaption As String) - EgtMsgBoxButton.SetOwner(Me) - m_sMessage = sMessageBoxText + MyClass.New(sMessageBoxText) m_sTitle = sCaption - m_Button = MessageBoxButton.OK - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.OK)) - m_Icon = MessageBoxImage.None - NotifyPropertyChanged(NameOf(ButtonList)) - NotifyPropertyChanged(NameOf(sIconSource)) End Sub Sub New(sMessageBoxText As String, sCaption As String, Button As MessageBoxButton) - EgtMsgBoxButton.SetOwner(Me) - m_sMessage = sMessageBoxText - m_sTitle = sCaption + MyClass.New(sMessageBoxText, sCaption) m_Button = Button Select Case m_Button Case MessageBoxButton.OK @@ -102,57 +94,25 @@ Public Class EgtMessageBoxVM m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.YES)) m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.NO)) End Select - m_Icon = MessageBoxImage.None NotifyPropertyChanged(NameOf(ButtonList)) - NotifyPropertyChanged(NameOf(sIconSource)) End Sub Sub New(sMessageBoxText As String, sCaption As String, Button As MessageBoxButton, Icon As MessageBoxImage) - EgtMsgBoxButton.SetOwner(Me) - m_sMessage = sMessageBoxText - m_sTitle = sCaption - m_Button = Button - Select Case m_Button - Case MessageBoxButton.OK - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.OK)) - Case MessageBoxButton.OKCancel - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.OK)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.CANCEL)) - Case MessageBoxButton.YesNoCancel - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.YES)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.NO)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.CANCEL)) - Case MessageBoxButton.YesNo - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.YES)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.NO)) - End Select + MyClass.New(sMessageBoxText, sCaption, Button) m_Icon = Icon - NotifyPropertyChanged(NameOf(ButtonList)) NotifyPropertyChanged(NameOf(sIconSource)) End Sub Sub New(sMessageBoxText As String, sCaption As String, Button As MessageBoxButton, Icon As MessageBoxImage, DefaultResult As MessageBoxResult) - EgtMsgBoxButton.SetOwner(Me) - m_sMessage = sMessageBoxText - m_sTitle = sCaption - m_Button = Button - Select Case m_Button - Case MessageBoxButton.OK - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.OK, DefaultResult = MessageBoxResult.OK)) - Case MessageBoxButton.OKCancel - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.OK, DefaultResult = MessageBoxResult.OK)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.CANCEL, DefaultResult = MessageBoxResult.Cancel)) - Case MessageBoxButton.YesNoCancel - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.YES, DefaultResult = MessageBoxResult.Yes)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.NO, DefaultResult = MessageBoxResult.No)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.CANCEL, DefaultResult = MessageBoxResult.Cancel)) - Case MessageBoxButton.YesNo - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.YES, DefaultResult = MessageBoxResult.Yes)) - m_ButtonList.Add(New EgtMsgBoxButton(EgtMsgBoxButton.Types.NO, DefaultResult = MessageBoxResult.No)) - End Select - m_Icon = Icon + MyClass.New(sMessageBoxText, sCaption, Button, Icon) + Dim DefaultBtn As EgtMsgBoxButton = m_ButtonList.FirstOrDefault(Function(x) (x.Type = EgtMsgBoxButton.Types.OK AndAlso DefaultResult = MessageBoxResult.OK) OrElse + (x.Type = EgtMsgBoxButton.Types.CANCEL AndAlso DefaultResult = MessageBoxResult.Cancel) OrElse + (x.Type = EgtMsgBoxButton.Types.YES AndAlso DefaultResult = MessageBoxResult.Yes) OrElse + (x.Type = EgtMsgBoxButton.Types.NO AndAlso DefaultResult = MessageBoxResult.No)) + If Not IsNothing(DefaultBtn) Then + DefaultBtn.SetIsDefault(True) + End If NotifyPropertyChanged(NameOf(ButtonList)) - NotifyPropertyChanged(NameOf(sIconSource)) End Sub #End Region ' CONTRUCTORS @@ -183,6 +143,11 @@ Public Class EgtMsgBoxButton Private Shared Owner As EgtMessageBoxVM Private m_Type As Types + Public ReadOnly Property Type As Types + Get + Return m_Type + End Get + End Property Private m_sMessage As String Public ReadOnly Property sMessage As String @@ -197,7 +162,9 @@ Public Class EgtMsgBoxButton Return m_bIsDefault End Get End Property - + Friend Sub SetIsDefault(bValue As Boolean) + m_bIsDefault = bValue + End Sub ' Definizione comandi Private m_cmdCommand As ICommand