diff --git a/MultiTerm.Core/ViewModel/TerminalViewModel.cs b/MultiTerm.Core/ViewModel/TerminalViewModel.cs index 7d52bf4..0d5bf4e 100644 --- a/MultiTerm.Core/ViewModel/TerminalViewModel.cs +++ b/MultiTerm.Core/ViewModel/TerminalViewModel.cs @@ -12,10 +12,27 @@ public abstract partial class TerminalViewModel : ObservableObject, ITerminalVie public abstract TerminalViewType ViewType { get; } public ProtocolType ProtocolType { get; set; } public ICommunicationProtocol? CommunicationProtocol { get; set; } - public IProtocolSettingsViewModel? ProtocolSettings { get; set; } - + public event EventHandler? ClosingEvent; + private IProtocolSettingsViewModel? protocolSettings; + + public IProtocolSettingsViewModel? ProtocolSettings + { + get { return protocolSettings; } + set + { + protocolSettings = value; + // register event handler for connection request from viewmodel + if(value != null) + { + protocolSettings!.ConnectRequested += OnViewModelRequestedConnect; + protocolSettings!.DisconnectRequested += OnViewModelRequestedDisconnect; + } + } + } + + /// /// Method to override if any closing actions are required. /// Closing can be cancelled using the return value. @@ -31,4 +48,14 @@ public abstract partial class TerminalViewModel : ObservableObject, ITerminalVie ClosingEvent?.Invoke(this, EventArgs.Empty); } } + + private void OnViewModelRequestedConnect(object? sender, EventArgs e) + { + this.CommunicationProtocol?.Connect(); + } + + private void OnViewModelRequestedDisconnect(object? sender, EventArgs e) + { + this.CommunicationProtocol?.Disconnect(); + } } diff --git a/MultiTerm.Protocols/ProtocolSettingsViewModel.cs b/MultiTerm.Protocols/ProtocolSettingsViewModel.cs index efa9590..19f1dba 100644 --- a/MultiTerm.Protocols/ProtocolSettingsViewModel.cs +++ b/MultiTerm.Protocols/ProtocolSettingsViewModel.cs @@ -20,8 +20,9 @@ public abstract partial class ProtocolSettingsViewModel : ObservableObject, IPro /// /// Indicates wether the settings can currently be edited. + /// Initially are editable /// - public bool AreEditable; + public bool AreEditable = true; [ObservableProperty] private string connectDisconnectButtonText = disconnectedStateButtonText; diff --git a/MultiTerm.Wpf/View/SendReceiveView.xaml b/MultiTerm.Wpf/View/SendReceiveView.xaml index f3611c1..2bbc142 100644 --- a/MultiTerm.Wpf/View/SendReceiveView.xaml +++ b/MultiTerm.Wpf/View/SendReceiveView.xaml @@ -4,9 +4,29 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:MultiTerm.Wpf.View" + xmlns:protocol_serial="clr-namespace:MultiTerm.Protocols.Serial;assembly=MultiTerm.Protocols" + xmlns:settings_view="clr-namespace:MultiTerm.Wpf.View.SettingsView" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> - + + + + + + + + + + + + + + + + + + + diff --git a/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml b/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml new file mode 100644 index 0000000..3cac99e --- /dev/null +++ b/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml.cs b/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml.cs new file mode 100644 index 0000000..da64760 --- /dev/null +++ b/MultiTerm.Wpf/View/SettingsView/SerialSettingsView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace MultiTerm.Wpf.View.SettingsView +{ + /// + /// Interaction logic for SerialSettingsView.xaml + /// + public partial class SerialSettingsView : UserControl + { + public SerialSettingsView() + { + InitializeComponent(); + } + } +} diff --git a/MultiTerm.Wpf/View/ShellView.xaml b/MultiTerm.Wpf/View/ShellView.xaml index 74eb4c3..b1f02d6 100644 --- a/MultiTerm.Wpf/View/ShellView.xaml +++ b/MultiTerm.Wpf/View/ShellView.xaml @@ -57,9 +57,6 @@ --> - - -