123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Abt.Controls.SciChart.Visuals.RenderableSeries;
- using System.ComponentModel;
- using System.Windows.Media;
- using Abt.Controls.SciChart.Model.DataSeries;
- using Aitex.Core.Util;
- namespace Aitex.Core.UI.View.Smart
- {
- /// <summary>
- /// Customized line series type
- /// </summary>
- public class SmartDataLine : FastLineRenderableSeries, INotifyPropertyChanged
- {
- /// <summary>
- /// 自定义曲线的构造函数
- /// </summary>
- /// <param name="seriesName"></param>
- /// <param name="dataSource"></param>
- public SmartDataLine(string displayName, Color seriesColor, string dbName, bool isVisable)
- {
- //产生一随机的GUID作为每个曲线的标志号,方便后续对曲线的查找和操作
- UniqueId = Guid.NewGuid().ToString();
- //if (dataSource.Datas.ContainsKey(dbName))
- // Points = dataSource.Datas[dbName];
- //_dataSource = dataSource;
- //指名x、y坐标轴,此处和xaml文件中定义需一致
- XAxisId = "DefaultAxisId";
- YAxisId = "DefaultAxisId";
- DataSeries = new XyDataSeries<DateTime, float>();
- DisplayName = displayName;
-
- DbDataName = dbName;
- SeriesColor = seriesColor;
- DefaultSeriesColor = seriesColor;
- NextQueryTime = DateTime.MinValue;
- IsVisible = isVisable;
- IsDefaultVisable = isVisable;
- }
- /// <summary>
- /// 下一次获取数据的时间点
- /// </summary>
- public DateTime NextQueryTime { get; set; }
- /// <summary>
- /// 是否默认显示
- /// </summary>
- public bool IsDefaultVisable { get; set; }
- /// <summary>
- /// 默认的显示颜色
- /// </summary>
- public Color DefaultSeriesColor { get; set; }
- /// <summary>
- /// related data source
- /// </summary>
- //PostgreSqlDataSource _dataSource;
- /// <summary>
- /// Series Name
- /// </summary>
- public string DbDataName { get; private set; }
- /// <summary>
- /// series line's display name
- /// </summary>
- public string DisplayName
- {
- get
- {
- return DataSeries.SeriesName;
- }
- set
- {
- DataSeries.SeriesName = value;
- InvokePropertyChanged("DisplayName");
- }
- }
- /// <summary>
- /// series line's thickness
- /// </summary>
- public double LineThickness
- {
- get
- {
- return StrokeThickness;
- }
- set
- {
- var i = Convert.ToInt32(value);
- if (i < 1) i = 1;
- if (i > 100) i = 100;
- StrokeThickness = i;
- InvokePropertyChanged("LineThickness");
- }
- }
- /// <summary>
- /// series object's unique id
- /// </summary>
- public string UniqueId { get; private set; }
- /// <summary>
- /// raw data points
- /// </summary>
- public DataItem Points { get; set; }
- #region PropertyChanged
- public event PropertyChangedEventHandler PropertyChanged;
- public void InvokePropertyChanged(string propertyName)
- {
- PropertyChangedEventArgs eventArgs = new PropertyChangedEventArgs(propertyName);
- PropertyChangedEventHandler changed = PropertyChanged;
- if (changed != null)
- {
- changed(this, eventArgs);
- }
- }
- public void InvokePropertyChanged()
- {
- Type t = this.GetType();
- var ps = t.GetProperties();
- foreach (var p in ps)
- {
- InvokePropertyChanged(p.Name);
- }
- }
- #endregion
- }
- }
|