StonehearthEditor.ManifestView.treeView_AfterLabelEdit C# (CSharp) Method

treeView_AfterLabelEdit() private method

private treeView_AfterLabelEdit ( object sender, NodeLabelEditEventArgs e ) : void
sender object
e NodeLabelEditEventArgs
return void
        private void treeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (e.Label != null && e.Label.Length > 0)
            {
                FileData fileData = e.Node.Tag as FileData;
                IModuleFileData moduleFileData = e.Node.Tag as IModuleFileData;
                ModuleFile moduleFile = moduleFileData.GetModuleFile();
                string oldAlias = moduleFile.FullAlias;
                Module mod = moduleFile.Module;
                string newAlias = mod.Name + ":" + e.Label;

                // Update the references to use the new alias.
                foreach (FileData reference in fileData.ReferencedByFileData.Values)
                {
                    if (reference.FlatFileData != null)
                    {
                        string updatedFlatFile = reference.FlatFileData.Replace(oldAlias, newAlias);
                        reference.TrySetFlatFileData(updatedFlatFile);
                        reference.TrySaveFile();
                    }
                }

                mod.AddToManifest(e.Label, moduleFile.OriginalPath);
                mod.RemoveFromManifest("aliases", moduleFile.Name);
                mod.WriteManifestToFile();
                Reload();
            }
            else
            {
                e.CancelEdit = true;
            }
        }