1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
6
using ICSharpCode.Core;
8
namespace ICSharpCode.SharpDevelop.Project
10
public class FileRenameTreeNodeVisitor : ProjectBrowserTreeNodeVisitor
15
public FileRenameTreeNodeVisitor(string oldName, string newName)
17
this.oldName = oldName;
18
this.newName = newName;
21
public override object Visit(SolutionItemNode solutionItemNode, object data)
23
if (FileUtility.IsEqualFileName(oldName, solutionItemNode.FileName)) {
24
solutionItemNode.Text = Path.GetFileName(newName);
26
solutionItemNode.AcceptChildren(this, data);
31
public override object Visit(ProjectNode projectNode, object data)
33
if (FileUtility.IsBaseDirectory(oldName, projectNode.Directory) ||
34
FileUtility.IsBaseDirectory(projectNode.Directory, oldName)) {
35
projectNode.AcceptChildren(this, data);
40
public override object Visit(DirectoryNode directoryNode, object data)
42
if (FileUtility.IsBaseDirectory(oldName, directoryNode.Directory)) {
43
directoryNode.Directory = FileUtility.RenameBaseDirectory(directoryNode.Directory, oldName, newName);
44
directoryNode.AcceptChildren(this, data);
45
} else if (FileUtility.IsBaseDirectory(directoryNode.Directory, oldName)) {
46
directoryNode.AcceptChildren(this, data);
51
public override object Visit(FileNode fileNode, object data)
53
if (FileUtility.IsEqualFileName(oldName, fileNode.FileName)) {
54
fileNode.FileName = newName;
55
} else if (FileUtility.IsBaseDirectory(oldName, fileNode.FileName)) {
56
fileNode.FileName = FileUtility.RenameBaseDirectory(fileNode.FileName, oldName, newName);
58
fileNode.AcceptChildren(this, data);