aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-03 12:03:55 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-03 12:03:55 +0300
commitc9d3c1a7408f6f7a4814c1a8f5cf58a2d13e1694 (patch)
tree3b92b537099625fd2d29a4e08378194c3c62f3c4 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer
parent5ab2e8a2edf1ce487976da347a5e03d18ff307b1 (diff)
downloadTango-c9d3c1a7408f6f7a4814c1a8f5cf58a2d13e1694.tar.gz
Tango-c9d3c1a7408f6f7a4814c1a8f5cf58a2d13e1694.zip
Machine Studio.
Implemented upload hardware configuration from connected machine view. Implemented process parameters dragging through developer module settings :/
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModuleSettings.cs14
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml182
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs89
3 files changed, 195 insertions, 90 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModuleSettings.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModuleSettings.cs
index 73d979662..5e0e6d838 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModuleSettings.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModuleSettings.cs
@@ -3,14 +3,28 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Entities;
using Tango.Settings;
namespace Tango.MachineStudio.Developer
{
public class DeveloperModuleSettings : SettingsBase
{
+ public class ParameterIndex
+ {
+ public String Name { get; set; }
+ public int Index { get; set; }
+ }
+
public String LastSelectedMachineGuid { get; set; }
public String LastSelectedJobGuid { get; set; }
+
+ public List<ParameterIndex> ProcessParametersIndices { get; set; }
+
+ public DeveloperModuleSettings()
+ {
+ ProcessParametersIndices = new List<ParameterIndex>();
+ }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml
index 258750800..585a0cb6b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml
@@ -1252,102 +1252,104 @@
</Border.Style>
<Grid>
<StackPanel>
- <DockPanel>
- <TextBox materialDesign:HintAssist.Hint="Table Name" DockPanel.Dock="Top" Text="{Binding Name}"></TextBox>
- <WrapPanel Orientation="Vertical" Margin="0 5 0 0">
- <WrapPanel.Resources>
- <Style TargetType="TextBlock">
- <Setter Property="FontSize" Value="10"></Setter>
- <Setter Property="Foreground" Value="#7A7A7A"></Setter>
- <Setter Property="Margin" Value="0 5 0 5"></Setter>
- <Setter Property="MinWidth" Value="80"></Setter>
- </Style>
+ <DockPanel>
+ <TextBox materialDesign:HintAssist.Hint="Table Name" DockPanel.Dock="Top" Text="{Binding Name}"></TextBox>
+ <WrapPanel Orientation="Vertical" Margin="0 5 0 0">
+ <WrapPanel.Resources>
+ <Style TargetType="TextBlock">
+ <Setter Property="FontSize" Value="10"></Setter>
+ <Setter Property="Foreground" Value="#7A7A7A"></Setter>
+ <Setter Property="Margin" Value="0 5 0 5"></Setter>
+ <Setter Property="MinWidth" Value="80"></Setter>
+ </Style>
- <Style TargetType="mahapps:NumericUpDown">
- <Setter Property="FontFamily" Value="{StaticResource digital-7}"></Setter>
- </Style>
+ <Style TargetType="mahapps:NumericUpDown">
+ <Setter Property="FontFamily" Value="{StaticResource digital-7}"></Setter>
+ </Style>
- <Style TargetType="ContentControl">
- <!--<Setter Property="FontFamily" Value="digital-7"></Setter>-->
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ContentControl">
- <Grid Width="97" FlowDirection="LeftToRight">
- <Border>
- <Border.Style>
- <Style TargetType="Border">
- <Setter Property="BorderBrush" Value="Gainsboro"></Setter>
- <Setter Property="BorderThickness" Value="1"></Setter>
- <Setter Property="Padding" Value="2"></Setter>
- <Setter Property="Margin" Value="4"></Setter>
- <Setter Property="CornerRadius" Value="3"></Setter>
- </Style>
- </Border.Style>
- <ContentPresenter Content="{TemplateBinding Content}"></ContentPresenter>
- </Border>
+ <Style TargetType="ContentControl">
+ <!--<Setter Property="FontFamily" Value="digital-7"></Setter>-->
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="ContentControl">
+ <Grid Width="97">
+ <Border>
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="BorderBrush" Value="Gainsboro"></Setter>
+ <Setter Property="BorderThickness" Value="1"></Setter>
+ <Setter Property="Padding" Value="2"></Setter>
+ <Setter Property="Margin" Value="4"></Setter>
+ <Setter Property="CornerRadius" Value="3"></Setter>
+ </Style>
+ </Border.Style>
+ <ContentPresenter Content="{TemplateBinding Content}"></ContentPresenter>
+ </Border>
- <materialDesign:PackIcon HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0 0 0 0" Width="12" Height="12" Kind="Settings"></materialDesign:PackIcon>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
+ <materialDesign:PackIcon HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0 0 0 0" Width="12" Height="12" Kind="Settings"></materialDesign:PackIcon>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
- </WrapPanel.Resources>
- <editors:ParameterizedEditor ParameterizedObject="{Binding}">
- <editors:ParameterizedEditor.ItemsPanel>
- <ItemsPanelTemplate>
- <WrapPanel IsItemsHost="True" Orientation="Horizontal" FlowDirection="RightToLeft" />
- </ItemsPanelTemplate>
- </editors:ParameterizedEditor.ItemsPanel>
- <editors:ParameterizedEditor.DoubleTemplate>
- <DataTemplate>
- <ContentControl>
- <StackPanel>
- <TextBlock Margin="0 5 0 5" TextAlignment="Right" Text="{Binding Name}" FontSize="10"></TextBlock>
- <mahapps:NumericUpDown FontSize="16" Minimum="0" Margin="0 0 5 0" HideUpDownButtons="True" HorizontalContentAlignment="Center" Maximum="10000" StringFormat="0.0" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" Value="{Binding Value,Mode=TwoWay}"></mahapps:NumericUpDown>
- </StackPanel>
- </ContentControl>
- </DataTemplate>
- </editors:ParameterizedEditor.DoubleTemplate>
- </editors:ParameterizedEditor>
- </WrapPanel>
- </DockPanel>
+ </WrapPanel.Resources>
+ <editors:ParameterizedEditor ParameterizedObject="{Binding}" GeneratingItems="ParameterizedEditor_GeneratingItems">
+ <editors:ParameterizedEditor.ItemsPanel>
+ <ItemsPanelTemplate>
+ <WrapPanel IsItemsHost="True" Orientation="Horizontal" />
+ </ItemsPanelTemplate>
+ </editors:ParameterizedEditor.ItemsPanel>
+ <editors:ParameterizedEditor.DoubleTemplate>
+ <DataTemplate>
+ <Grid Background="Transparent" Style="{StaticResource draggableDroppableGrid}" dragAndDrop:DragAndDropService.Drop="OnProcessParameterDropped" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=editors:ParameterizedEditor},Path=DraggingSurface}">
+ <ContentControl>
+ <StackPanel>
+ <TextBlock IsHitTestVisible="False" Margin="0 5 0 5" Text="{Binding Name}" FontSize="10"></TextBlock>
+ <mahapps:NumericUpDown FontSize="16" Minimum="0" Margin="0 0 5 0" HideUpDownButtons="True" HorizontalContentAlignment="Center" Maximum="10000" StringFormat="0.0" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" Value="{Binding Value,Mode=TwoWay}"></mahapps:NumericUpDown>
+ </StackPanel>
+ </ContentControl>
+ </Grid>
+ </DataTemplate>
+ </editors:ParameterizedEditor.DoubleTemplate>
+ </editors:ParameterizedEditor>
+ </WrapPanel>
+ </DockPanel>
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="5" Visibility="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected,Converter={StaticResource BooleanToVisibilityConverter}}">
- <TextBlock Text="Active" FontWeight="Bold" FontStyle="Italic" FontSize="13" VerticalAlignment="Center"></TextBlock>
- <materialDesign:PackIcon Foreground="#90E990" Kind="CheckboxBlankCircle" VerticalAlignment="Center" Margin="5 0 0 0">
- <materialDesign:PackIcon.Style>
- <Style TargetType="materialDesign:PackIcon">
- <Setter Property="Opacity" Value="0"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected,FallbackValue=False}" Value="True">
- <DataTrigger.EnterActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01" RepeatBehavior="Forever">
- <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="1" />
- <DiscreteDoubleKeyFrame KeyTime="00:00:0.5" Value="0" />
- </DoubleAnimationUsingKeyFrames>
- </Storyboard>
- </BeginStoryboard>
- </DataTrigger.EnterActions>
- <DataTrigger.ExitActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01">
- <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="0" />
- </DoubleAnimationUsingKeyFrames>
- </Storyboard>
- </BeginStoryboard>
- </DataTrigger.ExitActions>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </materialDesign:PackIcon.Style>
- </materialDesign:PackIcon>
- </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="5" Visibility="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Text="Active" FontWeight="Bold" FontStyle="Italic" FontSize="13" VerticalAlignment="Center"></TextBlock>
+ <materialDesign:PackIcon Foreground="#90E990" Kind="CheckboxBlankCircle" VerticalAlignment="Center" Margin="5 0 0 0">
+ <materialDesign:PackIcon.Style>
+ <Style TargetType="materialDesign:PackIcon">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected,FallbackValue=False}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01" RepeatBehavior="Forever">
+ <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="1" />
+ <DiscreteDoubleKeyFrame KeyTime="00:00:0.5" Value="0" />
+ </DoubleAnimationUsingKeyFrames>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01">
+ <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="0" />
+ </DoubleAnimationUsingKeyFrames>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </materialDesign:PackIcon.Style>
+ </materialDesign:PackIcon>
+ </StackPanel>
</StackPanel>
</Grid>
</Border>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
index 044046450..b48e91f31 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
@@ -19,6 +19,10 @@ using Tango.BL.Entities;
using Tango.MachineStudio.Developer.Converters;
using Tango.MachineStudio.Developer.ViewModels;
using Tango.BL;
+using Tango.Settings;
+using Tango.Core;
+using Tango.SharedUI.Editors;
+using static Tango.MachineStudio.Developer.DeveloperModuleSettings;
namespace Tango.MachineStudio.Developer.Views
{
@@ -153,5 +157,90 @@ namespace Tango.MachineStudio.Developer.Views
{
e.Handled = true;
}
+
+ private void ParameterizedEditor_GeneratingItems(object sender, SharedUI.Editors.ParameterizedEditor.GeneratingItemsEventArgs e)
+ {
+ var settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>();
+
+ List<ParameterItem> items = e.Result.ToList();
+
+ if (settings.ProcessParametersIndices.Count > 0)
+ {
+ items.Clear();
+
+ foreach (var item in settings.ProcessParametersIndices.OrderBy(x => x.Index))
+ {
+ var p = e.Source.SingleOrDefault(x => x.Name == item.Name);
+
+ if (p != null)
+ {
+ items.Add(p);
+ }
+ }
+ }
+ else
+ {
+ ProcessParametersTable p = new ProcessParametersTable();
+ var pp = p.CreateParametersCollection(Core.ParameterItemMode.Binding);
+
+ foreach (var item in pp)
+ {
+ settings.ProcessParametersIndices.Add(new ParameterIndex()
+ {
+ Index = pp.IndexOf(item),
+ Name = item.Name
+ });
+ }
+
+ settings.Save();
+ }
+
+ e.Result = items;
+ }
+
+ private void OnProcessParameterDropped(object sender, DropEventArgs e)
+ {
+ ParameterItem draggedItem = e.Draggable.DataContext as ParameterItem;
+ ParameterItem droppedItem = e.Droppable.DataContext as ParameterItem;
+
+ if (draggedItem != null && droppedItem != null && draggedItem.ParameterizedObject == droppedItem.ParameterizedObject)
+ {
+ var settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>();
+
+ var parameters = draggedItem.ParameterizedObject.Parameters;
+
+ var draggedSettingItem = settings.ProcessParametersIndices.FirstOrDefault(x => x.Name == draggedItem.Name);
+ var droppedSettingItem = settings.ProcessParametersIndices.FirstOrDefault(x => x.Name == droppedItem.Name);
+
+ if (draggedSettingItem != null && droppedSettingItem != null)
+ {
+ if (draggedSettingItem.Index > droppedSettingItem.Index)
+ {
+ draggedSettingItem.Index = droppedSettingItem.Index - 1;
+ }
+ else
+ {
+ draggedSettingItem.Index = droppedSettingItem.Index + 1;
+ }
+
+ int index = 1;
+
+ foreach (var settingItem in settings.ProcessParametersIndices.OrderBy(x => x.Index))
+ {
+ settingItem.Index = index++;
+ }
+ }
+
+ settings.Save();
+ }
+
+ var editor = e.Draggable.FindAncestor<ParameterizedEditor>();
+
+ if (editor != null)
+ {
+ editor.ParameterizedObject = null;
+ editor.ParameterizedObject = draggedItem.ParameterizedObject;
+ }
+ }
}
}