Esempio n. 1
0
        protected Series BuildScaleSeries(CaisisChart chart, string scaleName)
        {
            // set title
            string currentTitle = chart.Titles[0].Text;

            if (string.IsNullOrEmpty(currentTitle))
            {
                chart.Titles[0].Text = scaleName;
            }
            chart.Titles[0].Font = DEFAULT_FONT;
            // create new series
            Series series = new Series(scaleName);

            series.ChartArea = "MainArea";
            series.ChartType = SeriesChartType.Line;
            //series.Color = System.Drawing.ColorTranslator.FromHtml("#8d2a2c");
            series.Color                   = GetNextColor();
            series.BorderWidth             = 3;
            series.MarkerStyle             = MarkerStyle.Diamond;
            series.MarkerColor             = COLOR_WHEEL[0];// System.Drawing.ColorTranslator.FromHtml("#8d2a2c");
            series.MarkerSize              = 11;
            series["ShowMarkerLines"]      = "False";
            series.LabelFormat             = "";
            series.IsValueShownAsLabel     = false;
            series.SmartLabelStyle.Enabled = true;
            series.LabelAngle              = 0;
            series.Font           = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular);
            series.LabelForeColor = Color.Black;
            chart.Series.Add(series);

            return(series);
        }
        private Series BuildSeries(CaisisChart chart, string scaleName)
        {
            chart.Titles[0].Font = DEFAULT_FONT;
            // create new series
            Series series = new Series(scaleName);

            series.ChartArea               = "MainArea";
            series.ChartType               = SeriesChartType.Line;
            series.Color                   = GetNextColor();
            series.BorderWidth             = 2;
            series.MarkerStyle             = MarkerStyle.Circle;
            series.MarkerColor             = System.Drawing.ColorTranslator.FromHtml("#000000"); //COLOR_WHEEL[0];
            series.MarkerSize              = 7;
            series["ShowMarkerLines"]      = "False";
            series.LabelFormat             = "";
            series.IsValueShownAsLabel     = false;
            series.SmartLabelStyle.Enabled = true;
            series.LabelAngle              = 0;
            series.Font           = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular);
            series.LabelForeColor = Color.Black;
            //            series.XValueType = ChartValueType.DateTime;
            series.XValueType = ChartValueType.Int32;
            chart.Series.Add(series);

            return(series);
        }
Esempio n. 3
0
        protected void BuildScaleSeries(CaisisChart chart, string scaleName, DataView points)
        {
            var series = BuildScaleSeries(chart, scaleName);

            // data bind
            BindScaleSeries(chart, series, points);
        }
Esempio n. 4
0
        protected void BuildScaleChart(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                string   scaleName  = DataBinder.Eval(e.Item.DataItem, "ScaleName").ToString();
                DataView pointsView = DataBinder.Eval(e.Item.DataItem, "ScaleDataView") as DataView;
                IEnumerable <BreastQPoint> points = DataBinder.Eval(e.Item.DataItem, "ScaleData") as IEnumerable <BreastQPoint>;
                CaisisChart           chart       = e.Item.FindControl("BreastQChart") as CaisisChart;
                BaseBreastQScaleChart scaleChart  = e.Item.FindControl("ScaleChart") as BaseBreastQScaleChart;

                BuildScaleSeries(chart, scaleName, pointsView);

                Literal NewTableRow = (Literal)e.Item.FindControl("NewTableRow");
                if (e.Item.ItemIndex > 0 && (e.Item.ItemIndex % 2) == 1)
                {
                    NewTableRow.Visible = true;
                }

                // DEBUG:

                Repeater debugRptr = e.Item.FindControl("BreastQChart_Data") as Repeater;
                bool     debug     = Request.QueryString["debug"] == "true";
                if (debugRptr != null && debug)
                {
                    debugRptr.DataSource = points;
                    debugRptr.DataBind();
                }
            }
        }
Esempio n. 5
0
        private Series BuildSeries(CaisisChart chart, Color seriesColor, SeriesChartType seriesChartType, MarkerStyle seriesMarkerStyle, string seriesTitle)
        {
            // set title
            string currentTitle = chart.Titles[0].Text;

            if (string.IsNullOrEmpty(currentTitle))
            {
                chart.Titles[0].Text = seriesTitle;
            }
            chart.Titles[0].Font = DEFAULT_FONT;
            // create new series
            Series series = new Series();//seriesTitle);

            series.ChartArea = "MainArea";
            series.ChartType = seriesChartType;// SeriesChartType.Line;
            //series.Color = System.Drawing.ColorTranslator.FromHtml("#8d2a2c");
            series.Color                   = seriesColor;
            series.BorderWidth             = 3;
            series.MarkerStyle             = seriesMarkerStyle; //MarkerStyle.Diamond;
            series.MarkerColor             = seriesColor;       // Color.FromArgb(79, 129, 189);
            series.MarkerSize              = 11;
            series["ShowMarkerLines"]      = "False";
            series.LabelFormat             = "";
            series.IsValueShownAsLabel     = false;
            series.SmartLabelStyle.Enabled = true;
            series.LabelAngle              = 0;
            series.Font           = new Font(FontFamily.GenericSansSerif, 7, FontStyle.Regular);
            series.LabelForeColor = Color.Black;
            chart.Series.Add(series);

            return(series);
        }
