public void Add(TextEditorUIContextListener listener, double order = double.MaxValue) { if (listener == null) throw new ArgumentNullException(); listeners.Add(new ListenerInfo(listener, order)); Sort(listeners); }
public void Add(TextEditorUIContextListener listener, double order = double.MaxValue) { if (listener == null) { throw new ArgumentNullException(); } listeners.Add(new ListenerInfo(listener, order)); Sort(listeners); }
public void RaiseNewContentEvent(ITextEditorUIContext uiContext, ITextOutput output, TextEditorUIContextListener listener, double order) { if (uiContext == null) throw new ArgumentNullException(); if (output == null) throw new ArgumentNullException(); var infos = new List<ListenerInfo>(listeners); infos.Add(new ListenerInfo(listener, order)); Sort(infos); foreach (var info in infos) info.Execute(TextEditorUIContextListenerEvent.NewContent, uiContext, output); }
public void Remove(TextEditorUIContextListener listener) { if (listener == null) { throw new ArgumentNullException(); } for (int i = 0; i < listeners.Count; i++) { var info = listeners[i]; if (info.Listener.Method == listener.Method && info.Listener.Target == listener.Target) { listeners.RemoveAt(i); return; } } Debug.Fail(string.Format("Couldn't remove a listener: {0}", listener)); }
public ListenerInfo(TextEditorUIContextListener listener, double order) { this.Listener = listener; this.order = order; }
public void Remove(TextEditorUIContextListener listener) { if (listener == null) throw new ArgumentNullException(); for (int i = 0; i < listeners.Count; i++) { var info = listeners[i]; if (info.Listener.Method == listener.Method && info.Listener.Target == listener.Target) { listeners.RemoveAt(i); return; } } Debug.Fail(string.Format("Couldn't remove a listener: {0}", listener)); }
public void RaiseNewContentEvent(ITextEditorUIContext uiContext, ITextOutput output, TextEditorUIContextListener listener, double order) { if (uiContext == null) { throw new ArgumentNullException(); } if (output == null) { throw new ArgumentNullException(); } var infos = new List <ListenerInfo>(listeners); infos.Add(new ListenerInfo(listener, order)); Sort(infos); foreach (var info in infos) { info.Execute(TextEditorUIContextListenerEvent.NewContent, uiContext, output); } }