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); }
/// <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; } }
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); }
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); }