aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs
blob: 1115c6dbfda3e7deaad519c7c0d0a96326118902 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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
{
    /// <summary>
    /// Represents a dancer controller item.
    /// </summary>
    /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" />
    [TechItem(15)]
    public class DancerItem : TechItem
    {
        private static List<HardwareDancer> _dancerConfigurations;
        /// <summary>
        /// Gets or sets the winder configurations.
        /// </summary>
        public static List<HardwareDancer> DancerConfigurations
        {
            get { return _dancerConfigurations; }
            set { _dancerConfigurations = value; }
        }

        static DancerItem()
        {
            DancerConfigurations = new List<HardwareDancer>();

            foreach (var winderType in BL.ObservablesStaticCollections.Instance.HardwareDancerTypes)
            {
                DancerConfigurations.Add(new HardwareDancer() { HardwareDancerType = winderType });
            }
        }

        private HardwareDancerType _hardwareDancerType;
        /// <summary>
        /// Gets or sets the type of the hardware winder.
        /// </summary>
        [XmlIgnore]
        public HardwareDancerType HardwareDancerType
        {
            get { return _hardwareDancerType; }
            set
            {
                _hardwareDancerType = value; RaisePropertyChangedAuto(); TechName = _hardwareDancerType != null ? _hardwareDancerType.Description : null; ItemGuid = value != null ? value.Guid : null;

                if (_hardwareDancerType != null)
                {
                    HardwareDancer = DancerConfigurations.SingleOrDefault(x => x.HardwareDancerType == _hardwareDancerType);
                }
            }
        }

        private HardwareDancer _hardwareDancer;
        /// <summary>
        /// Gets or sets the hardware winder.
        /// </summary>
        [XmlIgnore]
        public HardwareDancer HardwareDancer
        {
            get { return _hardwareDancer; }
            set { _hardwareDancer = value; RaisePropertyChangedAuto(); }
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="DancerItem"/> class.
        /// </summary>
        public DancerItem() : base()
        {
            Name = "Dancer";
            Description = "Dancer Controller";
            Image = ResourceHelper.GetImageFromResources("Images/dancer-small.png");
            Color = Colors.White;
            HardwareDancer = new HardwareDancer();
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="DancerItem"/> class.
        /// </summary>
        /// <param name="winderType">Type of the winder.</param>
        public DancerItem(HardwareDancerType winderType) : this()
        {
            HardwareDancerType = winderType;
        }

        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns></returns>
        public override TechItem Clone()
        {
            DancerItem cloned = base.Clone() as DancerItem;
            cloned.HardwareDancerType = HardwareDancerType;
            return cloned;
        }
    }
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Tango Observables Generator
// 
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. Do not modify!
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using Newtonsoft.Json;
using System.Linq;
using Tango.DAL.Remote.DB;
using Tango.Core;

namespace Tango.BL.Entities
{
    [Table("RMLS")]
    public abstract class RmlBase : ObservableEntity<Rml>
    {

        public event EventHandler<String> NameChanged;

        public event EventHandler<String> ManufacturerChanged;

        public event EventHandler<Int32> CodeChanged;

        public event EventHandler<Double> WhitePointLChanged;

        public event EventHandler<Double> WhitePointAChanged;

        public event EventHandler<Double> WhitePointBChanged;

        public event EventHandler<Double> FiberSizeChanged;

        public event EventHandler<Int32> NumberOfFibersChanged;

        public event EventHandler<Int32> PliesPerFiberChanged;

        public event EventHandler<Int32> PliesPerThreadChanged;

        public event EventHandler<Boolean> TwistedChanged;

        public event EventHandler<Boolean> AirEntanglementChanged;

        public event EventHandler<Boolean> LubricantChanged;

        public event EventHandler<Double> TensileStrengthChanged;

        public event EventHandler<Double> ElongationAtBreakPercentageChanged;

        public event EventHandler<Double> EstimatedThreadDiameterChanged;

        public event EventHandler<Int32> RankChanged;

        public event EventHandler<Byte[]> ThumbnailChanged;

        public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged;

        public event EventHandler<SynchronizedObservableCollection<Cct>> CctsChanged;

        public event EventHandler<SynchronizedObservableCollection<ColorCatalog>> ColorCatalogsChanged;

        public event EventHandler<FiberShape> FiberShapeChanged;

        public event EventHandler<FiberSynth> FiberSynthChanged;

        public event EventHandler<SynchronizedObservableCollection<Job>> JobsChanged;

        public event EventHandler<LinearMassDensityUnit> LinearMassDensityUnitChanged;

        public event EventHandler<SynchronizedObservableCollection<LiquidTypesRml>> LiquidTypesRmlsChanged;

        public event EventHandler<SynchronizedObservableCollection<Machine>> MachinesChanged;

        public event EventHandler<MediaCondition> MediaConditionChanged;

        public event EventHandler<MediaMaterial> MediaMaterialChanged;

        public event EventHandler<MediaPurpos> MediaPurposeChanged;

        public event EventHandler<SynchronizedObservableCollection<ProcessParametersTablesGroup>> ProcessParametersTablesGroupsChanged;

        protected String _name;

        /// <summary>
        /// Gets or sets the rmlbase name.
        /// </summary>

        [Column("NAME")]

        public  String Name
        {
            get 
            {
                return _name; 
            }

            set 
            {
                if (_name != value)
                {
                    _name = value;

                    OnNameChanged(value);

                }
            }
        }

        protected String _manufacturer;

        /// <summary>
        /// Gets or sets the rmlbase manufacturer.
        /// </summary>

        [Column("MANUFACTURER")]

        public  String Manufacturer
        {
            get 
            {
                return _manufacturer; 
            }

            set 
            {
                if (_manufacturer != value)
                {
                    _manufacturer = value;

                    OnManufacturerChanged(value);

                }
            }
        }

        protected Int32 _code;

        /// <summary>
        /// Gets or sets the rmlbase code.
        /// </summary>

        [Column("CODE")]

        public  Int32 Code
        {
            get 
            {
                return _code; 
            }

            set 
            {
                if (_code != value)
                {
                    _code = value;

                    OnCodeChanged(value);

                }
            }
        }

        protected Double _whitepointl;

        /// <summary>
        /// Gets or sets the rmlbase white point l.
        /// </summary>

        [Column("WHITE_POINT_L")]

        public  Double WhitePointL
        {
            get 
            {
                return _whitepointl; 
            }

            set 
            {
                if (_whitepointl != value)
                {
                    _whitepointl = value;

                    OnWhitePointLChanged(value);

                }
            }
        }

        protected Double _whitepointa;

        /// <summary>
        /// Gets or sets the rmlbase white point a.
        /// </summary>

        [Column("WHITE_POINT_A")]

        public  Double WhitePointA
        {
            get 
            {
                return _whitepointa; 
            }

            set 
            {
                if (_whitepointa != value)
                {
                    _whitepointa = value;

                    OnWhitePointAChanged(value);

                }
            }
        }

        protected Double _whitepointb;

        /// <summary>
        /// Gets or sets the rmlbase white point b.
        /// </summary>

        [Column("WHITE_POINT_B")]

        public  Double WhitePointB
        {
            get 
            {
                return _whitepointb; 
            }

            set 
            {
                if (_whitepointb != value)
                {
                    _whitepointb = value;

                    OnWhitePointBChanged(value);

                }
            }
        }

        protected String _mediamaterialguid;

        /// <summary>
        /// Gets or sets the rmlbase media material guid.
        /// </summary>

        [Column("MEDIA_MATERIAL_GUID")]
        [ForeignKey("MediaMaterial")]

        public  String MediaMaterialGuid
        {
            get 
            {
                return _mediamaterialguid; 
            }

            set 
            {
                if (_mediamaterialguid != value)
                {
                    _mediamaterialguid = value;

                }
            }
        }

        protected String _mediapurposeguid;

        /// <summary>
        /// Gets or sets the rmlbase media purpose guid.
        /// </summary>

        [Column("MEDIA_PURPOSE_GUID")]
        [ForeignKey("MediaPurpose")]

        public  String MediaPurposeGuid
        {
            get 
            {
                return _mediapurposeguid; 
            }

            set 
            {
                if (_mediapurposeguid != value)
                {
                    _mediapurposeguid = value;

                }
            }
        }

        protected String _mediaconditionguid;

        /// <summary>
        /// Gets or sets the rmlbase media condition guid.
        /// </summary>

        [Column("MEDIA_CONDITION_GUID")]
        [ForeignKey("MediaCondition")]

        public  String MediaConditionGuid
        {
            get 
            {
                return _mediaconditionguid; 
            }

            set 
            {
                if (_mediaconditionguid != value)
                {
                    _mediaconditionguid = value;

                }
            }
        }

        protected String _linearmassdensityunitguid;

        /// <summary>
        /// Gets or sets the rmlbase linear mass density unit guid.
        /// </summary>

        [Column("LINEAR_MASS_DENSITY_UNIT_GUID")]
        [ForeignKey("LinearMassDensityUnit")]

        public  String LinearMassDensityUnitGuid
        {
            get 
            {
                return _linearmassdensityunitguid; 
            }

            set 
            {
                if (_linearmassdensityunitguid != value)
                {
                    _linearmassdensityunitguid = value;

                }
            }
        }

        protected String _fibershapeguid;

        /// <summary>
        /// Gets or sets the rmlbase fiber shape guid.
        /// </summary>

        [Column("FIBER_SHAPE_GUID")]
        [ForeignKey("FiberShape")]

        public  String FiberShapeGuid
        {
            get 
            {
                return _fibershapeguid; 
            }

            set 
            {
                if (_fibershapeguid != value)
                {
                    _fibershapeguid = value;

                }
            }
        }

        protected String _fibersynthguid;

        /// <summary>
        /// Gets or sets the rmlbase fiber synth guid.
        /// </summary>

        [Column("FIBER_SYNTH_GUID")]
        [ForeignKey("FiberSynth")]

        public  String FiberSynthGuid
        {
            get 
            {
                return _fibersynthguid; 
            }

            set 
            {
                if (_fibersynthguid != value)
                {
                    _fibersynthguid = value;

                }
            }
        }

        protected Double _fibersize;

        /// <summary>
        /// Gets or sets the rmlbase fiber size.
        /// </summary>

        [Column("FIBER_SIZE")]

        public  Double FiberSize
        {
            get 
            {
                return _fibersize; 
            }

            set 
            {
                if (_fibersize != value)
                {
                    _fibersize = value;

                    OnFiberSizeChanged(value);

                }
            }
        }

        protected Int32 _numberoffibers;

        /// <summary>
        /// Gets or sets the rmlbase number of fibers.
        /// </summary>

        [Column("NUMBER_OF_FIBERS")]

        public  Int32 NumberOfFibers
        {
            get 
            {
                return _numberoffibers; 
            }

            set 
            {
                if (_numberoffibers != value)
                {
                    _numberoffibers = value;

                    OnNumberOfFibersChanged(value);

                }
            }
        }

        protected Int32 _pliesperfiber;

        /// <summary>
        /// Gets or sets the rmlbase plies per fiber.
        /// </summary>

        [Column("PLIES_PER_FIBER")]

        public  Int32 PliesPerFiber
        {
            get 
            {
                return _pliesperfiber; 
            }

            set 
            {
                if (_pliesperfiber != value)
                {
                    _pliesperfiber = value;

                    OnPliesPerFiberChanged(value);

                }
            }
        }

        protected Int32 _pliesperthread;

        /// <summary>
        /// Gets or sets the rmlbase plies per thread.
        /// </summary>

        [Column("PLIES_PER_THREAD")]

        public  Int32 PliesPerThread
        {
            get 
            {
                return _pliesperthread; 
            }

            set 
            {
                if (_pliesperthread != value)
                {
                    _pliesperthread = value;

                    OnPliesPerThreadChanged(value);

                }
            }
        }

        protected Boolean _twisted;

        /// <summary>
        /// Gets or sets the rmlbase twisted.
        /// </summary>

        [Column("TWISTED")]

        public  Boolean Twisted
        {
            get 
            {
                return _twisted; 
            }

            set 
            {
                if (_twisted != value)
                {
                    _twisted = value;

                    OnTwistedChanged(value);

                }
            }
        }

        protected Boolean _airentanglement;

        /// <summary>
        /// Gets or sets the rmlbase air entanglement.
        /// </summary>

        [Column("AIR_ENTANGLEMENT")]

        public  Boolean AirEntanglement
        {
            get 
            {
                return _airentanglement; 
            }

            set 
            {
                if (_airentanglement != value)
                {
                    _airentanglement = value;

                    OnAirEntanglementChanged(value);

                }
            }
        }

        protected Boolean _lubricant;

        /// <summary>
        /// Gets or sets the rmlbase lubricant.
        /// </summary>

        [Column("LUBRICANT")]

        public  Boolean Lubricant
        {
            get 
            {
                return _lubricant; 
            }

            set 
            {
                if (_lubricant != value)
                {
                    _lubricant = value;

                    OnLubricantChanged(value);

                }
            }
        }

        protected Double _tensilestrength;

        /// <summary>
        /// Gets or sets the rmlbase tensile strength.
        /// </summary>

        [Column("TENSILE_STRENGTH")]

        public  Double TensileStrength
        {
            get 
            {
                return _tensilestrength; 
            }

            set 
            {
                if (_tensilestrength != value)
                {
                    _tensilestrength = value;

                    OnTensileStrengthChanged(value);

                }
            }
        }

        protected Double _elongationatbreakpercentage;

        /// <summary>
        /// Gets or sets the rmlbase elongation at break percentage.
        /// </summary>

        [Column("ELONGATION_AT_BREAK_PERCENTAGE")]

        public  Double ElongationAtBreakPercentage
        {
            get 
            {
                return _elongationatbreakpercentage; 
            }

            set 
            {
                if (_elongationatbreakpercentage != value)
                {
                    _elongationatbreakpercentage = value;

                    OnElongationAtBreakPercentageChanged(value);

                }
            }
        }

        protected Double _estimatedthreaddiameter;

        /// <summary>
        /// Gets or sets the rmlbase estimated thread diameter.
        /// </summary>

        [Column("ESTIMATED_THREAD_DIAMETER")]

        public  Double EstimatedThreadDiameter
        {
            get 
            {
                return _estimatedthreaddiameter; 
            }

            set 
            {
                if (_estimatedthreaddiameter != value)
                {
                    _estimatedthreaddiameter = value;

                    OnEstimatedThreadDiameterChanged(value);

                }
            }
        }

        protected Int32 _rank;

        /// <summary>
        /// Gets or sets the rmlbase rank.
        /// </summary>

        [Column("RANK")]

        public  Int32 Rank
        {
            get 
            {
                return _rank; 
            }

            set 
            {
                if (_rank != value)
                {
                    _rank = value;

                    OnRankChanged(value);

                }
            }
        }

        protected Byte[] _thumbnail;

        /// <summary>
        /// Gets or sets the rmlbase thumbnail.
        /// </summary>

        [Column("THUMBNAIL")]

        public  Byte[] Thumbnail
        {
            get 
            {
                return _thumbnail; 
            }

            set 
            {
                if (_thumbnail != value)
                {
                    _thumbnail = value;

                    OnThumbnailChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<Cat> _cats;

        /// <summary>
        /// Gets or sets the rmlbase cats.
        /// </summary>

        public virtual SynchronizedObservableCollection<Cat> Cats
        {
            get 
            {
                return _cats; 
            }

            set 
            {
                if (_cats != value)
                {
                    _cats = value;

                    OnCatsChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<Cct> _ccts;

        /// <summary>
        /// Gets or sets the rmlbase ccts.
        /// </summary>

        public virtual SynchronizedObservableCollection<Cct> Ccts
        {
            get 
            {
                return _ccts; 
            }

            set 
            {
                if (_ccts != value)
                {
                    _ccts = value;

                    OnCctsChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<ColorCatalog> _colorcatalogs;

        /// <summary>
        /// Gets or sets the rmlbase color catalogs.
        /// </summary>

        public virtual SynchronizedObservableCollection<ColorCatalog> ColorCatalogs
        {
            get 
            {
                return _colorcatalogs; 
            }

            set 
            {
                if (_colorcatalogs != value)
                {
                    _colorcatalogs = value;

                    OnColorCatalogsChanged(value);

                }
            }
        }

        protected FiberShape _fibershape;

        /// <summary>
        /// Gets or sets the rmlbase fiber shapes.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual FiberShape FiberShape
        {
            get 
            {
                return _fibershape; 
            }

            set 
            {
                if (_fibershape != value)
                {
                    _fibershape = value;

                    if (FiberShape != null)
                    {
                        FiberShapeGuid = FiberShape.Guid;
                    }

                    OnFiberShapeChanged(value);

                }
            }
        }

        protected FiberSynth _fibersynth;

        /// <summary>
        /// Gets or sets the rmlbase fiber synths.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual FiberSynth FiberSynth
        {
            get 
            {
                return _fibersynth; 
            }

            set 
            {
                if (_fibersynth != value)
                {
                    _fibersynth = value;

                    if (FiberSynth != null)
                    {
                        FiberSynthGuid = FiberSynth.Guid;
                    }

                    OnFiberSynthChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<Job> _jobs;

        /// <summary>
        /// Gets or sets the rmlbase jobs.
        /// </summary>

        public virtual SynchronizedObservableCollection<Job> Jobs
        {
            get 
            {
                return _jobs; 
            }

            set 
            {
                if (_jobs != value)
                {
                    _jobs = value;

                    OnJobsChanged(value);

                }
            }
        }

        protected LinearMassDensityUnit _linearmassdensityunit;

        /// <summary>
        /// Gets or sets the rmlbase linear mass density units.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual LinearMassDensityUnit LinearMassDensityUnit
        {
            get 
            {
                return _linearmassdensityunit; 
            }

            set 
            {
                if (_linearmassdensityunit != value)
                {
                    _linearmassdensityunit = value;

                    if (LinearMassDensityUnit != null)
                    {
                        LinearMassDensityUnitGuid = LinearMassDensityUnit.Guid;
                    }

                    OnLinearMassDensityUnitChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<LiquidTypesRml> _liquidtypesrmls;

        /// <summary>
        /// Gets or sets the rmlbase liquid types rmls.
        /// </summary>

        public virtual SynchronizedObservableCollection<LiquidTypesRml> LiquidTypesRmls
        {
            get 
            {
                return _liquidtypesrmls; 
            }

            set 
            {
                if (_liquidtypesrmls != value)
                {
                    _liquidtypesrmls = value;

                    OnLiquidTypesRmlsChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<Machine> _machines;

        /// <summary>
        /// Gets or sets the rmlbase machines.
        /// </summary>

        public virtual SynchronizedObservableCollection<Machine> Machines
        {
            get 
            {
                return _machines; 
            }

            set 
            {
                if (_machines != value)
                {
                    _machines = value;

                    OnMachinesChanged(value);

                }
            }
        }

        protected MediaCondition _mediacondition;

        /// <summary>
        /// Gets or sets the rmlbase media conditions.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual MediaCondition MediaCondition
        {
            get 
            {
                return _mediacondition; 
            }

            set 
            {
                if (_mediacondition != value)
                {
                    _mediacondition = value;

                    if (MediaCondition != null)
                    {
                        MediaConditionGuid = MediaCondition.Guid;
                    }

                    OnMediaConditionChanged(value);

                }
            }
        }

        protected MediaMaterial _mediamaterial;

        /// <summary>
        /// Gets or sets the rmlbase media materials.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual MediaMaterial MediaMaterial
        {
            get 
            {
                return _mediamaterial; 
            }

            set 
            {
                if (_mediamaterial != value)
                {
                    _mediamaterial = value;

                    if (MediaMaterial != null)
                    {
                        MediaMaterialGuid = MediaMaterial.Guid;
                    }

                    OnMediaMaterialChanged(value);

                }
            }
        }

        protected MediaPurpos _mediapurpose;

        /// <summary>
        /// Gets or sets the rmlbase media purposes.
        /// </summary>

        [XmlIgnore]
        [JsonIgnore]
        public virtual MediaPurpos MediaPurpose
        {
            get 
            {
                return _mediapurpose; 
            }

            set 
            {
                if (_mediapurpose != value)
                {
                    _mediapurpose = value;

                    if (MediaPurpose != null)
                    {
                        MediaPurposeGuid = MediaPurpose.Guid;
                    }

                    OnMediaPurposeChanged(value);

                }
            }
        }

        protected SynchronizedObservableCollection<ProcessParametersTablesGroup> _processparameterstablesgroups;

        /// <summary>
        /// Gets or sets the rmlbase process parameters tables groups.
        /// </summary>

        public virtual SynchronizedObservableCollection<ProcessParametersTablesGroup> ProcessParametersTablesGroups
        {
            get 
            {
                return _processparameterstablesgroups; 
            }

            set 
            {
                if (_processparameterstablesgroups != value)
                {
                    _processparameterstablesgroups = value;

                    OnProcessParametersTablesGroupsChanged(value);

                }
            }
        }

        /// <summary>
        /// Called when the Name has changed.
        /// </summary>
        protected virtual void OnNameChanged(String name)
        {
            NameChanged?.Invoke(this, name);
            RaisePropertyChanged(nameof(Name));
        }

        /// <summary>
        /// Called when the Manufacturer has changed.
        /// </summary>
        protected virtual void OnManufacturerChanged(String manufacturer)
        {
            ManufacturerChanged?.Invoke(this, manufacturer);
            RaisePropertyChanged(nameof(Manufacturer));
        }

        /// <summary>
        /// Called when the Code has changed.
        /// </summary>
        protected virtual void OnCodeChanged(Int32 code)
        {
            CodeChanged?.Invoke(this, code);
            RaisePropertyChanged(nameof(Code));
        }

        /// <summary>
        /// Called when the WhitePointL has changed.
        /// </summary>
        protected virtual void OnWhitePointLChanged(Double whitepointl)
        {
            WhitePointLChanged?.Invoke(this, whitepointl);
            RaisePropertyChanged(nameof(WhitePointL));
        }

        /// <summary>
        /// Called when the WhitePointA has changed.
        /// </summary>
        protected virtual void OnWhitePointAChanged(Double whitepointa)
        {
            WhitePointAChanged?.Invoke(this, whitepointa);
            RaisePropertyChanged(nameof(WhitePointA));
        }

        /// <summary>
        /// Called when the WhitePointB has changed.
        /// </summary>
        protected virtual void OnWhitePointBChanged(Double whitepointb)
        {
            WhitePointBChanged?.Invoke(this, whitepointb);
            RaisePropertyChanged(nameof(WhitePointB));
        }

        /// <summary>
        /// Called when the FiberSize has changed.
        /// </summary>
        protected virtual void OnFiberSizeChanged(Double fibersize)
        {
            FiberSizeChanged?.Invoke(this, fibersize);
            RaisePropertyChanged(nameof(FiberSize));
        }

        /// <summary>
        /// Called when the NumberOfFibers has changed.
        /// </summary>
        protected virtual void OnNumberOfFibersChanged(Int32 numberoffibers)
        {
            NumberOfFibersChanged?.Invoke(this, numberoffibers);
            RaisePropertyChanged(nameof(NumberOfFibers));
        }

        /// <summary>
        /// Called when the PliesPerFiber has changed.
        /// </summary>
        protected virtual void OnPliesPerFiberChanged(Int32 pliesperfiber)
        {
            PliesPerFiberChanged?.Invoke(this, pliesperfiber);
            RaisePropertyChanged(nameof(PliesPerFiber));
        }

        /// <summary>
        /// Called when the PliesPerThread has changed.
        /// </summary>
        protected virtual void OnPliesPerThreadChanged(Int32 pliesperthread)
        {
            PliesPerThreadChanged?.Invoke(this, pliesperthread);
            RaisePropertyChanged(nameof(PliesPerThread));
        }

        /// <summary>
        /// Called when the Twisted has changed.
        /// </summary>
        protected virtual void OnTwistedChanged(Boolean twisted)
        {
            TwistedChanged?.Invoke(this, twisted);
            RaisePropertyChanged(nameof(Twisted));
        }

        /// <summary>
        /// Called when the AirEntanglement has changed.
        /// </summary>
        protected virtual void OnAirEntanglementChanged(Boolean airentanglement)
        {
            AirEntanglementChanged?.Invoke(this, airentanglement);
            RaisePropertyChanged(nameof(AirEntanglement));
        }

        /// <summary>
        /// Called when the Lubricant has changed.
        /// </summary>
        protected virtual void OnLubricantChanged(Boolean lubricant)
        {
            LubricantChanged?.Invoke(this, lubricant);
            RaisePropertyChanged(nameof(Lubricant));
        }

        /// <summary>
        /// Called when the TensileStrength has changed.
        /// </summary>
        protected virtual void OnTensileStrengthChanged(Double tensilestrength)
        {
            TensileStrengthChanged?.Invoke(this, tensilestrength);
            RaisePropertyChanged(nameof(TensileStrength));
        }

        /// <summary>
        /// Called when the ElongationAtBreakPercentage has changed.
        /// </summary>
        protected virtual void OnElongationAtBreakPercentageChanged(Double elongationatbreakpercentage)
        {
            ElongationAtBreakPercentageChanged?.Invoke(this, elongationatbreakpercentage);
            RaisePropertyChanged(nameof(ElongationAtBreakPercentage));
        }

        /// <summary>
        /// Called when the EstimatedThreadDiameter has changed.
        /// </summary>
        protected virtual void OnEstimatedThreadDiameterChanged(Double estimatedthreaddiameter)
        {
            EstimatedThreadDiameterChanged?.Invoke(this, estimatedthreaddiameter);
            RaisePropertyChanged(nameof(EstimatedThreadDiameter));
        }

        /// <summary>
        /// Called when the Rank has changed.
        /// </summary>
        protected virtual void OnRankChanged(Int32 rank)
        {
            RankChanged?.Invoke(this, rank);
            RaisePropertyChanged(nameof(Rank));
        }

        /// <summary>
        /// Called when the Thumbnail has changed.
        /// </summary>
        protected virtual void OnThumbnailChanged(Byte[] thumbnail)
        {
            ThumbnailChanged?.Invoke(this, thumbnail);
            RaisePropertyChanged(nameof(Thumbnail));
        }

        /// <summary>
        /// Called when the Cats has changed.
        /// </summary>
        protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats)
        {
            CatsChanged?.Invoke(this, cats);
            RaisePropertyChanged(nameof(Cats));
        }

        /// <summary>
        /// Called when the Ccts has changed.
        /// </summary>
        protected virtual void OnCctsChanged(SynchronizedObservableCollection<Cct> ccts)
        {
            CctsChanged?.Invoke(this, ccts);
            RaisePropertyChanged(nameof(Ccts));
        }

        /// <summary>
        /// Called when the ColorCatalogs has changed.
        /// </summary>
        protected virtual void OnColorCatalogsChanged(SynchronizedObservableCollection<ColorCatalog> colorcatalogs)
        {
            ColorCatalogsChanged?.Invoke(this, colorcatalogs);
            RaisePropertyChanged(nameof(ColorCatalogs));
        }

        /// <summary>
        /// Called when the FiberShape has changed.
        /// </summary>
        protected virtual void OnFiberShapeChanged(FiberShape fibershape)
        {
            FiberShapeChanged?.Invoke(this, fibershape);
            RaisePropertyChanged(nameof(FiberShape));
        }

        /// <summary>
        /// Called when the FiberSynth has changed.
        /// </summary>
        protected virtual void OnFiberSynthChanged(FiberSynth fibersynth)
        {
            FiberSynthChanged?.Invoke(this, fibersynth);
            RaisePropertyChanged(nameof(FiberSynth));
        }

        /// <summary>
        /// Called when the Jobs has changed.
        /// </summary>
        protected virtual void OnJobsChanged(SynchronizedObservableCollection<Job> jobs)
        {
            JobsChanged?.Invoke(this, jobs);
            RaisePropertyChanged(nameof(Jobs));
        }

        /// <summary>
        /// Called when the LinearMassDensityUnit has changed.
        /// </summary>
        protected virtual void OnLinearMassDensityUnitChanged(LinearMassDensityUnit linearmassdensityunit)
        {
            LinearMassDensityUnitChanged?.Invoke(this, linearmassdensityunit);
            RaisePropertyChanged(nameof(LinearMassDensityUnit));
        }

        /// <summary>
        /// Called when the LiquidTypesRmls has changed.
        /// </summary>
        protected virtual void OnLiquidTypesRmlsChanged(SynchronizedObservableCollection<LiquidTypesRml> liquidtypesrmls)
        {
            LiquidTypesRmlsChanged?.Invoke(this, liquidtypesrmls);
            RaisePropertyChanged(nameof(LiquidTypesRmls));
        }

        /// <summary>
        /// Called when the Machines has changed.
        /// </summary>
        protected virtual void OnMachinesChanged(SynchronizedObservableCollection<Machine> machines)
        {
            MachinesChanged?.Invoke(this, machines);
            RaisePropertyChanged(nameof(Machines));
        }

        /// <summary>
        /// Called when the MediaCondition has changed.
        /// </summary>
        protected virtual void OnMediaConditionChanged(MediaCondition mediacondition)
        {
            MediaConditionChanged?.Invoke(this, mediacondition);
            RaisePropertyChanged(nameof(MediaCondition));
        }

        /// <summary>
        /// Called when the MediaMaterial has changed.
        /// </summary>
        protected virtual void OnMediaMaterialChanged(MediaMaterial mediamaterial)
        {
            MediaMaterialChanged?.Invoke(this, mediamaterial);
            RaisePropertyChanged(nameof(MediaMaterial));
        }

        /// <summary>
        /// Called when the MediaPurpose has changed.
        /// </summary>
        protected virtual void OnMediaPurposeChanged(MediaPurpos mediapurpose)
        {
            MediaPurposeChanged?.Invoke(this, mediapurpose);
            RaisePropertyChanged(nameof(MediaPurpose));
        }

        /// <summary>
        /// Called when the ProcessParametersTablesGroups has changed.
        /// </summary>
        protected virtual void OnProcessParametersTablesGroupsChanged(SynchronizedObservableCollection<ProcessParametersTablesGroup> processparameterstablesgroups)
        {
            ProcessParametersTablesGroupsChanged?.Invoke(this, processparameterstablesgroups);
            RaisePropertyChanged(nameof(ProcessParametersTablesGroups));
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="RmlBase" /> class.
        /// </summary>
        public RmlBase() : base()
        {

            Cats = new SynchronizedObservableCollection<Cat>();

            Ccts = new SynchronizedObservableCollection<Cct>();

            ColorCatalogs = new SynchronizedObservableCollection<ColorCatalog>();

            Jobs = new SynchronizedObservableCollection<Job>();

            LiquidTypesRmls = new SynchronizedObservableCollection<LiquidTypesRml>();

            Machines = new SynchronizedObservableCollection<Machine>();

            ProcessParametersTablesGroups = new SynchronizedObservableCollection<ProcessParametersTablesGroup>();

        }
    }
}