Menu

Default Values for Filter Tab (not basecondition)

Josef Muri
2016-08-22
2016-09-07
  • Josef Muri

    Josef Muri - 2016-08-22

    Hi,
    I was looking for a way to set a default value in the filter tab, which could be changed by the user. So it is not a basecondition.
    E. g. having data for several years. As default I would like to show only the data from the past year, cause this is the most commen case. However the user should be able to change the selection for the year.
    I have tried with a filter class but it seems this is just working propertly with an basconditions.
    How would I preset a specific filter attribute with an value then?

     
  • Javier Paniza

    Javier Paniza - 2016-08-25

    Hi Josef,

    Try the methods setConditionValue() and setConditionValues() from Tab.


    Help others in this forum as I help you.

     
  • Josef Muri

    Josef Muri - 2016-08-30

    Hi Javier
    Thanx for the reply. This was doing partly the trick. I'm having 2 following up questions:

    a) when I try to set a second condition e.g.:
    tab.setConditionValue("slrremark", new String("Test")); //ok
    tab.setConditionValue("slryear", year); //ok
    Then the sescond line (slryear) would clear the value of the first line (slrremark). Can't I set multiple condition values?
    *

    b) I tried to achieve this with tab.setConditionValues()
    // alternatively
    List<String> anotherList = new ArrayList<String>();
    anotherList.add("2016");
    tab.setConditionValues(anotherList);
    In each case I would get an ArrayOutOfBoundsException, when using setConditionValues.
    What am I doing wrong?

    regards
    Josef

     
  • Javier Paniza

    Javier Paniza - 2016-09-01

    Hi Josef:

    Try to make the size of the anotherList the same of the available parameters in the list, you can fill with empty strings. If it does not work put here the stacktrace and your @Tab definition.


    Help others in this forum as I help you.

     
  • Josef Muri

    Josef Muri - 2016-09-05

    Hi Javier,
    After I tried ur trick I could set the field values in the tab.

    Snippet:
    private void dummy1() {
    // alternatively (8 fields)
    // size of array must fit the numer of items in the tab
    List<String> anotherList = new ArrayList<String>();
    anotherList.add("2016"); //2016
    anotherList.add(""); //22.07.2016
    anotherList.add(""); //FK to Employee
    anotherList.add("");
    anotherList.add("Test"); //Test String
    anotherList.add("");
    anotherList.add("0"); //0 = Normal (Dropdown)
    anotherList.add("1"); //1 = activ (Dropdown)

        tab.setConditionValues(anotherList);        
    }
    

    **
    I was facing an other problem though:
    a) the filter was not applied (I had to execute the filter manually)
    b) there was allways an exception in the backend

    SCHWERWIEGEND: tabconditionwarning
    java.lang.NullPointerException
    at org.openxava.tab.Tab.createCondition(Tab.java:481)
    at org.openxava.tab.Tab.getCondition(Tab.java:438)
    at org.openxava.tab.Tab.createTableModel(Tab.java:406)
    at org.openxava.tab.Tab.getTableModel(Tab.java:385)
    at org.apache.jsp.xava.editors.listEditorjsp.jspService(listEditorjsp.java:1035)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.xava.listjsp.jspService(listjsp.java:82)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.xava.corejsp.jspService(corejsp.java:301)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.xava.modulejsp.jspService(modulejsp.java:512)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
    at org.apache.jsp.naviox.indexjsp.jspService(indexjsp.java:224)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
    at com.openxava.naviox.web.NaviOXServlet.doGet(NaviOXServlet.java:30)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.openxava.naviox.web.NaviOXFilter.doFilter(NaviOXFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

    Furthermore how would you set a field that reflects an FK (Item 3 above)?

    regards
    Josef

     
  • Javier Paniza

    Javier Paniza - 2016-09-07

    Hi Josef,

    You have to set the condition comparators too:

    List<String> comparators = new ArrayList<String>();
    comparators.add("eq_comparator"); //2016
    comparators.add("eq_comparator"); //22.07.2016
    comparators.add("eq_comparator"); //FK to Employee
    comparators.add("eq_comparator");
    comparators.add("contains_comparator"); //Test String
    comparators.add("eq_comparator");
    comparators.add("eq_comparator"); //0 = Normal (Dropdown)
    comparators.add("eq_comparator"); //1 = activ (Dropdown)
    tab.setConditionComparators(comparators);
    

    Help others in this forum as I help you.

     

Log in to post a comment.