private void AddEventHandlers(object userForm, string formType) { var handlerMethods = ClassHelper.FindAnnotatedMethods <ItemEventHandlerAttribute>(userForm); foreach (var method in handlerMethods) { var attribute = method.GetAttribute <ItemEventHandlerAttribute>(); var signature = ItemEventSignature.Create(method); if (attribute.BeforeAction) { var action = BeforeAction <ItemEvent> .CreateNew(signature, method, userForm); handlers.AddBefore(action); } else { var action = AfterAction <ItemEvent> .CreateNew(signature, method, userForm); handlers.AddAfter(action); } HandlerAdded(this, new HandlerAddedEventArgs(attribute.EventType, formType)); } }
private void AddEventHandlers(IMainMenuInstance mainMenu) { var handlerMethods = ClassHelper.FindAnnotatedMethods <MenuEventHandlerAttribute>(mainMenu); foreach (var method in handlerMethods) { var attribute = method.GetAttribute <MenuEventHandlerAttribute>(); try { if (attribute.Before) { before.Add(attribute.MenuId, method.CreateBeforeEventDelegate <MenuEvent>(mainMenu)); } else { after.Add(attribute.MenuId, method.CreateAfterEventDelegate <MenuEvent>(mainMenu)); } } catch (ArgumentException e) { var exception = new EventHandlerAlreadyExistsException( $"A menu event handler for {attribute.MenuId} already exists. Duplicate method {method.Name}.", e); throw exception; } HandlerAdded(this, new HandlerAddedEventArgs(BoEventTypes.et_MENU_CLICK, @"ALL_FORMS")); } }
private void AddEventHandlers(IMainMenuInstance mainMenu) { var handlerMethods = ClassHelper.FindAnnotatedMethods <MenuEventHandlerAttribute>(mainMenu); foreach (var method in handlerMethods) { AddEventHandler(mainMenu, method); } }
private void AddEventHandlers(IFormInstance userForm) { var handlerMethods = ClassHelper.FindAnnotatedMethods <RightClickEventHandlerAttribute>(userForm); foreach (var method in handlerMethods) { var attribute = method.GetAttribute <RightClickEventHandlerAttribute>(); if (attribute.Before) { before.Add(attribute.ItemId, method.CreateBeforeEventDelegate <ContextMenuInfo>(userForm)); } else { after.Add(attribute.ItemId, method.CreateAfterEventDelegate <ContextMenuInfo>(userForm)); } HandlerAdded(this, new HandlerAddedEventArgs(BoEventTypes.et_RIGHT_CLICK, userForm.FormType)); } }
private void AddEventHandlers(IFormInstance userForm) { var handlerMethods = ClassHelper.FindAnnotatedMethods <LayoutKeyEventHandlerAttribute>(userForm); foreach (var method in handlerMethods) { var attribute = method.GetAttribute <LayoutKeyEventHandlerAttribute>(); if (attribute.Before) { before.Add(attribute, method.CreateBeforeEventDelegate <LayoutKeyInfo>(userForm)); } else { after.Add(attribute, method.CreateAfterEventDelegate <LayoutKeyInfo>(userForm)); } HandlerAdded(this, new HandlerAddedEventArgs(BoEventTypes.et_PRINT_LAYOUT_KEY, userForm.FormType)); } }
private void AddEventHandlers(IFormInstance userForm) { var handlerMethods = ClassHelper.FindAnnotatedMethods <FormDataEventHandlerAttribute>(userForm); foreach (var method in handlerMethods) { var attribute = method.GetAttribute <FormDataEventHandlerAttribute>(); if (attribute.Before) { before.Add(attribute, method.CreateBeforeEventDelegate <BusinessObjectInfo>(userForm)); } else { after.Add(attribute, method.CreateAfterEventDelegate <BusinessObjectInfo>(userForm)); } HandlerAdded(this, new HandlerAddedEventArgs(attribute.EventType, userForm.FormType)); } }