diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-08 16:55:37 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-08 16:55:37 +0300 |
| commit | 17a77c30765fe8a0d3ca57a9ec60fb43b82432d2 (patch) | |
| tree | 54881e3de14aaef3ad5e699f28d903a11a024b57 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels | |
| parent | b3bc15a29d8fff24edc5bcd4576e18c9141f76a6 (diff) | |
| download | Tango-17a77c30765fe8a0d3ca57a9ec60fb43b82432d2.tar.gz Tango-17a77c30765fe8a0d3ca57a9ec60fb43b82432d2.zip | |
Implemented timeline events !
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels')
3 files changed, 133 insertions, 42 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventDetailsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventDetailsViewVM.cs new file mode 100644 index 000000000..0e3d19748 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventDetailsViewVM.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +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.SharedUI; + +namespace Tango.MachineStudio.Logging.ViewModels +{ + public class EventDetailsViewVM : DialogViewVM + { + public MachinesEvent Event { get; set; } + + public EventDetailsViewVM() + { + + } + + public EventDetailsViewVM(MachinesEvent ev) : this() + { + Event = ev; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs index 81b0a587c..e5121e709 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs @@ -13,6 +13,7 @@ using Tango.MachineStudio.Common.Messages; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Logging.Navigation; +using Tango.MachineStudio.Logging.Views; using Tango.SharedUI; namespace Tango.MachineStudio.Logging.ViewModels @@ -83,32 +84,12 @@ namespace Tango.MachineStudio.Logging.ViewModels set { _isRealTime = value; RaisePropertyChangedAuto(); OnSelectedDateChanged(); } } - 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 TimelineViewVM _timelineViewVM; - private double _timelineScaleFactor; - public double TimelineScaleFactor + public TimelineViewVM TimelineViewVM { - get { return _timelineScaleFactor; } - set - { - - if (value < 0.1) value = 0.1; - - _timelineScaleFactor = value; - RaisePropertyChangedAuto(); - } + get { return _timelineViewVM; } + set { _timelineViewVM = value; RaisePropertyChangedAuto(); } } public RelayCommand<MachinesEvent> DisplayTimelineCommand { get; set; } @@ -117,6 +98,8 @@ namespace Tango.MachineStudio.Logging.ViewModels public MainViewVM(INotificationProvider notification, IEventLogger eventLogger, IStudioApplicationManager application, LoggingNavigationManager navigation) { + TimelineViewVM = new TimelineViewVM(notification); + _navigation = navigation; _application = application; _notification = notification; @@ -124,8 +107,6 @@ namespace Tango.MachineStudio.Logging.ViewModels _realTimeEvents = new ObservableCollection<MachinesEvent>(); _eventLogger.NewLog += _eventLogger_NewLog; - TimelineScaleFactor = 10; - RegisterMessage<MachineConnectionChangedMessage>(OnMachineConnectionChanged); DisplayTimelineCommand = new RelayCommand<MachinesEvent>(DisplayTimeline); NavigateToEventsCommand = new RelayCommand(() => _navigation.NavigateTo(LoggingNavigationView.EventsView)); @@ -194,7 +175,7 @@ namespace Tango.MachineStudio.Logging.ViewModels { if (SelectedEvent != null && SelectedEvent.Type != BL.Enumerations.EventTypes.ApplicationStarted) { - _notification.ShowInfo(SelectedEvent.Description); + _notification.ShowModalDialog<EventDetailsViewVM, EventDetailsView>(new EventDetailsViewVM(SelectedEvent), (x) => { }, () => { }); } } @@ -203,21 +184,7 @@ namespace Tango.MachineStudio.Logging.ViewModels var events = Events.OrderBy(x => x.DateTime).SkipWhile(x => x != ev).Skip(1).TakeWhile(x => x.DateTime > ev.DateTime && x.Type != BL.Enumerations.EventTypes.ApplicationStarted).ToObservableCollection(); events.Insert(0, ev); - TimelineEventGroups = new ObservableCollection<TimelineEventGroup>(); - - 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); + TimelineViewVM.Initialize(events.ToList()); _navigation.NavigateTo(LoggingNavigationView.TimelineView); } 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); + } + } + } +} |
