diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-04-09 14:25:30 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-04-09 14:25:30 +0300 |
| commit | e8e2f174cc7dc1e6c183e855834982d12e92833c (patch) | |
| tree | ea8c5358d7e6928c513814c8619339f0c6790840 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs | |
| parent | f19e2e305d8baeafc30dde4fc0aa3fa37038869c (diff) | |
| parent | c1ed75027f069e204e52e48bfb610d2d225bbd72 (diff) | |
| download | Tango-e8e2f174cc7dc1e6c183e855834982d12e92833c.tar.gz Tango-e8e2f174cc7dc1e6c183e855834982d12e92833c.zip | |
mERGE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs new file mode 100644 index 000000000..edf53bbd2 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.Core.Commands; +using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.Logging.Views; +using Tango.SharedUI; + +namespace Tango.MachineStudio.Logging.ViewModels +{ + public class TimelineViewVM : ViewModel + { + private ObservableCollection<TimelineEventGroup> _timelineEventGroups; + public ObservableCollection<TimelineEventGroup> TimelineEventGroups + { + get { return _timelineEventGroups; } + set { _timelineEventGroups = value; RaisePropertyChangedAuto(); } + } + + private TimeSpan _timelineMaxTime; + public TimeSpan TimelineMaxTime + { + get { return _timelineMaxTime; } + set { _timelineMaxTime = value; RaisePropertyChangedAuto(); } + } + + private double _timelineScaleFactor; + public double TimelineScaleFactor + { + get { return _timelineScaleFactor; } + set + { + + if (value < 0.1) value = 0.1; + + _timelineScaleFactor = value; + RaisePropertyChangedAuto(); + } + } + + private TimeSpan _currentPosition; + + public TimeSpan CurrentPosition + { + get { return _currentPosition; } + set { _currentPosition = value; RaisePropertyChangedAuto(); } + } + + private bool _enableTimeMarker; + + public bool EnableTimeMarker + { + get { return _enableTimeMarker; } + set { _enableTimeMarker = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand<MachinesEvent> EventSelectedCommand { get; set; } + + + public TimelineViewVM(INotificationProvider notification) + { + TimelineScaleFactor = 10; + TimelineEventGroups = new ObservableCollection<TimelineEventGroup>(); + + EventSelectedCommand = new RelayCommand<MachinesEvent>((ev) => + { + notification.ShowModalDialog<EventDetailsViewVM, EventDetailsView>(new EventDetailsViewVM(ev), (x) => { }, () => { }); + }); + } + + public void Initialize(List<MachinesEvent> events) + { + TimelineEventGroups = new ObservableCollection<TimelineEventGroup>(); + + if (events != null && events.Count > 0) + { + foreach (var group in events.GroupBy(x => x.Group)) + { + TimelineEventGroup evGroup = new TimelineEventGroup(group.Key.ToString().ToWords()); + + foreach (var e in group) + { + evGroup.Events.Add(e); + } + + TimelineEventGroups.Add(evGroup); + } + + TimelineMaxTime = events.Max(x => x.DateTime) - events.Min(x => x.DateTime); + } + } + } +} |
