Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/ChartsMainDemo/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/ChartsMainDemo/Modules/ChartDemoPie.cs

using System;
using System.Drawing;
using DevExpress.Utils;

namespace DevExpress.XtraCharts.Demos.Modules {
	public partial class ChartDemoPie : DevExpress.XtraCharts.Demos.Modules.ChartDemoBase2D {
        DevExpress.XtraCharts.ChartControl chartControl;
        DevExpress.XtraEditors.CheckEdit checkEditValueAsPercent;

		public override ChartControl ChartControl { get { return this.chartControl; } }
        protected override DefaultBoolean ToolTipEnabled { get { return DefaultBoolean.True; } }

		public ChartDemoPie() {
			InitializeComponent();
            InitExplodeModeComboBox();
            cbLabelPosition.EditValue = "Radial";
		}
        protected override void InitControls() {
            base.InitControls();
            ShowLabels = true;
            foreach (Series series in chartControl.Series)
                series.ToolTipPointPattern = "{A}: {V:0.0}M km" + (char)178;
        }
        void InitExplodeModeComboBox() {
            if (ChartControl.Series.Count > 0)
                cbExplodeMode.Properties.Items.AddRange(PieExplodingHelper.CreateModeList(ChartControl.Series[0].Points, true));
            cbExplodeMode.SelectedIndex = 0;
        }
		void checkEditValueAsPercent_CheckedChanged(object sender, EventArgs e) {
            if (ChartControl.Series.Count > 0) {
                PiePointOptions options = chartControl.Series[0].Label.PointOptions as PiePointOptions;
                if (options != null) {
                    options.PercentOptions.ValueAsPercent = checkEditValueAsPercent.Checked;
                    if (checkEditValueAsPercent.Checked)
                        SetNumericOptions(chartControl.Series[0], NumericFormat.Percent, 0);
                    else
                        SetNumericOptions(chartControl.Series[0], NumericFormat.FixedPoint, 1);
                }
            }
		}
        void cbLabelPosition_SelectedIndexChanged(object sender, EventArgs e) {
            if (ChartControl.Series.Count == 0)
                return;
            PieSeriesLabel label = chartControl.Series[0].Label as PieSeriesLabel;
            if (label != null) {
                label.Position = (PieSeriesLabelPosition)cbLabelPosition.SelectedIndex;
                label.TextColor = (label.Position == PieSeriesLabelPosition.Outside || label.Position == PieSeriesLabelPosition.TwoColumns) ? Color.Empty : Color.Black;
                label.Antialiasing = label.Position == PieSeriesLabelPosition.Radial || label.Position == PieSeriesLabelPosition.Tangent;
            }
        }
        void cbExplodeMode_SelectedIndexChanged(object sender, EventArgs e) {
            if (ChartControl.Series.Count == 0)
                return;
            PieSeriesView view = chartControl.Series[0].View as PieSeriesView;
            if (view != null) {
                string mode = (string)cbExplodeMode.SelectedItem;
                PieExplodingHelper.ApplyMode(view, mode);
            }
        }
        void chartControl_PieSeriesPointExploded(object sender, PieSeriesPointExplodedEventArgs e) {
            if (e.Dragged)
                cbExplodeMode.SelectedItem = PieExplodingHelper.Custom;
        }
        public override void UpdateControls() {
            base.UpdateControls();
            if (ChartControl.Series.Count == 0)
                return;
            PieSeriesLabel label = this.chartControl.Series[0].Label as PieSeriesLabel;
            if (label != null) {
                cbLabelPosition.SelectedIndex = (int)label.Position;
                if (chartControl.Series[0].Label.PointOptions is PiePointOptions)
                    checkEditValueAsPercent.Checked = ((PiePointOptions)chartControl.Series[0].Label.PointOptions).PercentOptions.ValueAsPercent;
                this.cbLabelPosition.Enabled = ShowLabels;
                this.labelPosition.Enabled = ShowLabels;
            }
        }
    }
}