Skip to content

Commit

Permalink
Added strokes to red bar to help people with color blindness. #15
Browse files Browse the repository at this point in the history
  • Loading branch information
hallatore committed Aug 10, 2016
1 parent f9fb389 commit 508abf0
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 32 deletions.
8 changes: 7 additions & 1 deletion Netling.Client/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>

<VisualBrush x:Key="RedBrush" TileMode="Tile" Viewport="0,0,8,8" ViewportUnits="Absolute" Viewbox="0,0,8,8" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid Background="Red">
<Path Data="M 0 8 L 8 0" Stroke="White" StrokeThickness="1" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Application.Resources>
</Application>
36 changes: 18 additions & 18 deletions Netling.Client/ResultWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,28 +98,28 @@ private void ClearBaseline(object sender, RoutedEventArgs e)
ThreadAffinityValueUserControl.BaselineValue = null;

RequestsValueUserControl.BaselineValue = null;
RequestsValueUserControl.ValueBrush = null;
RequestsValueUserControl.BaseLine = BaseLine.Equal;

ElapsedValueUserControl.BaselineValue = null;
ElapsedValueUserControl.ValueBrush = null;
ElapsedValueUserControl.BaseLine = BaseLine.Equal;

BandwidthValueUserControl.BaselineValue = null;
BandwidthValueUserControl.ValueBrush = null;
BandwidthValueUserControl.BaseLine = BaseLine.Equal;

ErrorsValueUserControl.BaselineValue = null;
ErrorsValueUserControl.ValueBrush = null;
ErrorsValueUserControl.BaseLine = BaseLine.Equal;

MedianValueUserControl.BaselineValue = null;
MedianValueUserControl.ValueBrush = null;
MedianValueUserControl.BaseLine = BaseLine.Equal;

StdDevValueUserControl.BaselineValue = null;
StdDevValueUserControl.ValueBrush = null;
StdDevValueUserControl.BaseLine = BaseLine.Equal;

MinValueUserControl.BaselineValue = null;
MinValueUserControl.ValueBrush = null;
MinValueUserControl.BaseLine = BaseLine.Equal;

MaxValueUserControl.BaselineValue = null;
MaxValueUserControl.ValueBrush = null;
MaxValueUserControl.BaseLine = BaseLine.Equal;
}

private void LoadBaseline(ResultWindowItem baseline)
Expand All @@ -129,35 +129,35 @@ private void LoadBaseline(ResultWindowItem baseline)
ThreadAffinityValueUserControl.BaselineValue = baseline.ThreadAffinity ? "ON" : "OFF";

RequestsValueUserControl.BaselineValue = $"{baseline.JobsPerSecond:#,0}";
RequestsValueUserControl.ValueBrush = GetValueBrush(_resultWindowItem.JobsPerSecond, baseline.JobsPerSecond);
RequestsValueUserControl.BaseLine = GetBaseline(_resultWindowItem.JobsPerSecond, baseline.JobsPerSecond);

ElapsedValueUserControl.BaselineValue = $"{baseline.ElapsedSeconds:#,0}";

BandwidthValueUserControl.BaselineValue = $"{baseline.Bandwidth:0}";
BandwidthValueUserControl.ValueBrush = GetValueBrush(_resultWindowItem.Bandwidth, baseline.Bandwidth);
BandwidthValueUserControl.BaseLine = GetBaseline(_resultWindowItem.Bandwidth, baseline.Bandwidth);

ErrorsValueUserControl.BaselineValue = baseline.Errors.ToString();
ErrorsValueUserControl.ValueBrush = GetValueBrush(baseline.Errors, _resultWindowItem.Errors);
ErrorsValueUserControl.BaseLine = GetBaseline(baseline.Errors, _resultWindowItem.Errors);

MedianValueUserControl.BaselineValue = string.Format(baseline.Median > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Median);
MedianValueUserControl.ValueBrush = GetValueBrush(baseline.Median, _resultWindowItem.Median);
MedianValueUserControl.BaseLine = GetBaseline(baseline.Median, _resultWindowItem.Median);

StdDevValueUserControl.BaselineValue = string.Format(baseline.StdDev > 5 ? "{0:#,0}" : "{0:0.000}", baseline.StdDev);
StdDevValueUserControl.ValueBrush = GetValueBrush(baseline.StdDev, _resultWindowItem.StdDev);
StdDevValueUserControl.BaseLine = GetBaseline(baseline.StdDev, _resultWindowItem.StdDev);

MinValueUserControl.BaselineValue = string.Format(baseline.Min > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Min);
MinValueUserControl.ValueBrush = GetValueBrush(baseline.Min, _resultWindowItem.Min);
MinValueUserControl.BaseLine = GetBaseline(baseline.Min, _resultWindowItem.Min);

MaxValueUserControl.BaselineValue = string.Format(baseline.Max > 5 ? "{0:#,0}" : "{0:0.000}", baseline.Max);
MaxValueUserControl.ValueBrush = GetValueBrush(baseline.Max, _resultWindowItem.Max);
MaxValueUserControl.BaseLine = GetBaseline(baseline.Max, _resultWindowItem.Max);
}

private Brush GetValueBrush(double v1, double v2)
private BaseLine GetBaseline(double v1, double v2)
{
if (Math.Abs(v1 - v2) < 0.001)
return null;
return BaseLine.Equal;

return v1 > v2 ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red);
return v1 > v2 ? BaseLine.Better : BaseLine.Worse;
}
}

Expand Down
2 changes: 1 addition & 1 deletion Netling.Client/ValueUserControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
mc:Ignorable="d"
d:DesignHeight="60" d:DesignWidth="300" VerticalContentAlignment="Top">
<Grid Margin="0,0,0,20">
<Border BorderThickness="4,0,0,0" BorderBrush="DarkGray" x:Name="ValueBorder">
<Border BorderThickness="4,0,0,0" x:Name="ValueBorder" BorderBrush="DarkGray">
<Grid Margin="10,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
Expand Down
41 changes: 29 additions & 12 deletions Netling.Client/ValueUserControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,41 @@ public string BaselineValue
}
}

public Brush ValueBrush
private BaseLine _baseLine;

public BaseLine BaseLine
{
get { return ValueTextBlock.Foreground; }
get { return _baseLine; }
set
{
if (value != null)
{
ValueTextBlock.Foreground = value;
UnitTextBlock.Foreground = value;
ValueBorder.BorderBrush = value;
}
else
_baseLine = value;

switch (value)
{
ValueTextBlock.Foreground = new SolidColorBrush(Colors.Black);
UnitTextBlock.Foreground = new SolidColorBrush(Colors.Black);
ValueBorder.BorderBrush = new SolidColorBrush(Colors.DarkGray);
case BaseLine.Equal:
ValueTextBlock.Foreground = new SolidColorBrush(Colors.Black);
UnitTextBlock.Foreground = new SolidColorBrush(Colors.Black);
ValueBorder.BorderBrush = new SolidColorBrush(Colors.DarkGray);
break;
case BaseLine.Worse:
ValueTextBlock.Foreground = new SolidColorBrush(Colors.Red);
UnitTextBlock.Foreground = new SolidColorBrush(Colors.Red);
ValueBorder.BorderBrush = (Brush)Application.Current.Resources["RedBrush"];
break;
case BaseLine.Better:
ValueTextBlock.Foreground = new SolidColorBrush(Colors.Green);
UnitTextBlock.Foreground = new SolidColorBrush(Colors.Green);
ValueBorder.BorderBrush = new SolidColorBrush(Colors.Green);
break;
}
}
}
}

public enum BaseLine
{
Equal,
Worse,
Better
}
}

0 comments on commit 508abf0

Please sign in to comment.