Ejemplo n.º 1
0
        private void AddEventHandlers(IFormInstance userForm)
        {
            var handlerMethods = ClassHelper.FindAnnotatedMethods <MenuEventHandlerAttribute>(userForm);

            foreach (var method in handlerMethods)
            {
                var attribute = method.GetAttribute <MenuEventHandlerAttribute>();
                try
                {
                    if (attribute.Before)
                    {
                        before.Add(attribute.MenuId, method.CreateBeforeEventDelegate <MenuEvent>(userForm));
                    }
                    else
                    {
                        after.Add(attribute.MenuId, method.CreateAfterEventDelegate <MenuEvent>(userForm));
                    }
                }
                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, userForm.FormType));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EventListener"/> class.
        /// </summary>
        /// <param name="form">The form.</param>
        /// <param name="subordinates">Other objects that contain.</param>
        public EventListener(B1Session session, IFormInstance form, params object[] subordinates)
        {
            var delegates = subordinates ?? new object[0];

            listeners = new List <IEventListener>()
            {
                session.CreateFormMenuEventListener(form),
                session.CreateRightClickEventListener(form),
                session.CreateFormItemEventListener(form, delegates),
                session.CreateFormDataEventListener(form),
                session.CreateLayoutKeyEventListener(form)
            };
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EventListener" /> class.
        /// </summary>
        /// <param name="form">The form.</param>
        /// <param name="subordinates">Other objects that contain.</param>
        public EventListener(IFormInstance form, params object[] subordinates)
        {
            var eventsManager = B1EventsManager.Instance;

            var delegates = subordinates ?? new object[0];

            listeners = new List <IEventListener>
            {
                eventsManager.CreateFormMenuEventListener(form),
                eventsManager.CreateRightClickEventListener(form),
                eventsManager.CreateFormItemEventListener(form, delegates),
                eventsManager.CreateFormDataEventListener(form),
                eventsManager.CreateLayoutKeyEventListener(form)
            };
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
 public RightClickEventListener(B1RightClickEventDispatcher dispatcher, IFormInstance form)
 {
     this.dispatcher = dispatcher;
     this.form       = form;
 }
Ejemplo n.º 8
0
 public FormItemEventHandler(B1ItemEventDispatcher dispatcher, IFormInstance form, params object[] subordinates)
 {
     this.dispatcher   = dispatcher;
     this.form         = form;
     this.subordinates = subordinates ?? new object[0];
 }
Ejemplo n.º 9
0
 public FormItemEventHandler(B1ItemEventDispatcher dispatcher, IFormInstance form) : this(dispatcher, form, null)
 {
 }
Ejemplo n.º 10
0
 public LayoutKeyEventListener(B1LayoutKeyEventDispatcher dispatcher, IFormInstance form)
 {
     this.dispatcher = dispatcher;
     this.form       = form;
 }
Ejemplo n.º 11
0
 internal IEventListener CreateLayoutKeyEventListener(IFormInstance form)
 {
     return(new LayoutKeyEventListener(B1LayoutKeyEventDispatcher, form));
 }
Ejemplo n.º 12
0
 internal IEventListener CreateFormMenuEventListener(IFormInstance form)
 {
     return(new FormMenuEventListener(form, B1MenuEventDispatcher));
 }
Ejemplo n.º 13
0
 internal IEventListener CreateFormItemEventListener(IFormInstance form, params object[] subordinates)
 {
     return(new FormItemEventHandler(B1ItemEventDispatcher, form, subordinates));
 }
Ejemplo n.º 14
0
 internal IEventListener CreateFormDataEventListener(IFormInstance form)
 {
     return(new FormDataEventHandler(form, B1FormDataEventDispatcher));
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EventListener" /> class.
 /// </summary>
 /// <param name="form">The form.</param>
 public EventListener(IFormInstance form) : this(form, null)
 {
 }
Ejemplo n.º 16
0
 public FormDataEventListener(IFormInstance form, B1FormDataEventDispatcher dispatcher)
 {
     this.form       = form;
     this.dispatcher = dispatcher;
 }
Ejemplo n.º 17
0
 internal IEventListener CreateRightClickEventListener(IFormInstance form)
 {
     return(new RightClickEventListener(B1RightClickEventDispatcher, form));
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EventListener"/> class.
 /// </summary>
 /// <param name="form">The form.</param>
 public EventListener(B1Session session, IFormInstance form) : this(session, form, null)
 {
 }