Пример #1
0
        /// <summary>
        /// Both cluster and link keep Id of text caption in ints[0]
        /// </summary>
        /// <param name="captionHostSh"></param>
        /// <returns></returns>
        private string TryGetTextCaption(IServerVdShape captionHostSh)
        {
            var st          = captionHostSh.GetState();
            var captionShId = st.ints[0];

            if (captionShId != -1)
            {
                //caption exists
                var captionSh = _doc.TryGetShape(captionShId);
                if (captionSh != null)
                {
                    var st2 = captionSh.GetState();
                    if (st2.bytes != null)
                    {
                        using (var s = new MemoryStream(st2.bytes))
                        {
                            using (var br = new BinaryReader(s))
                            {
                                return(br.ReadString());
                            }
                        }
                    }
                }
            }
            return(null);
        }
Пример #2
0
        public void RemoveShape(IServerVdShape sh)
        {
            if (sh.GetCursor() != null)
            {
                throw new InvalidOperationException("cannot remove shape locked by cursor!");
            }

            _shapeIdToShape.Remove(sh.Id());
        }
Пример #3
0
        public void UnlockAndRemoveShape(IServerVdShape sh)
        {
            var curs = sh.GetCursor();

            if (curs != null)
            {
                UnlockShape(sh, curs.OwnerId);
            }
            RemoveShape(sh);
        }
Пример #4
0
        //returns previously locked shape, caller should broadcast cursor free event if result != null
        public void LockShape(IServerVdShape sh, int owner)
        {
            if (sh.GetCursor() != null)
            {
                throw new InvalidOperationException("cannot lock locked shape");
            }

            var cursor = new ServerCursor(owner);

            sh.SetCursor(cursor);

            _userIdToCursor.Add(owner, sh);
        }
Пример #5
0
 public bool editingPermission(IServerVdShape sh, int owner)
 {
     if (sh.GetCursor() == null)
     {
         return(true);
     }
     else if (sh.GetCursor().OwnerId == owner)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #6
0
 public void AddShapeAndLock(IServerVdShape sh)
 {
     _shapeIdToShape.Add(sh.Id(), sh);
     LockShape(sh, sh.InitialOwner());
 }
Пример #7
0
 public void AddShape(IServerVdShape sh)
 {
     _shapeIdToShape.Add(sh.Id(), sh);
 }
Пример #8
0
 public void UnlockShape(IServerVdShape sh, int owner)
 {
     sh.UnsetCursor();
     _userIdToCursor.Remove(owner);
 }
Пример #9
0
 /// <summary>
 /// Both cluster and link keep Id of text caption in ints[0]
 /// </summary>
 /// <param name="captionHostSh"></param>
 /// <returns></returns>
 private string TryGetTextCaption(IServerVdShape captionHostSh)
 {
     var st = captionHostSh.GetState();
     var captionShId = st.ints[0];
     if (captionShId != -1)
     {
         //caption exists
         var captionSh = _doc.TryGetShape(captionShId);
         if (captionSh != null)
         {
             var st2 = captionSh.GetState();
             if (st2.bytes != null)
             {
                 using (var s = new MemoryStream(st2.bytes))
                 {
                     using (var br = new BinaryReader(s))
                     {
                         return br.ReadString();
                     }
                 }
             }
         }
     }
     return null;
 }
Пример #10
0
 public void UnlockAndRemoveShape(IServerVdShape sh)
 {
     var curs = sh.GetCursor();
     if (curs != null)
         UnlockShape(sh, curs.OwnerId);
     RemoveShape(sh);
 }
Пример #11
0
 public bool editingPermission(IServerVdShape sh, int owner)
 {
     if (sh.GetCursor() == null)
         return true;
     else if (sh.GetCursor().OwnerId == owner)
         return true;
     else
         return false;
 }
Пример #12
0
        public void RemoveShape(IServerVdShape sh)
        {
            if (sh.GetCursor() != null)
                throw new InvalidOperationException("cannot remove shape locked by cursor!");

            _shapeIdToShape.Remove(sh.Id());
        }
Пример #13
0
 public void AddShapeAndLock(IServerVdShape sh)
 {
     _shapeIdToShape.Add(sh.Id(), sh);
     LockShape(sh, sh.InitialOwner());
 }
Пример #14
0
 public void AddShape(IServerVdShape sh)
 {
     _shapeIdToShape.Add(sh.Id(), sh);
 }
Пример #15
0
 public void UnlockShape(IServerVdShape sh, int owner)
 {
     sh.UnsetCursor();
     _userIdToCursor.Remove(owner);
 }
Пример #16
0
        //returns previously locked shape, caller should broadcast cursor free event if result != null
        public void LockShape(IServerVdShape sh, int owner)
        {
            if (sh.GetCursor() != null)
                throw new InvalidOperationException("cannot lock locked shape");

            var cursor = new ServerCursor(owner);
            sh.SetCursor(cursor);

            _userIdToCursor.Add(owner, sh);
        }