protected virtual void OnDataInterEventsGenerated(DataInterEventsGeneratedData e_)
    {
      EventHandler<DataInterEventsGeneratedData> h;

      if ((h = DataInterEventsGenerated) != null)
        h(this, e_);
    }
 public void Apply(DataInterEventsGeneratedData data_)
 {
   interEventAnalysisControl1.Apply(data_);
 }
    public void Apply(DataInterEventsGeneratedData data_)
    {
      m_lastApplied = data_;

      seasEvents.ClearSeries();
      seasProbability.ClearSeries();
      seasAverageNormalized.ClearSeries();

      var fieldValues = data_.GetCombined(m_args.Field);

      var minValue = double.MaxValue;
      var maxValue = double.MinValue;


      for (int i = 0; i < fieldValues.ArrayLength; ++i)
      {
        
        var values = fieldValues.GetColumnValues(i);
        {

          // maintain min / max for y-axis scaling

          var nonNona = values.Where(x => double.IsNaN(x) == false).ToArray();
          for (int j = 0; j < nonNona.Length; ++j)
          {
            minValue = (minValue < nonNona[j]) ? minValue : nonNona[j];
            maxValue = (maxValue > nonNona[j]) ? maxValue : nonNona[j];
          }
        }

        seasEvents.AddLineChart(fieldValues.ColumnHeadings[i], fieldValues.Keys.Select(x => x.ToString()).ToArray(),
          values);
      }

      seasEvents.SetXAxisTickStyle(Infragistics.UltraChart.Shared.Styles.AxisTickStyle.Smart);

      switch (m_args.Field)
      {
        case DataAroundEventField.Filled_Diff:
          {
            seasEvents.SetYAxisFormat("##0.0##");
            var max = Math.Max(Math.Abs(maxValue), Math.Abs(minValue));
            seasEvents.SetYAxisLimits(Infragistics.UltraChart.Shared.Styles.AxisRangeType.Custom, max, -max);
          }
          break;
        case DataAroundEventField.Filled_Pct:
          {
            seasEvents.SetYAxisFormat("##0.0%");
            var max = Math.Max(Math.Abs(maxValue), Math.Abs(minValue));
            seasEvents.SetYAxisLimits(Infragistics.UltraChart.Shared.Styles.AxisRangeType.Custom, max, -max);
          }
          break;
        case DataAroundEventField.Filled_Level:
          {
            seasEvents.SetYAxisFormat("##0.0##");
            seasEvents.SetYAxisLimits(Infragistics.UltraChart.Shared.Styles.AxisRangeType.Custom, maxValue, minValue);
          }
          break;
      }

      m_args.AnalysisStartIndex = fieldValues.Keys[0];
      m_args.AnalysisEndIndex = fieldValues.Keys.Last();

      seasAverageNormalized.ClearSeries();
      seasEvents.AddLegend();
    }