private AnimationElement cloneAndPaste(AnimationSequencer destinationSequence)
        {
            AnimationElement clonedElement = null;

            if (currentClipboardObject is AnimationElement)
            {
                var cloningElement = currentClipboardObject as AnimationElement;
                clonedElement = cloningElement.Clone(cloningElement.Target);

                destinationSequence.InsertElement(clonedElement);
            }
            else
            {
                var cloningAbility           = currentClipboardObject as AnimatedAbility;
                AnimationSequencer sequencer = cloningAbility.Clone() as AnimationSequencer;

                AnimatedCharacter target = null;
                if (destinationSequence is AnimatedAbility)
                {
                    target = (destinationSequence as AnimatedAbility).Target;
                }
                else
                {
                    target = (destinationSequence as SequenceElement).Target;
                }

                SequenceElementImpl sequenceElement = new HeroVirtualTabletop.AnimatedAbility.SequenceElementImpl(sequencer, target);
                sequenceElement.Type = sequencer.Type;
                sequenceElement.Name = "Sequence: " + sequenceElement.Type.ToString();
                clonedElement        = sequenceElement;

                destinationSequence.InsertElement(sequenceElement);
            }
            return(clonedElement);
        }
        private AnimationElement cutAndPaste(AnimationSequencer destinationSequence)
        {
            object[]           clipboardObj   = this.currentClipboardObject as object[];
            AnimationElement   cutElement     = clipboardObj[0] as AnimationElement;
            AnimationSequencer parentSequence = clipboardObj[1] as AnimationSequencer;

            parentSequence.RemoveElement(cutElement);
            destinationSequence.InsertElement(cutElement);

            return(cutElement);
        }