/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } this.items.Clear(); // Use the mapping to generate the points if (this.Mapping != null) { foreach (var item in this.ItemsSource) { this.items.Add(this.Mapping(item)); } return; } var filler = new ListFiller <HighLowItem>(); filler.Add(this.DataFieldX, (p, v) => p.X = Axis.ToDouble(v)); filler.Add(this.DataFieldHigh, (p, v) => p.High = Axis.ToDouble(v)); filler.Add(this.DataFieldLow, (p, v) => p.Low = Axis.ToDouble(v)); filler.Add(this.DataFieldOpen, (p, v) => p.Open = Axis.ToDouble(v)); filler.Add(this.DataFieldClose, (p, v) => p.Close = Axis.ToDouble(v)); filler.FillT(this.items, this.ItemsSource); }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } var sourceAsListOfT = this.ItemsSource as List <T>; if (sourceAsListOfT != null) { this.itemsSourceItems = sourceAsListOfT; this.ownsItemsSourceItems = false; return; } this.ClearItemsSourceItems(); if (this.ValueField == null) { this.itemsSourceItems.AddRange(this.ItemsSource.OfType <T>()); } else { // Using reflection to add items by value and color (optional) var filler = new ListFiller <T>(); filler.Add(this.ValueField, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.ColorField, (item, value) => item.Color = (OxyColor)value); filler.Fill(this.itemsSourceItems, this.ItemsSource); } }
/// <summary> /// Defines the data fields used by the code that reflects on the <see cref="ItemsSeries.ItemsSource" />. /// </summary> /// <param name="filler">The list filler.</param> protected virtual void DefineDataFields(ListFiller <T> filler) { filler.Add(this.DataFieldX, (item, value) => item.X = Convert.ToDouble(value)); filler.Add(this.DataFieldY, (item, value) => item.Y = Convert.ToDouble(value)); filler.Add(this.DataFieldSize, (item, value) => item.Size = Convert.ToDouble(value)); filler.Add(this.DataFieldValue, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.DataFieldTag, (item, value) => item.Tag = value); }
public List <LinkIndex> Each(IList <LinkIndex> sequence) { var results = new List <LinkIndex>(); var filler = new ListFiller <LinkIndex, LinkIndex>(results, Constants.Continue); Each(filler.AddFirstAndReturnConstant, sequence); return(results); }
public void Fill_InvalidProperty_ThrowsException() { var target = new List<ScatterPoint>(); var filler = new ListFiller<ScatterPoint>(); filler.Add("B", (p, v) => p.X = Convert.ToDouble(v)); filler.Fill(target, this.src); }
public static IList <TLink> ToList <TLink>(this ILinks <TLink> sequences, TLink sequence) { var list = new List <TLink>(); var filler = new ListFiller <TLink, TLink>(list, sequences.Constants.Break); sequences.Each(filler.AddSkipFirstAndReturnConstant, new LinkAddress <TLink>(sequence)); return(list); }
public void Fill_InvalidProperty_ThrowsException() { var target = new List <ScatterPoint>(); var filler = new ListFiller <ScatterPoint>(); filler.Add("B", (p, v) => p.X = Convert.ToDouble(v)); filler.Fill(target, src); }
/// <summary> /// The update data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } var points = this.Points; points.Clear(); // Use the mapping to generate the points if (this.Mapping != null) { foreach (var item in this.ItemsSource) { points.Add(this.Mapping(item)); } return; } // Get DataPoints from the items in ItemsSource // if they implement IScatterPointProvider // If DataFields are set, this is not used /*if (DataFieldX == null || DataFieldY == null) * { * foreach (var item in ItemsSource) * { * var idpp = item as IScatterPointProvider; * if (idpp == null) * { * continue; * } * * points.Add(idpp.GetScatterPoint()); * } * * return; * }*/ var dest = new List <IDataPoint>(); // Using reflection to add points var filler = new ListFiller <ScatterPoint>(); filler.Add(this.DataFieldX, (item, value) => item.X = Convert.ToDouble(value)); filler.Add(this.DataFieldY, (item, value) => item.Y = Convert.ToDouble(value)); filler.Add(this.DataFieldSize, (item, value) => item.Size = Convert.ToDouble(value)); filler.Add(this.DataFieldValue, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.DataFieldTag, (item, value) => item.Tag = value); filler.Fill(dest, this.ItemsSource); this.Points = dest; }
public void Fill_NullProperty_IsIgnored() { var target = new List<ScatterPoint>(); var filler = new ListFiller<ScatterPoint>(); filler.Add(null, (p, v) => { }); filler.Fill(target, this.src); Assert.AreEqual(1, target.Count); Assert.AreEqual(0, target[0].X); }
public void Fill() { var target = new List<ScatterPoint>(); var filler = new ListFiller<ScatterPoint>(); filler.Add("A", (p, v) => p.X = Convert.ToDouble(v)); filler.Fill(target, this.src); Assert.AreEqual(1, target.Count); Assert.AreEqual(3.14, target[0].X); }
public void Fill_NullProperty_IsIgnored() { var target = new List <ScatterPoint>(); var filler = new ListFiller <ScatterPoint>(); filler.Add(null, (p, v) => { }); filler.Fill(target, src); Assert.AreEqual(1, target.Count); Assert.AreEqual(0, target[0].X); }
public void Fill() { var target = new List <ScatterPoint>(); var filler = new ListFiller <ScatterPoint>(); filler.Add("A", (p, v) => p.X = Convert.ToDouble(v)); filler.Fill(target, src); Assert.AreEqual(1, target.Count); Assert.AreEqual(3.14, target[0].X); }
public IList <BlogPost> GetBlogPosts() { var list = new List <IList <TLinkAddress> >(); var listFiller = new ListFiller <IList <TLinkAddress>, TLinkAddress>(list, _links.Constants.Continue); // Load all links that match the query: (any: _blogPostMarker any) it means, link with any address, _blogPostMarker as source and any link as target. // All links that match this query are BlogPosts. var any = _links.Constants.Any; var query = new Link <TLinkAddress>(any, _blogPostMarker, any); _links.Each(listFiller.AddAndReturnConstant, query); return(list.Select(LoadBlogPost).ToList()); }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource != null) { this.Items.Clear(); var filler = new ListFiller <TornadoBarItem>(); filler.Add(this.MinimumField, (item, value) => item.Minimum = Convert.ToDouble(value)); filler.Add(this.MaximumField, (item, value) => item.Maximum = Convert.ToDouble(value)); filler.FillT(this.Items, this.ItemsSource); } }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } this.slices.Clear(); var filler = new ListFiller <PieSlice>(); filler.Add(this.LabelField, (item, value) => item.Label = Convert.ToString(value)); filler.Add(this.ValueField, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.ColorField, (item, value) => item.Fill = (OxyColor)value); filler.Add(this.IsExplodedField, (item, value) => item.IsExploded = (bool)value); filler.FillT(this.slices, this.ItemsSource); }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } var dest = new List <T>(); // Using reflection to add points var filler = new ListFiller <T>(); filler.Add(this.ValueField, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.ColorField, (item, value) => item.Color = (OxyColor)value); filler.Fill(dest, this.ItemsSource); this.Items = dest; }
/// <summary> /// Adds scatter points specified by a items source and data fields. /// </summary> /// <param name="target">The destination collection.</param> /// <param name="itemsSource">The items source.</param> /// <param name="dataFieldX">The data field x.</param> /// <param name="dataFieldY">The data field y.</param> /// <param name="dataFieldSize">The data field size.</param> /// <param name="dataFieldValue">The data field value.</param> /// <param name="dataFieldTag">The data field tag.</param> protected void AddScatterPoints( IList <T> target, IEnumerable itemsSource, string dataFieldX, string dataFieldY, string dataFieldSize, string dataFieldValue, string dataFieldTag) { var filler = new ListFiller <T>(); filler.Add(dataFieldX, (item, value) => item.X = Convert.ToDouble(value)); filler.Add(dataFieldY, (item, value) => item.Y = Convert.ToDouble(value)); filler.Add(dataFieldSize, (item, value) => item.Size = Convert.ToDouble(value)); filler.Add(dataFieldValue, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(dataFieldTag, (item, value) => item.Tag = value); filler.FillT(target, itemsSource); }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource != null) { this.Items.Clear(); var filler = new ListFiller<IntervalBarItem>(); filler.Add(this.MinimumField, (item, value) => item.Start = Convert.ToDouble(value)); filler.Add(this.MaximumField, (item, value) => item.End = Convert.ToDouble(value)); filler.FillT(this.Items, this.ItemsSource); } }
/// <summary> /// Defines the data fields used by the code that reflects on the <see cref="ItemsSeries.ItemsSource" />. /// </summary> /// <param name="filler">The list filler.</param> protected override void DefineDataFields(ListFiller <ScatterErrorPoint> filler) { base.DefineDataFields(filler); filler.Add(this.DataFieldErrorX, (item, value) => item.ErrorX = Convert.ToDouble(value)); filler.Add(this.DataFieldErrorY, (item, value) => item.ErrorY = Convert.ToDouble(value)); }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } this.slices.Clear(); var filler = new ListFiller<PieSlice>(); filler.Add(this.LabelField, (item, value) => item.Label = Convert.ToString(value)); filler.Add(this.ValueField, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.ColorField, (item, value) => item.Fill = (OxyColor)value); filler.Add(this.IsExplodedField, (item, value) => item.IsExploded = (bool)value); filler.FillT(this.slices, this.ItemsSource); }
/// <summary> /// Updates the points from the <see cref="ItemsSeries.ItemsSource" />. /// </summary> private void UpdateItemsSourcePoints() { // Use the Mapping property to generate the points if (this.Mapping != null) { this.ClearItemsSourcePoints(); foreach (var item in this.ItemsSource) { this.ItemsSourcePoints.Add(this.Mapping(item)); } return; } var sourceAsListOfScatterPoints = this.ItemsSource as List <T>; if (sourceAsListOfScatterPoints != null) { this.ItemsSourcePoints = sourceAsListOfScatterPoints; this.OwnsItemsSourcePoints = false; return; } this.ClearItemsSourcePoints(); var sourceAsEnumerableScatterPoints = this.ItemsSource as IEnumerable <T>; if (sourceAsEnumerableScatterPoints != null) { this.ItemsSourcePoints.AddRange(sourceAsEnumerableScatterPoints); return; } // If DataFieldX or DataFieldY is not set, try to get the points from the ItemsSource if (this.DataFieldX == null || this.DataFieldY == null) { foreach (var item in this.ItemsSource) { var point = item as T; if (point != null) { this.ItemsSourcePoints.Add(point); continue; } var idpp = item as IScatterPointProvider; if (idpp != null) { this.ItemsSourcePoints.Add((T)idpp.GetScatterPoint()); } } return; } // Use reflection to add scatter points var filler = new ListFiller <T>(); this.DefineDataFields(filler); filler.Fill(this.ItemsSourcePoints, this.ItemsSource); }
/// <summary> /// The update data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } var points = this.Points; points.Clear(); // Use the mapping to generate the points if (this.Mapping != null) { foreach (var item in this.ItemsSource) { points.Add(this.Mapping(item)); } return; } // Get DataPoints from the items in ItemsSource // if they implement IScatterPointProvider // If DataFields are set, this is not used /*if (DataFieldX == null || DataFieldY == null) { foreach (var item in ItemsSource) { var idpp = item as IScatterPointProvider; if (idpp == null) { continue; } points.Add(idpp.GetScatterPoint()); } return; }*/ var dest = new List<IDataPoint>(); // Using reflection to add points var filler = new ListFiller<ScatterPoint>(); filler.Add(this.DataFieldX, (item, value) => item.X = Convert.ToDouble(value)); filler.Add(this.DataFieldY, (item, value) => item.Y = Convert.ToDouble(value)); filler.Add(this.DataFieldSize, (item, value) => item.Size = Convert.ToDouble(value)); filler.Add(this.DataFieldValue, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(this.DataFieldTag, (item, value) => item.Tag = value); filler.Fill(dest, this.ItemsSource); this.Points = dest; }
/// <summary> /// Updates the data. /// </summary> protected internal override void UpdateData() { if (this.ItemsSource == null) { return; } this.items.Clear(); // Use the mapping to generate the points if (this.Mapping != null) { foreach (var item in this.ItemsSource) { this.items.Add(this.Mapping(item)); } return; } var filler = new ListFiller<HighLowItem>(); filler.Add(this.DataFieldX, (p, v) => p.X = this.ToDouble(v)); filler.Add(this.DataFieldHigh, (p, v) => p.High = this.ToDouble(v)); filler.Add(this.DataFieldLow, (p, v) => p.Low = this.ToDouble(v)); filler.Add(this.DataFieldOpen, (p, v) => p.Open = this.ToDouble(v)); filler.Add(this.DataFieldClose, (p, v) => p.Close = this.ToDouble(v)); filler.FillT(this.items, this.ItemsSource); }
/// <summary> /// Adds scatter points specified by a items source and data fields. /// </summary> /// <param name="dest"> /// The destination collection. /// </param> /// <param name="itemsSource"> /// The items source. /// </param> /// <param name="dataFieldX"> /// The data field x. /// </param> /// <param name="dataFieldY"> /// The data field y. /// </param> /// <param name="dataFieldSize"> /// The data field size. /// </param> /// <param name="dataFieldValue"> /// The data field value. /// </param> /// <param name="dataFieldTag"> /// The data field tag. /// </param> protected void AddScatterPoints( IList<ScatterPoint> dest, IEnumerable itemsSource, string dataFieldX, string dataFieldY, string dataFieldSize, string dataFieldValue, string dataFieldTag) { var filler = new ListFiller<ScatterPoint>(); filler.Add(dataFieldX, (item, value) => item.X = Convert.ToDouble(value)); filler.Add(dataFieldY, (item, value) => item.Y = Convert.ToDouble(value)); filler.Add(dataFieldSize, (item, value) => item.Size = Convert.ToDouble(value)); filler.Add(dataFieldValue, (item, value) => item.Value = Convert.ToDouble(value)); filler.Add(dataFieldTag, (item, value) => item.Tag = value); filler.FillT(dest, itemsSource); }