Пример #1
0
        public void SimpleGuage() {
            var gauge = new AngularGauge();

            gauge.Axis.LowerLimit = 0;
            gauge.Axis.UpperLimit = 100;
            gauge.Axis.LowerLimitDisplay = "Bad";
            gauge.Axis.UpperLimitDisplay = "Good";
            gauge.GaugeStartAngle = 180;
            gauge.GaugeEndAngle = 0;
            gauge.Palette = 1;
            gauge.NumberAttr.NumberSuffix = "%";
            gauge.TickMarkAttr.TickValueDistance = 20;


            gauge.DataStreamUrl = "CPUData.ashx";
            gauge.RefreshInterval = 3;

            BuildColorRange(gauge);
            BuildDials(gauge);

            BuildAlerts(gauge);
            BuildAnnotations(gauge);

            BuildStyles(gauge);

            ValidateChartXml(gauge);
        }
Пример #2
0
        public void Overflow(bool isDirectionReversed, double tickGap, double strokeThickness, string padding, string expected)
        {
            var tickBar = new AngularBlockBar
            {
                StrokeThickness     = strokeThickness,
                Minimum             = 0,
                Maximum             = 10,
                TickFrequency       = 1,
                TickGap             = tickGap,
                Stroke              = Brushes.Black,
                Fill                = Brushes.Red,
                IsDirectionReversed = isDirectionReversed,
                Padding             = padding.AsThickness(),
            };

            var gauge = new AngularGauge {
                Content = tickBar
            };

            gauge.Arrange(new Rect(new Size(10, 10)));
            Assert.AreEqual(expected, tickBar.Overflow.ToString());
            Assert.AreEqual(expected, gauge.ContentOverflow.ToString());

            gauge.Measure(new Size(10, 10));
            gauge.Arrange(new Rect(new Size(10, 10)));
            Assert.AreEqual(expected, tickBar.Overflow.ToString());
            Assert.AreEqual(expected, gauge.ContentOverflow.ToString());
        }
Пример #3
0
        private static AngularGauge CreateAngularGauge()
        {
            var chart = new AngularGauge();

            chart.Axis.LowerLimit        = 0;
            chart.Axis.UpperLimit        = 100;
            chart.Axis.LowerLimitDisplay = "Bad";
            chart.Axis.UpperLimitDisplay = "Good";
            chart.GaugeStartAngle        = 180;
            chart.GaugeEndAngle          = 0;

            chart.Palette   = 1;
            chart.ShowValue = true;
            chart.NumberAttr.NumberSuffix        = "%";
            chart.TickMarkAttr.TickValueDistance = 20;
            chart.DataStreamUrl   = "AngularGaugeRealTime.ashx";
            chart.RefreshInterval = 3;

            BuildColorRange(chart);
            BuildDials(chart);
            BuildStyles(chart);
            BuildAnnotations(chart);
            BuildAlerts(chart);

            return(chart);
        }
Пример #4
0
        public void Overflow(bool isDirectionReversed, double tickWidth, double strokeThickness, string padding, string expected)
        {
            var tickBar = new Arc
            {
                StrokeThickness     = strokeThickness,
                Start               = Angle.FromDegrees(-140),
                End                 = Angle.FromDegrees(140),
                Minimum             = 0,
                Maximum             = 10,
                Stroke              = Brushes.Black,
                Fill                = Brushes.Red,
                IsDirectionReversed = isDirectionReversed,
                Padding             = padding.AsThickness(),
            };

            var gauge = new AngularGauge {
                Content = tickBar
            };

            gauge.Arrange(new Rect(new Size(10, 10)));
            Assert.AreEqual(expected, tickBar.Overflow.ToString());
            Assert.AreEqual(expected, gauge.ContentOverflow.ToString());

            gauge.Measure(new Size(10, 10));
            gauge.Arrange(new Rect(new Size(10, 10)));
            Assert.AreEqual(expected, tickBar.Overflow.ToString());
            Assert.AreEqual(expected, gauge.ContentOverflow.ToString());
        }
Пример #5
0
        public void SimpleGuage()
        {
            var gauge = new AngularGauge();

            gauge.Axis.LowerLimit        = 0;
            gauge.Axis.UpperLimit        = 100;
            gauge.Axis.LowerLimitDisplay = "Bad";
            gauge.Axis.UpperLimitDisplay = "Good";
            gauge.GaugeStartAngle        = 180;
            gauge.GaugeEndAngle          = 0;
            gauge.Palette = 1;
            gauge.NumberAttr.NumberSuffix        = "%";
            gauge.TickMarkAttr.TickValueDistance = 20;


            gauge.DataStreamUrl   = "CPUData.ashx";
            gauge.RefreshInterval = 3;

            BuildColorRange(gauge);
            BuildDials(gauge);

            BuildAlerts(gauge);
            BuildAnnotations(gauge);

            BuildStyles(gauge);

            ValidateChartXml(gauge);
        }
