diff --git a/MultiTerm.Core/Factories/ITerminalViewModelFactory.cs b/MultiTerm.Core/Factories/ITerminalViewModelFactory.cs index 60888ff..2363afc 100644 --- a/MultiTerm.Core/Factories/ITerminalViewModelFactory.cs +++ b/MultiTerm.Core/Factories/ITerminalViewModelFactory.cs @@ -1,5 +1,6 @@ using MultiTerm.Core.Types; using MultiTerm.Core.ViewModel; +using MultiTerm.Protocols.Types; namespace MultiTerm.Core.Factories { diff --git a/MultiTerm.Core/Factories/TerminalViewModelFactory.cs b/MultiTerm.Core/Factories/TerminalViewModelFactory.cs index 367855f..b9f6ef4 100644 --- a/MultiTerm.Core/Factories/TerminalViewModelFactory.cs +++ b/MultiTerm.Core/Factories/TerminalViewModelFactory.cs @@ -1,5 +1,6 @@ using MultiTerm.Core.Types; using MultiTerm.Core.ViewModel; +using MultiTerm.Protocols.Types; namespace MultiTerm.Core.Factories; diff --git a/MultiTerm.Core/ViewModel/ITerminalViewModel.cs b/MultiTerm.Core/ViewModel/ITerminalViewModel.cs index eedc0a8..55e3cb4 100644 --- a/MultiTerm.Core/ViewModel/ITerminalViewModel.cs +++ b/MultiTerm.Core/ViewModel/ITerminalViewModel.cs @@ -1,4 +1,6 @@ using MultiTerm.Core.Types; +using MultiTerm.Protocols; +using MultiTerm.Protocols.Types; namespace MultiTerm.Core.ViewModel; @@ -19,6 +21,16 @@ public interface ITerminalViewModel /// ProtocolType ProtocolType { get; set; } + /// + /// Communication Protocol instance. + /// + ICommunicationProtocol? CommunicationProtocol { get; set; } + + /// + /// Settings ViewModel that displays protocol specific settings to user. + /// + ProtocolSettingsViewModel? ProtocolSettings { get; set; } + /// /// Request Closing of Terminal. /// diff --git a/MultiTerm.Core/ViewModel/ShellViewModel.cs b/MultiTerm.Core/ViewModel/ShellViewModel.cs index 4257f14..4bade26 100644 --- a/MultiTerm.Core/ViewModel/ShellViewModel.cs +++ b/MultiTerm.Core/ViewModel/ShellViewModel.cs @@ -6,6 +6,7 @@ using CommunityToolkit.Mvvm.Input; using MultiTerm.Core.Factories; using System.Collections.ObjectModel; using MultiTerm.Core.Types; +using MultiTerm.Protocols.Types; namespace MultiTerm.Core.ViewModel; diff --git a/MultiTerm.Core/ViewModel/TerminalViewModel.cs b/MultiTerm.Core/ViewModel/TerminalViewModel.cs index 9af6d0b..a5b5bf3 100644 --- a/MultiTerm.Core/ViewModel/TerminalViewModel.cs +++ b/MultiTerm.Core/ViewModel/TerminalViewModel.cs @@ -1,6 +1,8 @@ using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using MultiTerm.Core.Types; +using MultiTerm.Protocols; +using MultiTerm.Protocols.Types; namespace MultiTerm.Core.ViewModel; @@ -9,6 +11,8 @@ public abstract partial class TerminalViewModel : ObservableObject, ITerminalVie public abstract string Title { get; } public abstract TerminalViewType ViewType { get; } public ProtocolType ProtocolType { get; set; } + public ICommunicationProtocol? CommunicationProtocol { get; set; } + public ProtocolSettingsViewModel? ProtocolSettings { get; set; } public event EventHandler? ClosingEvent; diff --git a/MultiTerm.Core/Types/ProtocolType.cs b/MultiTerm.Protocols/Types/ProtocolType.cs similarity index 92% rename from MultiTerm.Core/Types/ProtocolType.cs rename to MultiTerm.Protocols/Types/ProtocolType.cs index 799cd7f..9807666 100644 --- a/MultiTerm.Core/Types/ProtocolType.cs +++ b/MultiTerm.Protocols/Types/ProtocolType.cs @@ -1,6 +1,6 @@ using System.ComponentModel; -namespace MultiTerm.Core.Types; +namespace MultiTerm.Protocols.Types; public enum ProtocolType { diff --git a/MultiTerm.Wpf/View/ShellView.xaml b/MultiTerm.Wpf/View/ShellView.xaml index 6518bb2..74eb4c3 100644 --- a/MultiTerm.Wpf/View/ShellView.xaml +++ b/MultiTerm.Wpf/View/ShellView.xaml @@ -10,6 +10,7 @@ xmlns:vm="clr-namespace:MultiTerm.Core.ViewModel;assembly=MultiTerm.Core" xmlns:v="clr-namespace:MultiTerm.Wpf.View" xmlns:types="clr-namespace:MultiTerm.Core.Types;assembly=MultiTerm.Core" + xmlns:protocol_types="clr-namespace:MultiTerm.Protocols.Types;assembly=MultiTerm.Protocols" xmlns:helpers="clr-namespace:MultiTerm.Wpf.Helpers" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="1200"> @@ -36,7 +37,7 @@ ObjectType="{x:Type sys:Enum}" MethodName="GetValues"> - + @@ -111,7 +112,7 @@ + CommandParameterType="{x:Type protocol_types:ProtocolType}">