using System;
using System.ComponentModel;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace QC.CTDS.DM.DataStructures.FormatDescriptorStructure;

[Serializable]
public class MultiDimensionResult : ResultDataSet
{
	private ChartDimension xChartDimension = new ChartDimension();

	private ChartDimension zChartDimension = new ChartDimension();

	private SeriesDisplayProperties displayProperties = new SeriesDisplayProperties();

	[XmlElement("XAxis", Form = XmlSchemaForm.Unqualified)]
	public ChartDimension XAxis
	{
		get
		{
			return xChartDimension;
		}
		set
		{
			if (xChartDimension != value)
			{
				xChartDimension = value;
				OnPropertyChanged("XAxis");
			}
		}
	}

	[XmlElement("ZAxis", Form = XmlSchemaForm.Unqualified)]
	public ChartDimension ZAxis
	{
		get
		{
			return zChartDimension;
		}
		set
		{
			if (zChartDimension != value)
			{
				zChartDimension = value;
				OnPropertyChanged("ZAxis");
			}
		}
	}

	[DefaultValue(null)]
	public SeriesDisplayProperties DisplayProperties
	{
		get
		{
			return displayProperties;
		}
		set
		{
			if (displayProperties != value)
			{
				displayProperties = value;
				OnPropertyChanged("DisplayProperties");
			}
		}
	}

	public MultiDimensionResult()
	{
	}

	public MultiDimensionResult(MultiDimensionResult multiDimensionResult)
		: base(multiDimensionResult)
	{
		xChartDimension = new ChartDimension(multiDimensionResult.xChartDimension);
		zChartDimension = new ChartDimension(multiDimensionResult.zChartDimension);
		displayProperties = new SeriesDisplayProperties(multiDimensionResult.displayProperties);
	}

	public override void EstablishParentChildRelationship()
	{
		SetParentAndChildRelation(DisplayProperties, this);
		SetParentAndChildRelation(XAxis, this);
		SetParentAndChildRelation(ZAxis, this);
	}
}
