예제 #1
0
 IEnumerable <ISeriesItem> WrapItemState(IEnumerable <ItemState <Path> > siss)
 {
     foreach (var state in siss)
     {
         if (state is SeriesItemState sis)
         {
             var sis2 = new ISeriesItemValue[sis.Elements.Length];
             for (int idx = 0; idx < sis.Elements.Length; idx++)
             {
                 sis2[idx] = new ItemStateValueWrapper(sis, sis.Elements[idx].Item1, idx);
             }
             var sivc = new ItemStateMultiChannelWrapper(sis, sis2);
             yield return(sivc);
         }
         else if (state is SeriesItemState_Custom sisc)
         {
             var sis2 = new ISeriesItemValue[sisc.Elements.Length];
             for (int idx = 0; idx < sisc.Elements.Length; idx++)
             {
                 sis2[idx] = new ItemStateValueCustomWrapper(sisc, sisc.Elements[idx].Item1, sisc.CustomValue, idx);
             }
             var sivc = new ItemStateMultiChannelWrapper(sisc, sis2);
             yield return(sivc);
         }
     }
 }
예제 #2
0
 IEnumerable <ISeriesItem> WrapItemState(IEnumerable <SeriesItemState> siss)
 {
     foreach (var sis in siss)
     {
         // IST check Custom first it's a subclass!
         if (sis is SeriesItemState_Custom sisc)
         {
             var sis2 = new ISeriesItemValue[sis.Elements.Count];
             for (int idx = 0; idx < sis.Elements.Count; idx++)
             {
                 sis2[idx] = new ChannelItemState_Custom(sis.Index, sis.XValue, sis.XOffset, sis.Elements[idx].Item1, sisc.CustomValue, sis.Elements[idx].Item2, idx);
             }
             var sivc = new ItemStateMultiChannelWrapper(sis, sis2);
             yield return(sivc);
         }
         else
         {
             var sis2 = new ISeriesItemValue[sis.Elements.Count];
             for (int idx = 0; idx < sis.Elements.Count; idx++)
             {
                 sis2[idx] = new ChannelItemState(sis.Index, sis.XValue, sis.XOffset, sis.Elements[idx].Item1, sis.Elements[idx].Item2, idx);
             }
             var sivc = new ItemStateMultiChannelWrapper(sis, sis2);
             yield return(sivc);
         }
     }
 }
            /// <summary>
            /// See <see cref="ISeriesItemCommon.Wrap"/>.
            /// </summary>
            public ISeriesItem Wrap()
            {
                var sis2 = new ISeriesItemValue[2];

                sis2[0] = new ChannelItemState(Index, XValue, XOffset, Value, PlacementAngle, RADIUS / 2, Element, 0);
                sis2[1] = new ChannelItemState(Index, XValue, XOffset, Percent, PlacementAngle, RADIUS / 2, Element, 1);
                var sivc = new ItemStateMultiChannelWrapper(this, sis2);

                return(sivc);
            }
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="ipsiv"></param>
 /// <param name="isiv"></param>
 public SelectorContext(IProvideSeriesItemValues ipsiv, ISeriesItemValue isiv)
 {
     Source = ipsiv; ItemValue = isiv;
 }