KinectWithVRServer.MainWindow.SkeletonTab_RequestBringIntoView C# (CSharp) Method

SkeletonTab_RequestBringIntoView() private method

private SkeletonTab_RequestBringIntoView ( object sender, System.Windows.RequestBringIntoViewEventArgs e ) : void
sender object
e System.Windows.RequestBringIntoViewEventArgs
return void
        private void SkeletonTab_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
        {
            //Remove any kinects that aren't in use anymore (doesn't check the first tab since that is always the merged skeletons
            for (int i = SkeletonsTabControl.Items.Count - 1; i > 0; i--)
            {
                bool kinectFound = false;
                string tabHeader = ((TabItem)SkeletonsTabControl.Items[i]).Header.ToString();
                string tabUniqueID = ((IKinectSkeletonControl)((TabItem)SkeletonsTabControl.Items[i]).Content).uniqueKinectID;

                for (int j = 0; j < server.kinects.Count; j++)
                {
                    if (tabHeader == "Kinect " + server.kinects[j].kinectID.ToString())
                    {
                        if (server.kinects[j].version == KinectVersion.KinectV1 && server.kinects[j].uniqueKinectID == tabUniqueID)
                        {
                            if (((KinectV1Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[j]).sendRawSkeletons)
                            {
                                kinectFound = true;
                                break;
                            }
                        }
                        else if (server.kinects[j].version == KinectVersion.KinectV2 && server.kinects[j].uniqueKinectID == tabUniqueID)
                        {
                            if (((KinectV2Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[j]).sendRawSkeletons)
                            {
                                kinectFound = true;
                                break;
                            }
                        }
                        //Note: Send raw skeletons shouldn't be an option on networked Kinects.  If you want the raw skeletons, connect to the original server instead!
                    }
                }

                if (!kinectFound)
                {
                    SkeletonsTabControl.Items.RemoveAt(i);
                }
            }

            //Add the controls for Kinects that aren't on the list but need to be
            for (int i = 0; i < server.kinects.Count; i++)
            {
                if (server.kinects[i].version == KinectVersion.KinectV1)
                {
                    if (((KinectV1Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[i]).sendRawSkeletons)
                    {
                        bool controlFound = false;

                        for (int j = 0; j < SkeletonsTabControl.Items.Count; j++)
                        {
                            if (((TabItem)SkeletonsTabControl.Items[j]).Header.ToString() == "Kinect " + server.kinects[i].kinectID.ToString())
                            {
                                controlFound = true;
                            }
                        }

                        if (!controlFound)
                        {
                            TabItem newTabItem = new TabItem();
                            newTabItem.Header = "Kinect " + server.kinects[i].kinectID.ToString();
                            newTabItem.Content = ((KinectV1Wrapper.SettingsControl)kinectOptionGUIPages[i]).skeletonUserControl;
                            AddSkeletonTabItem(newTabItem, server.kinects[i].kinectID);
                        }
                    }
                }
                else if (server.kinects[i].version == KinectVersion.KinectV2)
                {
                    if (((KinectV2Wrapper.Settings)server.serverMasterOptions.kinectOptionsList[i]).sendRawSkeletons)
                    {
                        bool controlFound = false;

                        for (int j = 0; j < SkeletonsTabControl.Items.Count; j++)
                        {
                            if (((TabItem)SkeletonsTabControl.Items[j]).Header.ToString() == "Kinect " + server.kinects[i].kinectID.ToString())
                            {
                                controlFound = true;
                            }
                        }

                        if (!controlFound)
                        {
                            TabItem newTabItem = new TabItem();
                            newTabItem.Header = "Kinect " + server.kinects[i].kinectID.ToString();
                            newTabItem.Content = ((KinectV2Wrapper.SettingsControl)kinectOptionGUIPages[i]).skeletonUserControl;
                            AddSkeletonTabItem(newTabItem, server.kinects[i].kinectID);
                        }
                    }
                }
                //NOTE: The networked kinects shouldn't need a control for raw skeletons, since the user will connect to the original VRPN server to get those instead of retransmitting the data again
            }
        }
MainWindow