/// <summary>
        ///  Initializes the IU instance controller.
        /// </summary>
        public void Initialize()
        {
            if (FinalNodeQueryController != null)
            {
                FinalNodeQueryController.Initialize();
            }

            if (Action != null)
            {
                Action.Initialize();
            }

            if (Navigation != null)
            {
                Navigation.Initialize();
            }

            InternalFilters.Initialize();

            foreach (TreeNodeController subNode in SubNodes)
            {
                if (!subNode.NodeId.Equals(FinalNodeID))
                {
                    subNode.Tree = Tree;
                    subNode.Initialize();
                }
            }
        }
        /// <summary>
        /// Apply multilanguage to nodes.
        /// </summary>
        internal void ApplyMultilanguage()
        {
            if (FinalNodeQueryController != null)
            {
                FinalNodeQueryController.ApplyMultilanguage();
            }
            foreach (TreeNodeController lNode in SubNodes)
            {
                lNode.ApplyMultilanguage();
            }

            if (OptionsMenuItem != null)
            {
                OptionsMenuItem.Value = CultureManager.TranslateString(LanguageConstantKeys.L_POP_UP_MENU_OPTIONS, LanguageConstantValues.L_POP_UP_MENU_OPTIONS);
            }
            if (NavigationsMenuItem != null)
            {
                NavigationsMenuItem.Value = CultureManager.TranslateString(LanguageConstantKeys.L_POP_UP_MENU_NAVIGATIONS, LanguageConstantValues.L_POP_UP_MENU_NAVIGATIONS);
            }
        }
        /// <summary>
        /// Updates the final controller data, the related instances with the received Oid
        /// </summary>
        /// <param name="parentOid"></param>
        /// <returns></returns>
        internal bool UpdateFinalControllerData(Oid parentOid)
        {
            if (FinalNodeQueryController == null)
            {
                return(false);
            }

            // Update the exchange information
            List <Oid>             lOids      = new List <Oid>();
            ExchangeInfo           lExchgInfo = null;
            ExchangeInfoNavigation lInfoNav   = null;

            if (parentOid != null)
            {
                lOids.Add(parentOid);
            }
            lExchgInfo            = FinalNodeQueryController.ExchangeInformation;
            lInfoNav              = new ExchangeInfoNavigation(lExchgInfo as ExchangeInfoNavigation);
            lInfoNav.SelectedOids = lOids;
            FinalNodeQueryController.ExchangeInformation = lInfoNav;

            // Clear the last Oid in the population controller
            IUPopulationController lPopulationController = FinalNodeQueryController as IUPopulationController;

            if (lPopulationController != null)
            {
                lPopulationController.Context.LastOid = null;
                lPopulationController.Context.LastOids.Clear();
            }

            // Refresh data in the controller
            FinalNodeQueryController.UpdateData(true);

            if (lOids.Count == 0)
            {
                return(false);
            }

            return(true);
        }