diff options
| author | Roy <roy.mail.net@gmail.com> | 2018-01-07 09:27:42 +0200 |
|---|---|---|
| committer | Roy <roy.mail.net@gmail.com> | 2018-01-07 09:27:42 +0200 |
| commit | dd18ae0c096a34048477297ba848a089a99eece1 (patch) | |
| tree | bf036a7fac1b0d1f0439fb0e039e15c491e3881a /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner | |
| parent | 6900c4dea48adb484efc9648e081b7b3f75bd60c (diff) | |
| download | Tango-dd18ae0c096a34048477297ba848a089a99eece1.tar.gz Tango-dd18ae0c096a34048477297ba848a089a99eece1.zip | |
Progress on machine designer...
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner')
9 files changed, 688 insertions, 256 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/android.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/android.png Binary files differnew file mode 100644 index 000000000..7fc5fbfe1 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/android.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png Binary files differindex b7c292bf9..a070c94e0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/hardware.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/hardware.png Binary files differnew file mode 100644 index 000000000..856cf1ec7 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/hardware.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png Binary files differindex 6603d1b9f..4da752a42 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png Binary files differindex 9c280255e..e414e3355 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 2c3f6c674..96d7ddb8f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -197,5 +197,9 @@ <ItemGroup> <Resource Include="Images\embedded-software.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\android.png" /> + <Resource Include="Images\hardware.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 241297d85..22e350745 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -1,9 +1,14 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; +using System.Windows.Data; using Tango.Core.Commands; +using Tango.Core.Helpers; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; @@ -32,7 +37,14 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public Machine Machine { get { return _machine; } - set { _machine = value; RaisePropertyChangedAuto(); OnMachineChanged(); } + set { _machine = value; RaisePropertyChangedAuto(); } + } + + private Machine _selectedMachine; + public Machine SelectedMachine + { + get { return _selectedMachine; } + set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); } } private Configuration _configuration; @@ -55,6 +67,33 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _selectedIds = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } + private ObservableCollection<Configuration> _history; + + public ObservableCollection<Configuration> History + { + get { return _history; } + set { _history = value; RaisePropertyChangedAuto(); } + } + + + private Configuration _selectedHistoryConfiguration; + /// <summary> + /// Gets or sets the selected history configuration. + /// </summary> + public Configuration SelectedHistoryConfiguration + { + get { return _selectedHistoryConfiguration; } + set { _selectedHistoryConfiguration = value; RaisePropertyChangedAuto(); OnHistoryConfigurationSelected(); } + } + + private String _filter; + + public String Filter + { + get { return _filter; } + set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } + } + public RelayCommand SaveCommand { get; set; } public RelayCommand AddIdsCommand { get; set; } @@ -71,21 +110,34 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels Adapter = ObservablesEntitiesAdapter.Instance; Configuration = new Configuration(); Configuration.Name = "Untitled"; + Machine = new Machine(); + Machine.Configuration = Configuration; + Configuration.ApplicationFirmwareVersions = Adapter.ApplicationFirmwareVersions.First(); SaveCommand = new RelayCommand(Save, (x) => !_isSaving); AddIdsCommand = new RelayCommand(AddIds, (x) => !_isSaving && Configuration.IdsPacks.Count < 8); RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => !_isSaving && SelectedIds != null); } - private void OnMachineChanged() + private void OnSelectedMachineChanged() { - if (Machine != null) + if (SelectedMachine != null) { - Configuration = Machine.Configuration; + Machine = SelectedMachine.CloneEntity(); + Configuration = Machine.Configuration.CloneConfiguration(); + History = SelectedMachine.MachinesConfigurations.Select(x => x.Configuration).ToObservableCollection(); } else { - Configuration = new Configuration() { Name = "Untitled" }; + History = new ObservableCollection<Configuration>(); + } + } + + private void OnHistoryConfigurationSelected() + { + if (SelectedHistoryConfiguration != null) + { + Configuration = SelectedHistoryConfiguration.CloneConfiguration(); } } @@ -101,6 +153,12 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels Configuration.ApplicationVersionGuid = applicationVersion.Guid; } + public void DropHardwareVersion(HardwareVersion hardwareVersion) + { + Configuration.HardwareVersions = hardwareVersion; + Configuration.HardwareVersionGuid = hardwareVersion.Guid; + } + public void DropEmbeddedFirmware(EmbeddedFirmwareVersion embeddedFirmwareVersion) { Configuration.EmbeddedFirmwareVersions = embeddedFirmwareVersion; @@ -113,6 +171,12 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels Configuration.EmbeddedSoftwareVersionGuid = embeddedSoftwareVersion.Guid; } + public void DropApplicationOsVersion(ApplicationOsVersion applicationOsVersion) + { + Configuration.ApplicationOsVersions = applicationOsVersion; + Configuration.ApplicationVersionGuid = applicationOsVersion.Guid; + } + private void RemoveIds() { Configuration.IdsPacks.Remove(SelectedIds); @@ -121,7 +185,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels private void AddIds() { - Configuration.IdsPacks.Add(new IdsPack()); + Configuration.IdsPacks.Add(new IdsPack() { Configuration = Configuration }); InvalidateRelayCommands(); } @@ -149,6 +213,42 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels idsPack.LiquidTypeGuid = liquidType.Guid; } + private void OnFilterChanged() + { + + + List<ICollectionView> collections = new List<ICollectionView>(); + collections.Add(Adapter.ApplicationDisplayPanelVersionsViewSource); + collections.Add(Adapter.ApplicationVersionsViewSource); + collections.Add(Adapter.EmbeddedSoftwareVersionsViewSource); + collections.Add(Adapter.EmbeddedFirmwareVersionsViewSource); + collections.Add(Adapter.ApplicationOsVersionsViewSource); + collections.Add(Adapter.ApplicationVersionsViewSource); + collections.Add(Adapter.DispensersViewSource); + collections.Add(Adapter.CartridgeTypesViewSource); + collections.Add(Adapter.LiquidTypesViewSource); + collections.Add(Adapter.MidTankTypesViewSource); + collections.Add(Adapter.HardwareVersionsViewSource); + + foreach (var collection in collections) + { + collection.Filter = (x) => + { + foreach (var prop in x.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(y => y.PropertyType == typeof(String))) + { + String value = prop.GetValue(x).ToStringSafe(); + + if (value != null) + { + return value.ToLower().Contains(Filter.ToLower()); + } + } + + return false; + }; + } + } + private async void Save() { _isSaving = true; @@ -156,10 +256,67 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels try { - using (_notification.PushTaskItem("Saving Configuration...")) + using (_notification.PushTaskItem("Saving Machine Configuration...")) { - await Configuration.SaveAsync(); - Configuration = Adapter.Configurations.SingleOrDefault(x => x.Guid == Configuration.Guid); + if (!Adapter.Machines.ToList().Exists(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower())) + { + if (!_notification.ShowQuestion("The specified machine serial number does not exist. Do you wish to create a new machine?")) + { + return; + } + else + { + Machine.Configuration = Configuration; + Configuration.CreationDate = DateTime.UtcNow; + Machine.ProductionDate = DateTime.UtcNow; + Machine.MachinesConfigurations.Add(new MachinesConfiguration() + { + Configuration = Configuration, + Machine = Machine, + }); + await Machine.SaveAsync(); + + Machine = Adapter.Machines.SingleOrDefault(x => x.Guid == Machine.Guid); + Configuration = Machine.Configuration.CloneConfiguration(); + } + } + else + { + foreach (var ids in Configuration.IdsPacks) + { + ids.Configuration = Configuration; + ids.ConfigurationGuid = Configuration.Guid; + } + + var machine = Adapter.Machines.Single(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower()); + + //Set 'Real machine' parameters... + + bool add_history = History.Count == 0 || History.First().Name != Configuration.Name; + + machine.Name = Machine.Name; + machine.SerialNumber = Machine.SerialNumber; + machine.Configuration = Configuration; + machine.Organization = Machine.Organization; + + + if (add_history) + { + machine.MachinesConfigurations.Add(new MachinesConfiguration() + { + Configuration = Configuration, + Machine = machine + }); + } + + await machine.SaveAsync(); + + Machine = Adapter.Machines.SingleOrDefault(x => x.Guid == machine.Guid); + Configuration = Machine.Configuration.CloneConfiguration(); + } + + SetHistory(Machine); + Machine = Machine.CloneEntity(); } } catch (Exception ex) @@ -172,5 +329,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels InvalidateRelayCommands(); } } + + private void SetHistory(Machine machine) + { + History = machine.MachinesConfigurations.Select(x => x.Configuration).ToObservableCollection(); + History.Insert(0, machine.Configuration); + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml index 48b90aa6b..03a3e2636 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml @@ -79,16 +79,16 @@ <Grid Grid.Column="1"> <Grid.RowDefinitions> - <RowDefinition Height="89*"/> + <RowDefinition Height="90"/> <RowDefinition Height="631*"/> </Grid.RowDefinitions> - <Grid> - <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 10" Foreground="Silver" FontWeight="Bold">MACHINE DESIGNER</TextBlock> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 50 0"> - <StackPanel Orientation="Horizontal"> + <Grid ClipToBounds="False"> + <StackPanel> + <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">MACHINE DESIGNER</TextBlock> + <StackPanel Orientation="Horizontal" Margin="280 10 0 0"> <fa:ImageAwesome Icon="Key" Width="24" Height="24" Foreground="Silver"></fa:ImageAwesome> - <autoComplete:AutoCompleteTextBox FontSize="14" Margin="5 0 0 0" Width="200" materialDesign:HintAssist.Hint="Enter machine serial number" DisplayMember="SerialNumber" Provider="{StaticResource ResourceKey=MachinesProvider}" SelectedItem="{Binding Machine,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"> + <autoComplete:AutoCompleteTextBox FontSize="16" Width="300" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Enter serial number" DisplayMember="SerialNumber" Provider="{StaticResource ResourceKey=MachinesProvider}" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}"> <autoComplete:AutoCompleteTextBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding SerialNumber}"></TextBlock> @@ -100,17 +100,39 @@ </autoComplete:AutoCompleteTextBox> </StackPanel> </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 50 0"> + + </StackPanel> </Grid> - - <Viewbox MaxWidth="1200" Grid.RowSpan="2" > - <Grid> - <Image Source="../Images/machine-full-fx.png" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant"> + + <Viewbox MaxWidth="1200" Grid.Row="1" > + <Grid VerticalAlignment="Top"> + + <Image IsHitTestVisible="False" Source="../Images/machine-full-fx.png" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant"> <Image.Effect> <DropShadowEffect ShadowDepth="0" BlurRadius="20" Opacity="1" RenderingBias="Performance" Color="DimGray"></DropShadowEffect> </Image.Effect> </Image> - <Canvas> + <Canvas ClipToBounds="False" x:Name="canvas"> + + <Grid x:Name="hardwareGrid" Style="{StaticResource draggableGrid}" Width="118" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True" dragAndDrop:DragAndDropService.Drop="MachineDrop"> + <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.HardwareVersions.Name}"></Run> + <Run Text="{Binding Configuration.HardwareVersions.Version}"></Run> + </TextBlock> + </StackPanel> + </Border> + </Grid> + + <TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware</TextBlock> + <Grid Width="97" Height="90" Canvas.Left="431" Canvas.Top="-13"> + <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + </Grid> <TextBlock Canvas.Top="222" Canvas.Left="446" FontStyle="Italic" Foreground="Gray">Add IDS</TextBlock> <Grid Width="23" Height="20" Canvas.Top="231" Canvas.Left="414"> @@ -131,7 +153,7 @@ <materialDesign:PackIcon Kind="Minus" Width="24" Height="24"></materialDesign:PackIcon> </Button> - <Grid Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> + <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> <ListBox ItemsSource="{Binding Configuration.IdsPacks}" SelectedItem="{Binding SelectedIds}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> @@ -148,6 +170,10 @@ <ItemsControl.ItemTemplate> <DataTemplate> <Grid dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Drop="OnDropOnIdsPack"> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="30"/> + </Grid.RowDefinitions> <Grid.Style> <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> <Style.Triggers> @@ -200,6 +226,34 @@ </Rectangle> </Grid> </UniformGrid> + + <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> + <Grid.Style> + <Style TargetType="Grid"> + <Style.Triggers> + <DataTrigger Binding="{Binding CartridgeTypes}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="#FF252525"/> + <GradientStop Color="#FF838383" Offset="1"/> + </LinearGradientBrush> + </Border.Background> + </Border> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush Opacity="0.7"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidTypes.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Border.Background> + </Border> + </Grid> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> @@ -226,59 +280,60 @@ </Rectangle> </Grid> - <Grid Style="{StaticResource draggableGrid}" Width="100" Height="100" Canvas.Left="70" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True" dragAndDrop:DragAndDropService.Drop="OnEmbeddedDrop"> + <Grid x:Name="gridEmbedded" Style="{StaticResource draggableGrid}" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True" dragAndDrop:DragAndDropService.Drop="OnEmbeddedDrop"> <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image> </Grid> - <Grid Width="42" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="32" Canvas.Left="102" Canvas.Top="395"> + <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385"> <Grid.RowDefinitions> <RowDefinition Height="1*" /> <RowDefinition Height="1*" /> </Grid.RowDefinitions> - <TextBlock Padding="1" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap"> - <Run Text="{Binding Configuration.EmbeddedFirmwareVersions.Name}"></Run> - <Run></Run> - <Run Text="{Binding Configuration.EmbeddedFirmwareVersions.Version}"></Run> - </TextBlock> - <Rectangle IsHitTestVisible="False" Stroke="DimGray" Margin="1" StrokeThickness="1" StrokeDashArray="5" VerticalAlignment="Bottom"></Rectangle> - <TextBlock Padding="1" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="5" TextAlignment="Center" Grid.Row="1" TextWrapping="Wrap"> + + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock VerticalAlignment="Center" Padding="1" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersions.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersions.Version}"/></TextBlock> + </StackPanel> + <StackPanel Grid.Row="1" Orientation="Horizontal"> + <Image Source="../Images/embedded-software.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="1" IsHitTestVisible="False" VerticalAlignment="Center" Foreground="Gainsboro" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="14" Margin="0,6,0,1" Width="47"> <Run Text="{Binding Configuration.EmbeddedSoftwareVersions.Name}"></Run> - <Run></Run> <Run Text="{Binding Configuration.EmbeddedSoftwareVersions.Version}"></Run> - </TextBlock> + </TextBlock> + </StackPanel> </Grid> - <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel:</TextBlock> + <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel</TextBlock> <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279"> <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid> - <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware:</TextBlock> + <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware</TextBlock> <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158"> <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/> </Grid> - <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers:</TextBlock> + <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers</TextBlock> <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377"> <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid> - <TextBlock Canvas.Top="420" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Mid Tanks:</TextBlock> + <TextBlock Canvas.Top="420" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock> <Grid Width="53" Height="44" Canvas.Top="441" Canvas.Left="362"> <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid> - <Grid Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198" dragAndDrop:DragAndDropService.Drop="OnTabletDrop" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.DraggableBackground="#202020"> + <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198" dragAndDrop:DragAndDropService.Drop="OnTabletDrop" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.DraggableBackground="#151515"> <Grid.Style> <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> - <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="Background" Value="#2B2B2B"></Setter> <Style.Triggers> <Trigger Property="dragAndDrop:DragAndDropService.IsDraggableOver" Value="True"> - <Setter Property="Background" Value="#151515"></Setter> + <Setter Property="Background" Value="Black"></Setter> </Trigger> </Style.Triggers> </Style> @@ -286,18 +341,32 @@ <Grid.RowDefinitions> <RowDefinition Height="1*" /> <RowDefinition Height="1*" /> + <RowDefinition Height="1*" /> </Grid.RowDefinitions> - <TextBlock Padding="2" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + + <StackPanel> + <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> <Run Text="{Binding Configuration.ApplicationDisplayPanelVersions.Name}"></Run> - <Run></Run> <Run Text="{Binding Configuration.ApplicationDisplayPanelVersions.Version}"></Run> - </TextBlock> - <Rectangle IsHitTestVisible="False" Stroke="DimGray" Margin="5 5 5 5" StrokeThickness="1" StrokeDashArray="5" VerticalAlignment="Bottom"></Rectangle> - <TextBlock Padding="2" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" Grid.Row="1" TextWrapping="Wrap"> + </TextBlock> + </StackPanel> + + <StackPanel Grid.Row="2" > + <Image Source="../Images/app.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> <Run Text="{Binding Configuration.ApplicationVersions.Name}"></Run> - <Run></Run> <Run Text="{Binding Configuration.ApplicationVersions.Version}"></Run> - </TextBlock> + </TextBlock> + </StackPanel> + + <StackPanel Grid.Row="1" > + <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.ApplicationOsVersions.Name}"></Run> + <Run Text="{Binding Configuration.ApplicationOsVersions.Version}"></Run> + </TextBlock> + </StackPanel> </Grid> </Canvas> </Grid> @@ -343,238 +412,362 @@ <Grid Grid.Column="1"> <Grid.RowDefinitions> - <RowDefinition Height="1*"/> - <RowDefinition Height="60"/> + <RowDefinition/> + <RowDefinition Height="70"/> </Grid.RowDefinitions> <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> <Grid> - <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> - <StackPanel> - <Expander HorizontalAlignment="Stretch" Header="Dispensers" IsExpanded="True"> - <ListBox ItemsSource="{Binding Adapter.DispensersViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/injection.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding DispenserTypes.Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray" Margin="0 2 0 0"><Run Text="{Binding SerialNumber}"></Run></TextBlock> + <StackPanel> + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}" Padding="20 10"> + <StackPanel> + <TextBlock Text="MACHINE CONFIGURATION" Foreground="Gray" FontWeight="Bold" FontStyle="Italic" FontSize="16"></TextBlock> + + <TextBlock Margin="0 10 0 0" FontSize="10" Foreground="Gray">Serial Number</TextBlock> + <TextBox Text="{Binding Machine.SerialNumber,UpdateSourceTrigger=PropertyChanged}"></TextBox> + + <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Machine Name</TextBlock> + <TextBox Text="{Binding Machine.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox> + + <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Machine Version</TextBlock> + <ComboBox ItemsSource="{Binding Adapter.MachineVersions}" SelectedItem="{Binding Machine.MachineVersions}" DisplayMemberPath="Name"></ComboBox> + + <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Organization</TextBlock> + <ComboBox ItemsSource="{Binding Adapter.Organizations}" SelectedItem="{Binding Machine.Organization}" DisplayMemberPath="Name"></ComboBox> + + <UniformGrid Columns="2" Margin="0 15 0 0"> + <TextBlock FontSize="10" Foreground="Gray" VerticalAlignment="Center">Enable Synchronization</TextBlock> + <ToggleButton HorizontalAlignment="Right"></ToggleButton> + </UniformGrid> + + <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Configuration Name</TextBlock> + <TextBox Text="{Binding Configuration.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </StackPanel> + </materialDesign:Card> + + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> + <Expander HorizontalAlignment="Stretch" Header="Configuration History"> + <ListBox ItemsSource="{Binding History}" HorizontalContentAlignment="Stretch" SelectedItem="{Binding SelectedHistoryConfiguration}"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <materialDesign:PackIcon Kind="Clock" Width="24" Height="24" VerticalAlignment="Center"></materialDesign:PackIcon> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray" Margin="0 2 0 0"><Run Text="{Binding CreationDate}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Cartridges"> - <ListBox ItemsSource="{Binding Adapter.CartridgeTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/cartridge.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + </StackPanel> + </materialDesign:Card> + + <materialDesign:Card Margin="5,10,5,0" Padding="10" Background="{DynamicResource MaterialDesignBackground}"> + <DockPanel> + <materialDesign:PackIcon Kind="Magnify" Width="28" Height="28"></materialDesign:PackIcon> + <TextBox Margin="5 0 0 0" materialDesign:HintAssist.Hint="Search Component..." Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </DockPanel> + </materialDesign:Card> + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> + <Expander HorizontalAlignment="Stretch" Header="Dispensers"> + <ListBox ItemsSource="{Binding Adapter.DispensersViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/injection.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding DispenserTypes.Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray" Margin="0 2 0 0"><Run Text="{Binding SerialNumber}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Mid Tanks"> - <ListBox ItemsSource="{Binding Adapter.MidTankTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tank.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Cartridges"> + <ListBox ItemsSource="{Binding Adapter.CartridgeTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/cartridge.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Liquids"> - <ListBox ItemsSource="{Binding Adapter.LiquidTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/liquid.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - <Rectangle Height="5" Width="170"> - <Rectangle.Fill> - <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> - </Rectangle.Fill> - </Rectangle> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Mid Tanks"> + <ListBox ItemsSource="{Binding Adapter.MidTankTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tank.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Touch Panels"> - <ListBox ItemsSource="{Binding Adapter.ApplicationDisplayPanelVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tablet.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Liquids"> + <ListBox ItemsSource="{Binding Adapter.LiquidTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/liquid.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Height="5" Width="170"> + <Rectangle.Fill> + <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> + </Rectangle.Fill> + </Rectangle> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Application Versions"> - <ListBox ItemsSource="{Binding Adapter.ApplicationVersions}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/app.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Touch Panels"> + <ListBox ItemsSource="{Binding Adapter.ApplicationDisplayPanelVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tablet.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Embedded Firmware Versions"> - <ListBox ItemsSource="{Binding Adapter.EmbeddedFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="OS Versions"> + <ListBox ItemsSource="{Binding Adapter.ApplicationOsVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/android.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander IsExpanded="True" HorizontalAlignment="Stretch" Header="Embedded Software Versions"> - <ListBox ItemsSource="{Binding Adapter.EmbeddedSoftwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded-software.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Application Versions"> + <ListBox ItemsSource="{Binding Adapter.ApplicationVersions}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/app.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - </StackPanel> - </materialDesign:Card> + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Embedded Firmware Versions"> + <ListBox ItemsSource="{Binding Adapter.EmbeddedFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Embedded Software Versions"> + <ListBox ItemsSource="{Binding Adapter.EmbeddedSoftwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded-software.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Hardware Versions"> + <ListBox ItemsSource="{Binding Adapter.HardwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/hardware.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + </StackPanel> + </materialDesign:Card> + </StackPanel> </Grid> </ScrollViewer> <Grid Grid.Row="1" Margin="10"> - <Button Height="40" Command="{Binding SaveCommand}">SAVE</Button> + <Button Height="50" Command="{Binding SaveCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Width="24" Height="24" VerticalAlignment="Center" Kind="ContentSave"></materialDesign:PackIcon> + <TextBlock FontSize="18" Margin="10 0 0 0" VerticalAlignment="Center">SAVE</TextBlock> + </StackPanel> + </Button> </Grid> </Grid> </Grid> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs index ebf45624d..7c2a38401 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs @@ -10,6 +10,7 @@ using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; +using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; @@ -25,15 +26,54 @@ namespace Tango.MachineStudio.MachineDesigner.Views public partial class MainView : UserControl { private MainViewVM _vm; + private Rectangle _highlightRect; + private bool _highlightShown; + private DoubleAnimation _highlightAnimation; public MainView() { InitializeComponent(); DraggingSurface = dragSufrace; - this.Loaded += (x, y) => + this.Loaded += (x, y) => { _vm = DataContext as MainViewVM; }; + + DragAndDropService.DragStarted += DragAndDropService_DragStarted; + DragAndDropService.DragEnded += DragAndDropService_DragEnded; + + _highlightRect = new Rectangle(); + _highlightRect.IsHitTestVisible = false; + _highlightRect.Stroke = Application.Current.Resources["AccentColorBrush"] as Brush; + _highlightRect.StrokeThickness = 2; + _highlightRect.StrokeDashArray = new DoubleCollection(new double[] { 3, 3, 3, 3 }); + } + + private void DragAndDropService_DragEnded(object sender, FrameworkElement e) + { + canvas.Children.Remove(_highlightRect); + _highlightShown = false; + _highlightRect.BeginAnimation(Rectangle.OpacityProperty, null); + } + + private void DragAndDropService_DragStarted(object sender, FrameworkElement e) + { + if (e.DataContext is HardwareVersion) + { + SetHighlightRegion(hardwareGrid); + } + else if (e.DataContext is ApplicationVersion || e.DataContext is ApplicationOsVersion || e.DataContext is ApplicationDisplayPanelVersion) + { + SetHighlightRegion(gridTablet); + } + else if (e.DataContext is EmbeddedFirmwareVersion || e.DataContext is EmbeddedSoftwareVersion) + { + SetHighlightRegion(gridEmbedded); + } + else if (e.DataContext is Dispenser || e.DataContext is Cartridge || e.DataContext is LiquidType || e.DataContext is MidTankType) + { + SetHighlightRegion(gridIds); + } } public DraggingSurface DraggingSurface @@ -74,6 +114,10 @@ namespace Tango.MachineStudio.MachineDesigner.Views { _vm.DropApplicationVersion(e.Draggable.DataContext as ApplicationVersion); } + else if (e.Draggable.DataContext is ApplicationOsVersion) + { + _vm.DropApplicationOsVersion(e.Draggable.DataContext as ApplicationOsVersion); + } } private void OnEmbeddedDrop(object sender, DropEventArgs e) @@ -87,5 +131,33 @@ namespace Tango.MachineStudio.MachineDesigner.Views _vm.DropEmbeddedSoftware(e.Draggable.DataContext as EmbeddedSoftwareVersion); } } + + private void MachineDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is HardwareVersion) + { + _vm.DropHardwareVersion(e.Draggable.DataContext as HardwareVersion); + } + } + + private void SetHighlightRegion(FrameworkElement element) + { + if (!_highlightShown) + { + _highlightRect.Width = element.Width; + _highlightRect.Height = element.Height; + Canvas.SetLeft(_highlightRect, Canvas.GetLeft(element)); + Canvas.SetTop(_highlightRect, Canvas.GetTop(element)); + canvas.Children.Add(_highlightRect); + _highlightShown = true; + _highlightAnimation = new DoubleAnimation(); + _highlightAnimation.From = 0; + _highlightAnimation.To = 1; + _highlightAnimation.Duration = TimeSpan.FromSeconds(0.2); + _highlightAnimation.AutoReverse = true; + _highlightAnimation.RepeatBehavior = RepeatBehavior.Forever; + _highlightRect.BeginAnimation(Rectangle.OpacityProperty, _highlightAnimation); + } + } } } |
