diff options
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.cs | 89 |
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; + } + } } } |
