commit f24df0645bd8784ffa31a77b604564017070ffe3
parent 595de0dba0de93613180778750d5c79ff623f811
Author: Mikolaj Lenczewski <33129490+EnderRifter@users.noreply.github.com>
Date: Fri, 16 Aug 2019 14:42:50 +0200
Updated body mass converter for two-way functionality
- Readded read users and read systems because of wierd XAML parsing bug
Diffstat:
11 files changed, 123 insertions(+), 130 deletions(-)
diff --git a/StarSim/StarSimGui/Source/Converters/BodyMassConverter.cs b/StarSim/StarSimGui/Source/Converters/BodyMassConverter.cs
@@ -13,13 +13,13 @@ namespace StarSimGui.Source.Converters
/// <inheritdoc />
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
- return $"{value:E3}";
+ return $"{value ?? 0:E3}";
}
/// <inheritdoc />
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
- throw new NotImplementedException();
+ return double.TryParse((string)value, out double result) ? result : 0;
}
}
}
\ No newline at end of file
diff --git a/StarSim/StarSimGui/StarSimGui.csproj b/StarSim/StarSimGui/StarSimGui.csproj
@@ -26,8 +26,8 @@
</ItemGroup>
<ItemGroup>
- <AvaloniaResource Remove="Views\Database Views\SystemReadView.xaml" />
- <AvaloniaResource Remove="Views\Database Views\UserReadView.xaml" />
+ <AvaloniaResource Remove="Views\Database Views\ReadSystems.xaml" />
+ <AvaloniaResource Remove="Views\Database Views\ReadUsers.xaml" />
<AvaloniaResource Remove="Views\Database.xaml" />
<AvaloniaResource Remove="Views\Overview.xaml" />
<AvaloniaResource Remove="Views\Simulation.xaml" />
@@ -40,8 +40,8 @@
</ItemGroup>
<ItemGroup>
- <None Remove="Views\Database Views\SystemReadView.xaml" />
- <None Remove="Views\Database Views\UserReadView.xaml" />
+ <None Remove="Views\Database Views\ReadSystems.xaml" />
+ <None Remove="Views\Database Views\ReadUsers.xaml" />
<None Remove="Views\Database.xaml" />
<None Remove="Views\Overview.xaml" />
<None Remove="Views\Simulation.xaml" />
@@ -88,13 +88,13 @@
</ItemGroup>
<ItemGroup>
- <EmbeddedResource Include="Views\Database Views\SystemReadView.xaml">
+ <EmbeddedResource Include="Views\Database Views\ReadUsers.xaml">
<Generator>MSBuild:Compile</Generator>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
- <EmbeddedResource Include="Views\Database Views\UserReadView.xaml">
+ <EmbeddedResource Include="Views\Database Views\ReadSystems.xaml">
<Generator>MSBuild:Compile</Generator>
</EmbeddedResource>
</ItemGroup>
@@ -104,12 +104,6 @@
</ItemGroup>
<ItemGroup>
- <Compile Update="Views\Database Views\SystemReadView.xaml.cs">
- <DependentUpon>SystemReadView.xaml</DependentUpon>
- </Compile>
- </ItemGroup>
-
- <ItemGroup>
<None Update="App.xaml">
<Generator>MSBuild:Compile</Generator>
</None>
diff --git a/StarSim/StarSimGui/Views/Database Views/ReadSystems.xaml b/StarSim/StarSimGui/Views/Database Views/ReadSystems.xaml
@@ -0,0 +1,33 @@
+<UserControl xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:vm="clr-namespace:StarSimGui.ViewModels.Database_ViewModels;assembly=StarSimGui"
+ xmlns:v="clr-namespace:StarSimGui.Views;assembly=StarSimGui"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ mc:Ignorable="d"
+ x:Class="StarSimGui.Views.Database_Views.ReadSystems"
+ Background="WhiteSmoke">
+
+ <Design.DataContext>
+ <vm:SystemReadViewModel />
+ </Design.DataContext>
+
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2">
+ <Grid ColumnDefinitions="*,*,*,*" RowDefinitions="*,*,*,*">
+ <ListBox Items="{Binding Bodies}" SelectedItem="{Binding SelectedBody, Mode=OneWayToSource}" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
+ </ListBox>
+ <ListBox Items="{Binding Systems}" SelectedItem="{Binding SelectedSystem, Mode=OneWayToSource}" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
+ </ListBox>
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
+ <StackPanel DataContext="{Binding SelectedBody}" IsVisible="{Binding !$parent.DataContext.IsSelectedBodyNull}">
+ <TextBlock>Selected Body Details:</TextBlock>
+ </StackPanel>
+ </Border>
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
+ <StackPanel DataContext="{Binding SelectedSystem}" IsVisible="{Binding !$parent.DataContext.IsSelectedSystemNull}">
+ <TextBlock>Selected System Details:</TextBlock>
+ </StackPanel>
+ </Border>
+ </Grid>
+ </Border>
+</UserControl>
+\ No newline at end of file
diff --git a/StarSim/StarSimGui/Views/Database Views/ReadSystems.xaml.cs b/StarSim/StarSimGui/Views/Database Views/ReadSystems.xaml.cs
@@ -0,0 +1,19 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace StarSimGui.Views.Database_Views
+{
+ public class ReadSystems : UserControl
+ {
+ public ReadSystems()
+ {
+ this.InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+ }
+}
diff --git a/StarSim/StarSimGui/Views/Database Views/ReadUsers.xaml b/StarSim/StarSimGui/Views/Database Views/ReadUsers.xaml
@@ -0,0 +1,40 @@
+<UserControl xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:vm="clr-namespace:StarSimGui.ViewModels.Database_ViewModels;assembly=StarSimGui"
+ xmlns:v="clr-namespace:StarSimGui.Views;assembly=StarSimGui"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ mc:Ignorable="d"
+ x:Class="StarSimGui.Views.Database_Views.ReadUsers"
+ Background="WhiteSmoke">
+
+ <Design.DataContext>
+ <vm:UserReadViewModel />
+ </Design.DataContext>
+
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2">
+ <Grid ColumnDefinitions="*,*,*,*" RowDefinitions="*,*,*,*">
+ <ListBox Items="{Binding Users}" SelectedItem="{Binding SelectedUser, Mode=OneWayToSource}" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
+ </ListBox>
+ <ListBox Items="{Binding PublishedSystems}" SelectedItem="{Binding SelectedPublishedSystem, Mode=OneWayToSource}" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
+ </ListBox>
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
+ <StackPanel DataContext="{Binding SelectedUser}" IsVisible="{Binding !$parent.DataContext.IsSelectedUserNull}">
+ <TextBlock>Selected User Details:</TextBlock>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Grid.Column="0" Grid.Row="0">Privileges:</TextBlock>
+ <Separator Margin="2" />
+ <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Privileges}"></TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </Border>
+ <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
+ <StackPanel DataContext="{Binding SelectedPublishedSystem}" IsVisible="{Binding !$parent.DataContext.IsSelectedPublishedSystemNull}">
+ <TextBlock>Selected Published System Details:</TextBlock>
+ <ListBox Items="{Binding System.BodyToSystemJoins}">
+ </ListBox>
+ </StackPanel>
+ </Border>
+ </Grid>
+ </Border>
+</UserControl>
+\ No newline at end of file
diff --git a/StarSim/StarSimGui/Views/Database Views/ReadUsers.xaml.cs b/StarSim/StarSimGui/Views/Database Views/ReadUsers.xaml.cs
@@ -0,0 +1,19 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace StarSimGui.Views.Database_Views
+{
+ public class ReadUsers : UserControl
+ {
+ public ReadUsers()
+ {
+ this.InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+ }
+}
diff --git a/StarSim/StarSimGui/Views/Database Views/SystemReadView.xaml b/StarSim/StarSimGui/Views/Database Views/SystemReadView.xaml
@@ -1,33 +0,0 @@
-<UserControl xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:vm="clr-namespace:StarSimGui.ViewModels.Database_ViewModels;assembly=StarSimGui"
- xmlns:v="clr-namespace:StarSimGui.Views;assembly=StarSimGui"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d"
- x:Class="StarSimGui.Views.Database_Views.SystemReadView"
- Background="WhiteSmoke">
-
- <Design.DataContext>
- <vm:SystemReadViewModel />
- </Design.DataContext>
-
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2">
- <Grid ColumnDefinitions="*,*,*,*" RowDefinitions="*,*,*,*">
- <ListBox Items="{Binding Bodies}" SelectedItem="{Binding SelectedBody, Mode=OneWayToSource}" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
- </ListBox>
- <ListBox Items="{Binding Systems}" SelectedItem="{Binding SelectedSystem, Mode=OneWayToSource}" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
- </ListBox>
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
- <StackPanel DataContext="{Binding SelectedBody}" IsVisible="{Binding !$parent.DataContext.IsSelectedBodyNull}">
- <TextBlock>Selected Body Details:</TextBlock>
- </StackPanel>
- </Border>
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
- <StackPanel DataContext="{Binding SelectedSystem}" IsVisible="{Binding !$parent.DataContext.IsSelectedSystemNull}">
- <TextBlock>Selected System Details:</TextBlock>
- </StackPanel>
- </Border>
- </Grid>
- </Border>
-</UserControl>
-\ No newline at end of file
diff --git a/StarSim/StarSimGui/Views/Database Views/SystemReadView.xaml.cs b/StarSim/StarSimGui/Views/Database Views/SystemReadView.xaml.cs
@@ -1,19 +0,0 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace StarSimGui.Views.Database_Views
-{
- public class SystemReadView : UserControl
- {
- public SystemReadView()
- {
- this.InitializeComponent();
- }
-
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
- }
-}
-\ No newline at end of file
diff --git a/StarSim/StarSimGui/Views/Database Views/UserReadView.xaml b/StarSim/StarSimGui/Views/Database Views/UserReadView.xaml
@@ -1,40 +0,0 @@
-<UserControl xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:vm="clr-namespace:StarSimGui.ViewModels.Database_ViewModels;assembly=StarSimGui"
- xmlns:v="clr-namespace:StarSimGui.Views;assembly=StarSimGui"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d"
- x:Class="StarSimGui.Views.Database_Views.UserReadView"
- Background="WhiteSmoke">
-
- <Design.DataContext>
- <vm:UserReadViewModel />
- </Design.DataContext>
-
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2">
- <Grid ColumnDefinitions="*,*,*,*" RowDefinitions="*,*,*,*">
- <ListBox Items="{Binding Users}" SelectedItem="{Binding SelectedUser, Mode=OneWayToSource}" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
- </ListBox>
- <ListBox Items="{Binding PublishedSystems}" SelectedItem="{Binding SelectedPublishedSystem, Mode=OneWayToSource}" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" Margin="2">
- </ListBox>
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
- <StackPanel DataContext="{Binding SelectedUser}" IsVisible="{Binding !$parent.DataContext.IsSelectedUserNull}">
- <TextBlock>Selected User Details:</TextBlock>
- <StackPanel Orientation="Horizontal">
- <TextBlock Grid.Column="0" Grid.Row="0">Privileges:</TextBlock>
- <Separator Margin="2" />
- <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Privileges}"></TextBlock>
- </StackPanel>
- </StackPanel>
- </Border>
- <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2" Grid.RowSpan="2">
- <StackPanel DataContext="{Binding SelectedPublishedSystem}" IsVisible="{Binding !$parent.DataContext.IsSelectedPublishedSystemNull}">
- <TextBlock>Selected Published System Details:</TextBlock>
- <ListBox Items="{Binding System.BodyToSystemJoins}">
- </ListBox>
- </StackPanel>
- </Border>
- </Grid>
- </Border>
-</UserControl>
-\ No newline at end of file
diff --git a/StarSim/StarSimGui/Views/Database Views/UserReadView.xaml.cs b/StarSim/StarSimGui/Views/Database Views/UserReadView.xaml.cs
@@ -1,19 +0,0 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace StarSimGui.Views.Database_Views
-{
- public class UserReadView : UserControl
- {
- public UserReadView()
- {
- this.InitializeComponent();
- }
-
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
- }
-}
diff --git a/StarSim/StarSimGui/Views/Database.xaml b/StarSim/StarSimGui/Views/Database.xaml
@@ -28,10 +28,10 @@
</Border>
</TabItem>
<TabItem Header="View Users" IsVisible="{Binding IsDefault}">
- <subviews:UserReadView DataContext="{Binding UserReadViewModel}" />
+ <subviews:ReadUsers DataContext="{Binding UserReadViewModel}" />
</TabItem>
<TabItem Header="View Bodies/Systems" IsVisible="{Binding IsDefault}">
- <subviews:SystemReadView DataContext="{Binding SystemReadViewModel}" />
+ <subviews:ReadSystems DataContext="{Binding SystemReadViewModel}" />
</TabItem>
<TabItem Header="Update Users" IsVisible="{Binding IsAdmin}">
<Border BorderBrush="Gray" BorderThickness="2" CornerRadius="2" Margin="2">