diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-09-26 11:07:32 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-09-26 11:07:32 +0300 |
| commit | 3e4bec71b356231134ccb1b52d8faf264c57c6a1 (patch) | |
| tree | 0cdd247af78fcd9b6c34bd85698f5cff44ed4e17 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels | |
| parent | aeb14d2d27e479a88cb638c91be77454d250e19b (diff) | |
| download | Tango-3e4bec71b356231134ccb1b52d8faf264c57c6a1.tar.gz Tango-3e4bec71b356231134ccb1b52d8faf264c57c6a1.zip | |
Working on new tech module tabs.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels')
2 files changed, 124 insertions, 22 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechTabVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechTabVM.cs new file mode 100644 index 000000000..4e04a078c --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechTabVM.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Editors; +using Tango.SharedUI; + +namespace Tango.MachineStudio.Technician.ViewModels +{ + public class MachineTechTabVM : ViewModel + { + private ElementsEditor _editor; + + public ElementsEditor Editor + { + get { return _editor; } + set { _editor = value; RaisePropertyChangedAuto(); } + } + + private String _name; + /// <summary> + /// Gets or sets the name. + /// </summary> + public String Name + { + get { return _name; } + set { _name = value; RaisePropertyChangedAuto(); } + } + + private bool _isSelected; + /// <summary> + /// Gets or sets a value indicating whether this instance is selected. + /// </summary> + public bool IsSelected + { + get { return _isSelected; } + set { _isSelected = value; RaisePropertyChangedAuto(); } + } + + + private ObservableCollection<IElementEditor> _elements; + /// <summary> + /// Gets or sets the visual elements. + /// </summary> + public ObservableCollection<IElementEditor> Elements + { + get { return _elements; } + set { _elements = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Initializes a new instance of the <see cref="MachineTechTabVM"/> class. + /// </summary> + public MachineTechTabVM() + { + Name = "untitled"; + Elements = new ObservableCollection<IElementEditor>(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index 6a9725106..85a431594 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -61,14 +61,35 @@ namespace Tango.MachineStudio.Technician.ViewModels #region Properties - private ObservableCollection<IElementEditor> _elements; + private ObservableCollection<MachineTechTabVM> _tabs; /// <summary> - /// Gets or sets the visual elements. + /// Gets or sets the elements tabs. /// </summary> - public ObservableCollection<IElementEditor> Elements + public ObservableCollection<MachineTechTabVM> Tabs { - get { return _elements; } - set { _elements = value; RaisePropertyChangedAuto(); } + get { return _tabs; } + set { _tabs = value; RaisePropertyChangedAuto(); } + } + + private MachineTechTabVM _selectedTab; + /// <summary> + /// Gets or sets the selected tab. + /// </summary> + public MachineTechTabVM SelectedTab + { + get { return _selectedTab; } + set + { + _selectedTab = value; + RaisePropertyChangedAuto(); + + foreach (var tab in Tabs.Where(x => x != _selectedTab)) + { + tab.IsSelected = false; + } + + _selectedTab.IsSelected = true; + } } private ObservableCollection<TechItem> _availableTechItems; @@ -223,6 +244,10 @@ namespace Tango.MachineStudio.Technician.ViewModels /// <param name="notificationProvider">The notification provider.</param> public MachineTechViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IEventLogger eventLogger) { + Tabs = new ObservableCollection<MachineTechTabVM>(); + Tabs.Add(new MachineTechTabVM() { IsSelected = true }); + SelectedTab = Tabs.First(); + _settings = SettingsManager.Default.GetOrCreate<TechnicianModuleSettings>(); _single_graphs_recordings = new List<SingleTechRecordingData<SingleGraphItem>>(); @@ -242,7 +267,6 @@ namespace Tango.MachineStudio.Technician.ViewModels ApplicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; Adapter = ObservablesStaticCollections.Instance; - Elements = new ObservableCollection<IElementEditor>(); OpenProjectCommand = new RelayCommand(OpenProject); SaveAsProjectCommand = new RelayCommand(SaveAsProject); @@ -325,7 +349,7 @@ namespace Tango.MachineStudio.Technician.ViewModels lock (_elementsLock) { - var elements = Elements.ToList(); + var elements = Tabs.SelectMany(x => x.Elements).ToList(); foreach (var item in elements.Select(x => x.HostedElement as TechItem)) { @@ -680,7 +704,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { TechItem item = Activator.CreateInstance(typeof(Tech), new object[] { value }) as TechItem; IElementEditor editor = Activator.CreateInstance(typeof(Editor), new object[] { ((Tech)item), bounds }) as IElementEditor; - Elements.Add(editor); + SelectedTab.Elements.Add(editor); return (Editor)editor; } @@ -693,7 +717,7 @@ namespace Tango.MachineStudio.Technician.ViewModels private Editor CreateElement<Editor>(TechItem item) where Editor : IElementEditor { IElementEditor editor = Activator.CreateInstance(typeof(Editor), new object[] { item, item.GetBounds() }) as IElementEditor; - Elements.Add(editor); + SelectedTab.Elements.Add(editor); return (Editor)editor; } @@ -1555,18 +1579,26 @@ namespace Tango.MachineStudio.Technician.ViewModels { using (_notification.PushTaskItem("Loading technician project file...")) { - Elements.Clear(); + Tabs.Clear(); _singleControllers.Clear(); _multiControllers.Clear(); - foreach (var item in project.Items) + foreach (var tab in project.Tabs) { - if (item is MotorGroupItem) + MachineTechTabVM t = new MachineTechTabVM(); + t.Name = tab.Name; + t.IsSelected = true; + Tabs.Add(t); + + foreach (var item in tab.Items) { - (item as MotorGroupItem).TechMotors = ObservablesStaticCollections.Instance.HardwareMotorTypes.Where(x => (item as MotorGroupItem).ItemsGuids.Contains(x.Guid)).ToObservableCollection(); - } + if (item is MotorGroupItem) + { + (item as MotorGroupItem).TechMotors = ObservablesStaticCollections.Instance.HardwareMotorTypes.Where(x => (item as MotorGroupItem).ItemsGuids.Contains(x.Guid)).ToObservableCollection(); + } - AddTechItem(item); + AddTechItem(item); + } } } } @@ -1623,16 +1655,24 @@ namespace Tango.MachineStudio.Technician.ViewModels { MachineTechViewProject project = new MachineTechViewProject(); - foreach (var element in Elements) + foreach (var tab in Tabs) { - if (element.HostedElement is MotorGroupItem) + MachineTechViewProjectTab pTab = new MachineTechViewProjectTab(); + pTab.Name = tab.Name; + + foreach (var element in tab.Elements) { - var group = element.HostedElement as MotorGroupItem; - group.ItemsGuids = group.TechMotors.Select(x => x.Guid).ToList(); + if (element.HostedElement is MotorGroupItem) + { + var group = element.HostedElement as MotorGroupItem; + group.ItemsGuids = group.TechMotors.Select(x => x.Guid).ToList(); + } + + (element.HostedElement as TechItem).SetBounds(element.GetBounds()); + pTab.Items.Add(element.HostedElement as TechItem); } - (element.HostedElement as TechItem).SetBounds(element.GetBounds()); - project.Items.Add(element.HostedElement as TechItem); + project.Tabs.Add(pTab); } return project; @@ -1673,7 +1713,7 @@ namespace Tango.MachineStudio.Technician.ViewModels private void SyncHardwareConfiguration() { - var elements = Elements.ToList(); + var elements = Tabs.SelectMany(x => x.Elements).ToList(); if (MachineOperator != null && MachineOperator.CurrentHardwareConfiguration != null) { |
