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 ListenerInfo(TextEditorUIContextListener listener, double order)
 {
     this.Listener = listener;
     this.order    = order;
 }
        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);
            }
        }