public static TreeView show_IIS_Websites_In_TreeView <T>(this API_IIS7 iis7, T control)
            where T : Control
        {
            var treeView = control.clear().add_TreeView();

            iis7.show_IIS_Websites(treeView);
            return(treeView);
        }
        public static T add_IIS_Viewer <T>(this API_IIS7 iis7, T control)
            where T : Control
        {
            var site_WebBrowser = control.add_GroupBox("Selected Site: Web view").add_WebBrowser_Control();

            var sites_TreeView = site_WebBrowser.parent().insert_Left(200, "IIS Websites").add_TreeView();

            var site_PropertyGrid = sites_TreeView.insert_Below(150).add_PropertyGrid().helpVisible(false);
            var site_Options      = sites_TreeView.insert_Below(50, "Options");

            var site_folderViewer = site_WebBrowser.parent().insert_Below("Selected Site: File System View").add_FolderViewer();
            var site_Logs         = site_folderViewer.parent().parent().insert_Right("Seleted Site: Logs").add_FolderViewer();

            site_WebBrowser.add_NavigationBar();

            //bug: this is currently being enforeced on all websites
            //site_Options.add_Link("Allow Directory Browsing (globally)", 0 ,0, ()=> iis7.config(iis7.CurrentSite).directoryBrowse().value("enabled"));
            site_Options.add_CheckBox("Directory Browse on all websites", 0, 0,
                                      (value) => {
                iis7.value(iis7.config(iis7.websites()[0]).directoryBrowse(), "enabled", value);
            }).@checked(iis7.config(iis7.websites()[0]).directoryBrowse().value <bool>("enabled"))
            .autoSize();

            sites_TreeView.afterSelect <object>(
                (item) => site_PropertyGrid.show(item));

            sites_TreeView.afterSelect <Site>(
                (site) => {
                iis7.CurrentSite = site;
                site_WebBrowser.open(site.url());
                site_folderViewer.open(site.rootFolder());
                site_Logs.open(site.logFolder());
            });

            site_folderViewer.FolderView.afterSelect <string>(
                (fileOrFolder) => {
                var url = "{0}{1}".format(iis7.CurrentSite.url(), site_folderViewer.virtualPath(fileOrFolder));
                "Showing Url:{0}".info(url);
                site_WebBrowser.open(url);
                //var virtualPath = fileOrFolder.remove(
            });

            iis7.show_IIS_Websites(sites_TreeView);

            sites_TreeView.afterSelect <VirtualDirectory>(
                (virtualDirectory) => {
                var url = "{0}{1}".format(iis7.CurrentSite.url(), virtualDirectory.Path);
                "Showing Virtual Directory that is mapped to path:{0}".info(url);
                site_WebBrowser.open(url);
            });

            sites_TreeView.afterSelect <Microsoft.Web.Administration.Application>(
                (application) => {
                var url = "{0}{1}".format(iis7.CurrentSite.url(), application.Path);
                "Showing Application that is mapped to path:{0}".info(url);
                site_WebBrowser.open(url);
            });

            sites_TreeView.add_ContextMenu().add_MenuItem("Refresh", () => iis7.show_IIS_Websites(sites_TreeView));

            return(control);
        }