Example #1
0
        protected override Completion ExecuteImpl(ExecutionEnvironment enviroment)
        {
            if (Step == null || Angle == null || XRadius == null || YRadius == null)
            {
                return(Completion.Exception(Properties.Language.NullException, this));
            }

            var c = Step.Execute(enviroment);

            if (!c.IsValue)
            {
                return(c);
            }
            if (!TypeConverters.IsNumber(c.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, Step));
            }
            double step = TypeConverters.GetValue <double>(c.ReturnValue);

            var d = Angle.Execute(enviroment);

            if (!d.IsValue)
            {
                return(d);
            }
            if (!TypeConverters.IsNumber(d.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, Angle));
            }
            double angle = TypeConverters.GetValue <double>(d.ReturnValue);

            var e = XRadius.Execute(enviroment);

            if (!e.IsValue)
            {
                return(e);
            }
            if (!TypeConverters.IsNumber(e.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, XRadius));
            }
            double x = TypeConverters.GetValue <double>(e.ReturnValue);

            var f = YRadius.Execute(enviroment);

            if (!f.IsValue)
            {
                return(f);
            }
            if (!TypeConverters.IsNumber(f.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, YRadius));
            }
            double     y   = TypeConverters.GetValue <double>(f.ReturnValue);
            DrawWindow wnd = CanvasEnvironment.GetCanvas(enviroment);

            wnd.Arc(step, angle, x, y);
            return(Completion.Void);
        }
Example #2
0
        /// <summary>
        /// 속성들을 Xml Attribute로 생성합니다.
        /// </summary>
        /// <param name="writer">Attribute를 쓸 Writer</param>
        public override void GenerateXmlAttributes(System.Xml.XmlWriter writer)
        {
            base.GenerateXmlAttributes(writer);

            writer.WriteAttributeString("type", Type.ToString());

            if (X.HasValue)
            {
                writer.WriteAttributeString("x", X.ToString());
            }
            if (Y.HasValue)
            {
                writer.WriteAttributeString("y", Y.ToString());
            }
            if (Color.IsNotWhiteSpace())
            {
                writer.WriteAttributeString("Color", Color);
            }
            if (Alpha.HasValue)
            {
                writer.WriteAttributeString("Alpha", Alpha.ToString());
            }
            if (Thickness.HasValue)
            {
                writer.WriteAttributeString("Thickness", Thickness.ToString());
            }

            if (XScale.HasValue)
            {
                writer.WriteAttributeString("XScale", XScale.ToString());
            }
            if (YScale.HasValue)
            {
                writer.WriteAttributeString("YScale", YScale.ToString());
            }
            if (Radius.HasValue)
            {
                writer.WriteAttributeString("Radius", Radius.ToString());
            }
            if (YRadius.HasValue)
            {
                writer.WriteAttributeString("YRadius", YRadius.ToString());
            }
            if (InnerRadius.HasValue)
            {
                writer.WriteAttributeString("InnerRadius", InnerRadius.ToString());
            }

            if (ToX.HasValue)
            {
                writer.WriteAttributeString("ToX", ToX.ToString());
            }
            if (ToY.HasValue)
            {
                writer.WriteAttributeString("ToY", ToY.ToString());
            }
        }