Chatterer.ToolbarButtonWrapper.TryWrapToolbarManager C# (CSharp) Method

TryWrapToolbarManager() protected static method

Wraps the ToolbarManager class, if present.
protected static TryWrapToolbarManager ( ) : bool
return bool
        protected static bool TryWrapToolbarManager()
        {
            if (ToolbarManager == null)
            {
                Tools.PostDebugMessage(string.Format(
                    "{0}: Loading ToolbarManager.",
                    "ToolbarButtonWrapper"
                    ));

                ToolbarManager = AssemblyLoader.loadedAssemblies
                    .Select(a => a.assembly.GetExportedTypes())
                        .SelectMany(t => t)
                        .FirstOrDefault(t => t.FullName == "Toolbar.ToolbarManager");

                Tools.PostDebugMessage(string.Format(
                    "{0}: Loaded ToolbarManager.  Getting Instance.",
                    "ToolbarButtonWrapper"
                    ));

                if (ToolbarManager == null)
                {
                    return false;
                }

                TBManagerInstance = ToolbarManager.GetProperty(
                    "Instance",
                    System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static
                    )
                    .GetValue(null, null);

                Tools.PostDebugMessage(string.Format(
                    "{0}: Got ToolbarManager Instance '{1}'.  Getting 'add' method.",
                    "ToolbarButtonWrapper",
                    TBManagerInstance
                    ));

                TBManagerAdd = ToolbarManager.GetMethod("add");

                Tools.PostDebugMessage(string.Format(
                    "{0}: Got ToolbarManager Instance 'add' method.  Loading IButton.",
                    "ToolbarButtonWrapper"
                    ));
            }

            return true;
        }