precheck details view and viewmodel WIP
This commit is contained in:
parent
886770253a
commit
eb4f8b006c
@ -1,4 +1,4 @@
|
|||||||
<Application xmlns="https://github.com/avaloniaui"
|
<Application xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:local="using:SPTInstaller"
|
xmlns:local="using:SPTInstaller"
|
||||||
x:Class="SPTInstaller.App">
|
x:Class="SPTInstaller.App">
|
||||||
|
@ -184,4 +184,20 @@
|
|||||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||||
<Setter Property="BorderThickness" Value="0"/>
|
<Setter Property="BorderThickness" Value="0"/>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<!-- PreCheck Path Styles -->
|
||||||
|
<Style Selector="Path.passed">
|
||||||
|
<Setter Property="Data" Value="{StaticResource CircledCheck}"/>
|
||||||
|
<Setter Property="Fill" Value="Green"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="Path.failed">
|
||||||
|
<Setter Property="Data" Value="{StaticResource CircledX}"/>
|
||||||
|
<Setter Property="Fill" Value="Red"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="Path.warning">
|
||||||
|
<Setter Property="Data" Value="{StaticResource CircledWarn}"/>
|
||||||
|
<Setter Property="Fill" Value="Goldenrod"/>
|
||||||
|
</Style>
|
||||||
</Styles>
|
</Styles>
|
75
SPTInstaller/CustomControls/DetailedPreCheckItem.axaml
Normal file
75
SPTInstaller/CustomControls/DetailedPreCheckItem.axaml
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="SPTInstaller.CustomControls.DetailedPreCheckItem"
|
||||||
|
Background="Transparent" MinHeight="100">
|
||||||
|
<UserControl.Styles>
|
||||||
|
<Style Selector="Arc.running">
|
||||||
|
<Setter Property="Stroke" Value="DodgerBlue"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="Arc">
|
||||||
|
<Setter Property="Stroke" Value="Gray"/>
|
||||||
|
<Setter Property="IsVisible" Value="{Binding IsPending, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
|
||||||
|
<Style.Animations>
|
||||||
|
<Animation Duration="0:0:1" RepeatCount="infinite">
|
||||||
|
<KeyFrame Cue="0%">
|
||||||
|
<Setter Property="RotateTransform.Angle" Value="0"/>
|
||||||
|
</KeyFrame>
|
||||||
|
<KeyFrame Cue="100%">
|
||||||
|
<Setter Property="RotateTransform.Angle" Value="360"/>
|
||||||
|
</KeyFrame>
|
||||||
|
</Animation>
|
||||||
|
</Style.Animations>
|
||||||
|
</Style>
|
||||||
|
</UserControl.Styles>
|
||||||
|
|
||||||
|
<Grid RowDefinitions="3,AUTO,3,*,3" ColumnDefinitions="3,*,3" Margin="10">
|
||||||
|
<Border Grid.RowSpan="5" Grid.ColumnSpan="3"
|
||||||
|
Background="{StaticResource AKI_Background_Light}" CornerRadius="8"
|
||||||
|
BoxShadow="3 3 10 .1 black"
|
||||||
|
/>
|
||||||
|
<Border Grid.RowSpan="3" Grid.ColumnSpan="3"
|
||||||
|
Background="{StaticResource AKI_Brush_DarkGrayBlue}" CornerRadius="8 8 0 0"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Grid Grid.Row="1" Grid.Column="1" ColumnDefinitions="22, AUTO" Margin="3">
|
||||||
|
<Canvas Margin="0 3 0 0"
|
||||||
|
IsVisible="{Binding !IsPending, RelativeSource={RelativeSource AncestorType=UserControl}}">
|
||||||
|
<Ellipse Fill="White" Height="15" Width="15" Canvas.Top="3" Canvas.Left="3"
|
||||||
|
/>
|
||||||
|
<Path Name="iconPath" StrokeThickness="2"
|
||||||
|
Classes.passed="{Binding Passed, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||||
|
>
|
||||||
|
<Classes.failed>
|
||||||
|
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||||
|
<Binding Path="IsRequired"/>
|
||||||
|
<Binding Path="!Passed"/>
|
||||||
|
</MultiBinding>
|
||||||
|
</Classes.failed>
|
||||||
|
<Classes.warning>
|
||||||
|
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||||
|
<Binding Path="!IsRequired"/>
|
||||||
|
<Binding Path="!Passed"/>
|
||||||
|
</MultiBinding>
|
||||||
|
</Classes.warning>
|
||||||
|
</Path>
|
||||||
|
</Canvas>
|
||||||
|
|
||||||
|
<Arc StartAngle="280" SweepAngle="80" Margin="0 3 0 0" StrokeThickness="3"
|
||||||
|
Width="20" Height="20" VerticalAlignment="Top"
|
||||||
|
Classes.running="{Binding IsRunning, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||||
|
/>
|
||||||
|
<Label Grid.Column="1"
|
||||||
|
Content="{Binding PreCheckName, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||||
|
Classes.bold="{Binding IsRunning, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Label Grid.Row="3" Grid.Column="1"
|
||||||
|
Content="{Binding PreCheckDetails, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
19
SPTInstaller/CustomControls/DetailedPreCheckItem.axaml.cs
Normal file
19
SPTInstaller/CustomControls/DetailedPreCheckItem.axaml.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Avalonia;
|
||||||
|
|
||||||
|
namespace SPTInstaller.CustomControls;
|
||||||
|
public partial class DetailedPreCheckItem : PreCheckItem
|
||||||
|
{
|
||||||
|
public DetailedPreCheckItem()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string PreCheckDetails
|
||||||
|
{
|
||||||
|
get => GetValue(PreCheckDetailsProperty);
|
||||||
|
set => SetValue(PreCheckDetailsProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static readonly StyledProperty<string> PreCheckDetailsProperty =
|
||||||
|
AvaloniaProperty.Register<DetailedPreCheckItem, string>(nameof(PreCheckDetails));
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
<UserControl xmlns="https://github.com/avaloniaui"
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
@ -6,7 +6,6 @@
|
|||||||
x:Class="SPTInstaller.CustomControls.PreCheckItem">
|
x:Class="SPTInstaller.CustomControls.PreCheckItem">
|
||||||
|
|
||||||
<UserControl.Styles>
|
<UserControl.Styles>
|
||||||
|
|
||||||
<Style Selector="Arc.running">
|
<Style Selector="Arc.running">
|
||||||
<Setter Property="Stroke" Value="DodgerBlue"/>
|
<Setter Property="Stroke" Value="DodgerBlue"/>
|
||||||
</Style>
|
</Style>
|
||||||
@ -29,23 +28,6 @@
|
|||||||
<Style Selector="Label.bold">
|
<Style Selector="Label.bold">
|
||||||
<Setter Property="FontWeight" Value="Bold"/>
|
<Setter Property="FontWeight" Value="Bold"/>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<Style Selector="Path.passed">
|
|
||||||
<Setter Property="Data" Value="{StaticResource CircledCheck}"/>
|
|
||||||
<Setter Property="Fill" Value="Green"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style Selector="Path.failed">
|
|
||||||
<Setter Property="Data" Value="{StaticResource CircledX}"/>
|
|
||||||
<Setter Property="Fill" Value="Red"/>
|
|
||||||
<Setter Property="ToolTip.Tip" Value="A required dependency could not be found"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style Selector="Path.warning">
|
|
||||||
<Setter Property="Data" Value="{StaticResource CircledWarn}"/>
|
|
||||||
<Setter Property="Fill" Value="Goldenrod"/>
|
|
||||||
<Setter Property="ToolTip.Tip" Value="This dependency could not be found"/>
|
|
||||||
</Style>
|
|
||||||
</UserControl.Styles>
|
</UserControl.Styles>
|
||||||
|
|
||||||
|
|
||||||
|
9
SPTInstaller/ViewModels/DetailedPreChecksViewModel.cs
Normal file
9
SPTInstaller/ViewModels/DetailedPreChecksViewModel.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using ReactiveUI;
|
||||||
|
|
||||||
|
namespace SPTInstaller.ViewModels;
|
||||||
|
public class DetailedPreChecksViewModel : PreChecksViewModel
|
||||||
|
{
|
||||||
|
public DetailedPreChecksViewModel(IScreen host) : base(host)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -15,6 +15,8 @@ public class PreChecksViewModel : ViewModelBase
|
|||||||
|
|
||||||
public ObservableCollection<PreCheckBase> PreChecks { get; set; } = new(ServiceHelper.GetAll<PreCheckBase>());
|
public ObservableCollection<PreCheckBase> PreChecks { get; set; } = new(ServiceHelper.GetAll<PreCheckBase>());
|
||||||
public ICommand StartInstallCommand { get; set; }
|
public ICommand StartInstallCommand { get; set; }
|
||||||
|
public ICommand ShowDetailedViewCommand { get; set; }
|
||||||
|
|
||||||
public string InstallPath
|
public string InstallPath
|
||||||
{
|
{
|
||||||
get => _installPath;
|
get => _installPath;
|
||||||
@ -43,6 +45,7 @@ public class PreChecksViewModel : ViewModelBase
|
|||||||
InstallPath = data.TargetInstallPath;
|
InstallPath = data.TargetInstallPath;
|
||||||
|
|
||||||
StartInstallCommand = ReactiveCommand.Create(() => NavigateTo(new InstallViewModel(HostScreen)));
|
StartInstallCommand = ReactiveCommand.Create(() => NavigateTo(new InstallViewModel(HostScreen)));
|
||||||
|
ShowDetailedViewCommand = ReactiveCommand.Create(() => NavigateTo(new DetailedPreChecksViewModel(HostScreen)));
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
|
36
SPTInstaller/Views/DetailedPreChecksView.axaml
Normal file
36
SPTInstaller/Views/DetailedPreChecksView.axaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:cc="using:SPTInstaller.CustomControls"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="SPTInstaller.Views.DetailedPreChecksView">
|
||||||
|
<Grid RowDefinitions="10,AUTO,AUTO,AUTO,10">
|
||||||
|
<Label Grid.Row="1" HorizontalAlignment="Center"
|
||||||
|
Content="Placeholder for install location info because I'm lazy"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Separator Grid.Row="2" Margin="10 5" Height="2"/>
|
||||||
|
|
||||||
|
<ScrollViewer Grid.Row="3">
|
||||||
|
<ItemsControl Items="{Binding PreChecks}">
|
||||||
|
<ItemsControl.ItemsPanel>
|
||||||
|
<ItemsPanelTemplate>
|
||||||
|
<StackPanel HorizontalAlignment="Stretch" Spacing="10" Margin="10"/>
|
||||||
|
</ItemsPanelTemplate>
|
||||||
|
</ItemsControl.ItemsPanel>
|
||||||
|
<ItemsControl.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<cc:DetailedPreCheckItem PreCheckName="{Binding Name}"
|
||||||
|
IsRunning="{Binding IsRunning}"
|
||||||
|
IsPending="{Binding IsPending}"
|
||||||
|
IsRequired="{Binding IsRequired}"
|
||||||
|
Passed="{Binding Passed}"
|
||||||
|
PreCheckDetails="Placeholder for details"
|
||||||
|
/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsControl.ItemTemplate>
|
||||||
|
</ItemsControl>
|
||||||
|
</ScrollViewer>
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
11
SPTInstaller/Views/DetailedPreChecksView.axaml.cs
Normal file
11
SPTInstaller/Views/DetailedPreChecksView.axaml.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using Avalonia.ReactiveUI;
|
||||||
|
using SPTInstaller.ViewModels;
|
||||||
|
|
||||||
|
namespace SPTInstaller.Views;
|
||||||
|
public partial class DetailedPreChecksView : ReactiveUserControl<DetailedPreChecksViewModel>
|
||||||
|
{
|
||||||
|
public DetailedPreChecksView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
<UserControl xmlns="https://github.com/avaloniaui"
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
@ -6,7 +6,7 @@
|
|||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="SPTInstaller.Views.PreChecksView">
|
x:Class="SPTInstaller.Views.PreChecksView">
|
||||||
<Grid ColumnDefinitions="10,*,AUTO,*,10"
|
<Grid ColumnDefinitions="10,*,AUTO,*,10"
|
||||||
RowDefinitions="10,*,AUTO,AUTO,AUTO,*,10">
|
RowDefinitions="10,*,AUTO,AUTO,AUTO,AUTO,*,10">
|
||||||
<StackPanel Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" HorizontalAlignment="Center">
|
<StackPanel Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" HorizontalAlignment="Center">
|
||||||
<Label Content="SPT will be installed into this folder:"
|
<Label Content="SPT will be installed into this folder:"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
@ -44,5 +44,9 @@
|
|||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ItemsControl.ItemTemplate>
|
</ItemsControl.ItemTemplate>
|
||||||
</ItemsControl>
|
</ItemsControl>
|
||||||
|
<Button Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" HorizontalAlignment="Center"
|
||||||
|
Content="Detailed View"
|
||||||
|
Command="{Binding ShowDetailedViewCommand}"
|
||||||
|
/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user