aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs89
1 files changed, 89 insertions, 0 deletions
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;
+ }
+ }
}
}