MacroScreenRenderer still uses HtmlFormRenderer (dependencies on html renderers) --------------------------------------------------------------------------------
Key: OFBIZ-3766 URL: https://issues.apache.org/jira/browse/OFBIZ-3766 Project: OFBiz Issue Type: Bug Components: framework Affects Versions: Release Branch 10.04, SVN trunk Reporter: Blas Rodriguez Somoza Priority: Minor Fix For: Release Branch 10.04, SVN trunk There are a bug in MacroScreenRenderer.renderScreenletSubWidget. and several pages of the demo uses HtmlFormRenderer instead of MacroFormRenderer. The dependencies in org.ofbiz.widget.<non-html> directories against org.ofbiz.widget.html are the following (I exclude ScreenWidgetViewHandler.java which is in widget.screen but is a piece of the html renderers) 1.- org\ofbiz\widget\menu\MenuWrapTransform.java --> import org.ofbiz.widget.html.HtmlMenuWrapper; 2.- org\ofbiz\widget\screen\MacroScreenRenderer.java -->:import org.ofbiz.widget.html.HtmlScreenRenderer.ScreenletMenuRenderer; 3.- org\ofbiz\widget\screen\ModelScreenWidget.java -->:import org.ofbiz.widget.html.HtmlMenuRenderer; 4.- org\ofbiz\widget\screen\ModelScreenWidget.java -->:import org.ofbiz.widget.html.HtmlFormRenderer; 5.- org\ofbiz\widget\screen\MacroScreenRenderer.java -->:import org.ofbiz.widget.html.HtmlFormRenderer; 6.- org\ofbiz\widget\screen\ScreenFopViewHandler.java -->:import org.ofbiz.widget.html.HtmlScreenRenderer; 1.- OK. 2.- The real dependency is with HtmlMenuRenderer. 3,4.- To avoid default renderers, ModelScreenWidget should use only the renderer stored in the context. 5.- bug. 6.- if macro renderer will be the default one then this must be changed. It will be better if the default renderer can be taken from the context but AFAIK it isn't a default renderer in the context. After the patch the dependencies against html directory are: org\ofbiz\widget\menu\MenuWrapTransform.java --> import org.ofbiz.widget.html.HtmlMenuWrapper; org\ofbiz\widget\screen\MacroScreenRenderer.java -->:import org.ofbiz.widget.html.HtmlMenuRenderer; org\ofbiz\widget\screen\MacroScreenViewHandler.java -->:import org.ofbiz.widget.html.HtmlMenuRenderer; which are the expected ones, only with HtmlMenu because it isn't a macro replacement. Patch: MacroScreenRenderer.java - renderScreenletSubWidget method must use MacroFormRenderer instead of HtmlFormRenderer - Added ScreenletMenuRenderer copied from HtmlScreenRenderer. This make the dependency on HtmlMenuRenderer explicit and avoid the dependency on HtmlScreenRenderer MacroScreenViewHandler.java - To avoid using defaults in ModelScreenWidget each ViewHandler must store its form, tree and menu renderers in the context. ModelScreenWidget.java - There are not default renderers, each ScreenViewHandler must put iits form, tree and menu renderers in the context. ScreenFopViewHandler.java - Use MacroScreenRenderer instead HtmlScreenRenderer. ScreenWidgetViewHandler.java (aka ScreenHtmlViewHandler) - To avoid using defaults in ModelScreenWidget each ViewHandler must store its form, tree and menu renderers in the context. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.