Example #1
0
File: Spy.cs Project: Baptista/AVE
        /// <summary>
        /// processa os eventos do controlo passsado por argumento
        /// </summary>
        /// <param name="c"></param>
        /// <param name="eventNames"></param>
        public void addControlEvents(Control c, Dictionary<string, int> eventNames)
        {
            Type t=c.GetType();
            MethodInfo md = typeof(EventListener).GetMethod("eventRecorder", BindingFlags.NonPublic | BindingFlags.Instance);
            EventInfo[] evts = t.GetEvents(
                                 BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
            foreach(EventInfo evt in evts) {
                    ControlEventKey key = new ControlEventKey(c, evt.Name);
                    EventListener l = new EventListener(this, evt.Name);

                    Delegate d = Delegate.CreateDelegate(evt.EventHandlerType, l, md);
                    evt.AddEventHandler(c,d);
                    MethodInfo m = t.GetMethod("On"+evt.Name, BindingFlags.Instance | BindingFlags.NonPublic);
                    methodMap.Add(key,m);
                    if (!eventNames.ContainsKey(evt.Name))
                    {
                        eventNames.Add(evt.Name, 0);
                        viewer.addEventChooser(evt.Name);
                    }
            }
        }
Example #2
0
File: Spy.cs Project: Baptista/AVE
        /// <summary>
        /// regista mais um evento no log, ou não, de acordo com os filtros e memoriza-o
        /// também para posterior replay, se se estiver em modo de gravação
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        /// <param name="key"></param>
        /// <param name="eventName"></param>
        public void addEvent(object sender, EventArgs args, ControlEventKey key, string eventName)
        {
            if (viewer.Validate(sender, eventName))
            {

                TimeSpan t = DateTime.Now - startTime;
                viewer.addEvent(eventName);
                if (Recording)
                {
                    events.Add(new EventDescriptor(sender, args, methodMap[key], t, eventName));
                }
            }
        }
Example #3
0
File: Spy.cs Project: Baptista/AVE
 internal void eventRecorder(object sender, EventArgs evt)
 {
     ControlEventKey key = new ControlEventKey(sender, eventName);
     if (owner.Recording)
         owner.addEvent(sender, evt,key,eventName);
 }