Esempio n. 6
0
        private CaisisChart GetChartPrototype()
        {
            CaisisChart c = new CaisisChart();

            c.Width  = 550;
            c.Height = 200;

            c.BorderlineDashStyle = ChartDashStyle.Solid;
            c.BackColor           = Color.FromArgb(0xFF, 0xFF, 0xFF);


            // legend
            Legend legend1 = new Legend("Legend1");

            legend1.Enabled = false;

            c.Legends.Add(legend1);


            // series
            SmartLabelStyle labelStyle = new SmartLabelStyle();

            labelStyle.Enabled = true;
            labelStyle.CalloutLineAnchorCapStyle = LineAnchorCapStyle.None;
            labelStyle.CalloutStyle = LabelCalloutStyle.None;

            Series series = new Series("Series1");

            series.ChartType           = SeriesChartType.Line;
            series.Color               = Color.FromArgb(0xC4, 0x3E, 0x06);
            series.Legend              = "Legend1";
            series.XValueMember        = "Months";
            series.YValueMembers       = "Score";
            series.IsValueShownAsLabel = true;
            series.LabelForeColor      = Color.FromArgb(0xC4, 0x3E, 0x06);
            series.SmartLabelStyle     = labelStyle;
            series.MarkerStyle         = MarkerStyle.Circle;
            series.MarkerSize          = 4;

            c.Series.Add(series);


            // chart area
            ChartArea chartArea = new ChartArea();

            chartArea.BackSecondaryColor = Color.White;
            chartArea.BackColor          = Color.AliceBlue;
            chartArea.ShadowColor        = Color.Transparent;
            chartArea.BackGradientStyle  = GradientStyle.TopBottom;

            c.ChartAreas.Add(chartArea);

            return(c);
        }
        private void BindSeries(CaisisChart chart, Series series, DataView points, string currentSurvey)
        {
            series.Points.DataBind(points, "MonthsSinceSurgery", "SurveyScore", "");
//            chart.ChartAreas[0].AxisY.Minimum = YAxisMin[currentSurvey];
//            chart.ChartAreas[0].AxisY.Maximum = YAxisMax[currentSurvey];
            chart.ChartAreas[0].AxisY.Interval = (chart.ChartAreas[0].AxisY.Maximum <= 10) ? 1 : ((chart.ChartAreas[0].AxisY.Maximum <= 30) ? 5 : 10);

//            chart.ChartAreas[0].AxisX.MajorTickMark.Interval = ((int)points[points.Count - 1]["MonthsSinceSurgery"] >= 6) ? 6 : 1;
            chart.ChartAreas[0].AxisX.LabelStyle.Interval = ((int)points[points.Count - 1]["MonthsSinceSurgery"] >= 6) ? 6 : 1;
            chart.ChartAreas[0].AxisX.LabelStyle.Angle    = 0;
            chart.ChartAreas[0].AxisX.Minimum             = 0;
            chart.ChartAreas[0].AxisX.Title = "Months Since Surgery";
        }
Esempio n. 8
0
        protected void BindScaleSeries(CaisisChart chart, Series series, DataView points)
        {
            // TODO: cleanup
            DataTable dt = points.Table;

            // create points label
            dt.Columns.Add(new DataColumn("PointsLabel", typeof(string), "SurveyDateText"));
            dt.Columns.Add(new DataColumn("Tooltip", typeof(string), "SurveyDateText + ' (' + ScaleScore + ')'"));
            dt.Columns.Add(new DataColumn("SurveyDateTicks", typeof(double)));
            // TODO: x-axis label
            dt.Columns.Add(new DataColumn("XAxisLabel", typeof(string)));
            double[] ticks = new double[dt.Rows.Count];
            // collect date as points
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow row  = dt.Rows[i];
                var     tick = (double)((DateTime)row["SurveyDate"]).Ticks;
                ticks[i] = tick;
                // set x-axis label
                string xAxisLabel = row[scleChartXAxisLabel].ToString();
                row["XAxisLabel"] = GetXAxisLabel(xAxisLabel, row["SurveyType"].ToString(), (DateTime)row["SurveyDate"]);
            }

            // smooth points
            //int[] normalizedPoints = SmoothPoints(ticks, 1, Math.Min(10, ticks.Count() * 2));
            // TODO: revisit point spacing, smooth based on percentage
            int[] normalizedPoints = SmoothPoints(ticks, 0, 100, true, true);
            // update column
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow row             = dt.Rows[i];
                int     normalizedPoint = (int)normalizedPoints[i];
                row["SurveyDateTicks"] = normalizedPoint;
            }
            // smooth axis range
            double min  = normalizedPoints.Min();
            double max  = normalizedPoints.Max();
            var    area = chart.ChartAreas["MainArea"];

            //area.AxisX.Minimum = min;
            //area.AxisX.Maximum = max;

            series.Points.DataBind(points, "SurveyDateTicks", "ScaleScore", "AxisLabel=XAxisLabel,Tooltip=Tooltip");
        }
Esempio n. 9
0
        public CaisisChart GetErectileFunctionChart()
        {
            Init();

            if (!CanBuildErectileFunctionChart)
            {
                return(null);
            }

            CaisisChart c = GetChartPrototype();

            c.ID = "EFChart";

            AddEFAxes(c.ChartAreas[0]);

            c.DataSource = efChartTable;
            c.DataBind();

            return(c);
        }
Esempio n. 10
0
        public CaisisChart GetUrinaryFunctionChart()
        {
            Init();

            if (!CanBuildUrinaryFunctionChart)
            {
                return(null);
            }

            CaisisChart c = GetChartPrototype();

            c.ID = "UFChart";

            AddUFAxes(c.ChartAreas[0]);

            c.DataSource = ufChartTable;
            c.DataBind();

            return(c);
        }