예제 #1
0
        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);
        }
예제 #2
0
        public void MakeNewObjectUnique(DataTypes.ArrowElementSave container, object newObject)
        {
            string name = LateBinder.GetValueStatic(newObject, "Name") as string;

            List <string> allNames = new List <string>();

            foreach (var item in container.AllInstances)
            {
                if (item != newObject)
                {
                    allNames.Add(LateBinder.GetValueStatic(item, "Name") as string);
                }
            }

            name = StringFunctions.MakeStringUnique(name, allNames);

            LateBinder.SetValueStatic(newObject, "Name", name);
        }