private void RegisterProperties()

in System.Web.DataVisualization/Common/Utilities/CustomAttributesRegistry.cs [448:1851]


		private void RegisterProperties()
		{
			SeriesChartType[] chartTypes = null;
			CustomPropertyInfo attrInfo = null;

            //***********************************************************************
			//** DrawSideBySide properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
													SeriesChartType.Bar,
													SeriesChartType.Column,

													SeriesChartType.RangeColumn,
													SeriesChartType.BoxPlot,
													SeriesChartType.RangeBar,
													SeriesChartType.ErrorBar,

											   };
			// "DrawSideBySide" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.DrawSideBySide,
				typeof(AxisEnabled),
				"Auto",
                SR.DescriptionCustomAttributeDrawSideBySide,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

            //***********************************************************************
            //** IsXAxisQuantitative properties
            //***********************************************************************
            registeredCustomProperties.Add(new CustomPropertyInfo(
                CustomPropertyName.IsXAxisQuantitative,
                typeof(bool),
                "false",
                SR.DescriptionCustomAttributeIsXAxisQuantitive,
                IsXAxisQuantitativeChartTypes.ToArray(),
                true,
                false));

			//***********************************************************************
			//** EmptyPointValue properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Point, 
												   SeriesChartType.Bubble,
												   SeriesChartType.Line,
												   SeriesChartType.Spline,
												   SeriesChartType.StepLine,
												   SeriesChartType.Column,
												   SeriesChartType.RangeColumn,
												   SeriesChartType.RangeBar,
												   SeriesChartType.Radar,
												   SeriesChartType.Range,
												   SeriesChartType.SplineRange,
												   SeriesChartType.Polar,
												   SeriesChartType.Area,
												   SeriesChartType.SplineArea,
												   SeriesChartType.Bar, 
											   };
			registeredCustomProperties.Add( new CustomPropertyInfo(
				CustomPropertyName.EmptyPointValue,
				typeof(EmptyPointTypes),
				"Average",
				SR.DescriptionCustomAttributeEmptyPointValue,
				chartTypes,
				true,
				false) );


			//***********************************************************************
			//** Bar label styles properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.StackedBar,
												   SeriesChartType.StackedBar100,
												   SeriesChartType.RangeBar,
											   };
			// "BarLabelStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BarLabelStyle,
				typeof(BarValueLabelDrawingStyle),
				"Center",
                SR.DescriptionCustomAttributeBarLabelStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** Stacked Column/Bar properties
			//***********************************************************************
            chartTypes = new SeriesChartType[] { 
												   SeriesChartType.StackedBar,
												   SeriesChartType.StackedBar100,
												   SeriesChartType.StackedColumn,
												   SeriesChartType.StackedColumn100,

			};

            // "StackedGroupName" attribute 
            attrInfo = new CustomPropertyInfo(
                CustomPropertyName.StackedGroupName,
                typeof(string),
                string.Empty,
                SR.DescriptionCustomAttributeStackedGroupName,
                chartTypes,
                true,
                false);
            registeredCustomProperties.Add(attrInfo);



			//***********************************************************************
			//** Bar label styles properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Bar,
											   };
			// "BarLabelStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BarLabelStyle,
				typeof(BarValueLabelDrawingStyle),
				"Outside",
                SR.DescriptionCustomAttributeBarLabelStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Bar and Columnt chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Bar,
												   SeriesChartType.Column,
												   SeriesChartType.StackedBar,
												   SeriesChartType.StackedBar100,
												   SeriesChartType.StackedColumn,
												   SeriesChartType.StackedColumn100,
												   SeriesChartType.RangeBar,
												   SeriesChartType.RangeColumn,

											   };
			// "DrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.DrawingStyle,
				typeof(BarDrawingStyle),
				"Default",
                SR.DescriptionCustomAttributeDrawingStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Chart types point width properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Bar,
												   SeriesChartType.Candlestick,
												   SeriesChartType.Column,
												   SeriesChartType.StackedBar,
												   SeriesChartType.StackedBar100,
												   SeriesChartType.StackedColumn,
												   SeriesChartType.StackedColumn100,
												   SeriesChartType.Stock,
												   SeriesChartType.BoxPlot,
												   SeriesChartType.ErrorBar,
												   SeriesChartType.RangeBar,
												   SeriesChartType.RangeColumn,
											   };
			// "PointWidth" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PointWidth,
				typeof(float),
				0.8f,
                SR.DescriptionCustomAttributePointWidth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 2f;
			registeredCustomProperties.Add( attrInfo );

			// "PixelPointWidth" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PixelPointWidth,
				typeof(int),
				0,
                SR.DescriptionCustomAttributePixelPointWidth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
            attrInfo.MaxValue = CustomPropertyRegistry.MaxValueOfPixelAttribute;
			registeredCustomProperties.Add( attrInfo );

			// "MinPixelPointWidth" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.MinPixelPointWidth,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeMinPixelPointWidth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
            attrInfo.MaxValue = CustomPropertyRegistry.MaxValueOfPixelAttribute;
			registeredCustomProperties.Add( attrInfo );

			// "MaxPixelPointWidth" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.MaxPixelPointWidth,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeMaxPixelPointWidth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
            attrInfo.MaxValue = CustomPropertyRegistry.MaxValueOfPixelAttribute;
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** CandleStick chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Candlestick };

			// "PriceUpColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceUpColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeCandlePriceUpColor,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "PriceDownColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceDownColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributePriceDownColor,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );


			//***********************************************************************
			//** Stock and CandleStick chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Stock, SeriesChartType.Candlestick };

			// "LabelValueType" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.LabelValueType,
				typeof(StockLabelValueTypes),
				"Close",
                SR.DescriptionCustomAttributeLabelValueType,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Stock chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Stock };

			// "OpenCloseStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.OpenCloseStyle,
				typeof(StockOpenCloseMarkStyle),
				"Line",
                SR.DescriptionCustomAttributeOpenCloseStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "ShowOpenClose" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ShowOpenClose,
				typeof(StockShowOpenCloseTypes),
				"Both",
                SR.DescriptionCustomAttributeShowOpenClose,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );
			

			//***********************************************************************
			//** Bubble chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Bubble };

			// "BubbleScaleMin" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BubbleScaleMin,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributeBubbleScaleMin,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BubbleScaleMax" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BubbleScaleMax,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributeBubbleScaleMax,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BubbleMaxSize" attribute
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BubbleMaxSize,
				typeof(float),
				15f,
                SR.DescriptionCustomAttributeBubbleMaxSize,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "BubbleMinSize" attribute of the Bubble chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BubbleMinSize,
				typeof(float),
				3f,
                SR.DescriptionCustomAttributeBubbleMaxSize,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "BubbleUseSizeForLabel" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BubbleUseSizeForLabel,
				typeof(bool),
				false,
                SR.DescriptionCustomAttributeBubbleUseSizeForLabel,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** Pie and Doughnut chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Pie, 
												   SeriesChartType.Doughnut 
											   };


			// "PieDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PieDrawingStyle,
				typeof(PieDrawingStyle),
				"Default",
                SR.DescriptionCustomAttributePieDrawingStyle,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo3D = false;
			registeredCustomProperties.Add( attrInfo );


            // "CollectedThreshold" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedThreshold,
				typeof(double),
				0.0,
                SR.DescriptionCustomAttributeCollectedThreshold,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0.0;
			attrInfo.MaxValue = double.MaxValue;
			registeredCustomProperties.Add( attrInfo );

			// "CollectedThresholdUsePercent" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedThresholdUsePercent,
				typeof(bool),
				true,
                SR.DescriptionCustomAttributeCollectedThresholdUsePercent,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CollectedSliceExploded" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedSliceExploded,
				typeof(bool),
				false,
                SR.DescriptionCustomAttributeCollectedSliceExploded,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CollectedLabel" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedLabel,
				typeof(string),
                string.Empty,
                SR.DescriptionCustomAttributeCollectedLabel,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CollectedLegendText" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedLegendText,
				typeof(string),
				SR.DescriptionCustomAttributeCollectedLegendDefaultText,
                SR.DescriptionCustomAttributeCollectedLegendText,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CollectedToolTip" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedToolTip,
				typeof(string),
				string.Empty,
                SR.DescriptionCustomAttributeCollectedToolTip,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CollectedColor" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CollectedColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeCollectedColor,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );


			// "PieStartAngle" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PieStartAngle,
				typeof(int),
				0,
                SR.DescriptionCustomAttributePieStartAngle,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 360;
			registeredCustomProperties.Add( attrInfo );




			// "Exploded" attribute of the Pie chart
			registeredCustomProperties.Add( new CustomPropertyInfo(
				CustomPropertyName.Exploded,
				typeof(bool),
				false,
				SR.DescriptionCustomAttributePieDonutExploded,
				chartTypes,
				false,
				true) );

			// "LabelsRadialLineSize" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.LabelsRadialLineSize,
				typeof(float),
				1f,
                SR.DescriptionCustomAttributeLabelsRadialLineSize,
				chartTypes,
				true,
				true);
			attrInfo.AppliesTo3D = false;
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "LabelsHorizontalLineSize" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.LabelsHorizontalLineSize,
				typeof(float),
				1f,
                SR.DescriptionCustomAttributeLabelsHorizontalLineSize,
				chartTypes,
				true,
				true);
			attrInfo.AppliesTo3D = false;
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );


			// "PieLabelStyle" attribute of the Pie chart
			registeredCustomProperties.Add( new CustomPropertyInfo(
				CustomPropertyName.PieLabelStyle,
				typeof(PieLabelStyle),
				"Inside",
                SR.DescriptionCustomAttributePieLabelStyle,
				chartTypes,
				true,
				true) );


			// "MinimumRelativePieSize" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.MinimumRelativePieSize,
				typeof(float),
				30f,
                SR.DescriptionCustomAttributeMinimumRelativePieSize,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 10f;
			attrInfo.MaxValue = 70f;
			registeredCustomProperties.Add( attrInfo );

			// "3DLabelLineSize" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName._3DLabelLineSize,
				typeof(float),
				100f,
                SR.DescriptionCustomAttribute_3DLabelLineSize,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo2D = false;
			attrInfo.MinValue = 30f;
			attrInfo.MaxValue = 200f;
			registeredCustomProperties.Add( attrInfo );

			// "PieLineColor" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PieLineColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributePieLineColor,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Doughnut chart types properties
			//***********************************************************************

			// "DoughnutRadius" attribute of the Pie chart
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.DoughnutRadius,
				typeof(float),
				60f,
                SR.DescriptionCustomAttributeDoughnutRadius,
				new SeriesChartType[] { SeriesChartType.Doughnut },
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 99f;
			registeredCustomProperties.Add( attrInfo );


			//***********************************************************************
			//** Other
			//***********************************************************************
			
			// "LabelStyle" attribute
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Point, 
												   SeriesChartType.Column, 
												   SeriesChartType.Bubble,
												   SeriesChartType.Line,
												   SeriesChartType.Spline,
												   SeriesChartType.StepLine,
												   SeriesChartType.Area,
												   SeriesChartType.SplineArea,
												   SeriesChartType.Range,
												   SeriesChartType.SplineRange,
												   SeriesChartType.Radar,
												   SeriesChartType.Polar,

											   };
			registeredCustomProperties.Add( new CustomPropertyInfo(
				CustomPropertyName.LabelStyle,
                typeof(LabelAlignments),
				"Auto",
                SR.DescriptionCustomAttributeLabelStyle,
				chartTypes,
				true,
				true) );

			// "ShowMarkerLines" attribute
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Line,
												   SeriesChartType.Spline,
												   SeriesChartType.StepLine,
												   SeriesChartType.Area,
												   SeriesChartType.SplineArea,
												   SeriesChartType.Range,
												   SeriesChartType.SplineRange
											   };
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ShowMarkerLines,
				typeof(bool),
				false,
                SR.DescriptionCustomAttributeShowMarkerLines,
				chartTypes,
				true,
				true);
			attrInfo.AppliesTo2D = false;
			registeredCustomProperties.Add( attrInfo );

			// "LineTension" attribute
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Spline,
												   SeriesChartType.SplineArea,
												   SeriesChartType.SplineRange
				};
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.LineTension,
				typeof(float),
				0.5f,
                SR.DescriptionCustomAttributeLineTension,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 2f;
			registeredCustomProperties.Add( attrInfo );

			// "PixelPointDepth" attribute
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Area,
												   SeriesChartType.Bar,
												   SeriesChartType.Bubble,
												   SeriesChartType.Candlestick,
												   SeriesChartType.Column,
												   SeriesChartType.Line,
												   SeriesChartType.Point,
												   SeriesChartType.Spline,
												   SeriesChartType.SplineArea,
												   SeriesChartType.StackedArea,
												   SeriesChartType.StackedArea100,
												   SeriesChartType.StackedBar,
												   SeriesChartType.StackedBar100,
												   SeriesChartType.StackedColumn,
												   SeriesChartType.StackedColumn100,
												   SeriesChartType.StepLine,
												   SeriesChartType.Stock,

												   SeriesChartType.ThreeLineBreak,
												   SeriesChartType.BoxPlot,
												   SeriesChartType.ErrorBar,
												   SeriesChartType.RangeBar,
												   SeriesChartType.Kagi,
												   SeriesChartType.PointAndFigure,
												   SeriesChartType.Range,
												   SeriesChartType.RangeColumn,
												   SeriesChartType.Renko,
												   SeriesChartType.SplineRange,
												   SeriesChartType.FastLine,
												};
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PixelPointDepth,
				typeof(int),
				0,
                SR.DescriptionCustomAttributePixelPointDepth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
            attrInfo.MaxValue = CustomPropertyRegistry.MaxValueOfPixelAttribute;
			attrInfo.AppliesTo2D = false;
			registeredCustomProperties.Add( attrInfo );

			// "PixelPointGapDepth" attribute
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PixelPointGapDepth,
				typeof(int),
				0,
                SR.DescriptionCustomAttributePixelPointGapDepth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
            attrInfo.MaxValue = CustomPropertyRegistry.MaxValueOfPixelAttribute;
			attrInfo.AppliesTo2D = false;
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** FastLine chart type properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
													SeriesChartType.FastLine,
													SeriesChartType.FastPoint,
											};

