Exemplo n.º 1
0
        public bool MoveChild(int originalPosition, int newPosition, ref string error)
        {
            if (!IsCollection)
            {
                error = "You can only move the children of a collection!";
                return(false);
            }
            MoveChildData move = new MoveChildData();

            return(Session.RunCommand(
                       XTMFCommand.CreateCommand(
                           // do
                           (ref string e) =>
            {
                move.OriginalPosition = originalPosition;
                move.NewPosition = newPosition;
                if (originalPosition < 0 | originalPosition >= Children.Count)
                {
                    e = "The original position was invalid!";
                    return false;
                }
                if (newPosition < 0 | newPosition >= Children.Count)
                {
                    e = "The destination position was invalid!";
                    return false;
                }
                Move(originalPosition, newPosition);
                return true;
            },
                           // undo
                           (ref string e) =>
            {
                Move(newPosition, originalPosition);
                return true;
            },
                           // redo
                           (ref string e) =>
            {
                Move(originalPosition, newPosition);
                return true;
            }
                           ), ref error));
        }
Exemplo n.º 2
0
 public bool MoveChild(int originalPosition, int newPosition, ref string error)
 {
     if(!IsCollection)
     {
         error = "You can only move the children of a collection!";
         return false;
     }
     MoveChildData move = new MoveChildData();
     return Session.RunCommand(
         XTMFCommand.CreateCommand(
             // do
             (ref string e) =>
             {
                 move.OriginalPosition = originalPosition;
                 move.NewPosition = newPosition;
                 if(originalPosition < 0 | originalPosition >= Children.Count)
                 {
                     e = "The original position was invalid!";
                     return false;
                 }
                 if(newPosition < 0 | newPosition >= Children.Count)
                 {
                     e = "The destination position was invalid!";
                     return false;
                 }
                 Move(originalPosition, newPosition);
                 return true;
             },
             // undo
             (ref string e) =>
             {
                 Move(newPosition, originalPosition);
                 return true;
             },
             // redo
             (ref string e) =>
             {
                 Move(originalPosition, newPosition);
                 return true;
             }
         ), ref error);
 }