Class CmsHtmlWidgetOption

java.lang.Object
org.opencms.widgets.CmsHtmlWidgetOption

public class CmsHtmlWidgetOption extends Object
An option of a HTML type widget.

Options can be defined for each element of the type OpenCmsHtml using the widget HtmlWidget. They have to be placed in the annotation section of a XSD describing an XML content. The configuration attribute in the layout node for the element must contain the activated options as a comma separated String value:

Available options are:

  • anchor: the anchor dialog button
  • buttonbar:${button bar items, separated by ';'}: an individual button bar configuration, see BUTTONBAR_DEFAULT for an example.
  • css:/vfs/path/to/cssfile.css: the absolute path in the OpenCms VFS to the CSS style sheet to use to render the contents in the editor (availability depends on the integrated editor)
  • formatselect: the format selector for selecting text format like paragraph or headings
  • formatselect.options:${list of options, separated by ';'}: the options that should be available in the format selector, e.g. formatselect.options:p;h1;h2
  • fullpage: the editor creates an entire HTML page code
  • ${gallerytype}: Shows a gallery dialog button, e.g. imagegallery displays the image gallery button or downloadgallery displays the download gallery button
  • height:${editorheight}: the editor height, where the height can be specified in px or %, e.g. 400px
  • hidebuttons:${list of buttons to hide, separated by ';'}: the buttons to hide that usually appear in the default button bar, e.g. hidebuttons:bold;italic;underline;strikethrough hides some formatting buttons
  • image: the image dialog button (availability depends on the integrated editor)
  • link: the link dialog button
  • source: shows the source code toggle button(s)
  • stylesxml:/vfs/path/to/stylefile.xml: the absolute path in the OpenCms VFS to the user defined styles that should be displayed in the style selector (availability depends on the integrated editor)
  • stylesformat:/vfs/path/to/stylefile.xml: the absolute path in the OpenCms VFS to the user defined styles format that should be displayed in the style selector (availability depends on the integrated editor)
  • table: the table dialog button (availability depends on the integrated editor)
Some things like the button bar items should be defined in the global widget configuration of the file opencms-vfs.xml.