/*  NOTE: This is an internal attribute
 * 
			// "PermittedPixelError" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PixelPointGapDepth,
				typeof(float),
				1f,
				"Gets or sets the acceptable error in pixels for the data point filtering algorithm.",
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 1f;
			registeredCustomProperties.Add( attrInfo );
*/
			//***********************************************************************
			//** Polar chart type properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Polar
											   };
			// "AreaDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
                CustomPropertyName.AreaDrawingStyle,
				typeof(CircularAreaDrawingStyles),
				"Circle",
                SR.DescriptionCustomAttributePolarAreaDrawingStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CircularLabelsStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CircularLabelsStyle,
				typeof(CircularAxisLabelsStyle),
				"Auto",
                SR.DescriptionCustomAttributePolarCircularLabelsStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "PolarDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
                CustomPropertyName.PolarDrawingStyle,
				typeof(PolarDrawingStyles),
				"Line",
                SR.DescriptionCustomAttributePolarDrawingStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** Radar chart type properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.Radar
											   };
			// "AreaDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
                CustomPropertyName.AreaDrawingStyle,
				typeof(CircularAreaDrawingStyles),
				"Circle",
                SR.DescriptionCustomAttributeRadarAreaDrawingStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "CircularLabelsStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CircularLabelsStyle,
				typeof(CircularAxisLabelsStyle),
				"Auto",
                SR.DescriptionCustomAttributeRadarCircularLabelsStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "RadarDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.RadarDrawingStyle,
				typeof(RadarDrawingStyle),
				"Area",
                SR.DescriptionCustomAttributeRadarDrawingStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );


			//***********************************************************************
			//** BoxPlot chart type properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.BoxPlot
											   };
			// "BoxPlotPercentile" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotPercentile,
				typeof(float),
				25f,
                SR.DescriptionCustomAttributeBoxPlotPercentile,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 1000f;
			registeredCustomProperties.Add( attrInfo );

			// "BoxPlotWhiskerPercentile" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotWhiskerPercentile,
				typeof(float),
				10f,
                SR.DescriptionCustomAttributeBoxPlotWhiskerPercentile,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 1000f;
			registeredCustomProperties.Add( attrInfo );

			// "BoxPlotShowAverage" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotShowAverage,
				typeof(bool),
				true,
                SR.DescriptionCustomAttributeBoxPlotShowAverage,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BoxPlotShowMedian" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotShowMedian,
				typeof(bool),
				true,
                SR.DescriptionCustomAttributeBoxPlotShowMedian,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BoxPlotShowUnusualValues" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotShowUnusualValues,
				typeof(bool),
				false,
                SR.DescriptionCustomAttributeBoxPlotShowUnusualValues,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BoxPlotSeries" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxPlotSeries,
				typeof(string),
				"",
                SR.DescriptionCustomAttributeBoxPlotSeries,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** ErrorBar chart type properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { 
												   SeriesChartType.ErrorBar
											   };
			// "ErrorBarStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ErrorBarStyle,
				typeof(ErrorBarStyle),
				"Both",
                SR.DescriptionCustomAttributeErrorBarStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "ErrorBarCenterMarkerStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ErrorBarCenterMarkerStyle,
				typeof(ErrorBarMarkerStyles),
				"Line",
                SR.DescriptionCustomAttributeErrorBarCenterMarkerStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "ErrorBarSeries" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ErrorBarSeries,
				typeof(string),
				"",
                SR.DescriptionCustomAttributeErrorBarSeries,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "ErrorBarType" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ErrorBarType,
                typeof(string),
                String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}({1:N0})", ErrorBarType.StandardError, ErrorBarChart.DefaultErrorBarTypeValue(ErrorBarType.StandardError)),
                SR.DescriptionCustomAttributeErrorBarType,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );


			//***********************************************************************
			//** PointAndFigure chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.PointAndFigure };

			// "UsedYValueHigh" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.UsedYValueHigh,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeUsedYValueHigh,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 20;
			registeredCustomProperties.Add( attrInfo );

			// "UsedYValueLow" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.UsedYValueLow,
				typeof(int),
				1,
                SR.DescriptionCustomAttributeUsedYValueLow,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 20;
			registeredCustomProperties.Add( attrInfo );

			// "PriceUpColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceUpColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeBarsPriceUpColor,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BoxSize" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxSize,
				typeof(string),
				"4%",
                SR.DescriptionCustomAttributePointFigureBoxSize,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "ProportionalSymbols" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ProportionalSymbols,
				typeof(bool),
				true,
                SR.DescriptionCustomAttributeProportionalSymbols,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "ReversalAmount" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ReversalAmount,
				typeof(int),
				"3",
                SR.DescriptionCustomAttributeReversalAmount,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Kagi chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Kagi };

			// "UsedYValue" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.UsedYValue,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeUsedYValue,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 20;
			registeredCustomProperties.Add( attrInfo );

			// "PriceUpColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceUpColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeBarsPriceUpColor,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "ReversalAmount" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.ReversalAmount,
				typeof(string),
				"3%",
                SR.DescriptionCustomAttributeKagiReversalAmount,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Renko chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Renko };

			// "UsedYValue" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.UsedYValue,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeRenkoUsedYValue,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 20;
			registeredCustomProperties.Add( attrInfo );

			// "PriceUpColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceUpColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeBarsPriceUpColor,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "BoxSize" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.BoxSize,
				typeof(string),
				"4%",
                SR.DescriptionCustomAttributeBoxSize,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** ThreeLineBreak chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.ThreeLineBreak };

			// "UsedYValue" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.UsedYValue,
				typeof(int),
				0,
                SR.DescriptionCustomAttributeThreeLineBreakUsedYValue,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0;
			attrInfo.MaxValue = 20;
			registeredCustomProperties.Add( attrInfo );

			// "PriceUpColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PriceUpColor,
				typeof(Color),
				"",
                SR.DescriptionCustomAttributeBarsPriceUpColor,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "NumberOfLinesInBreak" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.NumberOfLinesInBreak,
				typeof(int),
				3,
                SR.DescriptionCustomAttributeNumberOfLinesInBreak,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );



			//***********************************************************************
			//** Funnel chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Funnel };


			// "FunnelLabelStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelLabelStyle,
				typeof(FunnelLabelStyle),
				"OutsideInColumn",
                SR.DescriptionCustomAttributeFunnelLabelStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );


			// "FunnelNeckWidth" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelNeckWidth,
				typeof(float),
				5f,
                SR.DescriptionCustomAttributeFunnelNeckWidth,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "FunnelNeckHeight" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelNeckHeight,
				typeof(float),
				5f,
                SR.DescriptionCustomAttributeFunnelNeckHeight,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "FunnelMinPointHeight" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelMinPointHeight,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributeFunnelMinPointHeight,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "Funnel3DRotationAngle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.Funnel3DRotationAngle,
				typeof(float),
				5f,
                SR.DescriptionCustomAttributeFunnel3DRotationAngle,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo2D = false;
			attrInfo.MinValue = -10f;
			attrInfo.MaxValue = 10f;
			registeredCustomProperties.Add( attrInfo );

			// "FunnelPointGap" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelPointGap,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributeFunnelPointGap,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "Funnel3DDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.Funnel3DDrawingStyle,
				typeof(Funnel3DDrawingStyle),
				"CircularBase",
                SR.DescriptionCustomAttributeFunnel3DDrawingStyle,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo2D = false;
			registeredCustomProperties.Add( attrInfo );

			// "FunnelStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelStyle,
				typeof(FunnelStyle),
				"YIsHeight",
                SR.DescriptionCustomAttributeFunnelStyle,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );

			// "FunnelInsideLabelAlignment" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelInsideLabelAlignment,
				typeof(FunnelLabelVerticalAlignment),
				"Center",
                SR.DescriptionCustomAttributeFunnelInsideLabelAlignment,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "FunnelOutsideLabelPlacement" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.FunnelOutsideLabelPlacement,
				typeof(FunnelLabelPlacement),
				"Right",
                SR.DescriptionCustomAttributeFunnelOutsideLabelPlacement,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "CalloutLineColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CalloutLineColor,
				typeof(Color),
				"Black",
                SR.DescriptionCustomAttributeCalloutLineColor,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			//***********************************************************************
			//** Pyramid chart types properties
			//***********************************************************************
			chartTypes = new SeriesChartType[] { SeriesChartType.Pyramid };


			// "PyramidLabelStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidLabelStyle,
				typeof(FunnelLabelStyle),
				"OutsideInColumn",
                SR.DescriptionCustomAttributePyramidLabelStyle,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );


			// "PyramidMinPointHeight" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidMinPointHeight,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributePyramidMinPointHeight,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "Pyramid3DRotationAngle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.Pyramid3DRotationAngle,
				typeof(float),
				5f,
                SR.DescriptionCustomAttributePyramid3DRotationAngle,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo2D = false;
			attrInfo.MinValue = -10f;
			attrInfo.MaxValue = 10f;
			registeredCustomProperties.Add( attrInfo );

			// "PyramidPointGap" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidPointGap,
				typeof(float),
				0f,
                SR.DescriptionCustomAttributePyramidPointGap,
				chartTypes,
				true,
				false);
			attrInfo.MinValue = 0f;
			attrInfo.MaxValue = 100f;
			registeredCustomProperties.Add( attrInfo );

			// "Pyramid3DDrawingStyle" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.Pyramid3DDrawingStyle,
				typeof(Funnel3DDrawingStyle),
				"SquareBase",
                SR.DescriptionCustomAttributePyramid3DDrawingStyle,
				chartTypes,
				true,
				false);
			attrInfo.AppliesTo2D = false;
			registeredCustomProperties.Add( attrInfo );

			// "PyramidInsideLabelAlignment" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidInsideLabelAlignment,
				typeof(FunnelLabelVerticalAlignment),
				"Center",
                SR.DescriptionCustomAttributePyramidInsideLabelAlignment,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "PyramidOutsideLabelPlacement" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidOutsideLabelPlacement,
				typeof(FunnelLabelPlacement),
				"Right",
                SR.DescriptionCustomAttributePyramidOutsideLabelPlacement,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "CalloutLineColor" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.CalloutLineColor,
				typeof(Color),
				"Black",
                SR.DescriptionCustomAttributeCalloutLineColor,
				chartTypes,
				true,
				true);
			registeredCustomProperties.Add( attrInfo );

			// "PyramidValueType" attribute 
			attrInfo = new CustomPropertyInfo(
				CustomPropertyName.PyramidValueType,
				typeof(PyramidValueType),
				"Linear",
                SR.DescriptionCustomAttributePyramidValueType,
				chartTypes,
				true,
				false);
			registeredCustomProperties.Add( attrInfo );


		}