void INCustomRequestCallback.OnCustomRequestCallback(NAspNetThinWebControl control, NRequestContext context, string argument)
            {
                NThinDiagramControl diagramControl = (NThinDiagramControl)control;

                string[]      args         = argument.Split(',');
                NDataGrouping dataGrouping = null;

                switch (args[0])
                {
                case "EqualDistribution":
                    dataGrouping = new NDataGroupingEqualDistribution();
                    break;

                case "EqualInterval":
                    dataGrouping = new NDataGroupingEqualInterval();
                    break;

                case "Optimal":
                    dataGrouping = new NDataGroupingOptimal();
                    break;

                default:
                    throw new Exception("New data grouping type?");
                }

                dataGrouping.RoundedRanges = Boolean.Parse(args[1]);

                MapRenderer mapRenderer = new MapRenderer();

                mapRenderer.InitDocument(diagramControl.Document, dataGrouping);

                diagramControl.UpdateView();
                diagramControl.AddCustomClientCommand("UpdateLegend");
            }
        private void btnRecreateMap_Click(object sender, EventArgs e)
        {
            if (rbEqualDistribution.Checked)
            {
                m_DataGrouping = new NDataGroupingEqualDistribution();
            }
            else if (rbEqualInterval.Checked)
            {
                m_DataGrouping = new NDataGroupingEqualInterval();
            }
            else
            {
                m_DataGrouping = new NDataGroupingOptimal();
            }

            m_DataGrouping.RoundedRanges = chkRoundedRanges.Checked;
            ResetExample();
        }