aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Windows/ModuleWindow.xaml.cs
blob: 7ca06264564de0105fba8bc02bf9ff4d597056e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using MahApps.Metro.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Tango.MachineStudio.UI.ViewModels;

namespace Tango.MachineStudio.UI.Windows
{
    /// <summary>
    /// Interaction logic for ModuleWindow.xaml
    /// </summary>
    public partial class ModuleWindow : MetroWindow
    {
        public ModuleWindowVM ModuleContext
        {
            get { return (ModuleWindowVM)GetValue(ModuleContextProperty); }
            set { SetValue(ModuleContextProperty, value); }
        }
        public static readonly DependencyProperty ModuleContextProperty =
            DependencyProperty.Register("ModuleContext", typeof(ModuleWindowVM), typeof(ModuleWindow), new PropertyMetadata(null));

        public ModuleWindow()
        {
            InitializeComponent();
        }

        public ModuleWindow(MainViewVM mainViewVM, ModuleWindowVM moduleVM, FrameworkElement view) : this()
        {
            DataContext = mainViewVM;
            ModuleContext = moduleVM;
            grid.Children.Add(view);
        }
    }
}
{ 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); } } } }