public override bool IsAtBookmark(Bookmark bookmark)
        {
            if (bookmark.data == null)
                 return OrdinalPosition == null;

            var elem = bookmark.data as ElementDefinition;

            return this.Current == elem;
        }
        public override bool ReturnToBookmark(Bookmark bookmark)
        {
            if (bookmark.data == null)
            {
                OrdinalPosition = null;
                return true;
            }
            else
            {
                var elem = bookmark.data as ElementDefinition;

                if (elem == null) return false;

                var index = Elements.IndexOf(elem);

                if (index != -1)
                {
                    OrdinalPosition = index;
                    return true;
                }
                else
                    return false;
            }
        }
Beispiel #3
0
        public bool DuplicateAfter(Bookmark target)
        {
            if (OrdinalPosition == null) return false;
            var start = OrdinalPosition.Value;
            var end = positionAfter();

            if (!ReturnToBookmark(target)) return false;
            var dest = positionAfter();

            var source = Elements.Skip(start).Take(end-start).ToList();

            foreach (var elem in source.Reverse<ElementDefinition>())
                Elements.Insert(dest, (ElementDefinition)elem.DeepCopy());

            OrdinalPosition = dest;
            return true;
        }
 public abstract bool ReturnToBookmark(Bookmark bookmark);
 public abstract bool IsAtBookmark(Bookmark bookmark);
 public abstract bool ReturnToBookmark(Bookmark bookmark);
 public abstract bool IsAtBookmark(Bookmark bookmark);