internal void Circle() { if (ArrowState.Self.CurrentArrowElementSave != null) { TextInputWindow tiw = new TextInputWindow(); tiw.Text = "Enter new Circle name:"; tiw.Result = "Circle"; var result = tiw.ShowDialog(); if (result.HasValue && result.Value) { bool isInvalid = CheckAndShowMessageIfInvalid(tiw.Result); if (!isInvalid) { CircleSave circleSave = new CircleSave(); circleSave.Radius = 16; circleSave.Name = tiw.Result; ArrowState.Self.CurrentArrowElementSave.Circles.Add(circleSave); AfterAddLogic(ArrowState.Self.CurrentArrowElementSave, circleSave); } } } }
private static object CreateAndAddInstanceFromClipboard(string instanceType, DataTypes.ArrowElementSave currentArrowElement, string xmlSerializedString) { object newObject = null; if (instanceType == typeof(AxisAlignedRectangleSave).Name) { AxisAlignedRectangleSave aars = FileManager.XmlDeserializeFromString <AxisAlignedRectangleSave>( xmlSerializedString); currentArrowElement.Rectangles.Add(aars); newObject = aars; } else if (instanceType == typeof(CircleSave).Name) { CircleSave circleSave = FileManager.XmlDeserializeFromString <CircleSave>( xmlSerializedString); currentArrowElement.Circles.Add(circleSave); newObject = circleSave; } else if (instanceType == typeof(SpriteSave).Name) { SpriteSave spriteSave = FileManager.XmlDeserializeFromString <SpriteSave>( xmlSerializedString); currentArrowElement.Sprites.Add(spriteSave); newObject = spriteSave; } return(newObject); }
public object UpdateInstanceValuesFromRuntime(ElementRuntime runtime) { object instance = RelationshipManager.Self.InstanceForElementRuntime(runtime); object whatToPullValuesFrom = runtime; if (runtime.DirectObjectReference != null) { whatToPullValuesFrom = runtime.DirectObjectReference; } PositionedObject whatToPullFromAsPo = whatToPullValuesFrom as PositionedObject; if (instance is CircleSave) { CircleSave save = (instance as CircleSave); save.SetFrom(whatToPullValuesFrom as Circle); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is SpriteSave) { SpriteSave save = (instance as SpriteSave); save.SetFrom(whatToPullValuesFrom as Sprite); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is AxisAlignedRectangleSave) { AxisAlignedRectangleSave save = (instance as AxisAlignedRectangleSave); save.SetFrom(whatToPullValuesFrom as AxisAlignedRectangle); SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else if (instance is ArrowElementInstance) { ArrowElementInstance save = (instance as ArrowElementInstance); if (whatToPullFromAsPo != null) { if (whatToPullFromAsPo.Parent == null) { save.SetVariable("X", whatToPullFromAsPo.X); save.SetVariable("Y", whatToPullFromAsPo.Y); } else { save.SetVariable("X", whatToPullFromAsPo.RelativeX); save.SetVariable("Y", whatToPullFromAsPo.RelativeY); } } // We can't do this because this object technically doesn't have X and Y properties //SetSavePositionsFromRelativeValues(whatToPullFromAsPo, save); } else { throw new Exception("Saving of type " + instance.GetType() + " is not supported"); } return(instance); }
public NamedObjectSave CircleSaveToNamedObjectSave(CircleSave circle) { NamedObjectSave toReturn = new NamedObjectSave(); toReturn.SourceType = SourceType.FlatRedBallType; toReturn.SourceClassType = "Circle"; toReturn.InstanceName = circle.Name; AddVariablesForAllProperties(circle, toReturn); return(toReturn); }