using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.PPC.Events.EventsViews; namespace Tango.PPC.Events.Converters { public class MachineEventToViewConverter : IValueConverter { private static Dictionary _eventViews = new Dictionary(); static MachineEventToViewConverter() { //Jobs _eventViews.Add(EventTypes.JOB_STARTED, typeof(JobEventView)); _eventViews.Add(EventTypes.JOB_ABORTED, typeof(JobEventView)); _eventViews.Add(EventTypes.JOB_COMPLETED, typeof(JobEventView)); _eventViews.Add(EventTypes.JOB_FAILED, typeof(JobFailedEventView)); //Thread Break _eventViews.Add(EventTypes.THREAD_BREAK, typeof(ThreadBreakView)); _eventViews.Add(EventTypes.THREAD_TENSION_CONTROL_FAILURE_FEEDER_DANCER, typeof(ThreadBreakView)); _eventViews.Add(EventTypes.THREAD_TENSION_CONTROL_FAILURE_PULLER_DANCER, typeof(ThreadBreakView)); _eventViews.Add(EventTypes.THREAD_TENSION_CONTROL_FAILURE_WINDER_DANCER, typeof(ThreadBreakView)); //BIT Failed _eventViews.Add(EventTypes.POWER_UP_BIT_FAILURE, typeof(BitFailedView)); } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { MachinesEvent ev = value as MachinesEvent; FrameworkElement view = null; if (ev != null) { if (_eventViews.ContainsKey(ev.Type)) { view = Activator.CreateInstance(_eventViews[ev.Type]) as FrameworkElement; } else { view = Activator.CreateInstance(); } return view; } else { return null; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }