using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace FLY.ControlLibrary
{

    public interface IGraphBase
    {
        #region 附加属性

        /// <summary>
        /// 标题1  :“扫描图”自己写的
        /// </summary>
        string Title { get; set; }

        /// <summary>
        /// 标题2 :{100} 10:20 系统写的
        /// </summary>
        string Title2 { get; set; }

        /// <summary>
        /// 是否有效， 标题背景显示的颜色
        /// </summary>
        bool IsValid { get; set; }

        /// <summary>
        /// 计算结果
        /// </summary>
        string CalState { get; set; }

        /// <summary>
        /// 空的数据，定义某个值为空，默认为 99999998
        /// </summary>
        int EmptyValue { get; set; }

        /// <summary>
        /// 放大倍数, 目标值= Target/放大倍数
        /// </summary>
        int Multi { get; set; }

        /// <summary>
        /// 图类型 
        /// </summary>
        System.Windows.Forms.DataVisualization.Charting.SeriesChartType ChartType { get; set; }

        /// <summary>
        /// 目标值
        /// </summary>
        int Target { get; set; }

        /// <summary>
        /// 自动目标值时的，目标值
        /// </summary>
        int AutoTarget { get; set; }

        /// <summary>
        /// 自动目标值
        /// </summary>
        bool IsAutoTarget { get; set; }

        /// <summary>
        /// 获取或设置指示是否将轴反转的标志
        /// </summary>
        bool IsReversed { get; set; }

        /// <summary>
        /// %显示
        /// </summary>
        bool IsPercent { get; set; }

        /// <summary>
        /// 规格线
        /// </summary>
        int Alarm { get; set; }

        /// <summary>
        /// 百分比缩放Y轴， 默认是 300%， 3倍Alarm
        /// </summary>
        double YRangePercent { get; set; }

        /// <summary>
        /// 是否有控制线
        /// </summary>
        bool HasCtrlLine { get; set; }

        /// <summary>
        /// 控制线
        /// </summary>
        int CtrlLine { get; set; }

        //ObservableCollection<int> DataSource { get; set; }

        /// <summary>
        /// 设置事件
        /// </summary>
        event EventHandler ShowSettingDialogEvent;
        #endregion
    }

    public interface IGraphBase2
    {
        /// <summary>
        /// 第一个分区号
        /// </summary>
        int FirstBoltNo { get; set; }


        /// <summary>
        /// 显示范围开始
        /// </summary>
        int FirstIndex { get; set; }


        /// <summary>
        /// 显示范围结束
        /// </summary>
        int LastIndex { get; set; }
        /// <summary>
        /// 数据统计的开始
        /// </summary>
        int DataFirst { get; set; }

        /// <summary>
        /// 数据统计的结束
        /// </summary>
        int DataLast { get; set; }
    }

    public interface IGraphBase3
    {
        /// <summary>
        /// mm/分区
        /// </summary>
        double MmOfBolt { get; set; }

        /// <summary>
        /// X轴间隔 单位分区
        /// </summary>
        int XInterval { get; set; }
    }
}
