/// <summary> /// 加载子节点(递归方法) /// </summary> /// <param name="childNode"></param> /// <param name="treeNode"></param> private void loadNodes(XmlNode childNode, GxTreeNode parentNode) { //如果父节点为空则默认为工程根节点 if (parentNode == null) { parentNode = _projectNode; } //老衲要开始遍历了! foreach (XmlNode node in childNode.ChildNodes) { if (node.Name == "IncludeNode") { string name = node.Attributes["Name"].Value; string path = GxEnvManager.getEnv(GxEnvVarType.GXENV_PROJECT_SCENE_DIR) + "\\" + node.Attributes["Path"].Value; string type = node.Attributes["Type"].Value; //如果节点是目录 if (type == "DirectoryType") { GxSceneDirectory gxDirectory = new GxSceneDirectory(path, node); GxTreeNode gxTreeNode = new GxTreeNode( name, gxDirectory, GXNodeType.GX_NODE_TYPE_DIRECTORY, ICON_TYPE.ICON_SCENE_DIR, ICON_TYPE.ICON_SCENE_DIR ); parentNode.Nodes.Add(gxTreeNode); if (node.ChildNodes.Count > 0) { loadNodes(node, gxTreeNode); } } else if (type == "SceneFileType") { int sceneId = Convert.ToInt32(node.Attributes["Id"].Value); GxScene gxScene = new GxScene(sceneId, path); GxTreeNode gxTreeNode = new GxTreeNode( name, gxScene, GXNodeType.GX_NODE_TYPE_SCENE, ICON_TYPE.ICON_SCENE, ICON_TYPE.ICON_SCENE ); parentNode.Nodes.Add(gxTreeNode); } else { Logger.Error("Invalid node type."); } } } }
/// <summary> /// 加载子节点(递归方法) /// </summary> /// <param name="childNode"></param> /// <param name="treeNode"></param> private void loadNodes(XmlNode childNode, GxTreeNode parentNode) { //如果父节点为空则默认为工程根节点 if (parentNode == null) { parentNode = _projectNode; } //老衲要开始遍历了! foreach (XmlNode node in childNode.ChildNodes) { if (node.Name == "IncludeNode") { string name = node.Attributes["Name"].Value; string path = GxEnvManager.getEnv(GxEnvVarType.GXENV_PROJECT_SCENE_DIR) + "\\" + node.Attributes["Path"].Value; string type = node.Attributes["Type"].Value; //如果节点是目录 if (type == "DirectoryType") { GxSceneDirectory gxDirectory = new GxSceneDirectory(path, node); GxTreeNode gxTreeNode = new GxTreeNode( name, gxDirectory, GXNodeType.GX_NODE_TYPE_DIRECTORY, ICON_TYPE.ICON_SCENE_DIR, ICON_TYPE.ICON_SCENE_DIR ); parentNode.Nodes.Add(gxTreeNode); if (node.ChildNodes.Count > 0) { loadNodes(node, gxTreeNode); } } else if (type == "SceneFileType") { int sceneId = Convert.ToInt32(node.Attributes["Id"].Value); GxScene gxScene = new GxScene(sceneId,path); GxTreeNode gxTreeNode = new GxTreeNode( name, gxScene, GXNodeType.GX_NODE_TYPE_SCENE, ICON_TYPE.ICON_SCENE, ICON_TYPE.ICON_SCENE ); parentNode.Nodes.Add(gxTreeNode); } else { Logger.Error("Invalid node type."); } } } }