Example #1
0
        //
        //
        // ****                 Process Engine Event            ****
        //
        /// <summary>
        /// Implements IEngineContainer.  This is called by my hub thread when it receives an
        /// EngineEvent.  The engine event will be passed to the correct engines.
        /// </summary>
        /// <param name="eventArgs"></param>
        public bool ProcessEvent(EventArgs eventArgs)
        {
            bool regenerateNow = false;

            if (eventArgs is EngineEventArgs)
            {
                EngineEventArgs           eArgs     = (EngineEventArgs)eventArgs;
                EngineEventArgs.EventType eventType = eArgs.MsgType;

                if (eventType == EngineEventArgs.EventType.ClusterUpdate)
                {
                    RegenerateMemory(eArgs);                                    // I intercept events for Cluster Updates!
                }
                else
                {                                                                        // Other egine events, I will pass along to objects owned by this Cluster.
                    regenerateNow = m_Header.ProcessEngineEvent(eArgs) || regenerateNow; // Header holds all popup forms.
                    if (m_LowerControl != null)                                          // Gui panels displayed below cluster.
                    {
                        regenerateNow = m_LowerControl.ProcessEngineEvent(eArgs) || regenerateNow;
                    }
                }
            }

            return(regenerateNow);
        }//ProcessEngineEvent