public void show() {
        // Return true if successful.
        try {
            final FreeMindMain frame = getFrame();
            if (htmlEditorWindow == null) {
                htmlEditorWindow = new HTMLDialog(this);
            }
            htmlEditorWindow.setBase(this);
            final SHTMLPanel htmlEditorPanel = ((HTMLDialog) htmlEditorWindow)
                    .getHtmlEditorPanel();
            String rule = "BODY {";
            Font font = node.getTextFont();
            if (Resources.getInstance().getBoolProperty(
                    "experimental_font_sizing_for_long_node_editors")) {
                /*
				 * This is a proposal of Dan, but it doesn't work as expected.
				 * 
				 * http://sourceforge.net/tracker/?func=detail&aid=2800933&group_id
				 * =7118&atid=107118
				 */
                font = Tools.updateFontSize(font, this.getView().getZoom(),
                        font.getSize());
            }
            final Color nodeTextBackground = node.getTextBackground();
            rule += "font-family: " + font.getFamily() + ";";
            rule += "font-size: " + font.getSize() + "pt;";
            // Daniel said:, but no effect:
            // rule += "font-size: "+node.getFont().getSize()+"pt;";
            if (node.getModel().isItalic()) {
                rule += "font-style: italic; ";
            }
            if (node.getModel().isBold()) {
                rule += "font-weight: bold; ";
            }
            final Color nodeTextColor = node.getTextColor();
            rule += "color: " + Tools.colorToXml(nodeTextColor) + ";";
            rule += "}\n";
            rule += "p {";
            rule += "margin-top:0;";
            rule += "}\n";
            final HTMLDocument document = htmlEditorPanel.getDocument();
            final JEditorPane editorPane = htmlEditorPanel.getEditorPane();
            editorPane.setForeground(nodeTextColor);
            editorPane.setBackground(nodeTextBackground);
            editorPane.setCaretColor(nodeTextColor);
            document.getStyleSheet().addRule(rule);
            try {
                document.setBase(node.getMap().getModel().getURL());
            } catch (MalformedURLException e) {
            }

            // { -- Set size (can be refactored to share code with long node
            // editor)
            int preferredHeight = (int) (node.getMainView().getHeight() * 1.2);
            preferredHeight = Math.max(preferredHeight, Integer.parseInt(frame
                    .getProperty("el__min_default_window_height")));
            preferredHeight = Math.min(preferredHeight, Integer.parseInt(frame
                    .getProperty("el__max_default_window_height")));
            int preferredWidth = (int) (node.getMainView().getWidth() * 1.2);
            preferredWidth = Math.max(preferredWidth, Integer.parseInt(frame
                    .getProperty("el__min_default_window_width")));
            preferredWidth = Math.min(preferredWidth, Integer.parseInt(frame
                    .getProperty("el__max_default_window_width")));
            htmlEditorPanel.setContentPanePreferredSize(new Dimension(
                    preferredWidth, preferredHeight));
            // }

            htmlEditorWindow.pack();

            Tools.setDialogLocationRelativeTo(htmlEditorWindow, node);

            String content = node.getModel().toString();
            if (!HtmlTools.isHtmlNode(content)) {
                content = HtmlTools.plainToHTML(content);
            }
            htmlEditorPanel.setCurrentDocumentContent(content);
            if (firstEvent instanceof KeyEvent) {
                final KeyEvent firstKeyEvent = (KeyEvent) firstEvent;
                final JTextComponent currentPane = htmlEditorPanel
                        .getEditorPane();
                if (currentPane == htmlEditorPanel.getMostRecentFocusOwner()) {
                    redispatchKeyEvents(currentPane, firstKeyEvent);
                }
            } // 1st key event defined
            else {
                editorPane.setCaretPosition(htmlEditorPanel.getDocument()
                        .getLength());
            }
            htmlEditorPanel.getMostRecentFocusOwner().requestFocus();
            htmlEditorWindow.show();
        } catch (Exception ex) { // Probably class not found exception
            freemind.main.Resources.getInstance().logException(ex);
            System.err
                    .println("Loading of WYSIWYG HTML editor failed. Use the other editors instead.");
        }
    }