/// <summary> /// Adds an empty manifest with the given assembly name to the project /// </summary> /// <param name="assemblyname"></param> public void AddManifest(string assemblyname) { Manifest manifest = new Manifest(); manifest.AssemblyName = assemblyname; Manifests.Add(manifest); }
private void PopulateInitialTree() { // Set status statuslabel.Text = "Loading project..."; statuslabel.Invalidate(); // Add project settings TreeNode projectsettings = new TreeNode("Project Settings"); projectsettings.ImageKey = "cog_edit.png"; projectsettings.SelectedImageKey = "cog_edit.png"; projectsettings.Tag = "Project Settings"; objectview.Nodes.Add(projectsettings); // Add hooks TreeNode hooks = new TreeNode("Hooks"); hooks.ImageKey = "lightning.png"; hooks.SelectedImageKey = "lightning.png"; objectview.Nodes.Add(hooks); foreach (var hook in CurrentProject.Manifests.SelectMany((m) => m.Hooks)) { TreeNode hooknode = new TreeNode(hook.Name); if (hook.Flagged) { hooknode.ImageKey = "script_error.png"; hooknode.SelectedImageKey = "script_error.png"; } else { hooknode.ImageKey = "script_lightning.png"; hooknode.SelectedImageKey = "script_lightning.png"; } hooknode.Tag = hook; hooks.Nodes.Add(hooknode); } // Add assemblies TreeNode assemblies = new TreeNode("Assemblies"); assemblies.ImageKey = "folder.png"; assemblies.SelectedImageKey = "folder.png"; objectview.Nodes.Add(assemblies); List <TreeNode> assemblynodes = new List <TreeNode>(); foreach (string file in Directory.EnumerateFiles(CurrentProject.TargetDirectory, "*.dll")) { // Check if it's an original dll if (!IsFileOriginal(file)) { // See if it has a manifest string assemblyname = Path.GetFileNameWithoutExtension(file); if (CurrentProject.Manifests.Any((x) => x.AssemblyName == assemblyname)) { // Get the manifest Manifest manifest = CurrentProject.Manifests.Single((x) => x.AssemblyName == assemblyname); // Load the assembly NodeAssemblyData data = new NodeAssemblyData(); data.Included = true; data.AssemblyName = assemblyname; data.Loaded = true; data.Definition = LoadAssembly(assemblyname); // Create a node for it TreeNode assembly = new TreeNode(assemblyname); if (data.Definition == null) { assembly.ImageKey = "error.png"; assembly.SelectedImageKey = "error.png"; } else { assembly.ImageKey = "accept.png"; assembly.SelectedImageKey = "accept.png"; } assembly.Tag = data; assemblynodes.Add(assembly); // Populate if (data.Definition != null) { PopulateAssemblyNode(assembly, data.Definition); } } else { // Nope, just make an empty node for it TreeNode assembly = new TreeNode(assemblyname); assembly.ImageKey = "cross.png"; assembly.SelectedImageKey = "cross.png"; assembly.Tag = new NodeAssemblyData() { Included = false, AssemblyName = assemblyname }; assemblynodes.Add(assembly); } } } // Sort assemblynodes.Sort((a, b) => { return(Comparer <string> .Default.Compare(a.ImageKey, b.ImageKey)); }); // Add for (int i = 0; i < assemblynodes.Count; i++) { assemblies.Nodes.Add(assemblynodes[i]); } // Set status statuslabel.Text = ""; }