Ejemplo n.º 1
0
        public static void Add(string type, EventBoxHandler handler)
        {
            if (!handlerDic.ContainsKey(type))
            {
                IList <EventBoxHandler> handlers = new List <EventBoxHandler>()
                {
                    handler
                };
                handlerDic.Add(type, handlers);
            }
            else
            {
                if (!handlerDic[type].Contains(handler))
                {
                    handlerDic[type].Add(handler);
                }
            }

            if (handler.Target != null)
            {
                if (!listenerDic.ContainsKey(handler.Target))
                {
                    ListenerHandlerMapper map = new ListenerHandlerMapper();
                    map.Add(type, handler);
                    listenerDic.Add(handler.Target, map);
                }
                else
                {
                    listenerDic[handler.Target].Add(type, handler);;
                }
            }
        }
Ejemplo n.º 2
0
        public static void Remove(string type, EventBoxHandler handler)
        {
            if (handlerDic.ContainsKey(type))
            {
                if (handlerDic[type].Remove(handler))
                {
                    if (handlerDic[type].Count == 0)
                    {
                        handlerDic.Remove(type);
                    }
                }
            }

            if (listenerDic.ContainsKey(handler.Target))
            {
                listenerDic[handler.Target].Remove(type, handler);

                if (listenerDic[handler.Target].Get().Count == 0)
                {
                    listenerDic.Remove(handler.Target);
                }
            }
        }