Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }