/// <summary>
        /// Updateds the element for page.
        /// </summary>
        /// <param name="oldDetailPage">The old detail page.</param>
        /// <returns></returns>
        public override UPMElement UpdatedElementForPage(Page oldDetailPage)
        {
            MDashboardPage detailPage = (MDashboardPage)this.InstantiatePage();

            lock (this)
            {
                //this.InformAboutDidChangeTopLevelElement(detailPage, detailPage, null, UPChangeHints.ChangeHintsWithHint(Constants.GroupPageChangeHint));
                //Thread.Sleep(2000);
                //List<IIdentifier> changeIdentifier = new List<IIdentifier>();
                foreach (UPGroupModelController groupModelController in this.GroupModelControllerArray)
                {
                    //if (!(groupModelController is UPListResultGroupModelController))
                    //{
                    groupModelController.ApplyContext(this.ValueDictionary);
                    //}
                }

                foreach (UPGroupModelController groupModelController in this.GroupModelControllerArray)
                {
                    if (groupModelController.Group != null)
                    {
                        groupModelController.Group.ConfiguredPostionOfGroup = groupModelController.RootTabIndex;
                        detailPage.AddGroup(groupModelController.Group);
                        //if (groupModelController.ControllerState == GroupModelControllerState.Finished)
                        //{
                        //    changeIdentifier.Add(groupModelController.Group.Identifier);
                        //}
                    }
                }

                detailPage.Invalid = false;
                //this.InformAboutDidChangeTopLevelElement(detailPage, detailPage, changeIdentifier, UPChangeHints.ChangeHintsWithHint(Constants.GroupAddedToPageHint));
            }

            return(detailPage);
        }