implemented time display when hovering over data

master
Jonas Arnold 3 years ago
parent ba857805a7
commit 33a3acd90b
  1. 8
      MultiTerm.Core/ViewModel/ByteDataViewModel.cs
  2. 2
      MultiTerm.Core/ViewModel/IDataViewModel.cs
  3. 10
      MultiTerm.Core/ViewModel/MultiFormatDataViewModel.cs
  4. 4
      MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.xaml

@ -16,7 +16,7 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp
private int lineIdentifier; private int lineIdentifier;
[ObservableProperty] [ObservableProperty]
private TimeOnly time; private string timeAsString = String.Empty;
[ObservableProperty] [ObservableProperty]
private string displayStringChar = String.Empty; private string displayStringChar = String.Empty;
@ -42,7 +42,7 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp
this.DisplayStringChar = extendedByte.ToCharacterString(); this.DisplayStringChar = extendedByte.ToCharacterString();
this.DisplayStringHex = extendedByte.ToHexString(); this.DisplayStringHex = extendedByte.ToHexString();
this.DisplayStringBin = extendedByte.ToBinaryString(); this.DisplayStringBin = extendedByte.ToBinaryString();
this.Time = extendedByte.Time; this.TimeAsString = extendedByte.Time.ToString("HH:mm:ss.ffff");
} }
#region IComparable Implementation #region IComparable Implementation
@ -56,9 +56,9 @@ public partial class ByteDataViewModel : ObservableObject, IDataViewModel, IComp
if(other == null) if(other == null)
return 1; return 1;
if (other.Time.Ticks > this.Time.Ticks) if (other.Data.Time.Ticks > this.Data.Time.Ticks)
return -1; return -1;
else if(this.Time.Ticks > other.Time.Ticks) else if(this.Data.Time.Ticks > other.Data.Time.Ticks)
return 1; return 1;
else // equal else // equal
return 0; return 0;

@ -11,7 +11,7 @@ public interface IDataViewModel
/// <summary> /// <summary>
/// Time when this data was produced. /// Time when this data was produced.
/// </summary> /// </summary>
TimeOnly Time { get; } string TimeAsString { get; }
/// <summary> /// <summary>
/// Hosts a displayable string of the character (.NET: UTF-16 encoded). /// Hosts a displayable string of the character (.NET: UTF-16 encoded).

@ -120,17 +120,17 @@ public partial class MultiFormatDataViewModel : ObservableObject
if (this.Selected.Count == 1) 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; this.SelectedDataTimediff = string.Empty;
} }
if (this.Selected.Count > 1) if (this.Selected.Count > 1)
{ {
TimeSpan timediff; 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($"First time selected: {firstSelected:HH.mm:ss.ffff} Ticks: {firstSelected.Ticks}");
Debug.WriteLine($"Last time selected: {lastSelected:HH.mm:ss.ff} Ticks: {lastSelected.Ticks}"); Debug.WriteLine($"Last time selected: {lastSelected:HH.mm:ss.ffff} Ticks: {lastSelected.Ticks}");
// calculate timedifference according to selection direction // calculate timedifference according to selection direction
// (preventive. selection should arrive sorted correctly) // (preventive. selection should arrive sorted correctly)
@ -145,7 +145,7 @@ public partial class MultiFormatDataViewModel : ObservableObject
Debug.WriteLine($"Calculated timediff Ticks: {timediff.Ticks}"); 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"; this.SelectedDataTimediff = $"Difference (first to last): {timediff.TotalMilliseconds:n} ms";
} }
} }

@ -31,7 +31,9 @@
<!-- Data Template for Data Container --> <!-- Data Template for Data Container -->
<DataTemplate x:Key="dataContainerTemplate" DataType="vm:IDataViewModel"> <DataTemplate x:Key="dataContainerTemplate" DataType="vm:IDataViewModel">
<StackPanel Orientation="Vertical" Margin="0" x:Name="ItemStackPanel"> <StackPanel Orientation="Vertical" Margin="0" x:Name="ItemStackPanel"
ToolTip="{Binding TimeAsString}"
ToolTipService.InitialShowDelay="500">
<StackPanel.Triggers> <StackPanel.Triggers>
<EventTrigger SourceName="ItemStackPanel" RoutedEvent="Loaded"> <EventTrigger SourceName="ItemStackPanel" RoutedEvent="Loaded">
<BeginStoryboard> <BeginStoryboard>

Loading…
Cancel
Save