Skip to content

Commit 73afd40

Browse files
committed
Visualize LoggingMessageType by color
1 parent 825d595 commit 73afd40

3 files changed

Lines changed: 48 additions & 1 deletion

File tree

MessageCommunicator.TestGui/Views/_ConnectionProfile/ConnectionProfileView.xaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
mc:Ignorable="d"
88
d:Width="400" d:Height="400"
99
x:Class="MessageCommunicator.TestGui.Views.ConnectionProfileView">
10-
1110
<DockPanel LastChildFill="True">
1211
<DockPanel DockPanel.Dock="Bottom"
1312
LastChildFill="True">

MessageCommunicator.TestGui/Views/_LoggingView/LoggingView.xaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
d:Width="400" d:Height="400"
99
x:Class="MessageCommunicator.TestGui.Views.LoggingView">
1010

11+
<UserControl.Resources>
12+
<localRoot:LoggingMessageTypeToColorConverter x:Key="LoggingMessageTypeConverter" />
13+
</UserControl.Resources>
14+
1115
<DockPanel LastChildFill="True">
1216
<Menu DockPanel.Dock="Top">
1317
<MenuItem ToolTip.Tip="Copy message"
@@ -33,6 +37,17 @@
3337
IsReadOnly="True"
3438
Binding="{Binding Path=TimeStamp}"
3539
Width="150" />
40+
<DataGridTemplateColumn Header=" "
41+
Width="24">
42+
<DataGridTemplateColumn.CellTemplate>
43+
<DataTemplate>
44+
<Rectangle
45+
Fill="{Binding Path=MessageType, Converter={StaticResource LoggingMessageTypeConverter}}"
46+
Margin="5"
47+
Name="StateRect" />
48+
</DataTemplate>
49+
</DataGridTemplateColumn.CellTemplate>
50+
</DataGridTemplateColumn>
3651
<DataGridTextColumn Header="Type"
3752
IsReadOnly="True"
3853
Binding="{Binding Path=MessageType}"
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using System.Globalization;
3+
using Avalonia.Data.Converters;
4+
using Avalonia.Media;
5+
6+
namespace MessageCommunicator.TestGui
7+
{
8+
public class LoggingMessageTypeToColorConverter : IValueConverter
9+
{
10+
/// <inheritdoc />
11+
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
12+
{
13+
var connState = (string) value;
14+
switch (connState)
15+
{
16+
case nameof(LoggingMessageType.Error):
17+
return Brushes.Red;
18+
19+
case nameof(LoggingMessageType.Warning):
20+
return Brushes.Yellow;
21+
22+
default:
23+
return Brushes.Transparent;
24+
}
25+
}
26+
27+
/// <inheritdoc />
28+
public object? ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
29+
{
30+
throw new NotSupportedException();
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)