using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using QC.CTDS.DM.DataStructures.FormatDescriptorStructure;
using QC.CTDS.DM.SharedLibrary;

namespace QC.CTDS.DM.DataStructures.OutputDataStructure;

[DataContract]
public class ScatteredData : OutputData
{
	private string xAxisTitle;

	private string yAxisTitle;

	private string secYAxisTitle;

	private Table<string> dataTable = new Table<string>();

	private double xAxisMinScale = double.NaN;

	private double xAxisMaxScale = double.NaN;

	private double yAxisMinScale = double.NaN;

	private double yAxisMaxScale = double.NaN;

	private double secYAxisMinScale = double.NaN;

	private double secYAxisMaxScale = double.NaN;

	private bool useAutoScaleXAxis = true;

	private bool useAutoScaleYAxis = true;

	private bool useAutoScaleSecYAxis = true;

	private List<Tuple<string, string, SeriesDisplayProperties>> resultDisplayList = new List<Tuple<string, string, SeriesDisplayProperties>>();

	[DataMember]
	public string XAxisTitle
	{
		get
		{
			return xAxisTitle;
		}
		set
		{
			xAxisTitle = value;
		}
	}

	[DataMember]
	public string YAxisTitle
	{
		get
		{
			return yAxisTitle;
		}
		set
		{
			yAxisTitle = value;
		}
	}

	[DataMember]
	public string SecYAxisTitle
	{
		get
		{
			return secYAxisTitle;
		}
		set
		{
			secYAxisTitle = value;
		}
	}

	public Table<string> DataTbl
	{
		get
		{
			return dataTable;
		}
		set
		{
			dataTable = value;
		}
	}

	public double XAxisMinScale
	{
		get
		{
			return xAxisMinScale;
		}
		set
		{
			xAxisMinScale = value;
		}
	}

	public double XAxisMaxScale
	{
		get
		{
			return xAxisMaxScale;
		}
		set
		{
			xAxisMaxScale = value;
		}
	}

	public double YAxisMinScale
	{
		get
		{
			return yAxisMinScale;
		}
		set
		{
			yAxisMinScale = value;
		}
	}

	public double YAxisMaxScale
	{
		get
		{
			return yAxisMaxScale;
		}
		set
		{
			yAxisMaxScale = value;
		}
	}

	public double SecYAxisMinScale
	{
		get
		{
			return secYAxisMinScale;
		}
		set
		{
			secYAxisMinScale = value;
		}
	}

	public double SecYAxisMaxScale
	{
		get
		{
			return secYAxisMaxScale;
		}
		set
		{
			secYAxisMaxScale = value;
		}
	}

	[DataMember]
	public bool UseAutoScaleXAxis
	{
		get
		{
			return useAutoScaleXAxis;
		}
		set
		{
			useAutoScaleXAxis = value;
		}
	}

	[DataMember]
	public bool UseAutoScaleYAxis
	{
		get
		{
			return useAutoScaleYAxis;
		}
		set
		{
			useAutoScaleYAxis = value;
		}
	}

	[DataMember]
	public bool UseAutoScaleSecYAxis
	{
		get
		{
			return useAutoScaleSecYAxis;
		}
		set
		{
			useAutoScaleSecYAxis = value;
		}
	}

	[DataMember]
	public List<ChartSeries> ScatterChartSeries { get; set; }

	public List<Tuple<string, string, SeriesDisplayProperties>> ResultDisplayList
	{
		get
		{
			return resultDisplayList;
		}
		set
		{
			resultDisplayList = value;
		}
	}

	[DataMember]
	public Dictionary<string, string> SerializedYAxisAutoMinMax { get; set; }
}
