//Sets all the controls in the Property Manager from the Selected Node
        public void FillPropertyManager(LinkNode node)
        {
            PMTextBoxLinkName.Text      = node.Link.Name;
            PMNumberBoxChildCount.Value = node.Nodes.Count;

            //Selecting the associated link components
            CommonSwOperations.SelectComponents(ActiveSWModel, node.Link.SWComponents, true, PMSelection.Mark);

            //Setting joint properties
            if (!node.IsBaseNode && node.Parent != null)
            {
                //Combobox needs to be blanked before de-activating
                SelectComboBox(PMComboBoxGlobalCoordsys, "");

                //Labels need to be activated before changing them
                EnableControls(!node.IsBaseNode);
                PMTextBoxJointName.Text   = node.Link.Joint.Name;
                PMLabelParentLink.Caption = node.Parent.Name;

                FillComboBox(PMComboBoxCoordSys, Exporter.GetRefCoordinateSystems());
                FillComboBox(PMComboBoxAxes, Exporter.GetRefAxes());

                PMComboBoxAxes.AddItems("None");
                SelectComboBox(PMComboBoxCoordSys, node.Link.Joint.CoordinateSystemName);
                SelectComboBox(PMComboBoxAxes, node.Link.Joint.AxisName);
                SelectComboBox(PMComboBoxJointType, node.Link.Joint.Type);
            }
            else
            {
                //Labels and text box have be blanked before de-activating them
                PMLabelParentLink.Caption = " ";
                SelectComboBox(PMComboBoxCoordSys, "");
                SelectComboBox(PMComboBoxAxes, "");
                SelectComboBox(PMComboBoxJointType, "");

                //Activate controls before changing them
                EnableControls(!node.IsBaseNode);
                FillComboBox(PMComboBoxGlobalCoordsys, Exporter.GetRefCoordinateSystems());
                SelectComboBox(PMComboBoxGlobalCoordsys, node.Link.Joint.CoordinateSystemName);
            }
        }
 // When the selected node is changed, the previously active node needs to be saved
 public void SaveActiveNode()
 {
     if (previouslySelectedNode != null)
     {
         previouslySelectedNode.Link.Name = PMTextBoxLinkName.Text;
         if (!previouslySelectedNode.IsBaseNode)
         {
             previouslySelectedNode.Link.Joint.Name                 = PMTextBoxJointName.Text;
             previouslySelectedNode.Link.Joint.AxisName             = PMComboBoxAxes.get_ItemText(-1);
             previouslySelectedNode.Link.Joint.CoordinateSystemName = PMComboBoxCoordSys.get_ItemText(-1);
             previouslySelectedNode.Link.Joint.Type                 = PMComboBoxJointType.get_ItemText(-1);
         }
         else
         {
             previouslySelectedNode.Link.Joint.CoordinateSystemName =
                 PMComboBoxGlobalCoordsys.get_ItemText(-1);
         }
         CommonSwOperations.GetSelectedComponents(
             ActiveSWModel, previouslySelectedNode.Link.SWComponents, PMSelection.Mark);
     }
 }