//always recreate this gui to make sure we are on the correct WikiApi
        public void showBackup()
        {
            var panel = MainDocumentPane.add_DocumentContent("Backup")
                        .setAsActive()
                        .add_WinForms_Panel();

            panel.add_Control <ascx_MediaWiki_Backup>().buildGui(WikiApi);
        }
        public void showRawWikiText()
        {
            var defaultTopPanelText = "You can refresh the Html view using F5 or Ctrl+R (or via the context menu (right-click on WikiText))";
            var panel = MainDocumentPane.add_DocumentContent("Raw Wiki Text")
                        .setAsActive()
                        .add_WinForms_Panel();
            //panel.clear();
            //var wikiApi = new O2PlatformWikiAPI();

            var topPanel         = panel.add_1x1(false);
            var rawWiki          = topPanel[0].add_TextArea();
            var bottomPanel      = topPanel[1].add_1x1x1("Pure Html", "Browser (pure html View)", "Browser (view using site's Styles)");
            var htmlViewer       = bottomPanel[0].add_RichTextBox();
            var browserSimple    = bottomPanel[1].add_WebBrowser();
            var browserWithSyles = bottomPanel[2].add_WebBrowser();

            Action <string> processWikiText =
                (wikiText) => {
                var htmlCode = WikiApi.parseText(wikiText);
                htmlViewer.set_Text(htmlCode);
                browserSimple.set_Text(htmlCode);
                browserWithSyles.set_Text(WikiApi.wrapOnHtmlPage(htmlCode));
            };

            MethodInvoker refresh =
                () => {
                topPanel[0].set_Text("Retrieving RawWiki Html code");
                rawWiki.backColor(Color.LightPink);
                O2Thread.mtaThread(
                    () => {
                    processWikiText(rawWiki.get_Text());
                    rawWiki.backColor(Color.White);
                    topPanel[0].set_Text(defaultTopPanelText);
                });
            };

            Action <KeyEventArgs> handlePressedKeys =
                (e) => {
                if (e.KeyValue == 116 ||                                                       // F5 (key 116) or
                    (e.Modifiers == Keys.Control && e.KeyValue == 'R'))                        // Ctrl+R   it
                {
                    refresh();
                }
            };

            rawWiki.KeyUp += (sender, e) => handlePressedKeys(e);


            //rawWiki.onEnter(processWikiText);

            rawWiki.add_ContextMenu().add_MenuItem("Show Html for Wiki Text", refresh);

            rawWiki.set_Text("===Raw WikiText===".line() +
                             "this is simple text".line() +
                             "* this is a bullet point");
            refresh();
            //panel_add_1x1(
        }
        public void showHelp()
        {
            var webBrowser = MainDocumentPane.add_DocumentContent("Help")
                             .setAsActive()
                             .add_WinForms_Control <Panel>()
                             .add_WebBrowser_Control();

            //webBrowser.parent().parent().backColor(Color.White);  // because of a current bug prevents the webbrowser control from resizing to fill (on first view)
            webBrowser.open(WpfGui.Wiki_O2.html(helpPageInO2PlatformWiki).saveWithExtension(".html"));
            //WpfGui.show_O2Browser();
            //WpfGui.show_O2Wiki(helpPageInO2PlatformWiki);
            //WpfGui.show_O2Wiki(helpPageInO2PlatformWiki);
        }
        public void showEditPage()
        {
            MainDocumentPane.add_DocumentContent("Edit_Page", "Edit Page")
            .setAsActive()
            .add_WinForms_Control <ascx_MediaWiki_PageEditor_Simple>()
            .buildGui(WikiApi);


            //MainDocumentPane.SelectedPane = documentContent;

            /*RightPanel.clear();
             * if (EditPage == null)
             *      EditPage = RightPanel.add_Control<ascx_MediaWiki_PageEditor_Simple>().buildGui(WikiApi);
             * else
             *       RightPanel.add_Control(EditPage); */
        }
        public void showEditTemplatePages()
        {
            var panel = MainDocumentPane.add_DocumentContent("Edit Template Pages")
                        .setAsActive()
                        .add_WinForms_Panel();

            showEditGui(panel, "Templates list", "Template's Wiki Text", WikiApi.templatePages);

            /*RightPanel.clear();
             * if (EditTemplatePages == null)
             * {
             *      EditTemplatePages = RightPanel.add_Panel();
             *              showEditGui(EditTemplatePages,"Templates list", "Template's Wiki Text",WikiApi.templatePages);
             *      }
             *      else
             *       RightPanel.add_Control(EditTemplatePages); */
        }
        public void showEditUncategorizedPages()
        {
            var panel = MainDocumentPane.add_DocumentContent("Edit Uncategorized Pages")
                        .setAsActive()
                        .add_WinForms_Panel();

            showEditGui(panel, "All Content Pages", "Page's Wiki Text", WikiApi.uncategorizedPages);

            /*RightPanel.clear();
             * if (EditUncategorizedPages == null)
             * {
             * EditUncategorizedPages = RightPanel.add_Panel();
             *      showEditGui(EditUncategorizedPages,"All Content Pages", "Page's Wiki Text",WikiApi.uncategorizedPages);
             * }
             * else
             * RightPanel.add_Control(EditUncategorizedPages); */
        }
        public void showEditUsingCategories()
        {
            var panel = MainDocumentPane.add_DocumentContent("Edit_Using_Categories", "Edit Using Categories")
                        .setAsActive()
                        .add_WinForms_Panel();

            createGui_EditUsingCategories(panel, "Categories", "Wiki Text");

            /*RightPanel.clear();
             * if (EditUsingCategories == null)
             * {
             *      EditUsingCategories = RightPanel.add_Panel();
             *      createGui_EditUsingCategories(EditUsingCategories,"Categories", "Wiki Text");
             *      }
             * else
             *       RightPanel.add_Control(EditUsingCategories);*/
        }
        public void showEditUsers()
        {
            var panel = MainDocumentPane.add_DocumentContent("Edit User Pages")
                        .setAsActive()
                        .add_WinForms_Panel();

            showEditGui(panel, "User list", "User's Wiki Text", WikiApi.users);

            /*
             * RightPanel.clear();
             * if (EditAllPages == null)
             * {
             * EditUsers = RightPanel.add_Panel();
             *      showEditGui(EditUsers,"User list", "User's Wiki Text",WikiApi.users);
             * }
             * else
             * RightPanel.add_Control(EditUsers);                                                        */
        }
        public void showLoginPanel()
        {
            var newControl = MainDocumentPane.add_DocumentContent("Login Panel")
                             .setAsActive()
                             .add_WinForms_Control <ascx_MediaWiki_ConfigAndLogin>();

            hackToFixNewPanelWindowSizeBug();
            if (newControl.notNull())
            {
                newControl.buildGui(WikiApi, setWikiApi);
            }
            else
            {
                "in showLoginPanel, could not create ascx_MediaWiki_ConfigAndLogin control".error();
            }

            //RightPanel.clear();

            /*if (ConfigAndLogin == null)
             *      ConfigAndLogin = RightPanel.add_Control<ascx_MediaWiki_ConfigAndLogin>().buildGui(WikiApi, setWikiApi);
             * else
             *       RightPanel.add_Control(ConfigAndLogin);                */
        }