diff --git a/MultiTerm.Core/MultiTerm.Core.csproj b/MultiTerm.Core/MultiTerm.Core.csproj index 261ea41..1da0386 100644 --- a/MultiTerm.Core/MultiTerm.Core.csproj +++ b/MultiTerm.Core/MultiTerm.Core.csproj @@ -16,6 +16,7 @@ + diff --git a/MultiTerm.Protocols/CommunicationProtocol.cs b/MultiTerm.Protocols/CommunicationProtocol.cs index 0fc0297..1e4c575 100644 --- a/MultiTerm.Protocols/CommunicationProtocol.cs +++ b/MultiTerm.Protocols/CommunicationProtocol.cs @@ -6,7 +6,7 @@ public abstract class CommunicationProtocol : ICommunicationProtocol { public string NewlineSequenceOnSend { get; set; } public string NewlineOnReceivedSequence { get; set; } - public ProtocolConnectionSettings? ConnectionSettings { get; set; } + public ProtocolConnectionSettingsViewModel? ConnectionSettings { get; set; } protected ILogger logger; private CancellationTokenSource cancellationTokenSource; diff --git a/MultiTerm.Protocols/ICommunicationProtocol.cs b/MultiTerm.Protocols/ICommunicationProtocol.cs index 0cfc1c1..7952d0c 100644 --- a/MultiTerm.Protocols/ICommunicationProtocol.cs +++ b/MultiTerm.Protocols/ICommunicationProtocol.cs @@ -8,7 +8,7 @@ public interface ICommunicationProtocol /// /// Contains settings that are required to connect using this communication protocol. /// - ProtocolConnectionSettings? ConnectionSettings { get; } + ProtocolConnectionSettingsViewModel? ConnectionSettings { get; } /// /// Newline sequence to add on the end when sending a message using . diff --git a/MultiTerm.Protocols/MultiTerm.Protocols.csproj b/MultiTerm.Protocols/MultiTerm.Protocols.csproj index 56e7d3b..3a461b3 100644 --- a/MultiTerm.Protocols/MultiTerm.Protocols.csproj +++ b/MultiTerm.Protocols/MultiTerm.Protocols.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -6,6 +6,10 @@ enable + + + + diff --git a/MultiTerm.Protocols/ProtocolConnectionSettings.cs b/MultiTerm.Protocols/ProtocolConnectionSettings.cs deleted file mode 100644 index e5670d2..0000000 --- a/MultiTerm.Protocols/ProtocolConnectionSettings.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace MultiTerm.Protocols; - -/// -/// Class that represents all connection settings for a specific . -/// -public abstract class ProtocolConnectionSettings -{ - public event EventHandler ConnectRequested; -} diff --git a/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs b/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs new file mode 100644 index 0000000..5796603 --- /dev/null +++ b/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs @@ -0,0 +1,40 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; + +namespace MultiTerm.Protocols; + +/// +/// Class that represents all connection settings for a specific . +/// Can be bound to UI using MVVM pattern. +/// +public abstract partial class ProtocolConnectionSettingsViewModel : ObservableObject +{ + /// + /// Event that is thrown when the user requested to connect to the device with the entered settings. + /// + public event EventHandler? ConnectRequested; + + /// + /// Event that is thrown when the user requested to disconnect from the device. + /// + public event EventHandler? DisconnectRequested; + + /// + /// Indicates wether the settings can currently be edited. + /// + public bool AreEditable; + + + [ObservableProperty] + private string connectDisconnectButtonText = "Connect"; + + /// + /// Binding to Connect/Disconnect button. + /// Button text is provided in + /// + [RelayCommand] + private void ConnectDisconnect() + { + + } +}