Interface I_CmsXmlContentHandler

    • Method Detail

      • canUseReverseAvailabilityMapping

        boolean canUseReverseAvailabilityMapping​(CmsMappingResolutionContext.AttributeType attr)
        Checks if an availability attribute should be written back to the content if the availability is changed through the availability dialog.
        Parameters:
        attr - the attribute to check
        Returns:
        true if the attribute should be written to the content
      • getAllowedTemplates

        CmsDefaultSet<java.lang.String> getAllowedTemplates()
        Gets the list of allowed template context names.

        Returns:
        the list of allowed template context names
      • getComplexWidget

        I_CmsComplexWidget getComplexWidget​(CmsObject cms,
                                            java.lang.String path)
        Gets the unconfigured complex widget defined for the given path.

        Parameters:
        cms - the CMS context
        path - the value path
        Returns:
        the complex widget
      • getConfiguration

        java.lang.String getConfiguration​(I_CmsXmlSchemaType type)
        Returns the configuration String value for the widget used to edit the given XML content schema type.

        If no configuration value is available, this method must return null.

        Parameters:
        type - the value to get the widget configuration for
        Returns:
        the configuration String value for the widget used to edit the given XML content schema type
      • getConfiguration

        java.lang.String getConfiguration​(java.lang.String remainingPath)
        Gets the widget configuration for the given sub-path.

        Parameters:
        remainingPath - a sub-path
        Returns:
        the widget configuration for the given sub-path
      • getCSSHeadIncludes

        java.util.Set<java.lang.String> getCSSHeadIncludes()
        Returns the resource-independent CSS resources to include into the html-page head.

        Returns:
        the CSS resources to include into the html-page head
      • getCSSHeadIncludes

        java.util.Set<java.lang.String> getCSSHeadIncludes​(CmsObject cms,
                                                           CmsResource resource)
                                                    throws CmsException
        Returns all the CSS resources to include into the html-page head.

        Parameters:
        cms - the current CMS context
        resource - the resource from which to get the head includes
        Returns:
        the CSS resources to include into the html-page head
        Throws:
        CmsException - if something goes wrong
      • getDefault

        java.lang.String getDefault​(CmsObject cms,
                                    CmsResource resource,
                                    I_CmsXmlSchemaType type,
                                    java.lang.String path,
                                    java.util.Locale locale)
        Returns the default String value for the given XML content schema type object in the given XML content.

        If a schema type does not have a default value, this method must return null.

        Parameters:
        cms - the current users OpenCms context
        resource - the content resource
        type - the type to get the default for
        path - the element path
        locale - the currently selected locale for the value
        Returns:
        the default String value for the given XML content value object
        See Also:
        I_CmsXmlSchemaType.getDefault(Locale)
      • getDefault

        java.lang.String getDefault​(CmsObject cms,
                                    I_CmsXmlContentValue value,
                                    java.util.Locale locale)
        Returns the default String value for the given XML content schema type object in the given XML content.

        If a schema type does not have a default value, this method must return null.

        Parameters:
        cms - the current users OpenCms context
        value - the value to get the default for
        locale - the currently selected locale for the value
        Returns:
        the default String value for the given XML content value object
        See Also:
        I_CmsXmlSchemaType.getDefault(Locale)
      • getDefaultComplexWidgetClass

        java.lang.String getDefaultComplexWidgetClass()
        Gets the default complex widget class name configured for this type.

        Returns:
        the default complex widget class name
      • getDefaultComplexWidgetConfiguration

        java.lang.String getDefaultComplexWidgetConfiguration()
        Gets the default complex widget configuration string configured for this type.

        Returns:
        the default complex widget configuration string
      • getEditorChangeHandlers

        java.util.List<I_CmsXmlContentEditorChangeHandlergetEditorChangeHandlers​(boolean selfOnly)
        Returns the editor change handlers.

        Parameters:
        selfOnly - if true, only return editor change handlers configured directly for this content handler
        Returns:
        the editor change handlers
      • getFormatterConfiguration

        CmsFormatterConfiguration getFormatterConfiguration​(CmsObject cms,
                                                            CmsResource res)
        Returns the container page element formatter configuration for a given resource.

        Parameters:
        cms - the current users OpenCms context, used for selecting the right project
        res - the resource for which the formatter configuration should be retrieved
        Returns:
        the container page element formatter configuration for this handler
      • getJSHeadIncludes

        java.util.Set<java.lang.String> getJSHeadIncludes()
        Returns the resource-independent javascript resources to include into the html-page head.

        Returns:
        the javascript resources to include into the html-page head
      • getJSHeadIncludes

        java.util.Set<java.lang.String> getJSHeadIncludes​(CmsObject cms,
                                                          CmsResource resource)
                                                   throws CmsException
        Returns all the javascript resources to include into the html-page head.

        Parameters:
        cms - the current CMS context
        resource - the resource for which the head includes should be retrieved
        Returns:
        the javascript resources to include into the html-page head
        Throws:
        CmsException - if something goes wrong
      • getMappings

        java.util.Map<java.lang.String,​java.util.List<java.lang.String>> getMappings()
        Gets the mappings defined in the schema.
        Returns:
        the mappings
      • getMappings

        java.util.List<java.lang.String> getMappings​(java.lang.String elementName)
        Returns the all mappings defined for the given element xpath.

        Parameters:
        elementName - the element xpath to look up the mapping for
        Returns:
        the mapping defined for the given element xpath
      • getMessages

        CmsMessages getMessages​(java.util.Locale locale)
        Returns the CmsMessages that are used to resolve localized keys for the given locale in this content handler.

        If no localized messages are configured for this content handler, this method returns null.

        Parameters:
        locale - the locale to get the messages for
        Returns:
        the CmsMessages that are used to resolve localized keys for the given locale in this content handler
      • getModelFolder

        java.lang.String getModelFolder()
        Returns the folder name that contains eventual XML content model files to use for this resource type.

        Returns:
        the folder name containing eventual XML content master files
      • getNestedFormatters

        java.util.List<java.lang.String> getNestedFormatters​(CmsObject cms,
                                                             CmsResource res,
                                                             java.util.Locale locale,
                                                             javax.servlet.ServletRequest req)
        Returns the nested formatters for the given resource.

        Parameters:
        cms - the cms context
        res - the resource
        locale - the content locale
        req - the request if available
        Returns:
        the nested formatter ids
      • getParameter

        java.lang.String getParameter​(java.lang.String param)
        Gets the parameter with the given name..

        Parameters:
        param - the parameter name
        Returns:
        the parameter value
      • getPreview

        java.lang.String getPreview​(CmsObject cms,
                                    CmsXmlContent content,
                                    java.lang.String resourcename)
        Returns the preview URI for the given XML content value object to be displayed in the editor.

        If null is returned, no preview is possible for contents using this handler.

        Parameters:
        cms - the current OpenCms user context
        content - the XML content to display the preview URI for
        resourcename - the name in the VFS of the resource that is currently edited
        Returns:
        the preview URI for the given XML content value object to be displayed in the editor
      • getRelationType

        CmsRelationType getRelationType​(java.lang.String path)
        Returns the relation type for the given path.

        Parameters:
        path - the path to get the relation type for
        Returns:
        the relation type for the given path
      • getRelationType

        CmsRelationType getRelationType​(java.lang.String xpath,
                                        CmsRelationType defaultType)
        Returns the relation type for the given path.

        Parameters:
        xpath - the path to get the relation type for
        defaultType - the default type if none is set
        Returns:
        the relation type for the given path
      • getSearchContentType

        I_CmsXmlContentValue.SearchContentType getSearchContentType​(I_CmsXmlContentValue value)
        Returns the search content type, ie., the way how to integrate the value into full text search.

        For the full text search, the value of all elements in one locale of the XML content are combined to one big text, which is referred to as the "content" in the context of the full text search. With this option, it is possible to hide certain elements from this "content" that does not make sense to include in the full text search.

        Moreover, if the value contains a link to another resource, the content of that other resource can be added.

        Parameters:
        value - the XML content value to check
        Returns:
        the search content type, indicating how the element should be added to the content for the full text search
      • getSearchFields

        java.util.Set<CmsSearchFieldgetSearchFields()
        Returns all configured Search fields for this XML content.

        Returns:
        the Search fields for this XMl content
      • getSearchFieldsForPage

        java.util.Set<CmsSearchFieldgetSearchFieldsForPage()
        Returns all configured Search fields for this XML content that should be attached to container pages the content is placed on.

        Returns:
        the Search fields for this XMl content
      • getSearchSettings

        java.util.Map<java.lang.String,​I_CmsXmlContentValue.SearchContentTypegetSearchSettings()
        Returns the search content settings defined in the annotation node of this XML content.

        A search setting defined within the xsd:annotaion node of an XML schema definition can look like:

        <searchsetting element="Image/Align" searchContent="false"/>

        The returned map contains the 'element' attribute value as keys and the 'searchContent' attribute value as values.

        Returns:
        the search field settings for this XML content schema
      • getSettings

        java.util.Map<java.lang.String,​CmsXmlContentPropertygetSettings​(CmsObject cms,
                                                                                CmsResource resource)
        Returns the element settings defined for the container page formatters.

        Parameters:
        cms - the current CMS context
        resource - the resource for which to get the setting definitions
        Returns:
        the element settings defined for the container page formatters
      • getSynchronizations

        java.util.List<java.lang.String> getSynchronizations()
        Returns the elements that require a synchronization across all locales.

        Returns:
        the element paths
      • getTabs

        java.util.List<CmsXmlContentTabgetTabs()
        Returns the tabs to be displayed in the editor.

        Returns:
        the tabs to be displayed in the editor
      • getTitleMapping

        java.lang.String getTitleMapping​(CmsObject cms,
                                         CmsXmlContent document,
                                         java.util.Locale locale)
        Returns the "Title" mapping set for the given XML content document in the given Locale.

        Parameters:
        cms - the current OpenCms user context
        document - the XML content to get the title mapping for (this must be of a type that uses this handler)
        locale - the locale to get the title mapping for
        Returns:
        the "Title" mapping set for the given XML content document in the given Locale
      • getWidget

        I_CmsWidget getWidget​(CmsObject cms,
                              java.lang.String path)
        Gets the widget for the given path and CMS context.
        Parameters:
        cms - the current CMS context
        path - the XML value path
        Returns:
        the widget for the path
      • getWidget

        @Deprecated
        I_CmsWidget getWidget​(I_CmsXmlSchemaType value)
                       throws CmsXmlException
        Deprecated.
        Returns the editor widget that should be used for the given XML content value.

        The handler implementations should use the "appinfo" node of the XML content definition schema to define the mappings of elements to widgets.

        Parameters:
        value - the XML content value to get the widget for
        Returns:
        the editor widget that should be used for the given XML content value
        Throws:
        CmsXmlException - if something goes wrong
      • hasModifiableFormatters

        boolean hasModifiableFormatters()
        Returns true if the contents for this content handler have schema-based formatters which can be disabled or enabled.

        Returns:
        true if the contents for this content handler have schema-based formatters which can be disabled or enabled
      • hasNestedFormatters

        boolean hasNestedFormatters()
        Returns whether there are nested formatters configured for this content type.

        Returns:
        true if there are nested formatters configured for this content type
      • hasSynchronizedElements

        boolean hasSynchronizedElements()
        Returns if there are locale synchronized elements configured.

        Returns:
        true if there are locale synchronized elements configured
      • hasVisibilityHandlers

        boolean hasVisibilityHandlers()
        Returns if there are visibility handlers configured for this content type.

        Returns:
        true if there are visibility handlers configured for this content type
      • initialize

        void initialize​(org.dom4j.Element appInfoElement,
                        CmsXmlContentDefinition contentDefinition)
                 throws CmsXmlException
        Initializes this content handler for the given XML content definition by analyzing the "appinfo" node.

        Parameters:
        appInfoElement - the "appinfo" element root node to analyze
        contentDefinition - the XML content definition that XML content handler belongs to
        Throws:
        CmsXmlException - if something goes wrong
      • isAcaciaEditorDisabled

        boolean isAcaciaEditorDisabled()
        Checks whether the Acacia editor is disabled for this type.

        Returns:
        true if the Acacia editor is disabled
      • isContainerPageOnly

        boolean isContainerPageOnly()
        Returns true if the XML content should be indexed when it is dropped in a container page, and returns false if this XML content should be indexed as 'stand-alone' document.

        This flag is intended by excluding XML contents from the search index that are not used as detail pages, but to index those extraction result when they are part of a container page.

        In order to set this falg add an attribute containerpageOnly="true" to the '<searchsettings>-node' of the XSD of the resource type you want to be indexed only when it is part of a container page.

        Returns:
        the container page only flag
      • isSearchable

        @Deprecated
        default boolean isSearchable​(I_CmsXmlContentValue value)
        Deprecated.
        use getSearchContentType(I_CmsXmlContentValue) instead. Will be removed if plain lucene search is removed.
        Returns true in case the given value should be searchable with the integrated full text search.

        For the full text search, the value of all elements in one locale of the XML content are combined to one big text, which is referred to as the "content" in the context of the full text search. With this option, it is possible to hide certain elements from this "content" that does not make sense to include in the full text search.

        Parameters:
        value - the XML content value to check
        Returns:
        true in case the given value should be searchable
      • isVisible

        boolean isVisible​(CmsObject cms,
                          I_CmsXmlSchemaType schemaType,
                          java.lang.String valuePath,
                          CmsResource resource,
                          java.util.Locale contentLocale)
        Returns if the given content field should be visible to the current user.

        Parameters:
        cms - the cms context
        schemaType - the content value type
        valuePath - the value path
        resource - the edited resource
        contentLocale - the content locale
        Returns:
        true if the given content field should be visible to the current user
      • prepareForUse

        CmsXmlContent prepareForUse​(CmsObject cms,
                                    CmsXmlContent content)
        Prepares the given XML content to be used after it was read from the OpenCms VFS.

        This method is always called after any content is unmarshalled. It can be used to perform customized actions on the given XML content.

        Parameters:
        cms - the current OpenCms user context
        content - the XML content to be used as read from the VFS
        Returns:
        the prepared content to be used
      • prepareForWrite

        CmsFile prepareForWrite​(CmsObject cms,
                                CmsXmlContent content,
                                CmsFile file)
                         throws CmsException
        Prepares the given XML content to be written to the OpenCms VFS.

        This method is always called before any content gets written. It can be used to perform XML validation, pretty - printing or customized actions on the given XML content.

        Parameters:
        cms - the current OpenCms user context
        content - the XML content to be written
        file - the resource the XML content in it's current state was unmarshalled from
        Returns:
        the file to write to the OpenCms VFS, this will be an updated version of the parameter file
        Throws:
        CmsException - in case something goes wrong
      • resolveMapping

        void resolveMapping​(CmsObject cms,
                            CmsXmlContent content,
                            I_CmsXmlContentValue value)
                     throws CmsException
        Resolves the value mappings of the given XML content value, according to the rules of this XML content handler.

        Parameters:
        cms - the current OpenCms user context
        content - the XML content to resolve the mappings for
        value - the value to resolve the mappings for
        Throws:
        CmsException - if something goes wrong
      • resolveValidation

        CmsXmlContentErrorHandler resolveValidation​(CmsObject cms,
                                                    I_CmsXmlContentValue value,
                                                    CmsXmlContentErrorHandler errorHandler)
        Performs a validation of the given XML content value, and saves all errors or warnings found in the provided XML content error handler.

        The errorHandler parameter is optional, if null is given a new error handler instance must be created.

        Parameters:
        cms - the current OpenCms user context
        value - the value to resolve the validation rules for
        errorHandler - (optional) an error handler instance that contains previous error or warnings
        Returns:
        an error handler that contains all errors and warnings currently found