Пример #6
0
 private static void BuildDials(AngularGauge gauge) {
     gauge.Dials.Add(new DialElement
                     {
                         Id = "CS",
                         Value = 12,
                         RearExtension = 10
                     });
 }
Пример #7
0
 private static void BuildDials(AngularGauge gauge)
 {
     gauge.Dials.Add(new DialElement
     {
         Id            = "CS",
         Value         = 12,
         RearExtension = 10
     });
 }
Пример #8
0
        /// <summary>
        /// 원하는 Chart를 빌드합니다.
        /// </summary>
        public override IChart BuildFusionChart()
        {
            var option = Request["Option"].AsInt(1);

            var gauge = new AngularGauge();

            switch (option)
            {
            case 1:
                FeatherEffectAngularGauge(gauge);
                break;

            case 2:
                MetalEffectAngularGague(gauge);
                break;
            }

            return(gauge);
        }
Пример #9
0
        private static void FeatherEffectAngularGauge(AngularGauge gauge)
        {
            gauge.BackgroundAttr.BgColor = Color.White;
            gauge.Axis.UpperLimit        = 100;
            gauge.Axis.LowerLimit        = 0;
            gauge.BaseFontAttr.FontColor = "#666666".FromHtml();

            gauge.TickMarkAttr.ShowLimits = true;

            gauge.TickMarkAttr.MajorTM.Number = 11;
            gauge.TickMarkAttr.MajorTM.Color  = "#666666".FromHtml();
            gauge.TickMarkAttr.MajorTM.Height = 8;

            gauge.TickMarkAttr.MinorTM.Number = 5;
            gauge.TickMarkAttr.MinorTM.Color  = "#666666".FromHtml();
            gauge.TickMarkAttr.MinorTM.Height = 3;

            gauge.Border.Show = false;

            gauge.GaugeOuterRadius = 100;
            gauge.GaugeInnerRadius = 90;
            gauge.GaugeOriginX     = 170;
            gauge.GaugeOriginY     = 170;
            gauge.GaugeScaleAngle  = 320;
            // gauge.GaugeStartAngle = 320;

            gauge.TickMarkAttr.TickValueDistance = 10;
            gauge.TickMarkAttr.PlaceValuesInside = true;

            gauge.GaugeFillMix      = "";
            gauge.Pivot.Radius      = 20;
            gauge.Pivot.FillMix     = "{F0EFEA}, {BEBCBO}";
            gauge.Pivot.BorderColor = "#BEBCB0".FromHtml();
            gauge.Pivot.FillRatio   = "80, 20";

            gauge.ShowShadow = false;

            gauge.AddColor(0, 80, "#00FF00".FromHtml(), null).Alpha       = 0;
            gauge.AddColor(80, 100, "#FF0000".FromHtml(), "Danger").Alpha = 50;

            var dial = gauge.AddDial(null, 65);

            dial.BgColor      = "BEBCB0, F0EFEA, BEBCB0";
            dial.Border.Color = Color.White;
            dial.Border.Alpha = 0;
            dial.BaseWidth    = 10;
            dial.TopWidth     = 3;

            var annGrp = gauge.AddAnnotationGroup(170, 170);

            var ca = new CircleAnnotation {
                X = 0, Y = 0, Radius = 150
            };

            ca.Border.Color = "#BEBCB0".FromHtml();
            ca.FillColor    = "F0EFEA, BEBCB0";
            ca.FillRatio    = "85,15";
            ca.FillPattern  = FillMethod.Linear;
            annGrp.Add(ca);

            ca = new CircleAnnotation {
                X = 0, Y = 0, Radius = 120
            };
            ca.Border.Color = "#BEBCB0".FromHtml();
            ca.FillColor    = "F0EFEA, BEBCB0";
            ca.FillRatio    = "85,15";
            annGrp.Add(ca);

            ca = new CircleAnnotation {
                X = 0, Y = 0, Radius = 100, Color = Color.White.ToHexString()
            };
            ca.Border.Color = "#F0EFEA".FromHtml();
            annGrp.Add(ca);
        }
Пример #10
0
 private static void MetalEffectAngularGague(AngularGauge gauge)
 {
 }