%@page import="java.io.UnsupportedEncodingException"%> <%@ page taglibs="cms" import=" org.opencms.i18n.CmsEncoder, org.opencms.editors.tinymce.*, org.opencms.util.*, org.opencms.workplace.*, org.opencms.workplace.editors.*, org.opencms.jsp.*, org.opencms.main.*, org.apache.commons.lang.StringUtils, java.util.* "%><% CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response); CmsTinyMCE wp = new CmsTinyMCE(cms); CmsEditorDisplayOptions options = wp.getEditorDisplayOptions(); Properties displayOptions = options.getDisplayOptions(cms); String encoding = CmsEncoder.ENCODING_US_ASCII; int buttonStyle = wp.getSettings().getUserSettings().getEditorButtonStyle(); ////////////////////start of building toolbar String resource = wp.getParamResource(); StringBuilder toolbar = new StringBuilder(); StringBuilder grp ; grp = new StringBuilder(); grp.append("oc-exit"); toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); // Group grp = new StringBuilder() ; if (CmsStringUtil.isNotEmpty(resource) && options.showElement("button.customized", displayOptions)) { I_CmsEditorActionHandler actionClass = OpenCms.getWorkplaceManager().getEditorActionHandler(); if (actionClass.isButtonActive(wp.getJsp(), resource)) { grp.append(",oc-publish,"); } } grp.append("oc-save-exit,oc-save"); toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); //Group grp = new StringBuilder() ; if (options.showElement("option.sourcecode", displayOptions)) { grp.append(",code"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; grp.append(",undo,redo"); if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; grp.append(",search,replace"); if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.hr", displayOptions)) { grp.append(",hr"); } grp.append(",selectall") ; if (options.showElement("button.removeformat", displayOptions)) { grp.append(",removeformat"); } if (options.showElement("button.visualaid", displayOptions)) { grp.append(",visualaid"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; grp.append(",cut,copy,paste,pastetext,pasteword"); if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the insert table button should be shown if (options.showElement("option.table", displayOptions)) { grp.append(",table"); } if (options.showElement("button.media", displayOptions)) { grp.append(",media"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the insert link buttons should be shown if (options.showElement("option.links", displayOptions)) { // determine if the local link button should be shown if (options.showElement("option.link", displayOptions)) { grp.append(",oc-link"); } // determine if the external link button should be shown if (options.showElement("option.extlink", displayOptions)) { grp.append(",link"); } // determine if the anchor button should be shown if (options.showElement("option.anchor", displayOptions)) { grp.append(",anchor"); } // determine if the unlink buttons should be shown if (options.showElement("option.unlink", displayOptions)) { grp.append(",unlink"); } } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the insert/edit image button should be shown if (options.showElement("option.images", displayOptions) || options.showElement("gallery.image", displayOptions)) { // replaced by image gallery: toolbar.append(",'-', 'OcmsImage'"); grp.append(",OcmsImageGallery"); } if (options.showElement("gallery.download", displayOptions)) { grp.append(",OcmsDownloadGallery"); } if (options.showElement("gallery.link", displayOptions)) { grp.append(",OcmsLinkGallery"); } if (options.showElement("gallery.html", displayOptions)) { grp.append(",OcmsHtmlGallery"); } if (options.showElement("gallery.table", displayOptions)) { grp.append(",OcmsTableGallery"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.advhr", displayOptions)) { grp.append(",advhr"); } if (options.showElement("option.specialchars", displayOptions)) { grp.append(",charmap"); } if (options.showElement("option.spellcheck", displayOptions)) { grp.append(",iespell"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the print button should be shown if (options.showElement("option.print", displayOptions)) { grp.append(",print"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //style buttons String cssPath = wp.getUriStyleSheet() ; String styleFile = null; boolean stylePresent = false; if (CmsStringUtil.isNotEmpty(cssPath)) { String pathUsed = cssPath; int idx = pathUsed.indexOf('?'); if (idx != -1) { pathUsed = cssPath.substring(0, idx); } styleFile = pathUsed + CmsTinyMCE.SUFFIX_STYLE; if (cms.getCmsObject().existsResource(styleFile)) { stylePresent = true; } } boolean style = stylePresent && options.showElement("option.style", displayOptions); boolean formatSelectOption = false ; //determine if the font format selector should be shown if (options.showElement("option.formatselect", CmsStringUtil.TRUE, displayOptions)) { grp.append(",formatselect"); formatSelectOption = true ; } //determine if the font face selector should be shown if (options.showElement("font.face", displayOptions)) { grp.append(",fontselect"); } //determine if the font size selector should be shown if (options.showElement("font.size", displayOptions)) { grp.append(",fontsizeselect"); } //determine if the style selector should be shown if (style) { grp.append(",styleselect"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the font decoration buttons should be shown if (options.showElement("font.decoration", displayOptions)) { if (options.showElement("button.bold", CmsStringUtil.TRUE, displayOptions)) { grp.append(",bold"); } if (options.showElement("button.italic", CmsStringUtil.TRUE, displayOptions)) { grp.append(",italic"); } if (options.showElement("button.underline", CmsStringUtil.TRUE, displayOptions)) { grp.append(",underline"); } if (options.showElement("button.strikethrough", CmsStringUtil.TRUE, displayOptions)) { grp.append(",strikethrough"); } if (options.showElement("button.sub", CmsStringUtil.TRUE, displayOptions)) { grp.append(",sub"); } if (options.showElement("button.super", CmsStringUtil.TRUE, displayOptions)) { grp.append(",sup"); } } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the text alignment buttons should be shown if (options.showElement("text.align", displayOptions)) { if (options.showElement("button.alignleft", CmsStringUtil.TRUE, displayOptions)) { grp.append(",justifyleft"); } if (options.showElement("button.aligncenter", CmsStringUtil.TRUE, displayOptions)) { grp.append(",justifycenter"); } if (options.showElement("button.alignright", CmsStringUtil.TRUE, displayOptions)) { grp.append(",justifyright"); } if (options.showElement("button.justify", CmsStringUtil.TRUE, displayOptions)) { grp.append(",justifyfull"); } } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the text list buttons should be shown if (options.showElement("text.lists", displayOptions)) { if (options.showElement("button.orderedlist", CmsStringUtil.TRUE, displayOptions)) { grp.append(",numlist"); } if (options.showElement("button.unorderedlist", CmsStringUtil.TRUE, displayOptions)) { grp.append(",bullist"); } } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine if the text indentation buttons should be shown if (options.showElement("text.indent", displayOptions)) { if (options.showElement("button.outdent", CmsStringUtil.TRUE, displayOptions)) { grp.append(",outdent"); } if (options.showElement("button.indent", CmsStringUtil.TRUE, displayOptions)) { grp.append(",indent"); } } if (options.showElement("button.blockquote", CmsStringUtil.TRUE, displayOptions)) { grp.append(",blockquote"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; //determine which color selectors should be shown if (options.showElement("font.color", displayOptions)) { grp.append(",forecolor"); } if (options.showElement("bg.color", displayOptions)) { grp.append(",backcolor"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.image", displayOptions)) { grp.append(",image"); } if (options.showElement("option.cleanup", displayOptions)) { grp.append(",cleanup"); } //determine if the help button should be shown if (wp.isHelpEnabled()) { if (options.showElement("option.help", displayOptions)) { grp.append(",oc-help"); } } if (options.showElement("option.sourcecode", displayOptions)) { grp.append(",code"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.insertdate", displayOptions)) { grp.append(",insertdate"); } if (options.showElement("button.inserttime", displayOptions)) { grp.append(",inserttime"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.ltr", displayOptions)) { grp.append(",ltr"); } if (options.showElement("button.rtl", displayOptions)) { grp.append(",rtl"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.insertlayer", displayOptions)) { grp.append(",insertlayer"); } if (options.showElement("button.moveforward", displayOptions)) { grp.append(",moveforward"); } if (options.showElement("button.movebackward", displayOptions)) { grp.append(",movebackward"); } if (options.showElement("button.absolute", displayOptions)) { grp.append(",absolute"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.styleprops", displayOptions)) { grp.append(",styleprops"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.cite", displayOptions)) { grp.append(",cite"); } if (options.showElement("button.abbr", displayOptions)) { grp.append(",abbr"); } if (options.showElement("button.acronym", displayOptions)) { grp.append(",acronym"); } if (options.showElement("button.del", displayOptions)) { grp.append(",del"); } if (options.showElement("button.ins", displayOptions)) { grp.append(",ins"); } if (options.showElement("button.attribs", displayOptions)) { grp.append(",attribs"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //Group grp = new StringBuilder() ; if (options.showElement("button.visualchars", displayOptions)) { grp.append(",visualchars"); } if (options.showElement("button.nonbreaking", displayOptions)) { grp.append(",nonbreaking"); } if (options.showElement("button.template", displayOptions)) { grp.append(",template"); } if (options.showElement("button.pagebreak", displayOptions)) { grp.append(",pagebreak"); } if(grp.length() > 0){ toolbar.append(grp.toString() + "," + CmsTinyMCE.GROUP_SEPARATOR); } //////////////////// start of switch statement switch (wp.getAction()) { case CmsEditor.ACTION_SHOW_ERRORMESSAGE: //////////////////// ACTION: display the common error dialog // do nothing here, only prevents editor content from being displayed! break; case CmsEditor.ACTION_PREVIEW: //////////////////// ACTION: preview the page wp.actionPreview(); break; case CmsEditor.ACTION_EXIT: //////////////////// ACTION: exit the editor wp.actionExit(); break; case CmsEditor.ACTION_SAVEEXIT: //////////////////// ACTION: save the modified content and exit the editor wp.actionSave(); wp.actionExit(); break; case CmsEditor.ACTION_DELETELOCALE: //////////////////// ACTION: delete a localeand show the editor again if (wp.getAction() == CmsEditor.ACTION_DELETELOCALE) { wp.actionDeleteElementLocale(); } case CmsEditor.ACTION_SAVE: //////////////////// ACTION: save the modified content if (wp.getAction() == CmsEditor.ACTION_SAVE) { wp.actionSave(); } case CmsDialog.ACTION_DEFAULT: case CmsEditor.ACTION_SHOW: default: //////////////////// ACTION: show editor frame (default) // escape the content parameter to display it in the form wp.escapeParams(); wp.setParamAction(null); %>