public void ResyncFile(Dialogue dialogue, Package previousPackage, bool focus) { if (dialogue == null) { return; } if (previousPackage != null) { TreeNode[] nodePackages = tree.Nodes.Find(GetPackageKey(previousPackage.Name), false); if (nodePackages.Count() > 0) { TreeNode nodeParent = nodePackages[0]; TreeNode[] nodeChildren = nodeParent.Nodes.Find(dialogue.GetFileName(), true); if (nodeChildren.Count() > 0) { TreeNode nodeDialogue = nodeChildren[0]; TreeNode nodeFolder = nodeDialogue.Parent; nodeDialogue.Remove(); DeleteIfEmptyFolder(nodeFolder); } } else { EditorCore.LogError("Unable to update a Dialogue with unknown Package in project explorer : " + dialogue.GetName() + " in " + previousPackage.Name); } } ResyncFile(dialogue, focus); }
public void ResyncFile(Dialogue dialogue, bool focus) { if (dialogue == null) { return; } if (dialogue.Package == null) { EditorCore.LogError("Unable to show a Dialogue without Package in project explorer : " + dialogue.GetName()); return; } TreeNode[] nodePackages = tree.Nodes.Find(GetPackageKey(dialogue.Package.Name), false); if (nodePackages.Count() > 0) { TreeNode nodeParent = nodePackages[0]; string path = dialogue.GetFilePath(); string[] folders = path.Split(new char[] { Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries); string folderPath = ""; foreach (string folder in folders) { folderPath = Path.Combine(folderPath, folder); TreeNode[] nodeFolders = nodeParent.Nodes.Find(folder, false); if (nodeFolders.Count() > 0) { nodeParent = nodeFolders[0]; } else { nodeParent = nodeParent.Nodes.Add(folder, folder); nodeParent.Tag = new Folder() { Path = folderPath }; nodeParent.ContextMenuStrip = menuFolder; EditorHelper.SetNodeIcon(nodeParent, ENodeIcon.Folder); } } TreeNode nodeDialogue = nodeParent.Nodes.Add(dialogue.GetFileName(), dialogue.GetName()); nodeDialogue.ContextMenuStrip = menuDocument; EditorHelper.SetNodeIcon(nodeDialogue, ENodeIcon.Dialogue); nodeDialogue.Tag = dialogue; if (focus) { nodeDialogue.EnsureVisible(); } } else { EditorCore.LogError("Unable to show a Dialogue with unknown Package in project explorer : " + dialogue.GetName() + " in " + dialogue.Package.Name); } }