Package org.apache.myfaces.renderkit.html.util

Examples of org.apache.myfaces.renderkit.html.util.AddResource


        if (tabbedPane.getBgcolor() == null)
        {
            tabbedPane.setBgcolor(DEFAULT_BG_COLOR);
        }

        AddResource addResource = AddResourceFactory.getInstance(facesContext);

        addResource.addStyleSheet(facesContext,AddResource.HEADER_BEGIN,
                                  HtmlTabbedPaneRenderer.class, "defaultStyles.css");

        if( tabbedPane.isClientSide() ){
                addResource.addJavaScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, HtmlTabbedPaneRenderer.class, "dynamicTabs.js");
                addResource.addInlineStyleAtPosition(facesContext,AddResource.HEADER_BEGIN,
                                                     '#'+getTableStylableId(tabbedPane,facesContext)+" ."+ACTIVE_HEADER_CELL_CLASS+" input,\n" +
                                                     '#'+getTableStylableId(tabbedPane,facesContext)+" ."+TAB_PANE_CLASS+",\n" +
                                                     '#'+getTableStylableId(tabbedPane,facesContext)+" ."+SUB_HEADER_CELL_CLASS+"{\n"+
                                                     "background-color:" + tabbedPane.getBgcolor()+";\n"+
                                                     "}\n");
