private void ProjectTreeView_MouseDoubleClick(object sender, MouseEventArgs e) { TreeNode SelectedNode = ProjectTreeView.GetNodeAt(e.Location); imsBaseNode tempNode = ((imsBaseNode)(SelectedNode.Tag)); if (tempNode != null) { NodePropertyGrid.SelectedObject = ((imsBaseNode)(SelectedNode.Tag)); } }
public void DeserializePCSystem(string pathString) { int nodeIndex; BinaryFormatter DeSerializeFormatter = new BinaryFormatter(); FileStream DeSerializeFileStream = new FileStream(pathString, FileMode.Open); object[] cTorParams = new object[] { DeSerializeFormatter, DeSerializeFileStream }; long startingFP; imsBaseNode tempBaseNode; List <Type> AllTypes = new List <Type>(); foreach (Assembly tempAss in importedDLLs) { foreach (Type tempType in tempAss.GetTypes()) { AllTypes.Add(tempType); } } List <imsBaseNode> tempGlobalNodeList = new List <imsBaseNode>(); while (DeSerializeFileStream.Position < DeSerializeFileStream.Length) { startingFP = DeSerializeFileStream.Position; tempBaseNode = new imsBaseNode(DeSerializeFormatter, DeSerializeFileStream); if (AllTypes.Contains(tempBaseNode.getNodeType)) { DeSerializeFileStream.Position = startingFP; tempGlobalNodeList.Add((imsBaseNode)(Activator.CreateInstance(tempBaseNode.getNodeType, cTorParams))); } else { DeSerializeFileStream.Close(); throw (new Exception("Deserialized unknown node type from file")); } // if the node ids don't line up... if (tempGlobalNodeList[tempGlobalNodeList.Count - 1].getGlobalNodeID != tempGlobalNodeList.FindIndex(x => x.getGlobalNodeID == tempBaseNode.getGlobalNodeID)) { DeSerializeFileStream.Close(); throw (new Exception("DeSerialized Node ID's dont Line Up")); } } DeSerializeFileStream.Close(); APISysModules.Clear(); globalNodeList.Clear(); foreach (imsBaseNode deSerialNode in tempGlobalNodeList) { globalNodeList.Add(deSerialNode); if (typeof(imsAPISysModule).IsInstanceOfType(deSerialNode)) { ((imsAPISysModule)deSerialNode).deSerializeSetAPILinks(this); } } foreach (imsBaseNode deSerialNode in tempGlobalNodeList) { if (typeof(imsSysModuleNode).IsInstanceOfType(deSerialNode)) { ((imsSysModuleNode)deSerialNode).deSerializeLinkNodes(globalNodeList); } } }