aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-26 11:07:32 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-26 11:07:32 +0300
commit3e4bec71b356231134ccb1b52d8faf264c57c6a1 (patch)
tree0cdd247af78fcd9b6c34bd85698f5cff44ed4e17 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels
parentaeb14d2d27e479a88cb638c91be77454d250e19b (diff)
downloadTango-3e4bec71b356231134ccb1b52d8faf264c57c6a1.tar.gz
Tango-3e4bec71b356231134ccb1b52d8faf264c57c6a1.zip
Working on new tech module tabs.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechTabVM.cs62
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs84
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)
{