Пример #1
0
        internal void RegisterSuccessfulDeleteHook(string id, ElementUpdateDelegate updateDelegate)
        {
            HashSet <string> elements;

            if (!transDelElements.TryGetValue(updateDelegate, out elements))
            {
                elements = new HashSet <string>();
                transDelElements[updateDelegate] = elements;
            }
            elements.Add(id);
        }
Пример #2
0
 /// <summary>
 /// Watches for changes of the given type to the Element with the given ID. When changed, executes
 /// the given Delegate.
 /// </summary>
 /// <param name="e">ID of the Element being watched.</param>
 /// <param name="type">Type of change to watch for.</param>
 /// <param name="d">Delegate to be called when changed.</param>
 public void RegisterChangeHook(string e, ChangeType type, ElementUpdateDelegate d)
 {
     switch (type)
     {
         case ChangeType.Delete:
             deletedCallbacks[e] = d;
             break;
         case ChangeType.Modify:
             modifiedCallbacks[e] = d;
             break;
     }
 }
Пример #3
0
 internal void RegisterSuccessfulDeleteHook(string id, ElementUpdateDelegate updateDelegate)
 {
     HashSet<string> elements;
     if (!transDelElements.TryGetValue(updateDelegate, out elements))
     {
         elements = new HashSet<string>();
         transDelElements[updateDelegate] = elements;
     }
     elements.Add(id);
 }
Пример #4
0
        internal void RegisterDMUHooks(string id, ElementUpdateDelegate updateDelegate)
        {
            ElementUpdateDelegate del = delegate(IEnumerable<string> deleted)
            {
                var delIds = deleted as IList<string> ?? deleted.ToList();
                foreach (var invId in delIds)
                {
                    Updater.UnRegisterChangeHook(invId, ChangeType.Modify);
                    Updater.UnRegisterChangeHook(invId, ChangeType.Delete);
                }
                updateDelegate(delIds);
            };

            Updater.RegisterChangeHook(id, ChangeType.Delete, del);
            transElements.Add(id);
        }