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}">