Since:
6.0.1
  • Field Details

  • Constructor Details

    • CmsHtmlWidgetOption

      Creates a new empty HTML widget object object.

    • CmsHtmlWidgetOption

      public CmsHtmlWidgetOption(String configuration)
      Creates a new HTML widget object object, configured by the given configuration String.

      Parameters:
      configuration - configuration String to parse
  • Method Details

    • createConfigurationString

      Returns a HTML widget configuration String created from the given HTML widget option.

      Parameters:
      option - the HTML widget options to create the configuration String for
      Returns:
      a select widget configuration String created from the given HTML widget option object
    • parseEmbeddedGalleryOptions

      Parses and removes embedded gallery configuration strings.
      Parameters:
      configuration - the configuration string to parse
      Returns:
      a map containing both the string resulting from removing the embedded configurations, and the embedded configurations as a a map
    • getAdditionalButtons

      Returns the buttons to show additionally as list with button names.

      Returns:
      the buttons to show additionally as list with button names
    • getButtonBar

      public String getButtonBar(Map<String,String> buttonNamesLookUp, String itemSeparator)
      Returns the specific editor button bar string generated from the configuration.

      The lookup map can contain translations for the button names, the separator and the block names. The button bar will be automatically surrounded by block start and end items if they are not explicitly defined.

      It may be necessary to write your own method to generate the button bar string for a specific editor widget. In this case, use the method getButtonBarShownItems() to get the calculated list of shown button bar items.

      Parameters:
      buttonNamesLookUp - the lookup map with translations for the button names, the separator and the block names or null
      itemSeparator - the separator for the tool bar items
      Returns:
      the button bar string generated from the configuration
    • getButtonBar

      public String getButtonBar(Map<String,String> buttonNamesLookUp, String itemSeparator, boolean addMissingBlock)
      Returns the specific editor button bar string generated from the configuration.

      The lookup map can contain translations for the button names, the separator and the block names.

      It may be necessary to write your own method to generate the button bar string for a specific editor widget. In this case, use the method getButtonBarShownItems() to get the calculated list of shown button bar items.

      Parameters:
      buttonNamesLookUp - the lookup map with translations for the button names, the separator and the block names or null
      itemSeparator - the separator for the tool bar items
      addMissingBlock - flag indicating if the button bar should be automatically surrounded by a block if not explicitly defined
      Returns:
      the button bar string generated from the configuration
    • getButtonBarOption

      Returns the individual button bar configuration option.

      Returns:
      the individual button bar configuration option
    • getButtonBarOptionString

      Returns the individual button bar configuration option string.

      Returns:
      the individual button bar configuration option string
    • getButtonBarShownItems

      Returns the calculated button bar items, including blocks and separators, considering the current widget configuration.

      Use this method to get the calculated list of button bar items if getButtonBar(Map, String) can not be used for a specific editor widget.

      Returns:
      the calculated button bar items
    • getConfiguration

      Returns the original configuration String that was used to initialize the HTML widget options.

      Returns:
      the original configuration String
    • getCssPath

      public String getCssPath()
      Returns the CSS style sheet VFS path to use in the widget area.

      Returns:
      the CSS style sheet VFS path to use in the widget area
    • getEditorConfigPath

      Gets the path of a JSON file containing options to be passed directly into TinyMCE.
      Returns:
      the path of a JSON with direct TinyMCE options
    • getEditorHeight

      Returns the widget editor height.

      Returns:
      the widget editor height
    • getEmbeddedConfigurations

      Gets the embedded gallery configurations.

      Returns:
      the embedded gallery configurations
    • getFormatSelectOptions

      Returns the options for the format select box as String.

      Returns:
      the options for the format select box as String
    • getHiddenButtons

      Returns the buttons to hide as list with button names.

      Returns:
      the buttons to hide as list with button names
    • getLinkDefaultProtocol

      Returns the link default protocol to use when inserting/editing links via the link dialog.
      Returns:
      the link default protocol to use when inserting/editing links via the link dialog
    • getStylesFormatPath

      Returns the styles format VFS path to use in the widget area.

      Returns:
      the styles XML format path to use in the widget area
    • getStylesXmlPath

      Returns the styles XML VFS path to use in the widget area.

      Returns:
      the styles XML VFS path to use in the widget area
    • init

      public void init(String configuration)
      Initializes the widget options from the given configuration String.

      Parameters:
      configuration - the configuration String
    • isAllowScripts

      public boolean isAllowScripts()
      Returns true if scripts should be allowed in the source code editor.

      Returns:
      true if scripts should be allowed in the source code editor
    • isButtonAdditional

      public boolean isButtonAdditional(String buttonName)
      Returns if the button with the given name should be additionally shown.

      Parameters:
      buttonName - the button name to check
      Returns:
      true if the button with the given name should be additionally shown, otherwise false
    • isButtonHidden

      public boolean isButtonHidden(String buttonName)
      Returns if the button with the given name should be hidden.

      Parameters:
      buttonName - the button name to check
      Returns:
      true if the button with the given name should be hidden, otherwise false
    • isButtonOptional

      public boolean isButtonOptional(String buttonName)
      Returns if the button with the given name is optional.

      Parameters:
      buttonName - the button name to check
      Returns:
      true if the button with the given name is optional, otherwise false
    • isFullPage

      public boolean isFullPage()
      Returns if the editor should be used in full page mode.

      Returns:
      true if the editor should be used in full page mode, otherwise false
    • isImportCss

      public boolean isImportCss()
      Return true if the content stylesheet's styles should be imported into the style selector.

      Returns:
      true if the content stylesheet's styles should be imported into the style selector
    • setAdditionalButtons

      public void setAdditionalButtons(List<String> buttons)
      Sets the buttons to show additionally as list with button names.

      Parameters:
      buttons - the buttons to show additionally as list with button names
    • setButtonBarOption

      public void setButtonBarOption(List<String> buttonBar)
      Sets the individual button bar configuration option.

      Parameters:
      buttonBar - the individual button bar configuration option
    • setButtonBarOptionString

      public void setButtonBarOptionString(String buttonBar)
      Sets the individual button bar configuration option string.

      Parameters:
      buttonBar - the individual button bar configuration option string
    • setCssPath

      public void setCssPath(String cssPath)
      Sets the CSS style sheet VFS path to use in the widget area.

      Parameters:
      cssPath - the CSS style sheet VFS path to use in the widget area
    • setEditorConfigPath

      public void setEditorConfigPath(String optionJsonPath)
      Sets the path for a file containing JSON options to be passed directly into TinyMCE.
      Parameters:
      optionJsonPath - the path of a JSON file
    • setEditorHeight

      public void setEditorHeight(String editorHeight)
      Sets the widget editor height.

      Parameters:
      editorHeight - the widget editor height
    • setFormatSelectOptions

      public void setFormatSelectOptions(String formatSelectOptions)
      Sets the options for the format select box as String.

      Parameters:
      formatSelectOptions - the options for the format select box as String
    • setFullPage

      public void setFullPage(boolean fullPage)
      Sets if the editor should be used in full page mode.

      Parameters:
      fullPage - true if the editor should be used in full page mode, otherwise false
    • setHiddenButtons

      public void setHiddenButtons(List<String> buttons)
      Sets the buttons to hide as list with button names.

      Parameters:
      buttons - the buttons to hide as list with button names
    • setLinkDefaultProtocol

      public void setLinkDefaultProtocol(String linkDefaultProtocol)
      Set the link default protocol to use when inserting/editing links via the link dialog
      Parameters:
      linkDefaultProtocol - the link default protocol to use when inserting/editing links via the link dialog
    • setStylesFormatPath

      public void setStylesFormatPath(String stylesFormatPath)
      Sets the styles format VFS path to use in the widget area.

      Parameters:
      stylesFormatPath - the styles XML VFS path to use in the widget area
    • setStylesXmlPath

      public void setStylesXmlPath(String stylesXmlPath)
      Sets the styles XML VFS path to use in the widget area.

      Parameters:
      stylesXmlPath - the styles XML VFS path to use in the widget area
    • showAnchorDialog

      public boolean showAnchorDialog()
      Returns true if the anchor dialog button should be available.

      Returns:
      if the anchor dialog button should be available
    • showFormatSelect

      public boolean showFormatSelect()
      Returns true if the format selector should be available.

      Returns:
      if the format selector should be available
    • showGalleryDialog

      public boolean showGalleryDialog(String galleryType)
      Returns true if the specified gallery type dialog button is shown.

      Parameters:
      galleryType - the gallery type to check
      Returns:
      true if the specified gallery type dialog button is shown, otherwise false
    • showImageDialog

      public boolean showImageDialog()
      Returns true if the image dialog button should be available.

      Returns:
      if the image dialog button should be available
    • showLinkDialog

      public boolean showLinkDialog()
      Returns true if the link dialog button should be available.

      Returns:
      if the link dialog button should be available
    • showSourceEditor

      public boolean showSourceEditor()
      Returns true if the source code button should be available.

      Returns:
      if the source code button should be available
    • showStylesFormat

      public boolean showStylesFormat()
      Returns true if the styles format selector should be available.

      Returns:
      if the styles format selector should be available
    • showStylesXml

      public boolean showStylesXml()
      Returns true if the styles selector should be available.

      Returns:
      if the styles selector should be available
    • showTableDialog

      public boolean showTableDialog()
      Returns true if the table dialog button should be available.

      Returns:
      if the table dialog button should be available
    • useCss

      public boolean useCss()
      Returns true if the widget editor should use a defined CSS style sheet.

      Returns:
      if the widget editor should use a defined CSS style sheet
    • addAdditionalButton

      protected void addAdditionalButton(String buttonName)
      Adds a button to the list of defined additional buttons.

      Parameters:
      buttonName - the button name to add
    • getButtonName

      protected String getButtonName(String barItem, Map<String,String> buttonNamesLookUp)
      Returns the real button name matched with the look up map.

      If no value is found in the look up map, the button name is returned unchanged.

      Parameters:
      barItem - the button bar item name to look up
      buttonNamesLookUp - the look up map containing the button names and/or separator name to use
      Returns:
      the translated button name
    • parseOptions

      protected void parseOptions(String configuration)
      Parses the given configuration String.

      Parameters:
      configuration - the configuration String to parse