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); }
/// <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()); } }