private void aliasContextMenuDuplicate_Click(object sender, EventArgs e)
{
TreeNode selectedNode = treeView.SelectedNode;
FileData selectedFileData = ModuleDataManager.GetInstance().GetSelectedFileData(treeView.SelectedNode);
if (selectedFileData == null)
{
return;
}
IModuleFileData moduleFile = selectedFileData as IModuleFileData;
if (moduleFile == null)
{
return; // Don't know how to clone something not module file data
}
// Get the correct type from any descendant nodes (including grandchildren)
string manifestEntryType = selectedNode.FullPath.Split('\\')[1];
string sourceModName = selectedNode.FullPath.Split('\\')[0];
ModuleFile sourceModule = moduleFile.GetModuleFile();
string uri = sourceModule != null ? sourceModule.FullAlias : selectedFileData.FileName;
CloneAliasCallback callback = new CloneAliasCallback(this, selectedFileData, manifestEntryType);
CloneDialog dialog = new CloneDialog(uri, selectedFileData.GetNameForCloning(), sourceModName);
dialog.SetCallback(callback);
dialog.ShowDialog();
}