Package org.opencms.acacia.client
Class CmsNativeComplexWidgetRenderer
- java.lang.Object
-
- org.opencms.acacia.client.CmsNativeComplexWidgetRenderer
-
- All Implemented Interfaces:
I_CmsEntityRenderer
public class CmsNativeComplexWidgetRenderer extends java.lang.Object implements I_CmsEntityRenderer
CmsRenderer which delegates the rendering of an entity to native Javascript. This renderer will interpret its configuration string as a JSON object (which we will call 'config'). To render an entity, it will take the name of a function from config.render and then call the function with the entity to render, the parent element, a VIE wrapper, and the configuration object as parameters.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ENTITY_CLASS
The entity CSS class.static java.lang.String
LABEL_CLASS
The attribute label CSS class.static java.lang.String
WIDGET_HOLDER_CLASS
The widget holder CSS class.
-
Constructor Summary
Constructors Constructor Description CmsNativeComplexWidgetRenderer()
Default constructor.CmsNativeComplexWidgetRenderer(java.lang.String configuration)
Creates a new configured instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CmsNativeComplexWidgetRenderer
configure(java.lang.String configuration)
Returns a copy of this renderer which has been configured with the given configuration string.protected com.google.gwt.core.client.JavaScriptObject
createNativeInstance(java.lang.String initCall)
Creates the native renderer instance.java.lang.String
getName()
Gets the name of the renderer (should be unique for each renderer class).protected com.google.gwt.core.client.JavaScriptObject
getNativeInstance()
Gets the native renderer instance.void
renderAttributeValue(org.opencms.acacia.shared.CmsEntity parentEntity, CmsAttributeHandler attributeHandler, int attributeIndex, com.google.gwt.user.client.ui.Panel context)
Renders a single attribute value.void
renderForm(org.opencms.acacia.shared.CmsEntity entity, com.google.gwt.user.client.ui.Panel context, I_CmsAttributeHandler parentHandler, int attributeIndex)
Renders the given entity into a form.CmsTabbedPanel<com.google.gwt.user.client.ui.FlowPanel>
renderForm(org.opencms.acacia.shared.CmsEntity entity, java.util.List<org.opencms.acacia.shared.CmsTabInfo> tabInfos, com.google.gwt.user.client.ui.Panel context, I_CmsAttributeHandler parentHandler, int attributeIndex)
Renders the given entity into a form with tabs.void
renderInline(org.opencms.acacia.shared.CmsEntity parentEntity, java.lang.String attributeName, I_CmsInlineFormParent formParent, I_CmsInlineHtmlUpdateHandler updateHandler, I_CmsAttributeHandler parentHandler, int attributeIndex, int minOccurrence, int maxOccurrence)
Injects editing widgets into the given DOM context to enable editing of the given entity attribute.void
renderInline(org.opencms.acacia.shared.CmsEntity entity, I_CmsInlineFormParent formParent, I_CmsInlineHtmlUpdateHandler updateHandler, I_CmsAttributeHandler parentHandler, int attributeIndex)
Injects editing widgets into the given DOM context to enable editing of the given entity.protected void
renderNative(com.google.gwt.core.client.JavaScriptObject nativeRenderer, java.lang.String renderFunction, com.google.gwt.dom.client.Element element, org.opencms.acacia.shared.CmsEntity entity, com.google.gwt.core.client.JavaScriptObject config)
Calls the native render function.
-
-
-
Field Detail
-
ENTITY_CLASS
public static final java.lang.String ENTITY_CLASS
The entity CSS class.
-
LABEL_CLASS
public static final java.lang.String LABEL_CLASS
The attribute label CSS class.
-
WIDGET_HOLDER_CLASS
public static final java.lang.String WIDGET_HOLDER_CLASS
The widget holder CSS class.
-
-
Constructor Detail
-
CmsNativeComplexWidgetRenderer
public CmsNativeComplexWidgetRenderer()
Default constructor.
-
CmsNativeComplexWidgetRenderer
public CmsNativeComplexWidgetRenderer(java.lang.String configuration)
Creates a new configured instance.- Parameters:
configuration
- the configuration string
-
-
Method Detail
-
configure
public CmsNativeComplexWidgetRenderer configure(java.lang.String configuration)
Description copied from interface:I_CmsEntityRenderer
Returns a copy of this renderer which has been configured with the given configuration string.- Specified by:
configure
in interfaceI_CmsEntityRenderer
- Parameters:
configuration
- the configuration string- Returns:
- the configured copy of the renderer
- See Also:
I_CmsEntityRenderer.configure(java.lang.String)
-
getName
public java.lang.String getName()
Description copied from interface:I_CmsEntityRenderer
Gets the name of the renderer (should be unique for each renderer class).- Specified by:
getName
in interfaceI_CmsEntityRenderer
- Returns:
- the renderer name
- See Also:
I_CmsEntityRenderer.getName()
-
renderAttributeValue
public void renderAttributeValue(org.opencms.acacia.shared.CmsEntity parentEntity, CmsAttributeHandler attributeHandler, int attributeIndex, com.google.gwt.user.client.ui.Panel context)
Description copied from interface:I_CmsEntityRenderer
Renders a single attribute value. Used for inline editing to show a fragment of the form.- Specified by:
renderAttributeValue
in interfaceI_CmsEntityRenderer
- Parameters:
parentEntity
- the parent entityattributeHandler
- the attribute handlerattributeIndex
- the value indexcontext
- the parent widget- See Also:
I_CmsEntityRenderer.renderAttributeValue(org.opencms.acacia.shared.CmsEntity, org.opencms.acacia.client.CmsAttributeHandler, int, com.google.gwt.user.client.ui.Panel)
-
renderForm
public CmsTabbedPanel<com.google.gwt.user.client.ui.FlowPanel> renderForm(org.opencms.acacia.shared.CmsEntity entity, java.util.List<org.opencms.acacia.shared.CmsTabInfo> tabInfos, com.google.gwt.user.client.ui.Panel context, I_CmsAttributeHandler parentHandler, int attributeIndex)
Description copied from interface:I_CmsEntityRenderer
Renders the given entity into a form with tabs.- Specified by:
renderForm
in interfaceI_CmsEntityRenderer
- Parameters:
entity
- the entity to rendertabInfos
- the tab infoscontext
- the context widget panelparentHandler
- the parent attribute handlerattributeIndex
- the attribute index- Returns:
- the tabbed panel
- See Also:
I_CmsEntityRenderer.renderForm(org.opencms.acacia.shared.CmsEntity, java.util.List, com.google.gwt.user.client.ui.Panel, org.opencms.acacia.client.I_CmsAttributeHandler, int)
-
renderForm
public void renderForm(org.opencms.acacia.shared.CmsEntity entity, com.google.gwt.user.client.ui.Panel context, I_CmsAttributeHandler parentHandler, int attributeIndex)
Description copied from interface:I_CmsEntityRenderer
Renders the given entity into a form.- Specified by:
renderForm
in interfaceI_CmsEntityRenderer
- Parameters:
entity
- the entity to rendercontext
- the context widget panelparentHandler
- the parent attribute handlerattributeIndex
- the attribute index- See Also:
I_CmsEntityRenderer.renderForm(org.opencms.acacia.shared.CmsEntity, com.google.gwt.user.client.ui.Panel, org.opencms.acacia.client.I_CmsAttributeHandler, int)
-
renderInline
public void renderInline(org.opencms.acacia.shared.CmsEntity entity, I_CmsInlineFormParent formParent, I_CmsInlineHtmlUpdateHandler updateHandler, I_CmsAttributeHandler parentHandler, int attributeIndex)
Description copied from interface:I_CmsEntityRenderer
Injects editing widgets into the given DOM context to enable editing of the given entity.- Specified by:
renderInline
in interfaceI_CmsEntityRenderer
- Parameters:
entity
- the entity to renderformParent
- formParent the form parent widgetupdateHandler
- handles updates on the HTML required due to entity data changesparentHandler
- the parent attribute handlerattributeIndex
- the attribute index- See Also:
I_CmsEntityRenderer.renderInline(org.opencms.acacia.shared.CmsEntity, org.opencms.acacia.client.I_CmsInlineFormParent, org.opencms.acacia.client.I_CmsInlineHtmlUpdateHandler, org.opencms.acacia.client.I_CmsAttributeHandler, int)
-
renderInline
public void renderInline(org.opencms.acacia.shared.CmsEntity parentEntity, java.lang.String attributeName, I_CmsInlineFormParent formParent, I_CmsInlineHtmlUpdateHandler updateHandler, I_CmsAttributeHandler parentHandler, int attributeIndex, int minOccurrence, int maxOccurrence)
Description copied from interface:I_CmsEntityRenderer
Injects editing widgets into the given DOM context to enable editing of the given entity attribute.- Specified by:
renderInline
in interfaceI_CmsEntityRenderer
- Parameters:
parentEntity
- the parent entityattributeName
- the attribute nameformParent
- the form parent widgetupdateHandler
- handles updates on the HTML required due to entity data changesparentHandler
- the parent attribute handlerattributeIndex
- the attribute indexminOccurrence
- the minimum occurrence of this attributemaxOccurrence
- the maximum occurrence of this attribute- See Also:
I_CmsEntityRenderer.renderInline(org.opencms.acacia.shared.CmsEntity, java.lang.String, org.opencms.acacia.client.I_CmsInlineFormParent, org.opencms.acacia.client.I_CmsInlineHtmlUpdateHandler, org.opencms.acacia.client.I_CmsAttributeHandler, int, int, int)
-
createNativeInstance
protected com.google.gwt.core.client.JavaScriptObject createNativeInstance(java.lang.String initCall)
Creates the native renderer instance.- Parameters:
initCall
- the name of the native function which creates the native renderer instance- Returns:
- the native renderer instance
-
getNativeInstance
protected com.google.gwt.core.client.JavaScriptObject getNativeInstance()
Gets the native renderer instance.- Returns:
- the native renderer instance
-
renderNative
protected void renderNative(com.google.gwt.core.client.JavaScriptObject nativeRenderer, java.lang.String renderFunction, com.google.gwt.dom.client.Element element, org.opencms.acacia.shared.CmsEntity entity, com.google.gwt.core.client.JavaScriptObject config)
Calls the native render function.- Parameters:
nativeRenderer
- the native renderer instancerenderFunction
- the name of the render functionelement
- the element in which to render the entityentity
- the entity to renderconfig
- the configuration
-
-