You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Bruno Busco (JIRA)" <ji...@apache.org> on 2010/11/17 20:16:13 UTC

[jira] Commented: (OFBIZ-4021) Adding columns filtering fields in form widget

    [ https://issues.apache.org/jira/browse/OFBIZ-4021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933087#action_12933087 ] 

Bruno Busco commented on OFBIZ-4021:
------------------------------------

When I include the FIXME code MacroFormRenderer.java like this:

    public void renderFormFilterRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
        String formName = modelForm.getCurrentFormName(context);
        String targetType = modelForm.getFilterForm().getTargetType();
        
        String targ = modelForm.getFilterForm().getTarget(context, targetType);
        StringBuilder linkUrl = new StringBuilder();
        if (UtilValidate.isNotEmpty(targ)) {
            WidgetWorker.buildHyperlinkUrl(linkUrl, targ, targetType, null, null, false, false, true, request, response, context);
        }

        StringWriter sr = new StringWriter();
        sr.append("<@renderFormFilterRowOpen ");
        sr.append(" formName=\"");
        sr.append(formName);
        sr.append("\" linkUrl=\"");
        sr.append(linkUrl);
        sr.append("\" />");
        executeMacro(writer, sr.toString());
    }

I get this error in the log.

---- exception report ----------------------------------------------------------
Error in request handler: 
Exception: org.ofbiz.widget.screen.ScreenRenderException
Message: Error rendering screen [component://common/widget/CommonScreens.xml#FindScreenDecorator]: java.lang.IllegalArgumentException: Error evaluating BeanShell style conditions on form ListExamples (Error evaluating BeanShell style conditions on form ListExamples)
---- cause ---------------------------------------------------------------------
Exception: java.lang.IllegalArgumentException
Message: Error evaluating BeanShell style conditions on form ListExamples
---- stack trace ---------------------------------------------------------------
java.lang.IllegalArgumentException: Error evaluating BeanShell style conditions on form ListExamples
org.ofbiz.widget.form.ModelForm.getStyleAltRowStyle(ModelForm.java:2775)
org.ofbiz.widget.form.MacroFormRenderer.renderFormatItemRowOpen(MacroFormRenderer.java:1616)
org.ofbiz.widget.form.ModelForm.renderItemRow(ModelForm.java:1696)
org.ofbiz.widget.form.ModelForm.renderItemRows(ModelForm.java:1660)
org.ofbiz.widget.form.ModelForm.renderListFormString(ModelForm.java:1139)
org.ofbiz.widget.form.ModelForm.renderFormString(ModelForm.java:873)
org.ofbiz.widget.screen.ModelScreenWidget$Form.renderWidgetString(ModelScreenWidget.java:753)
org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104)
org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:613)
org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:129)
org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:646)
org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104)
org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:260)
org.ofbiz.widget.screen.MacroScreenRenderer.renderScreenletSubWidget(MacroScreenRenderer.java:652)
org.ofbiz.widget.screen.ModelScreenWidget$Screenlet.renderWidgetString(ModelScreenWidget.java:373)


> Adding columns filtering fields in form widget
> ----------------------------------------------
>
>                 Key: OFBIZ-4021
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4021
>             Project: OFBiz
>          Issue Type: New Feature
>          Components: framework
>            Reporter: Bruno Busco
>            Priority: Minor
>         Attachments: column_filter_disabled.JPG, column_filter_enabled.JPG, FilterForm.patch, img_for_tomahawk.zip
>
>
> This patch includes an initial implementation of a list-form column filtering feature.
> The aim is to add the possibility to configure a list form to show, in its header, some fields that could be used to filter the rows displayed in the form.
> This is a feature quite standard in many systems and could be seen into OFBiz as a "quick search"; the standard way of searching using a complete single-type form could be seen as an "advanced search".
> Please find attached to this JIRA two screenshots that show you how the filtering option appears on the screen.
> *How the user uses this feature*
> The part of the screen that is normally used for the pagination controls (only the upper one) has been extended so that two icons are shown on the left.
> The first one (a funnel) is used to show or hide the filtering fields. The second one (a magnifing glass) is used to run the search with the filter content.
> *How the developer uses this feature*
> The filtering feature can be enabled on any list-type form specifying the "filter-form-name" attribute.
> This must be the name of a form that contains the details about how the filtering fields should be rendered.
> When a list form with the filter-form-name option set is rendered, any column field is searched for in the filter-form.
> If a field with the same name is found, its field rendering options are used to render the filter field.
> A new field attribute "filter-field" has also been added.
> This defaults to true but if it is set to false the filter field is not rendered for this column, even if a field with the same name is present in the filter-form.
> This feature allows to use as filter-form an already existent form such as a regular FindXXX form.
> In the patch the ListExample form has been changed to use this feature. You can check it there.
> Unfortunately the patch does not work yet 100% but I hope that if someone finds it interesting could help me.
> *What is there still to do*
> 1) There is a FIXME in MacroFormRenderer.java file. I cannot make it work. If I enable the code that is commented there I get an error when a search is run.
> 2) I cannot make the filtering fields show the actual content after a search is run. They are always rendered as empty.
> 3) The filter row hide/show status should be saved so that it is maintained after a pagination.
> I submit this patch as it is becouse I cannot easily improve it further but I hope someone could help.
> The img_for_tamahawk.zip file includes imgs that should be added in the tomahawk images folder to make the patch work.
> Thank you for any help!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.