All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.portal.kernel.editor.configuration.EditorOptionsContributor Maven / Gradle / Ivy

There is a newer version: 7.4.3.112-ga112
Show newest version
/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.portal.kernel.editor.configuration;

import com.liferay.portal.kernel.portlet.RequestBackedPortletURLFactory;
import com.liferay.portal.kernel.theme.ThemeDisplay;

import java.util.Map;

/**
 * Provides an interface for setting the editor's options. Editor configuration
 * can be set using {@link EditorConfigContributor}.
 *
 * 

* This interface facilitates configuring options at a higher level than using * {@link EditorConfigContributor}. The former requires knowledge about the * editor internals, while the latter is more versatile in terms of * customization. *

* *

* The options specified through this interface are not tied to any particular * editor implementation. A {@link EditorConfigTransformer} transforms these * high level options to a low level configuration object. *

* *

* Implementations must be OSGi components that are registered in the OSGi * Registry. *

* *

* The options can be targeted for specific editors, based on three criteria: * portlet name, editor config key, and editor name. These criteria can be * defined as OSGi properties with the following names: *

* *
    *
  • * javax.portlet.name: The portlet name. If specified, the * options are applied to every editor used in that portlet. *
  • *
  • * editor.config.key: The key used to identify the editor (the * input-editor taglib tag's configKey attribute * value). If specified, the options are applied to every editor with the * specified configKey. *
  • *
  • * editor.name: The name of the editor (the * input-editor taglib tag's editorName attribute * value: ckeditor, ckeditor_bbcode, * alloyeditor, etc.). If specified, the options are applied to * every editor with that name. *
  • *
* *

* In case there's more than one options contributor, they're prioritized by the * following criteria combinations (the lower the criteria's number, the higher * it's prioritized): *

* *
    *
  1. * portlet name, editor config key, editor name *
  2. *
  3. * portlet name, editor config key *
  4. *
  5. * editor config key, editor name *
  6. *
  7. * portlet name, editor name *
  8. *
  9. * editor config key *
  10. *
  11. * portlet name *
  12. *
  13. * editor name *
  14. *
  15. * empty *
  16. *
* *

* If there are multiple contributors with the same criteria elements, they're * prioritized by service rank. *

* * @author Sergio González */ public interface EditorOptionsContributor { /** * Updates the original {@link EditorOptions} object with new options. It * can even update or delete the original options, or any other options * introduced by any other {@link EditorOptionsContributor}. * *

* The editor options object contains the options to be transformed by the * Editor Config Transformer to a configuration JSON object. *

* * @param editorOptions the original {@link EditorOptions} object containing * the options set by {@link EditorOptionsContributor} modules * @param inputEditorTaglibAttributes the attributes specified to the input * taglib tag that renders the editor * @param themeDisplay the theme display */ public void populateEditorOptions( EditorOptions editorOptions, Map inputEditorTaglibAttributes, ThemeDisplay themeDisplay, RequestBackedPortletURLFactory requestBackedPortletURLFactory); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy