Skip to content

Commit

Permalink
Add icons for representing subject state.
Browse files Browse the repository at this point in the history
  • Loading branch information
dominikgolda committed Apr 12, 2019
1 parent a20cb9c commit edf3e86
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/Soloplan.WhatsON.Jenkins.GUI/JenkinsProjectDataTemplate.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,22 @@
<StackPanel ContextMenu="{StaticResource contextMenuJenkins}" Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<Path Data="M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16"
Fill="{Binding CurrentStatus.State, Mode=OneWay, Converter={StaticResource StatusToColorConverter}}"
Visibility="{Binding CurrentStatus.Unstable, Converter={StaticResource BoolToVisibility}}" />
<Path Data="M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"
Fill="{Binding CurrentStatus.State, Mode=OneWay, Converter={StaticResource StatusToColorConverter}}"
Visibility="{Binding CurrentStatus.Succees, Converter={StaticResource BoolToVisibility}}" />
<Path Data="M17,13H7V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"
Fill="{Binding CurrentStatus.State, Mode=OneWay, Converter={StaticResource StatusToColorConverter}}"
Visibility="{Binding CurrentStatus.Unknown, Converter={StaticResource BoolToVisibility}}" />
<Path Data="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"
Fill="{Binding CurrentStatus.State, Mode=OneWay, Converter={StaticResource StatusToColorConverter}}"
Visibility="{Binding CurrentStatus.Building, Converter={StaticResource BoolToVisibility}}" />
<Path Data="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"
Fill="{Binding CurrentStatus.State, Mode=OneWay, Converter={StaticResource StatusToColorConverter}}"
Visibility="{Binding CurrentStatus.Failure, Converter={StaticResource BoolToVisibility}}" />
<TextBlock Text=" " />
<TextBlock FontWeight="Black" Text="{Binding Name}" />
<TextBlock Text=" #" />
<TextBlock Text="{Binding CurrentStatus.BuildNumber}" />
Expand Down
82 changes: 82 additions & 0 deletions src/Soloplan.WhatsON.Jenkins.GUI/JenkinsStatusViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@ class JenkinsStatusViewModel : StatusViewModel

private ObservableCollection<CulpritViewModel> culprits;

private bool failure;

private bool unknown;

private bool succees;

private bool unstable;

public JenkinsStatusViewModel(JenkinsProjectViewModel model)
: base(model)
{
Expand Down Expand Up @@ -87,6 +95,46 @@ protected set
}
}

public bool Failure
{
get => this.failure;
set
{
this.failure = value;
this.OnPropertyChanged();
}
}

public bool Unknown
{
get => this.unknown;
set
{
this.unknown = value;
this.OnPropertyChanged();
}
}

public bool Succees
{
get => this.succees;
set
{
this.succees = value;
this.OnPropertyChanged();
}
}

public bool Unstable
{
get => this.unstable;
set
{
this.unstable = value;
this.OnPropertyChanged();
}
}

public TimeSpan Duration
{
get
Expand Down Expand Up @@ -228,6 +276,8 @@ public override void Update(Status newStatus)
culpritModle.Init(culprit);
this.Culprits.Add(culpritModle);
}

this.UpdateStateFlags();
}

public void SetJobAddress(OpenWebPageCommandData parentData)
Expand All @@ -236,6 +286,9 @@ public void SetJobAddress(OpenWebPageCommandData parentData)
this.OnPropertyChanged(nameof(this.OpenBuildPageCommandData));
}

/// <summary>
/// Updates flags controlling visibility of progress bar and the progress bar buttons.
/// </summary>
private void UpdateEstimatedRemaining()
{
if (!this.Building)
Expand All @@ -260,5 +313,34 @@ private void UpdateEstimatedRemaining()
}
}
}

/// <summary>
/// Updates flags used to control visibility of controls based on <see cref="State"/>.
/// </summary>
private void UpdateStateFlags()
{
this.Succees = false;
this.Failure = false;
this.Unknown = false;
this.Unstable = false;
if (!this.Building)
{
switch (this.State)
{
case ObservationState.Unknown:
this.Unknown = true;
break;
case ObservationState.Unstable:
this.Unstable = true;
break;
case ObservationState.Failure:
this.Failure = true;
break;
case ObservationState.Success:
this.Succees = true;
break;
}
}
}
}
}

0 comments on commit edf3e86

Please sign in to comment.