void AddImplementInterfaceCommandItems(List <ToolStripItem> subItems, IClass c, bool explicitImpl)
        {
            CodeGenerator codeGen  = c.ProjectContent.Language.CodeGenerator;
            IAmbience     ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
            foreach (IReturnType rt in c.BaseTypes)
            {
                IClass interf = rt.GetUnderlyingClass();
                if (interf != null && interf.ClassType == ClassType.Interface)
                {
                    IReturnType  rtCopy = rt;                    // copy for access by anonymous method
                    EventHandler eh     = delegate {
                        TextEditorDocument d = new TextEditorDocument(FindReferencesAndRenameHelper.GetDocument(c));
                        if (d != null)
                        {
                            codeGen.ImplementInterface(rtCopy, d, explicitImpl, c);
                        }
                        ParserService.ParseCurrentViewContent();
                    };
                    subItems.Add(new MenuCommand(ambience.Convert(interf), eh));
                }
            }
        }