/// <summary>
        /// Process the Instance Node Selected from the Tree. Configures the contextual menu and show the side information if it is neccesary
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected virtual void ProcessTreeInstanceNodeSelected(object sender, InstanceNodeSelectedEventArgs e)
        {
            // Hide all panels
            HideAllGroups();

            // Check if the selected node must show a final controller
            TreeNodeController lNodeController = GetNodeById(e.NodeId);
            if (lNodeController == null || lNodeController.FinalNodeID.Equals(""))
            {
                return;
            }

            if (e.SelectedInstances != null && e.SelectedInstances.Count > 0)
            {
                lNodeController.ConfigureMenu(e.SelectedInstances[0]);
                ShowFinalController(lNodeController.FinalNodeID, e.SelectedInstances[0], e.CompleteOidPath);
            }
        }
        /// <summary>
        /// Raises the InstanceNodeSelected event
        /// </summary>
        /// <param name="args"></param>
        private void OnInstanceNodeSelected(InstanceNodeSelectedEventArgs args)
        {
            if (!mRaiseEventsFlag)
            {
                return;
            }

            EventHandler<InstanceNodeSelectedEventArgs> handler = InstanceNodeSelected;

            if (handler != null)
            {
                handler(this, args);
            }
        }
 /// <summary>
 /// Executes actions related to InstanceNode selection.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void HandleTreeInstanceNodeSelected(object sender, InstanceNodeSelectedEventArgs e)
 {
     ProcessTreeInstanceNodeSelected(sender, e);
 }