aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml239
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml.cs28
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml49
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml.cs28
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml18
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml.cs31
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml61
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml.cs28
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml196
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml.cs28
10 files changed, 706 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml
new file mode 100644
index 000000000..52a140c81
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml
@@ -0,0 +1,239 @@
+<UserControl x:Class="Tango.FSE.MachineConfiguration.Views.DataStoreView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI"
+ xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
+ xmlns:vm="clr-namespace:Tango.FSE.MachineConfiguration.ViewModels"
+ xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
+ xmlns:resolution="clr-namespace:Tango.FSE.Common.Resolution;assembly=Tango.FSE.Common"
+ xmlns:converters="clr-namespace:Tango.FSE.MachineConfiguration.Converters"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:DataStoreViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.DataStoreViewVM}" d:DesignStyle="{StaticResource FSE_User_Control_Designer}">
+
+ <UserControl.Resources>
+ <converters:DataStoreValueToStringConverter x:Key="DataStoreValueToStringConverter" />
+ </UserControl.Resources>
+
+ <DockPanel Margin="0 10 0 0">
+
+ <DockPanel DockPanel.Dock="Top">
+ <DockPanel DockPanel.Dock="Left" HorizontalAlignment="Left">
+ <Image Source="../Images/data_collection.png" Stretch="Uniform" Width="40" RenderOptions.BitmapScalingMode="Fant" Opacity="0.5" />
+ <DockPanel Margin="10 0 0 0" >
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">
+ <Run>The data store contains global and local (machine) configuration and calibration parameters.</Run>
+ <LineBreak/>
+ <Run>Updating the data store parameters will take effect on the next machine cloud synchronization pass.</Run>
+ <LineBreak/>
+ <Run>If this is the currently connected machine, updating the data store will take effect immediately.</Run>
+ </TextBlock>
+ </DockPanel>
+ </DockPanel>
+
+ <DockPanel DockPanel.Dock="Right" Margin="0 0 10 0" VerticalAlignment="Center" ToolTip="Allow updates on this grid based on changes that are triggered by the machine's firmware device">
+ <ToggleButton IsChecked="{Binding DataStoreProvider.AcceptFirmwareChanges}" />
+ <TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Center">Accept Real-Time Firmware Updates</TextBlock>
+ </DockPanel>
+
+ <Grid>
+
+ </Grid>
+ </DockPanel>
+
+ <DockPanel Margin="0 20 0 0">
+ <DockPanel DockPanel.Dock="Bottom" >
+
+ <Grid DockPanel.Dock="Left">
+ <DockPanel VerticalAlignment="Center" Visibility="{Binding CanSync,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <material:PackIcon Kind="InfoCircleOutline" Foreground="{StaticResource FSE_GreenBrush}" />
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GreenBrush}" VerticalAlignment="Center" Margin="5 2 0 0">Machine is connected, updating the data store will be take effect immediately.</TextBlock>
+ </DockPanel>
+ </Grid>
+
+ <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" Margin="0 10 0 5">
+ <Button IsEnabled="{Binding IsFree}" ToolTip="Import a data store csv file" Width="120" VerticalAlignment="Center" Margin="0 0 10 0" Height="35" material:ButtonAssist.CornerRadius="18" Style="{StaticResource FSE_RaisedButton_Dark_Hover}" Command="{Binding ImportCommand}">
+ <DockPanel>
+ <material:PackIcon Kind="Import" />
+ <TextBlock Margin="5 0 0 0">IMPORT</TextBlock>
+ </DockPanel>
+ </Button>
+ <Button IsEnabled="{Binding IsFree}" ToolTip="Export this data store to a csv file" Width="120" VerticalAlignment="Center" Margin="0 0 10 0" Height="35" material:ButtonAssist.CornerRadius="18" Style="{StaticResource FSE_RaisedButton_Dark_Hover}" Command="{Binding ExportCommand}">
+ <DockPanel>
+ <material:PackIcon Kind="Export" />
+ <TextBlock Margin="5 0 0 0">EXPORT</TextBlock>
+ </DockPanel>
+ </Button>
+ <Button ToolTip="Apply the data store changes" IsEnabled="{Binding IsFree}" Width="200" Height="45" material:ButtonAssist.CornerRadius="25" Command="{Binding SaveCommand}">
+ <DockPanel>
+ <material:PackIcon Kind="ContentSaveAll" />
+ <TextBlock Margin="5 0 0 0">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="Text" Value="UPDATE"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding CanSync}" Value="True">
+ <Setter Property="Text" Value="UPDATE &amp; SYNC"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </DockPanel>
+ </Button>
+ </StackPanel>
+
+ <Grid>
+ <!--FOOTER CENTER CONTENT-->
+ </Grid>
+ </DockPanel>
+ <Grid>
+ <DockPanel>
+
+ <Grid DockPanel.Dock="Top" Panel.ZIndex="100">
+ <!--TOP BAR-->
+
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 5 -45">
+ <DockPanel Margin="0 0 20 0" VerticalAlignment="Center">
+ <material:PackIcon Kind="Search" resolution:ResolutionHelper.Mode="High" Foreground="{StaticResource FSE_PrimaryAccentBrush}" VerticalAlignment="Center" Width="24" Height="24" Margin="0 0 5 0" />
+ <TextBox IsEnabled="{Binding IsFree}" material:HintAssist.Hint="Search" Text="{Binding Filter,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Delay=500}" Background="{StaticResource FSE_PrimaryBackgroundBrush}" Width="250" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Height="33"></TextBox>
+ </DockPanel>
+ <controls:TextIconButton IsEnabled="{Binding IsFree}" material:ButtonAssist.CornerRadius="15" Command="{Binding AddItemCommand}" Icon="Add" Width="150">ADD ITEM</controls:TextIconButton>
+ <commonControls:IconButton Margin="10 0 0 0" Icon="Refresh" Foreground="{StaticResource FSE_PrimaryAccentBrush}" Cursor="Hand" ToolTip="Reload the data store" Command="{Binding ReloadCommand}" />
+ </StackPanel>
+ </Grid>
+
+ <DockPanel>
+ <!--<TextBlock Margin="0 -25 0 0" DockPanel.Dock="Top" FontFamily="{StaticResource hand}" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_LargerFontSize}">Collections</TextBlock>-->
+
+ <DockPanel>
+
+ <Border DockPanel.Dock="Bottom" Height="50" Background="#404040" CornerRadius="0 0 5 5">
+ <controls:TextIconButton IsEnabled="{Binding IsFree}" material:ButtonAssist.CornerRadius="15" Command="{Binding AddCollectionCommand}" Icon="Add" Width="180">ADD COLLECTION</controls:TextIconButton>
+ </Border>
+
+ <Border Padding="8" Background="{StaticResource FSE_PrimaryBackgroundMidBrush}" CornerRadius="5 5 0 0" BorderThickness="1" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}">
+ <ListBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding DataStore.Collections}" SelectedItem="{Binding SelectedCollection}" MinWidth="200" HorizontalContentAlignment="Stretch">
+ <ListBox.ItemTemplate>
+ <DataTemplate>
+ <DockPanel>
+ <material:PackIcon Kind="Collection" />
+ <controls:IconButton DockPanel.Dock="Right" HorizontalAlignment="Right" ToolTip="Delete collection" Cursor="Hand" Width="20" Height="20" Padding="0" Icon="Close" Foreground="{StaticResource FSE_RedBrush}" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RemoveCollectionCommand}" CommandParameter="{Binding}" />
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>
+ </DockPanel>
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ </ListBox>
+ </Border>
+ </DockPanel>
+ </DockPanel>
+
+ <Grid Margin="10 0 0 0">
+ <Border Background="#8B202020" Padding="0 0 0 5" CornerRadius="5" BorderThickness="1" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}">
+ <Grid>
+ <Border VerticalAlignment="Top" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Height="47" CornerRadius="5 5 0 0">
+
+ </Border>
+ <DataGrid IsEnabled="{Binding IsFree}" IsReadOnly="True" helpers:DataGridHelper.DoubleClickCommand="{Binding EditItemCommand}" AutoGenerateColumns="False" Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" CanUserReorderColumns="False" CanUserSortColumns="False" ItemsSource="{Binding SelectedCollection.Items}" SelectedItem="{Binding SelectedItem}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Width="50">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <material:PackIcon Kind="Key" Width="32" />
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="KEY" Width="Auto">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Key}"></TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="TYPE" Width="Auto">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Type}">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Type}" Value="Boolean">
+ <Setter Property="Foreground" Value="#FF9BFF"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="Bytes">
+ <Setter Property="Foreground" Value="#FFFBA3"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="Double">
+ <Setter Property="Foreground" Value="#85B1FF"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="Float">
+ <Setter Property="Foreground" Value="#FFDCB8"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="Int32">
+ <Setter Property="Foreground" Value="#FF858D "></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="String">
+ <Setter Property="Foreground" Value="#B9FFA5"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Type}" Value="Proto">
+ <Setter Property="Foreground" Value="#A5FFF9"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="GLOBAL" Width="Auto">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding GlobalItem,Converter={StaticResource DataStoreValueToStringConverter},TargetNullValue='-'}"></TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="LOCAL" Width="1*">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding FormattedValue,Converter={StaticResource StringToOneLineConverter},ConverterParameter='100',Mode=OneWay}" Visibility="{Binding IsDeleted,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="FontWeight" Value="Normal"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding HasDifference}" Value="True">
+ <Setter Property="FontWeight" Value="Bold"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Width="100">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <UniformGrid Columns="2">
+ <controls:IconButton ToolTip="Edit local value" Cursor="Hand" Width="20" Padding="0" Height="20" Icon="Edit" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.EditItemCommand}" CommandParameter="{Binding}" />
+ <Grid IsEnabled="{Binding IsGlobal,Converter={StaticResource BooleanInverseConverter}}">
+ <controls:IconButton ToolTip="Delete local" IsEnabled="{Binding IsDeleted,Converter={StaticResource BooleanInverseConverter}}" Cursor="Hand" Width="20" Height="20" Padding="0" Icon="Close" Foreground="{StaticResource FSE_RedBrush}" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RemoveItemCommand}" CommandParameter="{Binding}" />
+ </Grid>
+ </UniformGrid>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </Grid>
+ </Border>
+ </Grid>
+ </DockPanel>
+ </Grid>
+ </DockPanel>
+ </DockPanel>
+</UserControl>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml.cs
new file mode 100644
index 000000000..add553b35
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/DataStoreView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.MachineConfiguration.Views
+{
+ /// <summary>
+ /// Interaction logic for MachineDataStoreView.xaml
+ /// </summary>
+ public partial class DataStoreView : UserControl
+ {
+ public DataStoreView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml
new file mode 100644
index 000000000..d33966e18
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml
@@ -0,0 +1,49 @@
+<UserControl x:Class="Tango.FSE.MachineConfiguration.Views.MachineView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
+ xmlns:vm="clr-namespace:Tango.FSE.MachineConfiguration.ViewModels"
+ xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
+ xmlns:resolution="clr-namespace:Tango.FSE.Common.Resolution;assembly=Tango.FSE.Common"
+ mc:Ignorable="d"
+ d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:MachineViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MachineViewVM}" d:DesignStyle="{StaticResource FSE_User_Control_Designer}">
+ <Grid>
+
+ <Grid Margin="0 20 0 0">
+ <Grid>
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Margin" Value="100 0"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ResolutionService.IsLowResolution}" Value="True">
+ <Setter Property="Margin" Value="10"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <DockPanel>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" HorizontalAlignment="Left">
+ <Image Source="{StaticResource FSE_Machine_Full}" Width="100" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" />
+ <StackPanel Margin="5 0 0 0">
+ <TextBlock Text="{Binding EditingComposition.Machine.SerialNumber,FallbackValue='101010'}" FontSize="{StaticResource FSE_ModuleHeaderFontSize}"></TextBlock>
+ <TextBlock Text="{Binding EditingComposition.Machine.Organization.Name,FallbackValue='Organization'}" FontSize="{StaticResource FSE_LargerFontSize}" Foreground="{StaticResource FSE_GrayBrush}"></TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <Grid Margin="0 20 0 0">
+ <commonControls:FSETabControl TabsWidth="500" x:Name="tabs" SelectedObject="{Binding SelectedView,Mode=TwoWay}">
+ <local:SettingsView Tag="SETTINGS"/>
+ <local:DataStoreView Tag="DATA STORE"/>
+ </commonControls:FSETabControl>
+
+ <TextBlock resolution:ResolutionHelper.MinWidth="1500" Margin="10 0 0 0" FontFamily="{StaticResource hand}" FontSize="{StaticResource FSE_ModuleHeaderFontSize}" Foreground="{StaticResource FSE_PrimaryAccentDarkBrush}" VerticalAlignment="Top" HorizontalAlignment="Left" Text="{Binding ElementName=tabs,Path=SelectedElement.Tag,Converter={StaticResource StringToTitleCaseConverter}}"></TextBlock>
+ </Grid>
+ </DockPanel>
+ </Grid>
+ </Grid>
+
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml.cs
new file mode 100644
index 000000000..5e4d5ed7d
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.MachineConfiguration.Views
+{
+ /// <summary>
+ /// Interaction logic for MachineView.xaml
+ /// </summary>
+ public partial class MachineView : UserControl
+ {
+ public MachineView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml
new file mode 100644
index 000000000..a321a1bb8
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml
@@ -0,0 +1,18 @@
+<UserControl x:Class="Tango.FSE.MachineConfiguration.Views.MainView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
+ xmlns:vm="clr-namespace:Tango.FSE.MachineConfiguration.ViewModels"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="1920" d:DesignWidth="1080" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}" d:DesignStyle="{StaticResource FSE_User_Control_Designer}">
+ <Grid>
+ <controls:NavigationControl TransitionType="Slide" TransitionDuration="00:00:0.2">
+ <local:SelectionView/>
+ <local:MachineView/>
+ </controls:NavigationControl>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml.cs
new file mode 100644
index 000000000..650c297a4
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MainView.xaml.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.MachineConfiguration.Views
+{
+ /// <summary>
+ /// Interaction logic for MainView.xaml
+ /// </summary>
+ public partial class MainView : UserControl
+ {
+ public static MainView Instance { get; set; }
+
+ public MainView()
+ {
+ Instance = this;
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml
new file mode 100644
index 000000000..51039ca89
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml
@@ -0,0 +1,61 @@
+<UserControl x:Class="Tango.FSE.MachineConfiguration.Views.SelectionView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
+ xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
+ xmlns:vm="clr-namespace:Tango.FSE.MachineConfiguration.ViewModels"
+ mc:Ignorable="d"
+ d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:SelectionViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.SelectionViewVM}" d:DesignStyle="{StaticResource FSE_User_Control_Designer}">
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+
+ <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource FSE_ModuleHeaderFontSize}">Machine Configuration</TextBlock>
+ <TextBlock TextWrapping="Wrap" Margin="0 20 0 0" TextAlignment="Center" LineHeight="25">
+ <Run>The machine configuration module allows you to manage the currently connected machine configuration and other machine settings.</Run>
+ <LineBreak/>
+ <Run>Given the proper permissions, you will also be able to manage other organization machines.</Run>
+ </TextBlock>
+
+ <StackPanel Margin="0 40 0 0" Width="500" HorizontalAlignment="Center">
+ <Image Source="../Images/configuration.png" Stretch="None" />
+
+ <TextBlock Margin="60" HorizontalAlignment="Center" FontWeight="SemiBold" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_LargerFontSize}">Select Machine</TextBlock>
+ <autoComplete:AutoCompleteTextBox material:HintAssist.Hint="Serial Number" MaxPopupHeight="300" Margin="0 5 0 0" Provider="{Binding MachinesAutoCompleteProvider}" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}" DisplayMember="SerialNumber">
+ <autoComplete:AutoCompleteTextBox.SelectedItemTemplate>
+ <DataTemplate>
+ <DockPanel VerticalAlignment="Center">
+ <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="24" />
+ <StackPanel VerticalAlignment="Center" Margin="10 0 0 0" Orientation="Horizontal">
+ <TextBlock Text="{Binding SerialNumber}" FontSize="{StaticResource FSE_SmallFontSize}"></TextBlock>
+ <TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
+ </StackPanel>
+ </DockPanel>
+ </DataTemplate>
+ </autoComplete:AutoCompleteTextBox.SelectedItemTemplate>
+ <autoComplete:AutoCompleteTextBox.ItemTemplate>
+ <DataTemplate>
+ <DockPanel VerticalAlignment="Center">
+ <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="32" />
+ <StackPanel Margin="5 0 0 0">
+ <TextBlock Text="{Binding SerialNumber}"></TextBlock>
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallerFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
+ </StackPanel>
+ </DockPanel>
+ </DataTemplate>
+ </autoComplete:AutoCompleteTextBox.ItemTemplate>
+ </autoComplete:AutoCompleteTextBox>
+
+ <Button material:ButtonAssist.CornerRadius="25" Command="{Binding ManageMachineCommand}" Margin="0 100 0 0" Height="50" Width="250" FocusVisualStyle="{x:Null}">
+ <DockPanel>
+ <TextBlock>CONTINUE</TextBlock>
+ <material:PackIcon Margin="10 0 0 0" VerticalAlignment="Center" Kind="ArrowRight" />
+ </DockPanel>
+ </Button>
+ </StackPanel>
+ </StackPanel>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml.cs
new file mode 100644
index 000000000..618ae299a
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.MachineConfiguration.Views
+{
+ /// <summary>
+ /// Interaction logic for MachineSelectionView.xaml
+ /// </summary>
+ public partial class SelectionView : UserControl
+ {
+ public SelectionView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml
new file mode 100644
index 000000000..88df5a0b3
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml
@@ -0,0 +1,196 @@
+<UserControl x:Class="Tango.FSE.MachineConfiguration.Views.SettingsView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
+ xmlns:auth="clr-namespace:Tango.FSE.Common.Authorization;assembly=Tango.FSE.Common"
+ xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:vm="clr-namespace:Tango.FSE.MachineConfiguration.ViewModels"
+ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
+ xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
+ xmlns:resolution="clr-namespace:Tango.FSE.Common.Resolution;assembly=Tango.FSE.Common"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
+ mc:Ignorable="d"
+ d:DesignHeight="2000" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:SettingsViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.SettingsViewVM}" d:DesignStyle="{StaticResource FSE_User_Control_Designer}">
+
+ <Grid Margin="0 20">
+
+ <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Padding="0 0 20 0" FocusVisualStyle="{x:Null}">
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="4*" />
+ <ColumnDefinition Width="5*" />
+ </Grid.ColumnDefinitions>
+
+ <!--<Grid Grid.Column="1">
+ <commonControls:MachineView Opacity="0.6" DataContext="{Binding EditingComposition.Machine}" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="50 100 50 50" MaxWidth="600" />
+ </Grid>-->
+
+ <StackPanel Grid.Column="0" >
+
+ <GroupBox Margin="0 20" Style="{StaticResource FSE_Game_GroupBox}" Header="Provisioning" auth:AuthorizationHelper.Mode="Disabled" auth:AuthorizationHelper.Permission="FSE_ModifyMachineProvisioning">
+ <StackPanel Margin="0 0 0 5">
+ <DockPanel VerticalAlignment="Top" Margin="0 10 0 0" ToolTip="Activate the windows operating system license">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.SetupActivation}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Activate Windows License</TextBlock>
+ </DockPanel>
+
+ <StackPanel Margin="43 0 0 0">
+ <TextBlock Foreground="{StaticResource FSE_GrayBrush}" FontSize="{StaticResource FSE_SmallerFontSize}">License Key</TextBlock>
+ <TextBox Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.Machine.OsKey,UpdateSourceTrigger=PropertyChanged}" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Center" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Margin="0 2 0 0" Width="250" HorizontalAlignment="Left"></TextBox>
+ </StackPanel>
+
+ <DockPanel Margin="0 20 0 0" ToolTip="Install Team Viewer for remote desktop support">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.SetupRemoteAssistance}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Setup Team Viewer</TextBlock>
+ </DockPanel>
+
+ <DockPanel Margin="0 20 0 0" ToolTip="Perform UWF activation for protecting the disk by resetting file system changes after each system restart">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.SetupUwf}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Activate Disk Protection</TextBlock>
+ </DockPanel>
+
+ <DockPanel Margin="0 20 0 0" ToolTip="Connect the panel PC application to an in-memory emulator (for testing purpose only)">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.IsDemo}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Use Firmware Emulator (Demo Machine)</TextBlock>
+ </DockPanel>
+ <StackPanel Margin="2 40 0 0">
+
+ <Separator Margin="0 10" />
+
+ <TextBlock FontWeight="SemiBold" Foreground="{StaticResource FSE_RedBrush}">Device Registration</TextBlock>
+
+ <DockPanel>
+ <StackPanel>
+
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}">
+ <Run>Registered:</Run>
+ <Run Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.Machine.IsDeviceRegistered,Mode=OneWay,Converter={StaticResource BooleanToYesNoConverter},FallbackValue='No'}"></Run>
+ </TextBlock>
+
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}">
+ <Run>Device ID:</Run>
+ <Run Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.Machine.DeviceId,Mode=OneWay,FallbackValue='N/A',TargetNullValue='N/A'}"></Run>
+ </TextBlock>
+
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}">
+ <Run>Device Name:</Run>
+ <Run Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.Machine.DeviceName,Mode=OneWay,FallbackValue='N/A',TargetNullValue='N/A'}"></Run>
+ </TextBlock>
+ </StackPanel>
+
+ <Button Width="180" Command="{Binding ResetDeviceRegistrationCommand}" Margin="0 0 10 0" ToolTip="Device registration protects the system from provisioning of the same machine on multiple devices (panel PC's). Use this reset option when replacing an existing panel PC with a new one." IsEnabled="{Binding Machine.IsDeviceRegistered}" Cursor="Hand" HorizontalAlignment="Right" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Bottom" Style="{StaticResource FSE_Button_Red}">Reset Device Registration</Button>
+ </DockPanel>
+ </StackPanel>
+
+ <StackPanel Margin="2 40 0 0">
+
+ <Separator Margin="0 10" />
+
+ <TextBlock FontWeight="SemiBold" Foreground="{StaticResource FSE_RedBrush}">Machine Counters</TextBlock>
+
+ <DockPanel>
+ <StackPanel>
+
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}">
+ <Run>Total Dye Time:</Run>
+ <Run Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.TotalDyeTime,Mode=OneWay,FallbackValue='N/A',TargetNullValue='N/A'}"></Run>
+ </TextBlock>
+
+ <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallFontSize}">
+ <Run>Total Dye Meters:</Run>
+ <Run Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding EditingComposition.TotalDyeMeters,Mode=OneWay,FallbackValue='N/A',TargetNullValue='N/A'}"></Run>
+ </TextBlock>
+ </StackPanel>
+
+ <Button Width="180" Command="{Binding ResetCountersCommand}" Margin="0 0 10 0" ToolTip="Reset the entire job runs history for this machine" IsEnabled="{Binding Machine.IsDeviceRegistered}" Cursor="Hand" HorizontalAlignment="Right" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Bottom" Style="{StaticResource FSE_Button_Red}">Reset Machine Counters</Button>
+ </DockPanel>
+ </StackPanel>
+ </StackPanel>
+ </GroupBox>
+
+ <GroupBox Margin="0 20" Style="{StaticResource FSE_Game_GroupBox}" Header="Machine Update" auth:AuthorizationHelper.Mode="Disabled" auth:AuthorizationHelper.Permission="FSE_ModifyMachineUpdate">
+ <StackPanel Margin="0 10 0 5">
+ <DockPanel ToolTip="Prevent firmware upgrade when updating">
+ <ToggleButton material:ToggleButtonAssist.SwitchTrackOnBackground="{StaticResource FSE_PrimaryBackgroundLighterBrush}" IsChecked="{Binding EditingComposition.Machine.SetupFirmware,Converter={StaticResource BooleanInverseConverter}}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Disable Firmware Upgrade</TextBlock>
+ </DockPanel>
+
+ <DockPanel Margin="0 20 0 0" ToolTip="Force the machine to perform an update even if there is no update available">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.ForceVersionUpdate}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Force Version Update</TextBlock>
+ </DockPanel>
+
+ <DockPanel Margin="0 20 0 0" ToolTip="Prevent this machine from updating software">
+ <ToggleButton IsChecked="{Binding EditingComposition.Machine.SuspendVersionUpdate}" />
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Suspend Version Update</TextBlock>
+ </DockPanel>
+ </StackPanel>
+ </GroupBox>
+
+ <GroupBox Margin="0 20" Style="{StaticResource FSE_Game_GroupBox}" Header="Machine Identity" auth:AuthorizationHelper.Mode="Disabled" auth:AuthorizationHelper.Permission="FSE_ModifyMachineIdentity">
+ <StackPanel Margin="0 0 0 5">
+
+ <StackPanel Margin="0 10 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Serial Number</TextBlock>
+ <TextBox Margin="0 2 0 0" Text="{Binding EditingComposition.Machine.SerialNumber}" Width="250" HorizontalAlignment="Left"></TextBox>
+ </StackPanel>
+
+ <StackPanel Margin="0 20 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Name</TextBlock>
+ <TextBox Margin="0 2 0 0" Text="{Binding EditingComposition.Machine.Name}" Width="250" HorizontalAlignment="Left"></TextBox>
+ </StackPanel>
+
+ <StackPanel Margin="0 20 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Organization</TextBlock>
+ <ComboBox Width="250" HorizontalAlignment="Left" ItemsSource="{Binding EditingComposition.Organizations}" SelectedItem="{Binding EditingComposition.Machine.Organization}" DisplayMemberPath="Name" />
+ </StackPanel>
+
+ <StackPanel Margin="0 20 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Site</TextBlock>
+ <ComboBox Width="250" HorizontalAlignment="Left" ItemsSource="{Binding Sites}" SelectedItem="{Binding SelectedSite}" DisplayMemberPath="Name" />
+ </StackPanel>
+ </StackPanel>
+ </GroupBox>
+
+ <GroupBox Margin="0 20" Style="{StaticResource FSE_Game_GroupBox}" Header="Hardware" auth:AuthorizationHelper.Mode="Disabled" auth:AuthorizationHelper.Permission="FSE_ModifyMachineHardware">
+ <StackPanel>
+ <StackPanel Margin="0 10 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Head Type</TextBlock>
+ <ComboBox Width="250" HorizontalAlignment="Left" ItemsSource="{Binding Source={x:Type enumerations:HeadTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding EditingComposition.Machine.MachineHeadType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName" />
+ </StackPanel>
+
+ <StackPanel Margin="0 20 0 0">
+ <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}">Hardware Version</TextBlock>
+ <controls:SearchComboBox MinWidth="250" HorizontalAlignment="Left" ItemsSource="{Binding EditingComposition.HardwareVersions}" SelectedItem="{Binding EditingComposition.Machine.Configuration.HardwareVersion}" SearchProperty="FullName" />
+ </StackPanel>
+ </StackPanel>
+ </GroupBox>
+ </StackPanel>
+ </Grid>
+ </ScrollViewer>
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="4*" />
+ <ColumnDefinition Width="5*" />
+ </Grid.ColumnDefinitions>
+
+ <Grid Grid.Column="1" Margin="0 0 50 0">
+ <DockPanel>
+ <Button Command="{Binding SaveCommand}" DockPanel.Dock="Bottom" VerticalAlignment="Top" HorizontalAlignment="Center" Width="250" Height="50" Margin="0 -40 0 0" material:ButtonAssist.CornerRadius="25">
+ <DockPanel>
+ <material:PackIcon Kind="ContentSave" />
+ <TextBlock Margin="5 0 0 0">SAVE</TextBlock>
+ </DockPanel>
+ </Button>
+ <commonControls:MachineView Opacity="0.6" DataContext="{Binding EditingComposition.Machine}" HorizontalAlignment="Center" VerticalAlignment="Top" resolution:ResolutionHelper.HighResolutionMargin="50 50 50 50" resolution:ResolutionHelper.LowResolutionMargin="50 0 50 50" MaxWidth="600" />
+ </DockPanel>
+ </Grid>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml.cs
new file mode 100644
index 000000000..bdf8d904d
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SettingsView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.MachineConfiguration.Views
+{
+ /// <summary>
+ /// Interaction logic for MachineDataStoreView.xaml
+ /// </summary>
+ public partial class SettingsView : UserControl
+ {
+ public SettingsView()
+ {
+ InitializeComponent();
+ }
+ }
+}