private void DumpFederationObjects(MetaFederateAmbassador metaFederateAmbassador, IList<HLAobjectRoot> objects, String parentNodeName, String federationName)
        {
            TreeNode parentNode = FindNode(treeView1.Nodes, parentNodeName);
            if (parentNode == null)
            {
                parentNode = new TreeNode(parentNodeName);
                parentNode.ImageIndex = 3;
                parentNode.SelectedImageIndex = 3;
                parentNode.Tag = parentNodeName;
                this.treeView1.Nodes.Add(parentNode);

                HLAfederation federationObject = metaFederateAmbassador.GetFederation(federationName);

                if (federationObject != null)
                {
                    DescriptorManager descriptorManager = new DescriptorManager();
                    descriptorManager.AddDescriptors(federationObject.HLAFDDID);

                    ShowInformationFromDescriptorManager(descriptorManager, parentNodeName);
                }
            }

            AddHLAobjectRootNodes(parentNode, objects);
        }
        private void DumpMetaFederationObjects(MetaFederateAmbassador federateAmbassador, String parentNodeName)
        {
            String location;

            TreeNode parentNode = FindNode(treeView1.Nodes, parentNodeName);
            if (parentNode == null)
            {
                parentNode = new TreeNode(parentNodeName);
                parentNode.ImageIndex = 3;
                parentNode.SelectedImageIndex = 3;
                parentNode.Tag = parentNodeName;
                this.treeView1.Nodes.Add(parentNode);
            }

            TreeNode instancesNode = FindNode(parentNode.Nodes, INSTANCES_NODE_NAME);
            if (instancesNode == null)
            {
                instancesNode = new TreeNode(INSTANCES_NODE_NAME);
                instancesNode.ImageIndex = 3;
                instancesNode.SelectedImageIndex = 3;
                instancesNode.Tag = INSTANCES_NODE_NAME;
                parentNode.Nodes.Add(instancesNode);
            }

            TreeNode federationsNode = FindNode(instancesNode.Nodes, FEDERATIONS_NODE_NAME);
            if (federationsNode == null)
            {
                federationsNode = new TreeNode(FEDERATIONS_NODE_NAME);
                federationsNode.ImageIndex = 3;
                federationsNode.SelectedImageIndex = 3;
                federationsNode.Tag = FEDERATIONS_NODE_NAME;
                instancesNode.Nodes.Add(federationsNode);
            }

            foreach (HLAfederation federation in federateAmbassador.GetFederations())
            {
                location = "Remote";
                if (federation.HLAprivilegeToDeleteObject)  location = "Local";

                String nodeName = federation.HLAfederationName + "[" + location + ", " + federation.InstanceHandle + "]";

                TreeNode node = FindNode(federationsNode.Nodes, nodeName);
                if (node == null)
                {
                    node = new TreeNode(nodeName);
                    node.ImageIndex = 0;
                    node.SelectedImageIndex = 0;
                    node.Tag = nodeName;
                    federationsNode.Nodes.Add(node);
                }

                CreateObjectPropertiesNodes(federation, node);
            }

            TreeNode federatesNode = FindNode(instancesNode.Nodes, FEDERATES_NODE_NAME);
            if (federatesNode == null)
            {
                federatesNode = new TreeNode(FEDERATES_NODE_NAME);
                federatesNode.ImageIndex = 3;
                federatesNode.SelectedImageIndex = 3;
                federatesNode.Tag = FEDERATES_NODE_NAME;
                instancesNode.Nodes.Add(federatesNode);
            }

            foreach (Sxtafederate federate in federateAmbassador.GetFederates())
            {
                location = "Remote";
                if (federate.HLAprivilegeToDeleteObject)
                    location = "Local";

                String nodeName = federate.HLAfederateType + "[" + location + ", " + federate.InstanceHandle + "]";

                TreeNode node = FindNode(federatesNode.Nodes, nodeName);
                if (node == null)
                {
                    node = new TreeNode(nodeName);
                    node.ImageIndex = 0;
                    node.SelectedImageIndex = 0;
                    node.Tag = nodeName;
                    federatesNode.Nodes.Add(node);
                }

                CreateObjectPropertiesNodes(federate, node);
            }
        }
        public void ShowInformationFromRtiAmbassador(MetaFederateAmbassador metaFederateAmbassador, XrtiExecutiveAmbassador rti)
        {
            TreeView objectTreeView = this.treeView1;
            objectTreeView.ImageList = this.imageList1;

            if (metaFederateAmbassador != null)
            {
                DumpMetaFederationObjects(metaFederateAmbassador, META_FEDERATION_NODE_NAME);
            }

            if (rti.FederateAmbassador != null)
            {
                IList<HLAobjectRoot> objectsFederation = ((FederateAmbassador)rti.FederateAmbassador).GetObjects();

                DumpFederationObjects(metaFederateAmbassador, objectsFederation, "Federation : " + rti.FederationName, rti.FederationName);
            }

            //objectTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
            //objectTreeView.Location = new System.Drawing.Point(4, 4);
            //objectTreeView.Margin = new System.Windows.Forms.Padding(4);
            //objectTreeView.Name = "Object View";
            //objectTreeView.Size = new System.Drawing.Size(251, 268);
            //objectTreeView.TabIndex = 0;
            //objectTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.TreeViewAfterSelect);
        }