aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventDetailsViewVM.cs27
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/MainViewVM.cs51
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/TimelineViewVM.cs97
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);
+ }
+ }
+ }
+}