using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; using System.Xml.Serialization; using Tango.Core.Commands; using Tango.BL.Entities; using Tango.SharedUI.Helpers; using System.Collections.ObjectModel; namespace Tango.MachineStudio.Technician.TechItems { /// /// Represents a winder controller item. /// /// [TechItem(14, false)] public class WinderItem : TechItem { private static List _winderConfigurations; /// /// Gets or sets the winder configurations. /// public static List WinderConfigurations { get { return _winderConfigurations; } set { _winderConfigurations = value; } } static WinderItem() { WinderConfigurations = new List(); foreach (var winderType in BL.ObservablesStaticCollections.Instance.HardwareWinderTypes) { WinderConfigurations.Add(new HardwareWinder() { HardwareWinderType = winderType }); } } private HardwareWinderType _hardwareWinderType; /// /// Gets or sets the type of the hardware winder. /// [XmlIgnore] public HardwareWinderType HardwareWinderType { get { return _hardwareWinderType; } set { _hardwareWinderType = value; RaisePropertyChangedAuto(); TechName = _hardwareWinderType != null ? _hardwareWinderType.Description : null; ItemGuid = value != null ? value.Guid : null; if (_hardwareWinderType != null) { HardwareWinder = WinderConfigurations.SingleOrDefault(x => x.HardwareWinderType == _hardwareWinderType); } } } private HardwareWinder _hardwareWinder; /// /// Gets or sets the hardware winder. /// [XmlIgnore] public HardwareWinder HardwareWinder { get { return _hardwareWinder; } set { _hardwareWinder = value; RaisePropertyChangedAuto(); } } /// /// Initializes a new instance of the class. /// public WinderItem() : base() { Name = "Winder"; Description = "Winder Controller"; Image = ResourceHelper.GetImageFromResources("Images/winder-small.png"); Color = Colors.White; HardwareWinder = new HardwareWinder(); } /// /// Initializes a new instance of the class. /// /// Type of the winder. public WinderItem(HardwareWinderType winderType) : this() { HardwareWinderType = winderType; } /// /// Clones this instance. /// /// public override TechItem Clone() { WinderItem cloned = base.Clone() as WinderItem; cloned.HardwareWinderType = HardwareWinderType; return cloned; } } }