Пример #1
0
        public void AddHandlersWithLoad(ChangedEventHandler changedEventHandler,
                                        LoadFinishedEventHandler loadFinishedEventHandler,
                                        PersistFinishedEventHandler persistFinishedEventHandler)
        {
            #if (CHATTY_DEBUG)
            string msg = "*** HRA OBJECT AddHandlersWithLoad on : " + this.ToString() + System.Environment.NewLine;
            if (changedEventHandler != null)
            {
                msg += "By: " + changedEventHandler.Target.ToString();
            }
            else if (loadFinishedEventHandler != null)
            {
                msg += "By: " + loadFinishedEventHandler.Target.ToString();
            }
            else if (persistFinishedEventHandler != null)
            {
                msg += "By: " + persistFinishedEventHandler.Target.ToString();
            }

            Logger.Instance.DebugToLog(msg);
            #endif


            if (changedEventHandler != null)
            {
                if (Changed == null)
                {
                    Changed += changedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Changed.GetInvocationList())
                    {
                        if (d.Target == changedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        Changed += changedEventHandler;
                    }
                }
            }
            if (loadFinishedEventHandler != null)
            {
                if (Loaded == null)
                {
                    Loaded += loadFinishedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Loaded.GetInvocationList())
                    {
                        if (d.Target == loadFinishedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        Loaded += loadFinishedEventHandler;
                    }
                }
            }
            if (persistFinishedEventHandler != null)
            {
                if (Persisted == null)
                {
                    Persisted += persistFinishedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Persisted.GetInvocationList())
                    {
                        if (d.Target == persistFinishedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        Persisted += persistFinishedEventHandler;
                    }
                }
            }

            switch (HraState)
            {
            case States.Null:
                LoadObject();
                break;

            case States.Loading:
                break;

            case States.Ready:
                if (loadFinishedEventHandler != null)
                {
                    RunWorkerCompletedEventArgs dummy = new RunWorkerCompletedEventArgs(this, null, false);

                        #if (CHATTY_DEBUG)
                    string msg2 = "*** HRA OBJECT loadFinishedEventHandler Firing on : " + this.ToString() + System.Environment.NewLine;
                    msg2 += "FOR " + loadFinishedEventHandler.Target.ToString();
                    Logger.Instance.DebugToLog(msg2);
                        #endif

                    loadFinishedEventHandler.Invoke(null, dummy);
                }
                break;
            }
        }
Пример #2
0
        public void AddHandlersWithLoad(ListChangedEventHandler listChangedEventHandler,
                                        LoadFinishedEventHandler loadFinishedEventHandler,
                                        ListItemChangedEventHandler itemChangedEventHandler)
        {
            #if (CHATTY_DEBUG)
            string msg = "*** HRA LIST AddHandlersWithLoad on : " + this.ToString() + System.Environment.NewLine;
            if (listChangedEventHandler != null)
            {
                msg += "By: " + listChangedEventHandler.Target.ToString();
            }
            else if (loadFinishedEventHandler != null)
            {
                msg += "By: " + loadFinishedEventHandler.Target.ToString();
            }
            else if (itemChangedEventHandler != null)
            {
                msg += "By: " + itemChangedEventHandler.Target.ToString();
            }

            Logger.Instance.DebugToLog(msg);
            #endif

            if (listChangedEventHandler != null)
            {
                if (ListChanged == null)
                {
                    ListChanged += listChangedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in ListChanged.GetInvocationList())
                    {
                        if (d.Target == listChangedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        ListChanged += listChangedEventHandler;
                    }
                }
            }

            if (loadFinishedEventHandler != null)
            {
                if (LoadFinished == null)
                {
                    LoadFinished += loadFinishedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in LoadFinished.GetInvocationList())
                    {
                        if (d.Target == loadFinishedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        LoadFinished += loadFinishedEventHandler;
                    }
                }
            }

            if (itemChangedEventHandler != null)
            {
                if (ListItemChanged == null)
                {
                    ListItemChanged += itemChangedEventHandler;
                }
                else
                {
                    bool ok = true;
                    foreach (Delegate d in ListItemChanged.GetInvocationList())
                    {
                        if (d.Target == loadFinishedEventHandler.Target)
                        {
                            ok = false;
                        }
                    }
                    if (ok)
                    {
                        ListItemChanged += itemChangedEventHandler;
                    }
                }
            }

            if (loaded)
            {
                if (loadFinishedEventHandler != null)
                {
                    HraListLoadedEventArgs args = new HraListLoadedEventArgs();
                    args.sender     = this;
                    args.workerArgs = new RunWorkerCompletedEventArgs(this, null, false);
                    loadFinishedEventHandler.Invoke(args);
                }
            }
            else
            {
                LoadList();
            }
        }
Пример #3
0
        public void AddHandlersWithLoad(ChangedEventHandler changedEventHandler,
                                  LoadFinishedEventHandler loadFinishedEventHandler,
                                  PersistFinishedEventHandler persistFinishedEventHandler)
        {
            #if (CHATTY_DEBUG)
            string msg = "*** HRA OBJECT AddHandlersWithLoad on : " + this.ToString() + System.Environment.NewLine;
            if (changedEventHandler != null)
                msg+= "By: " + changedEventHandler.Target.ToString();
            else if (loadFinishedEventHandler != null)
                msg += "By: " + loadFinishedEventHandler.Target.ToString();
            else if (persistFinishedEventHandler != null)
                msg += "By: " + persistFinishedEventHandler.Target.ToString();

            Logger.Instance.DebugToLog(msg);

            #endif

            if (changedEventHandler != null)
            {
                if (Changed == null)
                    Changed += changedEventHandler;
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Changed.GetInvocationList())
                    {
                        if (d.Target == changedEventHandler.Target)
                            ok = false;
                    }
                    if (ok)
                        Changed += changedEventHandler;
                }
            }
            if (loadFinishedEventHandler != null)
            {
                if (Loaded == null)
                    Loaded += loadFinishedEventHandler;
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Loaded.GetInvocationList())
                    {
                        if (d.Target == loadFinishedEventHandler.Target)
                            ok = false;
                    }
                    if (ok)
                        Loaded += loadFinishedEventHandler;
                }
            }
            if (persistFinishedEventHandler != null)
            {
                if (Persisted == null)
                    Persisted += persistFinishedEventHandler;
                else
                {
                    bool ok = true;
                    foreach (Delegate d in Persisted.GetInvocationList())
                    {
                        if (d.Target == persistFinishedEventHandler.Target)
                            ok = false;
                    }
                    if (ok)
                        Persisted += persistFinishedEventHandler;
                }
            }

            switch (HraState)
            {
                case States.Null:
                    LoadObject();
                    break;

                case States.Loading:
                    break;

                case States.Ready:
                    if (loadFinishedEventHandler != null)
                    {
                        RunWorkerCompletedEventArgs dummy = new RunWorkerCompletedEventArgs(this, null, false);

                        #if (CHATTY_DEBUG)
                            string msg2 = "*** HRA OBJECT loadFinishedEventHandler Firing on : " + this.ToString() + System.Environment.NewLine;
                            msg2 += "FOR " + loadFinishedEventHandler.Target.ToString();
                            Logger.Instance.DebugToLog(msg2);
                        #endif

                        loadFinishedEventHandler.Invoke(null, dummy);
                    }
                    break;
            }
        }