private void AddObjectViewExtractedMenus(NodeSource source)
        {
            source.GetNodeType <HLTNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, previewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <TagNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, previewTag, addTagToProject, replaceTagInProject);

            AddDebugMenu(source);
        }
        void AddMenus(NodeSource source)
        {
            source.GetNodeType <FolderNodeType>().States[0].AddMenuDefinitions(removeFolder);

            source.GetNodeType <TagNode>().State("missing_reference").AddMenuDefinitions(copyFromGameArchive, remove);
            source.GetNodeType <TagNode>().State("valid_reference").AddMenuDefinitions(remove, edit, previewTag);
            source.GetNodeType <TagNode>().State("unreferenced").AddMenuDefinitions(include);

            source.GetNodeType <ObjectTag>().State("missing_reference").AddMenuDefinitions(copyFromGameArchive, remove);
            source.GetNodeType <ObjectTag>().State("valid_reference").AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ObjectTag>().State("valid_reference").AddDefaultMenuDefinition(edit, remove);

            source.GetNodeType <ModelTag>().State("missing_reference").AddMenuDefinitions(copyFromGameArchive, remove);
            source.GetNodeType <ModelTag>().State("valid_reference").AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ModelTag>().State("valid_reference").AddDefaultMenuDefinition(edit, remove);

            source.GetNodeType <SbspTag>().State("missing_reference").AddMenuDefinitions(copyFromGameArchive, remove);
            source.GetNodeType <SbspTag>().State("valid_reference").AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <SbspTag>().State("valid_reference").AddDefaultMenuDefinition(edit, remove);

            source.GetNodeType <ScenarioTag>().State("missing_reference").AddMenuDefinitions(copyFromGameArchive, remove);
            source.GetNodeType <ScenarioTag>().State("valid_reference").AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ScenarioTag>().State("valid_reference").AddDefaultMenuDefinition(edit, remove);

            source.GetNodeType <ProjectTemplateTagNodeType>().States[0].AddMenuDefinitions(revertEssentialTag, edit);
            source.GetNodeType <GlobalTemplateTagNodeType>().States[0].AddDefaultMenuDefinition(editGlobal, selectProjectTag);

            source.GetNodeType <RecycleBinRootNodeType>().State("recyclebin_not_empty").AddDefaultMenuDefinition(browseRecycleBin, emptyRecycleBin);

#if DEBUG
            source.AddGlobalMenuDefinition(debugInfo);
#endif
        }
 private void AddObjectViewUnextractedMenus(NodeSource source)
 {
     source.GetNodeType <UnextractedHLTNodeType>().States[0].AddMenuDefinitions(viewTagInformation);
     AddDebugMenu(source);
 }
        private void AddTagViewExtractedMenus(NodeSource source)
        {
            source.GetNodeType <FileNodeType>().States[0].AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <FileNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <ObjectFileNodeType>().States[0].AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ObjectFileNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <ModelFileNodeType>().States[0].AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ModelFileNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <SbspFileNodeType>().States[0].AddDefaultMenuDefinition(viewTag);
            source.GetNodeType <SbspFileNodeType>().States[0].AddDefaultMenuDefinition(
                previewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <ScenarioFileNodeType>().States[0].AddDefaultMenuDefinition(previewTag);
            source.GetNodeType <ScenarioFileNodeType>().States[0].AddDefaultMenuDefinition(
                viewTag, addTagToProject, replaceTagInProject);

            source.GetNodeType <FolderNodeType>().States[0].AddMenuDefinitions(addFolderToProject);

            source.GetNodeType <AttachedScriptNodeType>().States[0].AddDefaultMenuDefinition(viewScript);

            AddDebugMenu(source);

            // TODO: Create remaining menu items.
            // Edit Tag for Project
            // Check &Dependencies
        }