aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-04-09 14:25:30 +0300
committerAvi Levkovich <avi@twine-s.com>2018-04-09 14:25:30 +0300
commite8e2f174cc7dc1e6c183e855834982d12e92833c (patch)
treeea8c5358d7e6928c513814c8619339f0c6790840 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters
parentf19e2e305d8baeafc30dde4fc0aa3fa37038869c (diff)
parentc1ed75027f069e204e52e48bfb610d2d225bbd72 (diff)
downloadTango-e8e2f174cc7dc1e6c183e855834982d12e92833c.tar.gz
Tango-e8e2f174cc7dc1e6c183e855834982d12e92833c.zip
mERGE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs30
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs37
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs52
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs27
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs32
5 files changed, 178 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs
new file mode 100644
index 000000000..cd4f60d4c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/DateIsInListToBooleanConverter.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.MachineStudio.Logging.ViewModels;
+
+namespace Tango.MachineStudio.Logging.Converters
+{
+ public class DateIsInListToBooleanConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values.Length < 2 || !(values[0] is DateTime) || !(values[1] is IEnumerable<DateTime>))
+ return false;
+
+ var date = (DateTime)values[0];
+ var dateList = (IEnumerable<DateTime>)values[1];
+
+ return dateList.ToList().Exists(x => x.ToLocalTime().ToShortDateString() == date.ToLocalTime().ToShortDateString());
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs
new file mode 100644
index 000000000..35df1723b
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/EventsToTimeRulerTicksConverter.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.MachineStudio.Logging.ViewModels;
+
+namespace Tango.MachineStudio.Logging.Converters
+{
+ public class EventsToTimeRulerTicksConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ ObservableCollection<TimelineEventGroup> groups = value as ObservableCollection<TimelineEventGroup>;
+
+ DateTime maxTime = groups.SelectMany(x => x.Events).Max(x => x.DateTime);
+ DateTime minTime = groups.SelectMany(x => x.Events).Min(x => x.DateTime);
+
+ List<DateTime> dates = new List<DateTime>();
+
+ for (DateTime time = minTime; time < maxTime; time = time.AddSeconds(1))
+ {
+ dates.Add(time);
+ }
+
+ return dates;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs
new file mode 100644
index 000000000..193a63ffc
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/MachineEventToXConverter.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.BL.Entities;
+using Tango.MachineStudio.Logging.Helpers;
+using Tango.MachineStudio.Logging.ViewModels;
+
+namespace Tango.MachineStudio.Logging.Converters
+{
+ public class MachineEventToXConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values.Length == 3)
+ {
+ MachinesEvent ev = values[0] as MachinesEvent;
+
+ if (ev != null)
+ {
+ ObservableCollection<TimelineEventGroup> groups = values[1] as ObservableCollection<TimelineEventGroup>;
+
+ if (groups.Count > 0)
+ {
+ double scale = (double)values[2];
+
+ DateTime maxTime = groups.SelectMany(x => x.Events).Max(x => x.DateTime);
+ DateTime minTime = groups.SelectMany(x => x.Events).Min(x => x.DateTime);
+
+ TimeSpan range = maxTime - minTime;
+ TimeSpan time = maxTime - ev.DateTime;
+
+ time = range - time;
+
+ return TimelineHelper.ConvertTimeToPixels(time, scale);
+ }
+ }
+ }
+
+ return 0.0;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs
new file mode 100644
index 000000000..66e888cc0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/SecondsToWidthConverter.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.MachineStudio.Logging.Helpers;
+
+namespace Tango.MachineStudio.Logging.Converters
+{
+ public class SecondsToWidthConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ double scale = (double)value;
+ double seconds = System.Convert.ToDouble(parameter.ToString());
+
+ return TimelineHelper.ConvertTimeToPixels(TimeSpan.FromSeconds(seconds), scale);
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs
new file mode 100644
index 000000000..c5f310d52
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Converters/TimeSpanToXConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.MachineStudio.Logging.Helpers;
+
+namespace Tango.MachineStudio.Logging.Converters
+{
+ public class TimeSpanToXConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values.Length == 2)
+ {
+ TimeSpan time = (TimeSpan)values[0];
+ double scale = (double)values[1];
+
+ return TimelineHelper.ConvertTimeToPixels(time, scale) + (parameter != null ? System.Convert.ToDouble(parameter) : 0);
+ }
+
+ return null;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}