public Bitmap GetImageIfSupportedObject(object o)
        {
            var server          = o as ExternalDatabaseServer;
            var dumpServerUsage = o as IdentifierDumpServerUsageNode;

            if (dumpServerUsage != null)
            {
                server = dumpServerUsage.IdentifierDumpServer;
            }

            //if its not a server we aren't responsible for providing an icon for it
            if (server == null)
            {
                return(null);
            }

            //the untyped server icon (e.g. user creates a reference to a server that he is going to use but isn't created/managed by a .Datbase assembly)
            var toReturn = _default;

            //if it is a .Database assembly managed database then use the appropriate icon instead (ANO, LOG, IDD etc)
            if (!string.IsNullOrWhiteSpace(server.CreatedByAssembly) && _assemblyToIconDictionary.ContainsKey(server.CreatedByAssembly))
            {
                toReturn = _assemblyToIconDictionary[server.CreatedByAssembly];
            }

            //add the database type overlay
            toReturn = _overlayProvider.GetOverlay(toReturn, _typeSpecificIconsProvider.GetOverlay(server.DatabaseType));

            if (dumpServerUsage != null)
            {
                toReturn = _overlayProvider.GetOverlay(toReturn, OverlayKind.Link);
            }

            return(toReturn);
        }
        public Bitmap GetImageIfSupportedObject(object o)
        {
            var node = o as TableInfoServerNode;

            if (node == null)
            {
                return(null);
            }

            return(_overlayProvider.GetOverlay(_serverNode, _databaseTypeIconProvider.GetOverlay(node.DatabaseType)));
        }