public BedTable LoadTableData(TablePageProperties props)
        {
            var data = m_table.LoadFixedData();

            if (data != null)
            {
                return(new BedTable(data));
            }
            return(new BedTable(m_table.m_table));
        }
        public override ChartData LoadChartData(ITabularDataView data)
        {
            var fmt = new BedValueFormatter(new DataFormatSettings());
            var res = new ChartData();

            res.ValueDefs = ValueDefs.ToArray();
            var tbl      = data.GetStructure(null);
            var colnames = tbl.Columns.GetNames();
            int labindex = colnames.IndexOfEx(LabelColumn);

            int[] valindexes = new int[ValueDefs.Count];
            for (int i = 0; i < ValueDefs.Count; i++)
            {
                valindexes[i] = colnames.IndexOfEx(ValueDefs[i].Column);
            }

            var pg = new TablePageProperties {
                Count = 128
            };
            var table = data.LoadTableData(pg);

            foreach (var row in table.Rows)
            {
                var item = new ChartData.DataItem();
                row.ReadValue(labindex);
                fmt.ReadFrom(row);
                item.Label  = fmt.GetText();
                item.Values = new double[ValueDefs.Count];
                for (int i = 0; i < ValueDefs.Count; i++)
                {
                    row.ReadValue(valindexes[i]);
                    fmt.ReadFrom(row);
                    Double.TryParse(fmt.GetText(), NumberStyles.Number, CultureInfo.InvariantCulture, out item.Values[i]);
                }
                res.Items.Add(item);
            }
            return(res);
        }