View Full Code Here


        FormInfo parentFormInfo = RendererUtils.findNestingForm(editor, context);
        if(parentFormInfo == null)
            throw new FacesException("InputHtml must be embedded in a form.");
        String formId = parentFormInfo.getFormName();

        AddResource addResource = AddResourceFactory.getInstance(context);
        addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupustyles.css");
        addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupudrawerstyles.css");
        addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "myFaces.css");

        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "sarissa.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "sarissa_ieemu_xpath.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuhelpers.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupueditor.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupubasetools.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuloggers.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupunoi18n.js");
        //addResource.addJavaScriptAtPosition(context, InputHtmlRenderer.class, "i18n/i18n.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucleanupexpressions.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucontentfilters.js");

        if (editor.isShowAnyToolBox())
        {
            addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kuputoolcollapser.js");
        }
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucontextmenu.js");

        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuinit.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupustart.js");

        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupusourceedit.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuspellchecker.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupudrawers.js");
       
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuundo.js");
        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "diff_match_patch.js");

        addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "myFacesUtils.js");

        ResponseWriter writer = context.getResponseWriter();

        writer.startElement(HTML.DIV_ELEM,editor);
        writer.writeAttribute(HTML.STYLE_ATTR, "display: none;",null);

            writer.startElement("xml", editor);
            writer.writeAttribute("id", "kupuconfig", null);
            writer.writeAttribute(HTML.CLASS_ATTR, "kupuconfig", null);

                writer.startElement("kupuconfig", editor);

                    writeTag(writer, "dst", "fulldoc.html", editor);
                    writeTag(writer, "use_css", "1", editor);
                    writeTag(writer, "reload_after_save", "0", editor);
                    writeTag(writer, "strict_output", "1", editor);
                    writeTag(writer, "content_type", "application/xhtml+xml", editor);
                    writeTag(writer, "compatible_singletons", "1", editor);

                    writer.startElement("table_classes", editor);
                        writeTag(writer, "class", "plain", editor);
                        writeTag(writer, "class", "listing", editor);
                        writeTag(writer, "class", "grid", editor);
                        writeTag(writer, "class", "data", editor);
                    writer.endElement("table_classes");

                    writer.startElement("cleanup_expressions",editor);
                        writer.startElement("set",editor);
                            writer.startElement("name",editor);
                                writer.write("Convert single quotes to curly ones");
                            writer.endElement("name");
                            writer.startElement("expression",editor);
                                writer.startElement("reg",editor);
                                    writer.write("(\\W)'");
                                writer.endElement("reg");
                                writer.startElement("replacement",editor);
                                    writer.write("\\1舖");
                                writer.endElement("replacement");
                            writer.endElement("expression");
                            writer.startElement("expression",editor);
                                writer.startElement("reg",editor);
                                    writer.write("'");
                                writer.endElement("reg");
                                writer.startElement("replacement",editor);
                                    writer.write("舗");
                                writer.endElement("replacement");
                            writer.endElement("expression");
                        writer.endElement("set");
                        writer.startElement("set",editor);
                        writer.startElement("name",editor);
                            writer.write("Reduce whitespace");
                        writer.endElement("name");
                        writer.startElement("expression",editor);
                            writer.startElement("reg",editor);
                                writer.write("[\\n\\r\\t]");
                            writer.endElement("reg");
                            writer.startElement("replacement",editor);
                                writer.write("\\x20");
                            writer.endElement("replacement");
                        writer.endElement("expression");
                        writer.startElement("expression",editor);
                            writer.startElement("reg",editor);
                                writer.write("[ ]{2}");
                            writer.endElement("reg");
                            writer.startElement("replacement",editor);
                                writer.write("\\x20");
                            writer.endElement("replacement");
                        writer.endElement("expression");
                      writer.endElement("set");
                    writer.endElement("cleanup_expressions");

                    writeTag(writer, "image_xsl_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/drawer.xsl"), editor);
                    writeTag(writer, "link_xsl_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/drawer.xsl"), editor);

                    // TODO : Make this work (reference available images, ...).
                    writeTag(writer, "image_libraries_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/imagelibrary.xml"), editor);
                    writeTag(writer, "link_libraries_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/linklibrary.xml"), editor);
                    writeTag(writer, "search_images_uri", "", editor);
                    writeTag(writer, "search_links_uri", "", editor);

                writer.endElement("kupuconfig");
            writer.endElement("xml");
        writer.endElement(HTML.DIV_ELEM);


        writer.startElement(HTML.DIV_ELEM,editor);
        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-fulleditor", null);
        writer.writeAttribute("xmlns:i18n", "http://xml.zope.org/namespaces/i18n", null);
        writer.writeAttribute("i18n:domain","kupu",null);
       
            //
            // Toolbar
            //
            writer.startElement(HTML.DIV_ELEM,editor);
            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb",null);
            writer.writeAttribute(HTML.ID_ATTR, "toolbar",null);

                writer.startElement(HTML.SPAN_ELEM,editor);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-tb-buttons",null);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttons",null);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup",null);
                    writer.writeAttribute(HTML.STYLE_ATTR, "float: right", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-logo",null);
                    if( editor.isAddKupuLogo() ){
                        writer.startElement(HTML.BUTTON_ELEM,editor);
                        writer.writeAttribute(HTML.TYPE_ATTR, "button",null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-logo",null);
                        writer.writeAttribute(HTML.TITLE_ATTR, "Kupu 1.4.16",null);
                        writer.writeAttribute(I18N_ATTRIBUTES_ATTR,"title title_logo;",null);
                        writer.writeAttribute(HTML.ACCESSKEY_ATTR, "k",null);
                        writer.writeAttribute(HTML.ONCLICK_ATTR, "window.open('http://kupu.oscom.org');",null);
                        writer.write(" ");
                        writer.endElement(HTML.BUTTON_ELEM);
                    }
                    writer.endElement(HTML.SPAN_ELEM);
                   
                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tb-buttongroup",null);
                    writer.writeAttribute(HTML.STYLE_ATTR,"float: right",null);
                    writer.writeAttribute(HTML.ID_ATTR,"kupu-zoom",null);
                        writer.startElement(HTML.BUTTON_ELEM,null);
                        writer.writeAttribute(HTML.TYPE_ATTR, "button",null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-zoom",null);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-zoom-button",null);
                        writer.writeAttribute(I18N_ATTRIBUTES_ATTR,"title title_zoom;",null);
                        writer.writeAttribute(HTML.TITLE_ATTR,"Zoom: Access key (Alt or Ctrl) + X",null);
                        writer.writeAttribute(HTML.ACCESSKEY_ATTR, "x",null);
                        writer.write(" ");
                        writer.endElement(HTML.BUTTON_ELEM);
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SELECT_ELEM,editor);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-tb-styles",null);
                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "P",null);
                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"Normal",null);
                        writer.write("Normal paragraph");
                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H1",null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 1",null);
                            writer.write("Heading 1");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM, editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H2",null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 2",null);
                            writer.write("Heading 2");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H3",null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 3",null);
                            writer.write("Heading 3");
                            writer.endElement(HTML.SPAN_ELEM);

                            writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H4",null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 4",null);
                            writer.write("Heading 4");
                            writer.endElement(HTML.SPAN_ELEM);

                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H5",null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 5",null);
                            writer.write("Heading 5");
                            writer.endElement(HTML.SPAN_ELEM);

                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                        writer.writeAttribute(HTML.VALUE_ATTR, "H6",null);

                            writer.startElement(HTML.SPAN_ELEM,editor);

                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 6",null);
                            writer.write("Heading 6");
                            writer.endElement(HTML.SPAN_ELEM);

                        writer.endElement(HTML.OPTION_ELEM);

                        writer.startElement(HTML.OPTION_ELEM,editor);
                       
                        writer.writeAttribute(HTML.VALUE_ATTR, "PRE",null);
                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"Formatted",null);
                            writer.write("Formatted");
                        writer.endElement(HTML.OPTION_ELEM);

                    writer.endElement(HTML.SELECT_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                        writeButton(writer, "kupu-save", "save: alt-s", "s", editor, null);
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-basicmarkup", null);
                        writeButton(writer, "kupu-bold", "Bold: Access key (Alt or Ctrl) + B", "b", editor,"title title_bold;");
                        writeButton(writer, "kupu-italic", "Italic: Access key (Alt or Ctrl) + I", "i", editor,"title title_italic;");
                        writeButton(writer, "kupu-underline", "Underline: Access key (Alt or Ctrl) + U", "u", editor,"title title_underline;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-subsuper", null);
                        writeButton(writer, "kupu-subscript", "Subscript: Access key (Alt or Ctrl) + -", "-", editor,"title title_subscript;");
                        writeButton(writer, "kupu-superscript", "Superscript: Access key (Alt or Ctrl) + +", "+", editor,"title title_superscript;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-color", null);
                        writeButton(writer, "kupu-forecolor", "text color: alt-f", "f", editor,"title title_text_color;");
                        writeButton(writer, "kupu-hilitecolor", "background color: alt-h", "h", editor,"title title_back_color;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-justify", null);
                        writeButton(writer, "kupu-justifyleft", "Left justify: Access key (Alt or Ctrl) + L", "l", editor,"title title_ljust;");
                        writeButton(writer, "kupu-justifycenter", "Center justify: Access key (Alt or Ctrl) + C", "c", editor,"title title_center;");
                        writeButton(writer, "kupu-justifyright", "Right justify: Access key (Alt or Ctrl) + R", "r", editor,"title title_rjust;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-list", null);
                        writeButton(writer, "kupu-insertorderedlist", "Numbered list: Access key (Alt or Ctrl) + #", "#", "kupu-list-ol-addbutton", editor,"title title_numlist;");
                        writeButton(writer, "kupu-insertunorderedlist", "Unordered list: Access key (Alt or Ctrl) + *", "*", "kupu-list-ul-addbutton", editor,"title title_unorderedlist;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-definitionlist", null);
                        writeButton(writer, "kupu-insertdefinitionlist", "Definition list: Access key (Alt or Ctrl) + =", "=", "kupu-list-dl-addbutton", editor,"title title_deflist;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-indent", null);
                        writeButton(writer, "kupu-outdent", "Decrease quote level: Access key (Alt or Ctrl) + <", "<", editor,"title title_decrease_quote;");
                        writeButton(writer, "kupu-indent", "Increase quote level: Access key (Alt or Ctrl) + >", ">", editor,"title title_increase_quote;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    if( ! editor.isAllowExternalLinks() ){
                        writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                    }
                        writeButton(writer, "kupu-image", "Insert image", null, "kupu-imagelibdrawer-button", false, editor,"title title_insert_image;"); // TODO : Enable
                        writeButton(writer, "kupu-inthyperlink", "Insert internal link", null, "kupu-linklibdrawer-button", false, editor,"title title_insert_internal_link;"); // TODO : Enable
                        writeButton(writer, "kupu-exthyperlink", "Insert external link", null, "kupu-linkdrawer-button", editor,"title title_insert_external_link;");
                        writeButton(writer, "kupu-anchors", "Insert anchors", null, "kupu-anchors", editor,"title title_insert_anchors;");
                        writeButton(writer, "kupu-table", "Insert table", null, "kupu-tabledrawer-button", editor,"title title_insert_table;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-remove", null);
                        writeButton(writer, "kupu-removeimage invisible", "Remove image", null, "kupu-removeimage-button", editor,"title title_removeimage;");
                        writeButton(writer, "kupu-removelink invisible", "Remove link", null, "kupu-removelink-button", editor,"title title_removelink;");
                    writer.endElement(HTML.SPAN_ELEM);

                       writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-undo", null);
                        writeButton(writer, "kupu-undo", "Undo: Access key (Alt or Ctrl) + Z", "z", editor,"title title_undo;");
                        writeButton(writer, "kupu-redo", "Redo: Access key (Alt or Ctrl) + Y", "y", editor,"title title_redo;");
                    writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup kupu-spellchecker-span", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-spellchecker", null);
                    //if( ! editor.isAllowEditSource() ){
                        writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                    //}
                        writeButton(writer, "kupu-spellchecker", "Check spelling", null, editor,"title title_check_spelling;");
                     writer.endElement(HTML.SPAN_ELEM);

                    writer.startElement(HTML.SPAN_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup kupu-source-span", null);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-source", null);
                    if( ! editor.isAllowEditSource() ){
                        writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                    }
                        writeButton(writer, "kupu-source", "Switch between visual editor and HTML view", "h", editor,"title toggle_source_view;");
                     writer.endElement(HTML.SPAN_ELEM);

                writer.endElement(HTML.SPAN_ELEM); // kupu-tb-buttons

                 writer.startElement(HTML.SELECT_ELEM,editor);
                 writer.writeAttribute(HTML.ID_ATTR, "kupu-ulstyles", null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-ulstyles", null);
                     writeOption(writer, "disc", "list-disc", "&#x25CF;", editor);        // TODO : Check as last parameter has been removed.
                     writeOption(writer, "square", "list-square", "&#x25A0;", editor);
                     writeOption(writer, "circle", "list-circle", "&#x25CB;", editor);
                     writeOption(writer, "none", "list-nobullet", "no bullet", editor);
                 writer.endElement(HTML.SELECT_ELEM);

                 writer.startElement(HTML.SELECT_ELEM,editor);
                 writer.writeAttribute(HTML.ID_ATTR, "kupu-olstyles", null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-olstyles", null);
                     writeOption(writer, "decimal", "list-decimal", "1", editor);
                     writeOption(writer, "upper-roman", "list-upperroman", "I", editor);
                     writeOption(writer, "lower-roman", "list-lowerroman", "i", editor);
                     writeOption(writer, "upper-alpha", "list-upperalpha", "A", editor);
                     writeOption(writer, "lower-alpha", "list-loweralpha", "a", editor);
                 writer.endElement(HTML.SELECT_ELEM);

                 writer.startElement(HTML.DIV_ELEM,editor);
                 writer.writeAttribute(HTML.STYLE_ATTR, "display:block;", null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-librarydrawer-parent", null);

                     writer.startElement(HTML.IFRAME_ELEM,editor);
                     writer.writeAttribute(HTML.STYLE_ATTR,"display:none",null);
                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-anchorframe",null);
                     writer.writeAttribute("src","javascript:''",null);
                     writer.writeAttribute("scrolling","auto",null);
                     writer.writeAttribute("frameborder","1",null);
                     writer.endElement(HTML.IFRAME_ELEM);

                 writer.endElement(HTML.DIV_ELEM);

                // External Link drawer
                 writer.startElement(HTML.DIV_ELEM,editor);
                 writer.writeAttribute(HTML.ID_ATTR, "kupu-linkdrawer", null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-drawer kupu-linkdrawer", null);
                     writer.startElement(HTML.H1_ELEM,editor);
                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
                    
                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_external_link", null);
                         writer.write("External Link");
                     writer.endElement(HTML.H1_ELEM);
                     writer.startElement(HTML.DIV_ELEM,editor);
                     writer.writeAttribute(HTML.ID_ATTR, "kupu-linkdrawer-addlink", null);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panels kupu-linkdrawer-addlink", null);
                   
                        writer.startElement(HTML.UL_ELEM,editor);
                        writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabs",null);
   
                            writer.startElement(HTML.LI_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-addlink selected",null);
                                writer.startElement(HTML.ANCHOR_ELEM,editor);
                                writer.writeAttribute("href","#",null);
                               
                                writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_link",null);
                                writer.writeAttribute("shape","rect",null);
                                writer.write("Link to url");
                                writer.endElement(HTML.ANCHOR_ELEM);
                            writer.endElement(HTML.LI_ELEM);
                           
                            writer.startElement(HTML.LI_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-embed",null);

                                writer.startElement(HTML.ANCHOR_ELEM,editor);
                                writer.writeAttribute("href","#",null);
                               
                                writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_embed",null);
                                writer.writeAttribute("shape","rect",null);
                                writer.write("Embed external object");
                                writer.endElement(HTML.ANCHOR_ELEM);
                            writer.endElement(HTML.LI_ELEM);
   
                        writer.endElement(HTML.UL_ELEM);
                   
                         writer.startElement(HTML.TABLE_ELEM,editor);
                         writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabbed",null);
                           writer.startElement(HTML.TBODY_ELEM,editor);
                           writer.writeAttribute(HTML.CLASS_ATTR,"kupu-addlink",null);
                                                                         
                             writer.startElement(HTML.TR_ELEM,editor);
                                 writer.startElement(HTML.TD_ELEM,editor);
                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                    writer.startElement(HTML.DIV_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                        writer.startElement(HTML.SPAN_ELEM,editor);
                                            
                                             writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_link_text",null);
                                             writer.write("Link the highlighted text to this URL:");
                                         writer.endElement(HTML.SPAN_ELEM);
                                    writer.endElement(HTML.DIV_ELEM);
                                   
                                    writer.startElement(HTML.INPUT_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-st kupu-linkdrawer-input", null);
                                    writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                                    writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event, 'linkdrawer-preview');", null);
                                    writer.endElement(HTML.INPUT_ELEM);
                                writer.endElement(HTML.TD_ELEM);
                                writer.startElement(HTML.TD_ELEM,null);
                                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-preview-button", null);
                                writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                    writer.startElement(HTML.BUTTON_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                    writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                    writer.writeAttribute(HTML.ID_ATTR,"linkdrawer-preview",null);
                                    writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.preview()", null);
                                   
                                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_preview",null);
                                    writer.write("Preview");
                                    writer.endElement(HTML.BUTTON_ELEM);
                                writer.endElement(HTML.TD_ELEM);
                             writer.endElement(HTML.TR_ELEM);
                            writer.startElement(HTML.TR_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-anchors",null);
                            writer.writeAttribute(HTML.STYLE_ATTR,"display:none",null);

                                writer.startElement(HTML.TD_ELEM,editor);
                                writer.writeAttribute(HTML.COLSPAN_ATTR, "2", null);
                                writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                               
                                    writer.startElement(HTML.LABEL_ATTR,editor);
                                   
                                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_anchor",null);
                                    writer.writeAttribute("for","anchorselect",null);
                                    writer.write("Anchor");
                                    writer.endElement(HTML.LABEL_ATTR);
                                    writer.startElement(HTML.SELECT_ELEM,editor);
                                    writer.writeAttribute(HTML.ID_ATTR,"anchorselect",null);
                                        writer.startElement(HTML.OPTION_ELEM,editor);
                                       
                                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"opt_top_of_page",null);
                                        writer.writeAttribute(HTML.VALUE_ATTR,"",null);
                                        writer.write("top of page (default)");
                                        writer.endElement(HTML.OPTION_ELEM);
                                    writer.endElement(HTML.SELECT_ELEM);
                           
                                writer.endElement(HTML.TD_ELEM);
                       
                            writer.endElement(HTML.TR_ELEM);

                             writer.startElement(HTML.TR_ELEM,editor);
                                writer.startElement(HTML.TD_ELEM,editor);
                                writer.writeAttribute(HTML.COLSPAN_ATTR,"2",null);
                                writer.writeAttribute(HTML.ALIGN_ATTR, "center", null);
                                writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                    writer.startElement(HTML.DIV_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR,"watermark",null);
                                        writer.startElement(HTML.SPAN_ELEM,editor);
                                       
                                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"watermark_preview",null);
                                        writer.write("Preview");
                                        writer.endElement(HTML.SPAN_ELEM);
                                    writer.endElement(HTML.DIV_ELEM);
                                    writer.startElement(HTML.IFRAME_ELEM,editor);
                                    writer.writeAttribute(HTML.FRAMEBORDER_ATTR, "1", null);
                                    writer.writeAttribute(HTML.SCROLLING_ATTR, "auto", null);
                                    writer.writeAttribute(HTML.WIDTH_ATTR, "440", null);
                                    writer.writeAttribute(HTML.HEIGHT_ATTR, "198", null);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-linkdrawer-preview", null);
                                    // addResource.getResourceUri(context, InputHtmlRenderer.class, "kupublank.html")
                                    writer.writeAttribute(HTML.SRC_ATTR, "javascript:''", null);
                                    writer.endElement(HTML.IFRAME_ELEM);
                                writer.endElement(HTML.TD_ELEM);
                             writer.endElement(HTML.TR_ELEM);
                           writer.endElement(HTML.TBODY_ELEM);
                          
                           writer.startElement(HTML.TBODY_ELEM,editor);
                           writer.writeAttribute(HTML.CLASS_ATTR,"kupu-embed",null);
                               writer.startElement(HTML.TR_ELEM,editor);
                                   writer.startElement(HTML.TD_ELEM,editor);
                                   writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                   writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                       writer.startElement(HTML.DIV_ELEM,editor);
                                       writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-label",null);
                                           writer.startElement(HTML.SPAN_ELEM,editor);
                                          
                                           writer.writeAttribute(I18N_TRANSLATE_ATTR,"help_paste_here",null);
                                           writer.write("Paste &lt;object&gt; or &lt;embed&gt; tag here:");
                                           writer.endElement(HTML.SPAN_ELEM);
                                       writer.endElement(HTML.DIV_ELEM);
                                       writer.startElement(HTML.TEXTAREA_ELEM,editor);
                                       writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-st kupu-embed-input",null);
                                      
                                       writer.writeAttribute(I18N_TRANSLATE_ATTR,"placeholder_html_code",null);
                                       writer.write("[insert arbitrary HTML code here]");
                                       writer.endElement(HTML.TEXTAREA_ELEM);
                                   writer.endElement(HTML.TD_ELEM);
                               writer.endElement(HTML.TR_ELEM);
                               writer.startElement(HTML.TR_ELEM,editor);
                                   writer.startElement(HTML.TD_ELEM,editor);
                                  
                                   writer.writeAttribute(I18N_TRANSLATE_ATTR,"custom_html_help",null);
                                   writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                   writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                   writer.write("You may use this box to insert custom snippets of");
                                   writer.write("HTML code. There is no guarantee that any code");
                                   writer.write("inserted in this way will be preserved when you save");
                                   writer.write("your edits. To select an existing object from IE click on");
                                   writer.write("the border, from Firefox double click it.");
                                   writer.endElement(HTML.TD_ELEM);
                               writer.endElement(HTML.TR_ELEM);
                           writer.endElement(HTML.TBODY_ELEM);
                         writer.endElement(HTML.TABLE_ELEM);

                         writer.startElement(HTML.DIV_ELEM,editor);
                         writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialogbuttons", null);
                             writer.startElement(HTML.BUTTON_ELEM,editor);

                             writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                             writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                             writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.save()", null);
                            
                             writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_ok",null);
                                 writer.write("Ok");
                             writer.endElement(HTML.BUTTON_ELEM);
                             writer.startElement(HTML.BUTTON_ELEM,editor);

                             writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                             writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                             writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.closeDrawer()", null);
                            
                             writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_cancel",null);
                                 writer.write("Cancel");
                             writer.endElement(HTML.BUTTON_ELEM);
                         writer.endElement(HTML.DIV_ELEM);
                     writer.endElement(HTML.DIV_ELEM);
                 writer.endElement(HTML.DIV_ELEM);

                // Table drawer
                 writer.startElement(HTML.DIV_ELEM,editor);
                 writer.writeAttribute(HTML.ID_ATTR, "kupu-tabledrawer",null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-drawer kupu-tabledrawer",null);
                     writer.startElement(HTML.H1_ELEM,editor);
                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
                    
                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_title",null);
                         writer.write("Table");
                    writer.endElement(HTML.H1_ELEM);
                    writer.startElement(HTML.DIV_ELEM,editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panels", null);
                         writer.startElement(HTML.TABLE_ELEM,editor);
                        writer.writeAttribute(HTML.WIDTH_ATTR, "300",null);
                            writer.startElement(HTML.TR_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panelsrow",null);
                                writer.startElement(HTML.TD_ELEM,editor);
                                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panel",null);
                                writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                writer.writeAttribute(ROWSPAN_ATTR,"1",null);

                                    writer.startElement(HTML.DIV_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-addtable", null);
                                        writer.startElement(HTML.TABLE_ELEM,editor);
                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_class_label",null);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Table Class");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.SELECT_ELEM,editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-addclasschooser", null);
                                                         writeOption(writer, "plain", "Plain", "Plain", editor);
                                                         writeOption(writer, "listing","Listing" , "Listing", editor);
                                                         writeOption(writer, "grid", "Grid", "Grid", editor);
                                                         writeOption(writer, "data", "Data", "Data", editor);
                                                     writer.endElement(HTML.SELECT_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM, editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_rows_label",null);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);                                                
                                                     writer.write("Rows");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM, editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.INPUT_ELEM, editor);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-newrows", null);
                                                     writer.writeAttribute(HTML.VALUE_ATTR, "3", null); // MyFaces special
                                                     writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event);", null);
                                                     writer.endElement(HTML.INPUT_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM, editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_columns_label",null);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);                                                
                                                     writer.write("Columns");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM, editor);
                                                     writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                     writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.INPUT_ELEM, editor);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-newcols", null);
                                                     writer.writeAttribute(HTML.VALUE_ATTR, "3", null); // MyFaces special
                                                     writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event);", null);
                                                     writer.endElement(HTML.INPUT_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM, editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM, editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.INPUT_ELEM,editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabledrawer-makeheader",null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
                                                     writer.writeAttribute("checked","checked",null);
                                                     writer.writeAttribute(HTML.ONKEYPRESS_ATTR,"return HandleDrawerEnter(event);",null);
                                                     writer.writeAttribute(HTML.ID_ATTR,"tabledrawer_makeheader",null);
                                                     writer.endElement(HTML.INPUT_ELEM);
                                                     writer.startElement(HTML.LABEL_ATTR,editor);
                                                    
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_headings_label",null);
                                                     writer.writeAttribute("for","tabledrawer_makeheader",null);
                                                         writer.write("Create Headings");
                                                     writer.endElement(HTML.LABEL_ATTR);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM, editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM, editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                    
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_table_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.createTable()", null);
                                                         writer.write("Add Table");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                    
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_fix_tables_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.fixAllTables()", null);
                                                        writer.write("Fix All Tables");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                         writer.endElement(HTML.TABLE_ELEM);
                                     writer.endElement(HTML.DIV_ELEM);

                                     writer.startElement(HTML.DIV_ELEM,editor);
                                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-edittable", null);
                                        writer.startElement(HTML.TABLE_ELEM,editor);
                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_class_label",null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Table Class");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.SELECT_ELEM,editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-editclasschooser", null);
                                                     writer.writeAttribute(HTML.ONCHANGE_ATTR, "drawertool.current_drawer.setTableClass(this.options[this.selectedIndex].value)", null);
                                                         writeOption(writer, "plain", "Plain", "Plain", editor);
                                                         writeOption(writer, "listing", "Listing", "Listing", editor);
                                                         writeOption(writer, "grid", "Grid", "Grid", editor);
                                                         writeOption(writer, "data", "Data", "Data", editor);
                                                     writer.endElement(HTML.SELECT_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_alignment_label",null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Current column alignment");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.SELECT_ELEM,editor);
                                                     writer.writeAttribute(HTML.ID_ATTR,"kupu-tabledrawer-alignchooser",null);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-alignchooser", null);
                                                     writer.writeAttribute(HTML.ONCHANGE_ATTR, "drawertool.current_drawer.tool.setColumnAlign(this.options[this.selectedIndex].value)", null);
                                                     writeOption(writer, "left", "tabledrawer_left_option", "Left", editor);
                                                     writeOption(writer, "center", "tabledrawer_center_option", "Center", editor);
                                                     writeOption(writer, "right", "tabledrawer_right_option", "Right", editor);
                                                     writer.endElement(HTML.SELECT_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_column_label",null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Column");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.addTableColumn()", null);
                                                         writer.write("Add");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.delTableColumn()", null);
                                                         writer.write("Remove");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_row_label",null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Row");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.addTableRow()", null);
                                                         writer.write("Add");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.delTableRow()", null);
                                                         writer.write("Remove");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                             writer.startElement(HTML.TR_ELEM,editor);
                                                 writer.startElement(HTML.TH_ELEM,editor);
                                                 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_table_label",null);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.write("Fix Table");
                                                 writer.endElement(HTML.TH_ELEM);
                                                 writer.startElement(HTML.TD_ELEM,editor);
                                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                                     writer.startElement(HTML.BUTTON_ELEM, editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_fix_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.fixTable()", null);
                                                         writer.write("Fix");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                     writer.startElement(HTML.BUTTON_ELEM,editor);
                                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
                                                     writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
                                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
                                                     writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.current_drawer.delTable()",null);
                                                     writer.write("Remove");
                                                     writer.endElement(HTML.BUTTON_ELEM);
                                                 writer.endElement(HTML.TD_ELEM);
                                             writer.endElement(HTML.TR_ELEM);

                                         writer.endElement(HTML.TABLE_ELEM);
                                     writer.endElement(HTML.DIV_ELEM); // kupu-tabledrawer-edittable
                                writer.endElement(HTML.TD_ELEM);
                            writer.endElement(HTML.TR_ELEM);
                        writer.endElement(HTML.TABLE_ELEM);

                        writer.startElement(HTML.DIV_ELEM,editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialogbuttons", null);
                            writer.startElement(HTML.BUTTON_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
                            writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_close_button",null);
                            writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.closeDrawer(this)", null);
                                writer.write("Close");
                            writer.endElement(HTML.BUTTON_ELEM);
                        writer.endElement(HTML.DIV_ELEM);
                    writer.endElement(HTML.DIV_ELEM);
                 writer.endElement(HTML.DIV_ELEM); // kupu-tabledrawer
                
                 writer.startElement(HTML.DIV_ELEM,editor); //kupu-anchordrawer
                 writer.writeAttribute(HTML.ID_ATTR,"kupu-anchordrawer",null);
                 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer kupu-anchordrawer",null);

                     writer.startElement(HTML.H1_ELEM,editor);
                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"anchordrawer_title",null);
                     writer.write("Anchors");
                     writer.endElement(HTML.H1_ELEM);

                     writer.startElement(HTML.DIV_ELEM,editor);
                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-panels kupu-ins-bm",null);
                    
                         writer.startElement(HTML.UL_ELEM,editor);
                         writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabs",null);
                        
                             writer.startElement(HTML.LI_ELEM,editor);
                             writer.writeAttribute(HTML.CLASS_ATTR,"kupu-ins-bm selected",null);
                                 writer.startElement(HTML.ANCHOR_ELEM,editor);
                                 writer.writeAttribute("href","#",null);
                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_link_anchor",null);
                                 writer.writeAttribute("shape","rect",null);
                                 writer.write("Link to anchor");
                                 writer.endElement(HTML.ANCHOR_ELEM);
                             writer.endElement(HTML.LI_ELEM);
                        
                             writer.startElement(HTML.LI_ELEM,editor);
                             writer.writeAttribute(HTML.CLASS_ATTR,"kupu-anchor",null);
                                 writer.startElement(HTML.ANCHOR_ELEM,editor);
                                 writer.writeAttribute("href","#",null);
                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_manage_anchors",null);
                                 writer.writeAttribute("shape","rect",null);
                                 writer.write("Manage Anchors");
                                 writer.endElement(HTML.ANCHOR_ELEM);
                             writer.endElement(HTML.LI_ELEM);
                        
                             writer.startElement(HTML.LI_ELEM,editor);
                             writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toc",null);
                                 writer.startElement(HTML.ANCHOR_ELEM,editor);
                                 writer.writeAttribute("href","#",null);
                                 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_toc",null);
                                 writer.writeAttribute("shape","rect",null);
                                 writer.write("Table of contents");
                                 writer.endElement(HTML.ANCHOR_ELEM);
                             writer.endElement(HTML.LI_ELEM);
                        
                         writer.endElement(HTML.UL_ELEM);
                    
                         writer.startElement(HTML.TABLE_ELEM,editor);
                         writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabbed",null);
                         writer.writeAttribute("cellspacing","0",null);
                        
                             writer.startElement(HTML.TR_ELEM,editor);
                            
                                 writer.startElement(HTML.TD_ELEM,editor);
                                 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-select",null);
                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                
                                     writer.startElement(HTML.SELECT_ELEM,editor);
                                     writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-sel1",null);
                                     writer.writeAttribute("size","10",null);
                                    
                                     writer.endElement(HTML.SELECT_ELEM);
                                
                                 writer.endElement(HTML.TD_ELEM);
                            
                                 writer.startElement(HTML.TD_ELEM,editor);
                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                
                                 writer.startElement(HTML.DIV_ELEM,editor);
                                 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-heading",null);
                                
                                     writer.startElement(HTML.DIV_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-tablestyle invis-ins-bm invis-anchor",null);
                                    
                                         writer.startElement(HTML.LABEL_ATTR,editor);
                                         writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_table_style",null);
                                         writer.writeAttribute("for","kupu-bm-outcls",null);
                                         writer.write("Table style");
                                        
                                         writer.endElement(HTML.LABEL_ATTR);
                                        
                                         writer.startElement(HTML.SELECT_ELEM,editor);
                                         writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-outcls",null);
                                         writer.writeAttribute("size","1",null);
                                        
                                         writer.startElement(HTML.OPTION_ELEM,editor);
                                         writer.writeAttribute(HTML.VALUE_ATTR,"",null);
                                         writer.writeAttribute(I18N_TRANSLATE_ATTR,"Normal",null);
                                         writer.write("Normal paragraph");
                                         writer.endElement(HTML.OPTION_ELEM);
                                        
                                         writer.endElement(HTML.SELECT_ELEM);
                                        
                                     writer.endElement(HTML.DIV_ELEM);
                                
                                     writer.startElement(HTML.DIV_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-numbering invis-ins-bm invis-anchor",null);
                                    
                                         writer.startElement(HTML.LABEL_ATTR,editor);
                                         writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_numbering",null);
                                         writer.writeAttribute("for","kupu-bm-number",null);
                                         writer.write("Numbering");
                                        
                                         writer.endElement(HTML.LABEL_ATTR);
                                    
                                         writer.startElement(HTML.INPUT_ELEM,editor);
                                         writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
                                         writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor",null);
                                         writer.writeAttribute("checked","checked",null);
                                         writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-number",null);
                                         writer.endElement(HTML.INPUT_ELEM);
                                    
                                     writer.endElement(HTML.DIV_ELEM);
                                
                                     writer.startElement(HTML.DIV_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"invis-ins-bm",null);
                                    
                                         writer.startElement(HTML.LABEL_ATTR,editor);
                                         writer.writeAttribute("for","kupu-bm-checkall",null);
                                        
                                         writer.startElement("em",editor);
                                         writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_toggle_all",null);
                                         writer.write("toggle all");
                                         writer.endElement("em");
                                        
                                         writer.endElement(HTML.LABEL_ATTR);
                                        
                                         writer.startElement(HTML.INPUT_ELEM,editor);
                                         writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
                                         writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm",null);
                                         writer.writeAttribute("checked","checked",null);
                                         writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-checkall",null);
                                         writer.endElement(HTML.INPUT_ELEM);
                                    
                                     writer.endElement(HTML.DIV_ELEM);
                                    
                                 writer.endElement(HTML.DIV_ELEM);
                                
                                 writer.startElement(HTML.DIV_ELEM,editor);
                                 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-paras",null);
                                 writer.write("&#160;");
                                 writer.endElement(HTML.DIV_ELEM);
                                
                                 writer.endElement(HTML.TD_ELEM);
                                
                             writer.endElement(HTML.TR_ELEM);
                            
                             writer.startElement(HTML.TR_ELEM,editor);
                            
                                 writer.startElement(HTML.TD_ELEM,editor);
                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                
                                     writer.startElement(HTML.SELECT_ELEM,editor);
                                     writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-sel2",null);
                                     writer.writeAttribute("size","1",null);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor",null);
                                    
                                         writer.startElement(HTML.OPTION_ELEM,editor);
                                         writer.writeAttribute(HTML.VALUE_ATTR,"",null);
                                         writer.writeAttribute(I18N_TRANSLATE_ATTR,"opt_2nd_style",null);
                                         writer.write("(optional 2nd style)");
                                         writer.endElement(HTML.OPTION_ELEM);
                                    
                                     writer.endElement(HTML.SELECT_ELEM);
                                
                                 writer.endElement(HTML.TD_ELEM);
                            
                                 writer.startElement(HTML.TD_ELEM,editor);
                                 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
                                 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
                                
                                     writer.startElement(HTML.DIV_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-help",null);
                                    
                                     writer.startElement(HTML.SPAN_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"hide-anchor hide-toc discreet",null);
                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_anchor_link_help",null);
                                     writer.write("Select a paragraph style then choose a paragraph and Ok to insert a link to that location.");
                                    
                                     writer.endElement(HTML.SPAN_ELEM);
                                    
                                     writer.startElement(HTML.SPAN_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor discreet",null);
                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_toc_help",null);
                                     writer.write("Select one or two paragraph styles, then Ok to insert a table of contents.");
                                    
                                     writer.endElement(HTML.SPAN_ELEM);
                                    
                                     writer.startElement(HTML.SPAN_ELEM,editor);
                                     writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-toc discreet",null);
                                     writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_anchor_help",null);
                                     writer.write("Anchors are created for checked paragraphs and");
                                     writer.write("removed for unchecked paragraphs when you press Ok.");
                                     writer.write("Anchors in use on this page may not be deleted.");
                                    
                                     writer.endElement(HTML.SPAN_ELEM);
                                    
                                     writer.endElement(HTML.DIV_ELEM);
                                
                                 writer.endElement(HTML.TD_ELEM);
                            
                             writer.endElement(HTML.TR_ELEM);
                            
                         writer.endElement(HTML.TABLE_ELEM);
                    
                         writer.startElement(HTML.DIV_ELEM,editor);
                         writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialogbuttons",null);
                        
                             writer.startElement(HTML.BUTTON_ELEM,editor);
                             writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
                             writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
                             writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.current_drawer.save()",null);
                             writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_ok",null);
                             writer.write("Ok");
                             writer.endElement(HTML.BUTTON_ELEM);
                        
                             writer.startElement(HTML.BUTTON_ELEM,editor);
                             writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
                             writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
                             writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.closeDrawer()",null);
                             writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_cancel",null);
                             writer.write("Cancel");
                             writer.endElement(HTML.BUTTON_ELEM);
                        
                         writer.endElement(HTML.DIV_ELEM);
                     writer.endElement(HTML.DIV_ELEM);
                 writer.endElement(HTML.DIV_ELEM);
            writer.endElement(HTML.DIV_ELEM); // toolbar

            //
            // Tool Boxes
            //
            writer.startElement(HTML.DIV_ELEM, editor);
            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolboxes", null);
            writer.writeAttribute(HTML.ID_ATTR, "kupu-toolboxes", null);
            if( ! editor.isShowAnyToolBox() ){
                writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
            }

                // Properties tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-properties", null);
                if( ! editor.isShowPropertiesToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_properties",null);
                        writer.write("Properties");
                    writer.endElement(HTML.H1_ELEM);

                    writer.startElement(HTML.DIV_ELEM, editor);
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_title",null);
                            writer.write("Title:");
                        writer.endElement(HTML.DIV_ELEM);
                        writer.startElement(HTML.INPUT_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-properties-title", null);
                        writer.writeAttribute(HTML.TYPE_ATTR,"text",null);
                        writer.endElement(HTML.INPUT_ELEM);
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                        writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_description",null);
                            writer.write("Description:");
                        writer.endElement(HTML.DIV_ELEM);
                        writer.startElement(HTML.TEXTAREA_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-properties-description", null);
                        writer.endElement(HTML.TEXTAREA_ELEM);
                    writer.endElement(HTML.DIV_ELEM);
                writer.endElement(HTML.DIV_ELEM);

                // Links tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-links", null);
                if( ! editor.isShowLinksToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_links",null);
                        writer.write("Links");
                    writer.endElement(HTML.H1_ELEM);

                    writer.startElement(HTML.DIV_ELEM, editor);
                    writer.writeAttribute(HTML.ID_ATTR,"kupu-toolbox-addlink",null);

                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.startElement(HTML.SPAN_ELEM, editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_link_text",null);
                                writer.write("Link the highlighted text to this URL:");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.DIV_ELEM);

                        writer.startElement(HTML.INPUT_ELEM, editor);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-link-input", null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                        writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                        writer.endElement(HTML.INPUT_ELEM);

                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
                            writer.startElement(HTML.BUTTON_ELEM, editor);
                            writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-link-button", null);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-action", null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_makelink",null);
                                writer.write("Make Link");
                            writer.endElement(HTML.BUTTON_ELEM);
                        writer.endElement(HTML.DIV_ELEM);

                    writer.endElement(HTML.DIV_ELEM);
                writer.endElement(HTML.DIV_ELEM);

                // Images tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-images", null);
                if( ! editor.isShowImagesToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_images",null);
                        writer.write("Images");
                    writer.endElement(HTML.H1_ELEM);

                    writer.startElement(HTML.DIV_ELEM, editor);
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.startElement(HTML.SPAN_ELEM, editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_image_class",null);
                                writer.write("Image class:");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.DIV_ELEM);

                        writer.startElement(HTML.SELECT_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-image-float-select", null);
                            writeOption(writer, "image-inline", "opt_inline", "Inline", editor);
                            writeOption(writer, "image-left", "opt_left", "Left", editor);
                            writeOption(writer, "image-right", "opt_right", "Right", editor);
                        writer.endElement(HTML.SELECT_ELEM);

                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.startElement(HTML.SPAN_ELEM, editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_insert_image_url",null);
                                writer.write("Insert image at the following URL:");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.DIV_ELEM);
                        writer.startElement(HTML.INPUT_ELEM, editor);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-image-input", null);
                        writer.writeAttribute(HTML.VALUE_ATTR, "kupuimages/kupu_icon.gif", null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                        writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                        writer.endElement(HTML.INPUT_ELEM);

                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
                            writer.startElement(HTML.BUTTON_ELEM, editor);
                            writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-image-addbutton", null);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-action", null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_insert_image",null);
                                writer.write("Insert Image");
                            writer.endElement(HTML.BUTTON_ELEM);
                        writer.endElement(HTML.DIV_ELEM);

                    writer.endElement(HTML.DIV_ELEM);

                writer.endElement(HTML.DIV_ELEM);

                // Tables tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-tables", null);
                if( ! editor.isShowTablesToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_tables",null);
                        writer.write("Tables");
                    writer.endElement(HTML.H1_ELEM);

                    writer.startElement(HTML.DIV_ELEM, editor);

                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.startElement(HTML.SPAN_ELEM, editor);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_table_class",null);
                                writer.write("Table Class:");
                            writer.endElement(HTML.SPAN_ELEM);
                            writer.startElement(HTML.SELECT_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-table-classchooser", null);
                                writer.write(' ');
                            writer.endElement(HTML.SELECT_ELEM);
                        writer.endElement(HTML.DIV_ELEM);

                        // Add table
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-addtable", null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-addtable", null);
                            writer.startElement(HTML.DIV_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_rows",null);
                                writer.write("Rows:");
                            writer.endElement(HTML.DIV_ELEM);
                            writer.startElement(HTML.INPUT_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                            writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-table-newrows", null);
                            writer.endElement(HTML.INPUT_ELEM);

                            writer.startElement(HTML.DIV_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_columns",null);
                                writer.write("Columns:");
                            writer.endElement(HTML.DIV_ELEM);
                           
                            writer.startElement(HTML.INPUT_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                            writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
                            writer.writeAttribute(HTML.ID_ATTR, "kupu-table-newcols", null);
                            writer.endElement(HTML.INPUT_ELEM);

                            writer.startElement(HTML.DIV_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                writer.startElement(HTML.SPAN_ELEM,editor);
                                writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_headings",null);
                                    writer.write("Headings:");
                                writer.endElement(HTML.SPAN_ELEM);
                                writer.startElement(HTML.INPUT_ELEM, editor);
                                writer.writeAttribute(HTML.NAME_ATTR, "kupu-table-makeheader", null);
                                writer.writeAttribute(HTML.ID_ATTR, "kupu-table-makeheader", null);
                                writer.writeAttribute(HTML.TYPE_ATTR, "checkbox", null);
                                writer.endElement(HTML.INPUT_ELEM);
                                writer.startElement(HTML.LABEL_ELEM, editor);
                                writer.writeAttribute(HTML.FOR_ATTR, "kupu-table-makeheader", null);
                                writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_create",null);
                                    writer.write("Create");
                                writer.endElement(HTML.LABEL_ELEM);
                            writer.endElement(HTML.DIV_ELEM);

                            writer.startElement(HTML.DIV_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
                                writeButton(writer, "kupu-table-fixall-button", "Fix Table", editor,"button_fix_table");
                                writeButton(writer, "kupu-table-addtable-button", "Add Table", editor,"button_add_table");
                            writer.endElement(HTML.DIV_ELEM);
                        writer.endElement(HTML.DIV_ELEM); // Add table

                        // Edit table
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-edittable", null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-edittable", null);

                            writer.startElement(HTML.DIV_ELEM, editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                                writer.startElement(HTML.SPAN_ELEM,editor);
                                writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_col_align",null);
                                    writer.write("Col Align:");
                                writer.endElement(HTML.SPAN_ELEM);

                                writer.startElement(HTML.SELECT_ELEM, editor);
                                writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
                                writer.writeAttribute(HTML.ID_ATTR, "kupu-table-alignchooser", null);
                                    writeOption(writer, "left","tabledrawer_left_option", "Left", editor);
                                    writeOption(writer, "center","tabledrawer_center_option", "Center", editor);
                                    writeOption(writer, "right","tabledrawer_right_option", "Right", editor);
                                writer.endElement(HTML.SELECT_ELEM);
                            writer.endElement(HTML.DIV_ELEM);

                            writer.startElement(HTML.DIV_ELEM,editor);
                            writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
                                writer.startElement(HTML.BR_ELEM,editor);
                                writer.writeAttribute("clear","none",null);
                                writer.endElement(HTML.BR_ELEM);

                                writeButton(writer, "kupu-table-addcolumn-button", "Add Column", editor,"button_add_column");
                                writeButton(writer, "kupu-table-delcolumn-button", "Remove Column", editor,"button_remove_column");

                                writer.startElement(HTML.BR_ELEM,editor);
                                writer.writeAttribute("clear","none",null);
                                writer.endElement(HTML.BR_ELEM);

                                writeButton(writer, "kupu-table-addrow-button", "Add Row", editor,"button_add_row");
                                writeButton(writer, "kupu-table-delrow-button", "Remove Row", editor,"button_remove_row");
                                writeButton(writer, "kupu-table-fix-button", "Fix Table", editor,"button_fix_table");
                                writeButton(writer, "kupu-table-del-button", "Remove Table", editor,"button_remove_table");
                            writer.endElement(HTML.DIV_ELEM);

                        writer.endElement(HTML.DIV_ELEM); // Edit table

                    writer.endElement(HTML.DIV_ELEM);
                writer.endElement(HTML.DIV_ELEM);

                // Cleanup expressions tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-cleanupexpressions", null);
                if( ! editor.isShowCleanupExpressionsToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_cleanup_expressions",null);
                        writer.write("Cleanup expressions");
                    writer.endElement(HTML.H1_ELEM);

                    writer.startElement(HTML.DIV_ELEM, editor);
                        writer.startElement(HTML.DIV_ELEM, editor);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                            writer.startElement(HTML.SPAN_ELEM,editor);
                           
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_select_cleanup",null);
                                writer.write("Select a cleanup action:");
                            writer.endElement(HTML.SPAN_ELEM);
                        writer.endElement(HTML.DIV_ELEM);
                        writer.startElement(HTML.SELECT_ELEM,editor);
                        writer.writeAttribute(HTML.ID_ATTR, "kupucleanupexpressionselect", null);
                        writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-st", null);
                        writer.endElement(HTML.SELECT_ELEM);
                        writer.startElement(HTML.DIV_ELEM,editor);
                        writer.writeAttribute(HTML.STYLE_ATTR,"text-align: center",null);
                            writer.startElement(HTML.BUTTON_ELEM,editor);
                            writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
                            writer.writeAttribute(HTML.ID_ATTR,"kupucleanupexpressionbutton",null);
                            writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-action",null);
                            writer.writeAttribute(I18N_TRANSLATE_ATTR,"perform_action",null);
                                writer.write("Perform action");
                            writer.endElement(HTML.BUTTON_ELEM);
                        writer.endElement(HTML.DIV_ELEM);
                    writer.endElement(HTML.DIV_ELEM);
                writer.endElement(HTML.DIV_ELEM);

                // Debug tool box
                writer.startElement(HTML.DIV_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-debug", null);
                if( ! editor.isShowDebugToolBox() ){
                    writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
                }
                    writer.startElement(HTML.H1_ELEM, editor);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
                    writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_debug_log",null);
                        writer.write("Debug Log");
                    writer.endElement(HTML.H1_ELEM);
                    writer.startElement(HTML.DIV_ELEM, editor);
                    writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-debuglog", null);
                    writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
                    writer.endElement(HTML.DIV_ELEM);
                writer.endElement(HTML.DIV_ELEM);

            writer.endElement(HTML.DIV_ELEM); // kupu-toolboxes

            // Color Chooser
            writer.startElement(HTML.TABLE_ELEM, editor);
            writer.writeAttribute(HTML.ID_ATTR, "kupu-colorchooser", null);
            writer.writeAttribute(HTML.CLASS_ATTR,"kupu-colorchooser",null);
            writer.writeAttribute(HTML.CELLPADDING_ATTR, "0", null);
            writer.writeAttribute(HTML.CELLSPACING_ATTR, "0", null);
            writer.writeAttribute(HTML.STYLE_ATTR, "position: fixed; border-style: solid; border-color: black; border-width: 1px;", null);
            writer.endElement(HTML.TABLE_ELEM);

            // Edit space
            writer.startElement(HTML.DIV_ELEM, editor);
            if( !editor.isShowAnyToolBox() ){
                writer.writeAttribute(HTML.STYLE_ATTR, "margin-right: 0.3em", null);
            }
            if( editor.getStyle()!=null ){
                // Convert the style into an style declaration so that it doesn't preempt the Zoom works as it's relying on changing the class
                addResource.addInlineStyleAtPosition(
                        context, AddResource.HEADER_BEGIN,
                        "#kupu-editor{height: inherit;}\n"+
                        "div.kupu-fulleditor{"+editor.getStyle()+"}");
            }
            writer.writeAttribute(HTML.CLASS_ATTR,
                                  "kupu-editorframe"+(editor.getStyleClass()==null ? "" : " "+editor.getStyleClass()), null);
            // Warning, this is special to MyFaces, to allow to have the component in a hidden tab.
                writer.startElement(HTML.IFRAME_ELEM, editor);
                writer.writeAttribute(HTML.ID_ATTR, getIFrameID(editor, context), null);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-editor-iframe", null);
                writer.writeAttribute(HTML.FRAMEBORDER_ATTR, "0", null);
                writer.writeAttribute(HTML.SCROLLING_ATTR, "auto", null);
                writer.writeAttribute(HTML.ONMOUSEOVER_ATTR, "myFacesKupuReactivateDesignMode(this)", null);
                writer.writeAttribute(HTML.ONFOCUS_ATTR, "myFacesKupuReactivateDesignMode(this)", null);

                writer.endElement(HTML.IFRAME_ELEM);

                writer.startElement(HTML.TEXTAREA_ELEM, editor);
                writer.writeAttribute(HTML.CLASS_ATTR, "kupu-editor-textarea", null);
                writer.writeAttribute(HTML.ID_ATTR, "kupu-editor-textarea", null);
                    writer.write(' ');
                writer.endElement(HTML.TEXTAREA_ELEM);
            writer.endElement(HTML.DIV_ELEM);

        writer.endElement(HTML.DIV_ELEM); // kupu-fulleditor

        String text = editor.getValueAsHtmlDocument( context );
        String encodedText = text == null ? "" : JavascriptUtils.encodeString( text );

        String resourceBaseURL = addResource.getResourceUri(context, InputHtmlRenderer.class, null);

        writer.startElement(HTML.SCRIPT_ELEM, editor);
        writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
            writer.write("myFacesKupuSet(" +
                         "\""+encodedText+"\"," +
View Full Code Here

                //release() method write to the original response.
                //This could not be done on TomahawkFacesContextWrapper
                //constructor, because the delegate ExternalContext do
                //calls like dispatch, forward and redirect, that requires
                //the wrapped response instance to work properly.           
                AddResource addResource = AddResourceFactory.getInstance((HttpServletRequest)request,(ServletContext)context);
               
                if (addResource.requiresBuffer())
                {
                    ExtensionsResponseWrapper extensionsResponseWrapper = new ExtensionsResponseWrapper((HttpServletResponse)response);
                    return new TomahawkFacesContextWrapper(delegate.getFacesContext(context, request, extensionsResponseWrapper, lifecycle),
                            extensionsResponseWrapper);
                }
View Full Code Here

                HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();
                HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
                ServletContext context = (ServletContext) fc.getExternalContext().getContext();

                // Serve resources
                AddResource addResource;

                try
                {
                    addResource= AddResourceFactory.getInstance(request, context);
                    if( addResource.isResourceUri(context, request ) ){
                        addResource.serveResource(context, request, response);
                        event.getFacesContext().responseComplete();
                        return;
                    }
                }
                catch(Throwable th)
View Full Code Here

        String styleLocation = (String) menu.getAttributes().get(JSFAttr.STYLE_LOCATION);
        String javascriptLibrary = (String) menu.getAttributes().get(LibraryLocationAware.JAVASCRIPT_LIBRARY_ATTR);
        String imageLibrary = (String) menu.getAttributes().get(LibraryLocationAware.IMAGE_LIBRARY_ATTR);
        String styleLibrary = (String) menu.getAttributes().get(LibraryLocationAware.STYLE_LIBRARY_ATTR);

        AddResource addResource = AddResourceFactory.getInstance(context);

        if (javascriptLocation != null) {
            addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, javascriptLocation + "/" + JSCOOK_MENU_SCRIPT);
            addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, javascriptLocation + "/" + JSCOOK_EFFECT_SCRIPT);           
            addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, javascriptLocation + "/" + MYFACES_HACK_SCRIPT);
        }

        addThemeSpecificResources(themeName, styleLocation, javascriptLocation, imageLocation,
                styleLibrary, javascriptLibrary, imageLibrary, context);
    }
View Full Code Here

        if (themeLocation == null)
        {
            log.debug("Unknown theme name '" + themeName + "' specified.");
        }

        AddResource addResource = AddResourceFactory.getInstance(context);

        if ((imageLocation != null) || (themeLocation != null))
        {
            // Generate a javascript variable containing a reference to the
            // directory containing theme image files, for use by the theme
            // javascript file. If neither of these is defined (ie a custom
            // theme was specified but no imageLocation) then presumably the
            // theme.js file uses some other mechanism to determine where
            // its image files are.
            StringBuffer buf = new StringBuffer();
            buf.append("var my");
            buf.append(themeName);
            buf.append("Base='");
            ExternalContext externalContext = context.getExternalContext();
            if (imageLocation != null)
            {
                buf.append(externalContext.encodeResourceURL(addResource
                        .getResourceUri(context, imageLocation + "/"
                                + themeName)));
                buf.append("';");
                addResource.addInlineScriptAtPosition(context,
                        AddResource.HEADER_BEGIN, buf.toString());
            }
        }

        if ((javascriptLocation != null) || (themeLocation != null))
        {
            // Generate a <script> tag in the page header pointing to the
            // theme.js file for this theme. If neither of these is defined
            // then presumably the theme.js file is referenced by a <script>
            // tag hard-wired into the page or inserted via some other means.
            if (javascriptLocation != null)
            {
                // For now, assume that if the user specified a location for a custom
                // version of the jscookMenu.js file then the theme.js file can be found
                // in the same location.
                addResource.addJavaScriptAtPosition(context,
                        AddResource.HEADER_BEGIN, javascriptLocation + "/"
                                + themeName + "/theme.js");
            }
        }

        if ((styleLocation != null) || (themeLocation != null))
        {
            // Generate a <link type="text/css"> tag in the page header pointing to
            // the theme stylesheet. If neither of these is defined then presumably
            // the stylesheet is referenced by a <link> tag hard-wired into the page
            // or inserted via some other means.
            if (styleLocation != null)
            {
                addResource.addStyleSheet(context, AddResource.HEADER_BEGIN,
                        styleLocation + "/" + themeName + "/theme.css");
            }
        }
    }
View Full Code Here

    protected String getImageUrl(FacesContext context, String userValue, String resourceValue)
    {
        if(userValue != null)
        {
            AddResource addResource = AddResourceFactory.getInstance(context);
            return addResource.getResourceUri(context, userValue, false);
        }
        // Now we use JSF 2.0 Resource api for load default resources, so we need to return null
        //return addResource.getResourceUri(context, HtmlTree.class, resourceValue, false);
        return null;
    }
View Full Code Here

     */
    private void generateImageTag(FacesContext context,
            CAPTCHAComponent component) throws IOException
    {

        AddResource addResource;
        ResponseWriter writer = context.getResponseWriter();
        Map params = HtmlComponentUtils.getParameterMap(component);
        String url;
        String captchaSessionKeyName = component.getCaptchaSessionKeyName();
        String width = component.getImageWidth();
        String height = component.getImageHeight();

        // determine width and height of the generated image.
        if (width == null)
        {
            width = CAPTCHAConstants.DEFAULT_CAPTCHA_WIDTH + "";
        }

        if (height == null)
        {
            height = CAPTCHAConstants.DEFAULT_CAPTCHA_HEIGHT + "";
        }

        writer.startElement(HTML.IMG_ELEM, component);

        // constructing the parameter map to be passed to the (AddResource).
        if (captchaSessionKeyName != null)
        {
            params.put(CAPTCHAComponent.ATTRIBUTE_CAPTCHA_SESSION_KEY_NAME,
                    captchaSessionKeyName);
        }

        // write the url to trigger the (AddResource).
        addResource = AddResourceFactory.getInstance(context);

        url = context.getExternalContext().encodeResourceURL(
                addResource.getResourceUri(context,
                        new ParameterResourceHandler(this.getClass(), params)));

        writer.writeAttribute(HTML.SRC_ATTR, url, null);

        // write rest of attributes.
View Full Code Here

                extendedRequest = new PortletMultipartRequestWrapper( portletRequest, config.getUploadMaxFileSize(),
                        config.getUploadThresholdSize(), config.getUploadRepositoryPath());
            }
           
            AddResource addResource= AddResourceFactory.getInstance(this);
            addResource.responseStarted();

            if (addResource.requiresBuffer())
            {
                throw new IllegalStateException("buffering not supported in the portal environment. "+
                        " Use for org.apache.myfaces.ADD_RESOURCE_CLASS the value"+
                        " org.apache.myfaces.renderkit.html.util.NonBufferingAddResource.");
            }
           
            externalContextDelegate = new PortletExternalContextWrapper(
                    delegate.getExternalContext(), extendedRequest, extendedResponse, multipartContent);
        }
        else {
            HttpServletResponse httpResponse = (HttpServletResponse) delegate.getExternalContext().getResponse();
            HttpServletRequest httpRequest = (HttpServletRequest) delegate.getExternalContext().getRequest();

            HttpServletRequest extendedRequest = httpRequest;

            // For multipart/form-data requests we need to encapsulate
            // the request using MultipartRequestWrapper. This could not be
            // done on TomahawkFacesContextFactory.getFacesContext(...)
            // because we need an ExternalContext instance to get
            // the init params for the ExtensionsFilter and initialize
            // MultipartRequestWrapper with the correct values.
           
            boolean multipartContent = false;
          
            if (FileUpload.isMultipartContent(httpRequest)) {
                multipartContent = true;
               
                MultipartRequestWrapperConfig config = MultipartRequestWrapperConfig
                        .getMultipartRequestWrapperConfig(delegate
                                .getExternalContext());               
               
                extendedRequest = new MultipartRequestWrapper(httpRequest, config.getUploadMaxFileSize(),
                        config.getUploadThresholdSize(), config.getUploadRepositoryPath());
               
            }

            AddResource addResource= AddResourceFactory.getInstance(this);
            addResource.responseStarted();

            if (addResource.requiresBuffer() && extensionsResponseWrapper != null)
            {
                //If the request requires buffer, this was already
                //wrapped (on TomahawkFacesContextFactory.getFacesContext(...) ),
                //but we need to save the wrapped response value
                //on a local variable to then reference it on release()
View Full Code Here

        delegate.addMessage(clientId, message);
    }

    public void release() {

        AddResource addResource=null;

        try
        {
            addResource= AddResourceFactory.getInstance(this);
            if (addResource.requiresBuffer())
            {
                if(extensionsResponseWrapper == null) {
                    throw new NullPointerException("When wrapping the faces-context, add-resource told us that no buffer is required, " +
                            "now it is required, and we have a null-extensionsResponseWrapper. Please fix add-resource to be consistent over a single request.");
                }
                extensionsResponseWrapper.finishResponse();

                // write the javascript stuff for myfaces and headerInfo, if needed
                HttpServletResponse servletResponse = extensionsResponseWrapper.getDelegate();
                HttpServletRequest servletRequest = (HttpServletRequest) getExternalContext().getRequest();

                String contentType = extensionsResponseWrapper.getContentType();
               
                // only parse HTML responses
                if (contentType != null && isValidContentType(contentType))
                {
                    String oldResponse = extensionsResponseWrapper.toString();
                    addResource.parseResponse(servletRequest, extensionsResponseWrapper.toString(),
                            servletResponse);

                    addResource.writeMyFacesJavascriptBeforeBodyEnd(servletRequest,
                            servletResponse);

                    if( ! addResource.hasHeaderBeginInfos() ){
                        // writes the response if no header info is needed
                        addResource.writeResponse(servletRequest, servletResponse);
                        return;
                    }

                    // Some headerInfo has to be added
                    addResource.writeWithFullHeader(servletRequest, servletResponse);

                    // writes the response
                    addResource.writeResponse(servletRequest, servletResponse);
                }
                else
                {

                    byte[] responseArray = extensionsResponseWrapper.getBytes();

                    if(responseArray.length > 0)
                    {
                         // When not filtering due to not valid content-type, deliver the byte-array instead of a charset-converted string.
                         // Otherwise a binary stream gets corrupted.
                         servletResponse.getOutputStream().write(responseArray);
                     }
                }
            }
        }
        catch(Throwable th) {
            throw new FacesException(th);
        }
        finally
        {
            try
            {
                if(addResource!=null)
                {
                    addResource.responseFinished();
                }
            }
            finally
            {
                delegate.release();
View Full Code Here

TOP

Related Classes of org.apache.myfaces.renderkit.html.util.AddResource

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.