示例#1
0
        public void Subscribe(CremaEventListener listener)
        {
            if (this.listeners.Any() == false)
            {
                this.OnSubscribe();
            }

            this.listeners.Add(listener);
        }
示例#2
0
        public void Unsubscribe(CremaEventListener listener)
        {
            this.listeners.Remove(listener);

            if (this.listeners.Any() == false)
            {
                this.OnUnsubscribe();
            }
        }
 private void RemoveEventListener(CremaEvents eventName, CremaEventListener listener)
 {
     if (this.Context.Properties[typeof(CremaEventListenerContext)] is CremaEventListenerContext context)
     {
         context.RemoveEventListener(eventName, listener);
     }
     else
     {
         throw new NotImplementedException();
     }
 }
示例#4
0
 public void RemoveEventListener(CremaEvents eventName, CremaEventListener listener)
 {
     if (this.eventListeners.ContainsKey(eventName) == true)
     {
         var eventHandler = this.eventListeners[eventName];
         eventHandler.Unsubscribe(listener);
     }
     else
     {
         throw new NotImplementedException();
     }
 }
示例#5
0
        private void AddEventListener(CremaEvents eventName, CremaEventListener listener)
        {
            if (this.Context.Properties.ContainsKey(typeof(CremaEventListenerContext)) == false)
            {
                this.eventListenerContext = new CremaEventListenerContext(this.eventListeners);
                this.Context.Properties[typeof(CremaEventListenerContext)] = this.eventListenerContext;
            }

            if (this.eventListenerContext != null)
            {
                this.eventListenerContext.AddEventListener(eventName, listener);
            }
            else
            {
                throw new NotImplementedException();
            }
        }