From 33a3acd90b6030ae0661c950aeb16678f84b0edb Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Sun, 21 May 2023 19:30:22 +0200 Subject: [PATCH] implemented time display when hovering over data --- MultiTerm.Core/ViewModel/ByteDataViewModel.cs | 8 ++++---- MultiTerm.Core/ViewModel/IDataViewModel.cs | 2 +- MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs | 10 +++++----- .../MultiFormatDataView/MultiFormatDataView.xaml | 4 +++- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/MultiTerm.Core/ViewModel/ByteDataViewModel.cs b/MultiTerm.Core/ViewModel/ByteDataViewModel.cs index 3b4334c..4b88986 100644 --- a/MultiTerm.Core/ViewModel/ByteDataViewModel.cs +++ b/MultiTerm.Core/ViewModel/ByteDataViewModel.cs @@ -16,7 +16,7 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp private int lineIdentifier; [ObservableProperty] - private TimeOnly time; + private string timeAsString = String.Empty; [ObservableProperty] private string displayStringChar = String.Empty; @@ -42,7 +42,7 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp this.DisplayStringChar = extendedByte.ToCharacterString(); this.DisplayStringHex = extendedByte.ToHexString(); this.DisplayStringBin = extendedByte.ToBinaryString(); - this.Time = extendedByte.Time; + this.TimeAsString = extendedByte.Time.ToString("HH:mm:ss.ffff"); } #region IComparable Implementation @@ -56,9 +56,9 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp if(other == null) return 1; - if (other.Time.Ticks > this.Time.Ticks) + if (other.Data.Time.Ticks > this.Data.Time.Ticks) return -1; - else if(this.Time.Ticks > other.Time.Ticks) + else if(this.Data.Time.Ticks > other.Data.Time.Ticks) return 1; else // equal return 0; diff --git a/MultiTerm.Core/ViewModel/IDataViewModel.cs b/MultiTerm.Core/ViewModel/IDataViewModel.cs index 50337a9..78e59f6 100644 --- a/MultiTerm.Core/ViewModel/IDataViewModel.cs +++ b/MultiTerm.Core/ViewModel/IDataViewModel.cs @@ -11,7 +11,7 @@ public interface IDataViewModel /// /// Time when this data was produced. /// - TimeOnly Time { get; } + string TimeAsString { get; } /// /// Hosts a displayable string of the character (.NET: UTF-16 encoded). diff --git a/MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs b/MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs index 1d9c017..a5758f9 100644 --- a/MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs +++ b/MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs @@ -120,17 +120,17 @@ public partial class MultiFormatDataViewModel : ObservableObject if (this.Selected.Count == 1) { - this.SelectedDataFirstAbsoluteTime = $"Time: {this.Selected.First().Time:HH:mm:ss.ff}"; + this.SelectedDataFirstAbsoluteTime = $"Time: {this.Selected.First().Data.Time:HH:mm:ss.ffff}"; this.SelectedDataTimediff = string.Empty; } if (this.Selected.Count > 1) { TimeSpan timediff; - TimeOnly lastSelected = this.Selected.Last().Time, firstSelected = this.Selected.First().Time; + TimeOnly lastSelected = this.Selected.Last().Data.Time, firstSelected = this.Selected.First().Data.Time; - Debug.WriteLine($"First time selected: {firstSelected:HH.mm:ss.ff} Ticks: {firstSelected.Ticks}"); - Debug.WriteLine($"Last time selected: {lastSelected:HH.mm:ss.ff} Ticks: {lastSelected.Ticks}"); + Debug.WriteLine($"First time selected: {firstSelected:HH.mm:ss.ffff} Ticks: {firstSelected.Ticks}"); + Debug.WriteLine($"Last time selected: {lastSelected:HH.mm:ss.ffff} Ticks: {lastSelected.Ticks}"); // calculate timedifference according to selection direction // (preventive. selection should arrive sorted correctly) @@ -145,7 +145,7 @@ public partial class MultiFormatDataViewModel : ObservableObject Debug.WriteLine($"Calculated timediff Ticks: {timediff.Ticks}"); - this.SelectedDataFirstAbsoluteTime = $"Time (first selected): {firstSelected:HH:mm:ss.ff}"; + this.SelectedDataFirstAbsoluteTime = $"Time (first selected): {firstSelected:HH:mm:ss.ffff}"; this.SelectedDataTimediff = $"Difference (first to last): {timediff.TotalMilliseconds:n} ms"; } } diff --git a/MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.xaml b/MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.xaml index c15b344..9b2a530 100644 --- a/MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.xaml +++ b/MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.xaml @@ -31,7 +31,9 @@ - +