public Master_Detail() { InitializeComponent(); comboBox1.Items.Clear(); EditorUtils.FillEnum(comboBox1, typeof(DetailAggregate)); tChart1.ClickSeries += tChart1_ClickSeries; master = new Bar(tChart1.Chart); master.Title = "Sample"; master.ColorEach = true; master.Detail.Aggregate = DetailAggregate.Sum; master.BeginUpdate(); master.Add("Cars", Color.Empty, 21, 14, 59, 8); master.Add("Lamps", Color.Empty, 5, 10, 20, 7); master.Add("Tables", Color.Empty, 17, 20, 6, 12); master.Detail[0].Labels[1] = "Ford"; master.Detail[2].Labels[2] = "Wood"; System.Data.DataSet data = master.DataSource as System.Data.DataSet; System.Data.DataTable dataTable = data.Tables[0]; dataGridView1.DataBindings.Add("DataSource", data, dataTable.TableName); dataGridView1.CellEndEdit += dataGridView1_CellEndEdit; dataGridView1.SelectionChanged += dataGridView1_SelectionChanged; master.EndUpdate(); }
private void InvalidateDynamicSeries() { if (ClipRect.Width == 0) { return; } if (Zooming.PointEnabled == true) { return; } if (BufferedSeries.PointsCount == 0) { return; } if ((SwiftPlotDiagram)Diagram == null) { return; } SwiftPlotDiagramAxisX axisX = ((SwiftPlotDiagram)Diagram).AxisX; double visualMin = (double)axisX.VisualRange.MinValue; double visualMax = (double)axisX.VisualRange.MaxValue; double visualWidth = visualMax - visualMin; if (visualWidth == 0) { return; } double step = (visualWidth / BaseTime) / ClipRect.Width; step = (step < 1) ? 1 : step; int start = (int)(visualMin / BaseTime); int stop = (int)Math.Ceiling(visualMax / BaseTime); stop = (stop < BufferedSeries.PointsCount) ? stop : BufferedSeries.PointsCount; int count = (int)((double)(stop - start) / step); if (count <= 0) { return; } if (start >= step) { start -= (int)step; count++; } if ((start + count * step) < BufferedSeries.PointsCount) { count++; } double time; double startTime = start * BaseTime; float[] values; SeriesPoint[] points; Series.BeginUpdate(); try { ClearSeriesPoint(); BufferedSeries.Lock(); try { foreach (UlDoubleBufferedSeries bufferedSeries in BufferedSeries.IndexList) { Series series = Series[bufferedSeries.Name]; if (series.Visible == true) { points = new SeriesPoint[count]; values = bufferedSeries.Points.ToArray(start, step, count); for (int i = 0; i < values.Length; i++) { time = startTime + Math.Round(i * step) * BaseTime; points[i] = new SeriesPoint(time, values[i]); } series.Points.AddRange(points); } Win32.SwitchToThread(); } } finally { BufferedSeries.Unlock(); } } finally { Series.EndUpdate(); } }
private void InvalidateStaticSeries() { if (ClipRect.Width == 0) { return; } if (BufferedSeries.PointsCount == 0) { return; } if ((SwiftPlotDiagram)Diagram == null) { return; } Series.BeginUpdate(); try { double startTime, time; float[] values; int start, count; SeriesPoint[] points; SwiftPlotDiagramAxisX axisX = ((SwiftPlotDiagram)Diagram).AxisX; double visualMin = (double)axisX.VisualRange.MinValue; double visualMax = (double)axisX.VisualRange.MaxValue; double visualWidth = visualMax - visualMin; double wholeMin = (double)axisX.WholeRange.MinValue; double wholeMax = (double)axisX.WholeRange.MaxValue; double wholeWidth = wholeMax - wholeMin; double step; if (visualWidth == wholeWidth) { start = 0; step = (double)BufferedSeries.PointsCount / (double)ClipRect.Width; if (step > 1) { count = ClipRect.Width; } else { step = 1; count = BufferedSeries.PointsCount; } } else { start = (int)(visualMin / BaseTime); count = (int)(visualWidth / BaseTime); step = (count <= ClipRect.Width) ? 1 : ((double)count / (double)ClipRect.Width); count = (int)(count / step) + 4; if (start - step >= 0) { start -= (int)step; count++; } } startTime = start * BaseTime; ClearSeriesPoint(); BufferedSeries.Lock(); try { foreach (UlDoubleBufferedSeries bufferedSeries in BufferedSeries.IndexList) { Series series = Series[bufferedSeries.Name]; if (series.Visible == true) { points = new SeriesPoint[count]; values = bufferedSeries.Points.ToArray(start, step, count); for (int i = 0; i < values.Length; i++) { time = startTime + Math.Round(i * step) * BaseTime; points[i] = new SeriesPoint(time, values[i]); } series.Points.AddRange(points); } Win32.SwitchToThread(); } } finally { BufferedSeries.Unlock(); } } finally { Series.EndUpdate(); } }