/// <summary>
        /// Initializes a new instance of the <see cref="EventCapturingInterface"/> class.
        /// </summary>
        /// <param name="host">The main document to which this window belongs.</param>
        /// <param name="eventType">Type of the event.</param>
        public EventCapturingInterface(OSMDocument host, EvaluationEventType eventType)
        {
            InitializeComponent();
            this._host                          = host;
            this._eventType                     = eventType;
            this.Loaded                        += OccupancyEventCapturingInterface_Loaded;
            this._dataCtlr.Click               += _dataClr_Click;
            this._visibilityEvent.Click        += _visibilityEvent_Click;
            this._runBtm.Click                 += this._runBtm_Click;
            this._closeBtm.Click               += _closeBtm_Click;
            this._recordTrailBtn.Click         += _recordTrailBtn_Click;
            this._timeSamplingRate.TextChanged += _timeSamplingRate_TextChanged;
            this._timeStep.TextChanged         += _timeSamplingRate_TextChanged;
            this.loadRate();
            switch (eventType)
            {
            case EvaluationEventType.Optional:
                this._activityEngamementEvnts.Visibility = System.Windows.Visibility.Collapsed;
                break;

            case EvaluationEventType.Mandatory:
                this._dataCtlr2.Click += _dataCtlr2_Click;
                break;

            default:
                break;
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MandatoryEvaluationEvent"/> class.
 /// </summary>
 /// <param name="name">The name of the event.</param>
 /// <param name="data">The data.</param>
 /// <param name="likelihood">The likelihood of the event .</param>
 /// <param name="timeSamplingRate">The time sampling rate.</param>
 /// <param name="timeStep">The time-step per milliseconds.</param>
 /// <param name="duration">The duration per hour.</param>
 /// <param name="velocityMagnitude">The velocity magnitude.</param>
 /// <param name="visibilityAngle">The visibility angle.</param>
 /// <param name="hasCapturedVisualEvents">if set to <c>true</c> the event has captured visual events.</param>
 /// <param name="hasCapturedDataEvents">if set to <c>true</c> the event has captured data events.</param>
 /// <param name="eventType">Type of the event.</param>
 /// <param name="trailData">The trail data.</param>
 public MandatoryEvaluationEvent(string name, Dictionary <CellularEnvironment.Cell, double> data,
                                 double likelihood, double timeSamplingRate, double timeStep, double duration,
                                 double velocityMagnitude, double visibilityAngle,
                                 bool hasCapturedVisualEvents, bool hasCapturedDataEvents, EvaluationEventType eventType,
                                 StateBase[] trailData) :
     base(name, data, likelihood, timeSamplingRate, timeStep, duration, velocityMagnitude, visibilityAngle, hasCapturedVisualEvents, hasCapturedDataEvents, eventType, trailData)
 {
 }
 /// <summary>
 /// Represents the transcript of an event query. This class is a data model and offers.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="data">The data.</param>
 /// <param name="likelihood">The likelihood.</param>
 /// <param name="timeSamplingRate">The time sampling rate.</param>
 /// <param name="timeStep">The time step.</param>
 /// <param name="duration">The duration.</param>
 /// <param name="velocityMagnitude">The velocity magnitude.</param>
 /// <param name="visibilityAngle">The visibility angle.</param>
 /// <param name="hasCapturedVisualEvents">if set to <c>true</c> has captured visual events.</param>
 /// <param name="hasCapturedDataEvents">if set to <c>true</c> has captured data events.</param>
 /// <param name="eventType">Type of the event.</param>
 /// <param name="trailData">The trail data.</param>
 public EvaluationEvent(string name, Dictionary <CellularEnvironment.Cell, double> data,
                        double likelihood, double timeSamplingRate, double timeStep, double duration,
                        double velocityMagnitude, double visibilityAngle,
                        bool hasCapturedVisualEvents, bool hasCapturedDataEvents, EvaluationEventType eventType,
                        StateBase[] trailData)
 {
     this._visibilityAngle         = visibilityAngle;
     this._velocityMagnitude       = velocityMagnitude;
     this._hasCapturedDataEvents   = hasCapturedDataEvents;
     this._hasCapturedVisualEvents = hasCapturedVisualEvents;
     this._capturedEventTrails     = trailData;
     this._data = data;
     this._min  = double.PositiveInfinity;
     this._max  = double.NegativeInfinity;
     foreach (var item in this.Data.Values)
     {
         this._min = Math.Min(this._min, item);
         this._max = Math.Max(this._max, item);
     }
     //trim the unwanted chars from the input name
     char[] charsToTrim = { ' ', '\'' };
     this._name             = name.Trim(charsToTrim);
     this._duration         = duration;
     this._likelihood       = likelihood;
     this._timeSamplingRate = timeSamplingRate;
     this._timeStep         = timeStep;
     this.EventType         = eventType;
 }