MyFaces'  JspTilesViewHandlerImpl   &   dynamic component rendering

Hi,
First -- if you're on the myfaces user list, this is a repeat post. Skip!
Second, I don't mean to offend the RI dev guys with this myfaces post!
Has anyone dynamically rendered JSF components while using myfaces� JspTilesViewHandlerImpl view handler?
I have a WebGalileoFaces tabbed panel component. Its listener attaches sub-tabs to it dynamically. The rendering works without using the view handler above. Yet, when I use the myfaces handler, I get an NPE. My listener impl is below.
The view handler appears to cut off access to the actual UIViewRoot so the form cannot be found. I�ve tried a couple calls directly to the handler using context.getApplication().getViewHandler() yet, none of the methods gave me access to it (well, that I could figure out).
Ideas anyone?
Thanks
Lorinda
    public void processTabSelected(TabSelectedEvent event)
            throws AbortProcessingException {
        context = FacesContext.getCurrentInstance();
        // who sent the event?
        FacesTabbedPanel eventSource = (FacesTabbedPanel) event.getSource();
        UIComponent tabbedPanel = event.getComponent();
        String tabName = tabbedPanel.getId();
        String formId = tabbedPanel.getParent().getId();
        LOG.info("Tab selected:   " + tabName);
        LOG.info("Parent form:   " + formId);
     UIForm form = (UIForm) context.getViewRoot().findComponent(formId);             
NPE HERE ----  UIPanel panel =  (UIPanel) form.findComponent("childTabsGrid");
// NOTE:  the childTabsGrid must be used to attach children.
        if (panel == null) {
            LOG.error("PanelGrid   'childTabsGrid'   could not be found.  ");
        } else {
//  ATTACH SUB TABS
            // clear the childTabsGrid to prevent stacking child tabs      
            panel.getChildren().clear();
          ListSelectionModel selectionModel = eventSource.getListSelectionModel();
           UIComponent newTabbedPanel = createSubTabbedPanel(selectionModel);
           panel.getChildren().add(newTabbedPanel);
        }

Yes, i have created a complete portal page using a custom portal tab and JspTilesViewHandlerImpl with all components dynamically rendered and inserted by tiles: dynamic partal tabs, i18n implementation for mesages and SelectItems, dynamically change company layout with its own look-and-feel if a requested information belongs to a company (division, department, branch office, etc). There is some abnormality and how i go around to get the solution up and running. I will post the details in myfaces dev list in the next couple days.
In essence, the navigation page dispatched by JspTilesViewHandlerImpl works properly with all Jsf UI components. However, within this tile definition and its own layout, any fragment inserted by tiles such as portlets in the left/right columns and the display fragment does not have jsf <h:commandButton> and <h:commandLink> correctly picked up the action while <h:outputLink> properly linked to the intended page.
I temporarily solve the issue to get the portal up and running. However, this is only a temporary solution since it will severly limit a complete integration of Jsf+Tiles. A complete solution needs to be addressed, which i thing myfaces developers can quickly patch it.
BaTien
DBGROUPS

Similar Messages

  • MyFaces Tree Component Rendering

    Hi all,
    I am adding myfaces client tree Component to my panel.Its not rendering and its throwing exception.
    anyhelp would be appriciated
    Thanks
    Sudha

    Hi,
    I am trying to render myfaces client tree on faces portlet using RAD 6.0. As RAD does not support JSF 1.1, I have commented DOCTYPE from faces-config.xml in tomahawk.jar file.
    Root of the tree is getting displayed without "+" sign. And when I click on it,
    javascript error "Object Expected" occurs.
    I am not able to figure out the problem from last 2 days. So, Please help me out if you can.
    Thanks in anticipation.
    ~Madhura

  • Dynamic component in WHERE-condition for LOOP AT ?

    i want to make
    loop at itab where  (dynamic field) > 0
    how i can make it...
    Edited by: Thomas Zloch on Mar 2, 2010 2:47 PM

    I thought it's funny.
    And the problem can maybe be solved by using a completely dynamic where-condition, not just a dynamic component.
    http://help.sap.com/abapdocu_70/en/ABAPLOOP_AT_ITAB_COND.htm#!ABAP_ADDITION_4@4@
    Thomas
    P.S. meaningless subject enhanced, and please take the time to say hi and please when asking for help. Thanks.

  • Dynamic list renderer - ArrayIndexOutOfBounds on next() (bug?)

    I was inspired by "HOWTO: Use BC4J HTML Field Renderers" - so I made dynamical list renderer which executes query and shows one value from foreign table:
    public class DynamicListFieldRenderer extends ReadOnlyField
    with method:
    public String renderToString(Row row) {
    AttributeDef aDef = getAttributeDef();
    String sQuery = (String)aDef.getProperty("LIST_QUERY");
    String sDisplayAttribute = (String)aDef.getProperty("LIST_DISPLAY_COLUMN");
    String sDataAttribute = (String)aDef.getProperty("LIST_DATA_COLUMN");
    Object obj = row.getAttribute(aDef.getName());
    if (obj == null) return "";
    String value = obj.toString();
    /* change query - add WHERE clause */
    String orderBy = "";
    StringBuffer sbQuery;
    int whereIdx = sQuery.toUpperCase().indexOf("WHERE");
    int orderByIdx = sQuery.toUpperCase().indexOf("ORDER BY");
    if (orderByIdx != -1) {
    orderBy = sQuery.substring(orderByIdx);
    sbQuery = new StringBuffer(sQuery.substring(0,orderByIdx));
    else
    sbQuery = new StringBuffer(sQuery);
    /* zpracuj WHERE */
    if (whereIdx == -1) sbQuery.append(" WHERE ");
    else sbQuery.append(" AND ");
    sbQuery.append("(");
    sbQuery.append(sDataAttribute); sbQuery.append("="); sbQuery.append("'"); sbQuery.append(value);
    sbQuery.append("') ");
    /* zpracuj ORDER BY */
    sQuery = sbQuery.append(orderBy).toString();
    /* make dynamical ViewObject */
    qView = ds.getApplicationModule().createViewObjectFromQueryStmt(null, sQuery);
    String returnValue = "";
    Row foundRow = qView.next();
    if (foundRow != null) {
    Object displayObj = foundRow.getAttribute(sDisplayAttribute);
    if (displayObj != null) returnValue = displayObj.toString();
    /* delete dynamical ViewObject */
    ((ViewObject)qView).remove();
    return returnValue;
    When I use this renderer for one attribute, everything is OK. But when I use it for two attributes, there appears a problem.
    Scenario (point 1. is not necessary):
    1. Browse.jsp for my table with special renderers - OK
    2. Browse.jsp for foreign table - OK
    3. Browse.jsp for my table with special renderers -> Exception:
    JBO-29000: Unexpected exception caught: java.lang.ArrayIndexOutOfBoundsException, msg=0
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.ArrayIndexOutOfBoundsException, msg=0 void oracle.jbo.JboException.(java.lang.Throwable) JboException.java:339 oracle.jbo.Row oracle.jbo.server.ViewRowSetIteratorImpl.next() ViewRowSetIteratorImpl.java:1292 oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.next() ViewRowSetImpl.java:2206 oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.next() ViewObjectImpl.java:4165 java.lang.String or.jbo.html.DynamicListFieldRenderer.renderToString(oracle.jbo.Row) DynamicListFieldRenderer.java:79 int or.jbo.html.jsp.datatags.RenderValueTag.doStartTag() RenderValueTag.java:51 void dt.DataTableComponent._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) DataTableComponent.jsp:128
    So the problem is when I call method ViewObjectImpl.next().... (see above inside method renderToString())
    Exception is throwed inside oracle class - so I have no idea, where's the problem...
    Can anybody help me?
    Thank you for any comments
    Jan Pechanec

    The whole stack trace (I found I missed "Detail 0").
    Jan Pechanec
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.ArrayIndexOutOfBoundsException, msg=0
         void oracle.jbo.JboException.(java.lang.Throwable)
              JboException.java:339
         oracle.jbo.Row oracle.jbo.server.ViewRowSetIteratorImpl.next()
              ViewRowSetIteratorImpl.java:1292
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.next()
              ViewRowSetImpl.java:2206
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.next()
              ViewObjectImpl.java:4165
         java.lang.String or.jbo.html.DynamicListFieldRenderer.renderToString(oracle.jbo.Row)
              DynamicListFieldRenderer.java:79
         int or.jbo.html.jsp.datatags.RenderValueTag.doStartTag()
              RenderValueTag.java:51
         void dt.DataTableComponent._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              DataTableComponent.jsp:128
         void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpJsp.java:119
         void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
              JspPageTable.java:302
         void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:407
         void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:328
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpServlet.java:336
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:684
         void com.evermind.server.http.ServletRequestDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:108
         void com.evermind.server.http.GetParametersRequestDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              GetParametersRequestDispatcher.java:94
         void com.evermind.server.http.EvermindPageContext.include(java.lang.String)
              EvermindPageContext.java:287
         int oracle.jbo.html.jsp.datatags.ComponentTag.doStartTag()
              ComponentTag.java:75
         void dt.BrowseDT._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              BrowseDT.jsp:44
         void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpJsp.java:119
         void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
              JspPageTable.java:302
         void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:407
         void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:328
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpServlet.java:336
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:684
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
              ServletRequestDispatcher.java:269
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
              HttpRequestHandler.java:735
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
              HttpRequestHandler.java:243
         void com.evermind.util.ThreadPoolThread.run()
              ThreadPoolThread.java:64
    ## Detail 0 ##
    java.lang.ArrayIndexOutOfBoundsException: 0
         oracle.jdbc.ttc7.NonPlsqlTTCColumn[] oracle.jdbc.ttc7.TTCAdapter.createNonPlsqlTTCColumnArray(oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, boolean)
              TTCAdapter.java:256
         oracle.jdbc.ttc7.NonPlsqlTTCDataSet oracle.jdbc.ttc7.TTCAdapter.createNonPlsqlTTCDataSet(oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, boolean)
              TTCAdapter.java:231
         void oracle.jdbc.ttc7.TTC7Protocol.doOall7(byte, byte, int, byte[], oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int)
              TTC7Protocol.java:1437
         int oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(oracle.jdbc.dbaccess.DBStatement, byte, byte[], oracle.jdbc.dbaccess.DBDataSet, int, oracle.jdbc.dbaccess.DBDataSet, int)
              TTC7Protocol.java:887
         void oracle.jdbc.driver.OracleStatement.doExecuteQuery()
              OracleStatement.java:2262
         void oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout()
              OracleStatement.java:2459
         int oracle.jdbc.driver.OraclePreparedStatement.executeUpdate()
              OraclePreparedStatement.java:435
         java.sql.ResultSet oracle.jdbc.driver.OraclePreparedStatement.executeQuery()
              OraclePreparedStatement.java:375
         void oracle.jbo.server.ViewUsageHelper.createViewAttributeDefImpls(oracle.jbo.server.ViewRowSetImpl)
              ViewUsageHelper.java:161
         void oracle.jbo.server.ViewObjectImpl.initViewAttributeDefImpls()
              ViewObjectImpl.java:3987
         int oracle.jbo.server.ViewObjectImpl.getAttributeCount()
              ViewObjectImpl.java:2654
         void oracle.jbo.server.ViewRowSetImpl.ensureStorage()
              ViewRowSetImpl.java:3090
         void oracle.jbo.server.ViewRowSetImpl.execute(boolean, boolean)
              ViewRowSetImpl.java:497
         void oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed()
              ViewRowSetIteratorImpl.java:2004
         oracle.jbo.Row oracle.jbo.server.ViewRowSetIteratorImpl.next()
              ViewRowSetIteratorImpl.java:1238
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.next()
              ViewRowSetImpl.java:2206
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.next()
              ViewObjectImpl.java:4165
         java.lang.String or.jbo.html.DynamicListFieldRenderer.renderToString(oracle.jbo.Row)
              DynamicListFieldRenderer.java:79
         int or.jbo.html.jsp.datatags.RenderValueTag.doStartTag()
              RenderValueTag.java:51
         void dt.DataTableComponent._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              DataTableComponent.jsp:128
         void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpJsp.java:119
         void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
              JspPageTable.java:302
         void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:407
         void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:328
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpServlet.java:336
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:684
         void com.evermind.server.http.ServletRequestDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:108
         void com.evermind.server.http.GetParametersRequestDispatcher.include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              GetParametersRequestDispatcher.java:94
         void com.evermind.server.http.EvermindPageContext.include(java.lang.String)
              EvermindPageContext.java:287
         int oracle.jbo.html.jsp.datatags.ComponentTag.doStartTag()
              ComponentTag.java:75
         void dt.BrowseDT._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              BrowseDT.jsp:44
         void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpJsp.java:119
         void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
              JspPageTable.java:302
         void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:407
         void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
              JspServlet.java:328
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              HttpServlet.java:336
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
              ServletRequestDispatcher.java:684
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
              ServletRequestDispatcher.java:269
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
              HttpRequestHandler.java:735
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
              HttpRequestHandler.java:243
         void com.evermind.util.ThreadPoolThread.run()
              ThreadPoolThread.java:64

  • How to get jsp PageContext in custom component renderer

    Hi,
    How to find PageContext(javax.servlet.jsp.PageContext) form within the custom component renderer class?
    Please help?
    Thanx & Regards
    Milind

    Strictly you're looking which URL has invoked the new request? With other words, you want the referrer?
    If so, doString referrer = request.getHeader("referer"); // Yes, with the legendaric misspelling.Be careful with this, the client has full control over what he/she sends with the headers, so also the referrer. It might be null or changed while you didn't expect that. If you want to be safe, you may consider to send the current URL as a hidden parameter along with the request.

  • Web Dynpro Abap - Dynamic Component Usage - parameters

    Hi,
    I have a this scenario:
    by a main WD component (COMP_MAIN) I have to call others WD components (COMP_1, COMP_2, COMP_3,...)
    I use Dynamic Component Usage
    l_view_controller_api->prepare_dynamic_navigation(
                        source_window_name          = 'W_SC'
                        source_vusage_name          = 'V_SC_USAGE_1'
                        source_plug_name            = 'TO_USAGE'
                        target_component_name       = l_wa_cmp_usages-used_component
                        target_component_usage      = l_wa_cmp_usages-component_usage_name
                        target_view_name            = ls_cmp_usage_group-interface_view
                        target_plug_name            = ls_cmp_usage_group-inbound_plug
                        target_embedding_position   = l_wa_cmp_usages-embedding_position ).
    l_wa_cmp_usages-component_usage->create_component( l_wa_cmp_usages-used_component ).
    I ask :
    is possible to write context nodes of COMP_MAIN into COMP_x?
    If yes, how can I do that?
    Thank you
    Al

    Hi,
    Please go through below pdf document which will help in understanding the componenet usage in webdynpro ABAP.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2e71ce83-0b01-0010-11a4-98c28a33195f
    Hope it will help you.
    Raghu

  • Dynamic text rendering in Cp4

    I'm having an issue with an embedded AS2 SWF that spawns a MovieClip containing a dynamic text field populated with ActionScript. When I publish/preview the Captivate movie with externalized animations, the dynamic text renders fine. However, when I do NOT externalize animations, the dynamic text appears garbled.
    I'd go ahead and externalize animations in this project, but there are other embedded SWFs in the project that work correctly only when they are not externalized.
    Anyone have experience with this or a similar issue?

    I just had a similar problem and fixed it by embedding the font into the Flash SWF and also embedding uppercase and lower case characters.
    Not sure why this was needed since I never had to do that with Captivate 3, but that was the only thing that corrected the problem.
    /Michael
    Click here to visit the www.captivate4.com blog

  • Customizing ADF component rendering

    Hi,
    I'm trying to override some ADF component rendering in order to provide some clients with a simple application appearance. To do so, in faces-config.xml:
    <pre>
    <render-kit>
    <render-kit-id>oracle.adf.core</render-kit-id>
    <renderer>
    <component-family>oracle.adf.Panel</component-family>
    <renderer-type>oracle.adf.Page</renderer-type>
    <renderer-class>com.mycompany.web.faces.renderer.MyPanelPage</renderer-class>
    </renderer>
    </render-kit>
    </pre>
    I define MyPanelPage class that extends javax.faces.render.Renderer class. I override encodeBegin, encodeEnd, encodeChildren and getRendersChildren methods and it works fine. However, I run into a problem when I want to make the renderer work "in default mode" (the way it ussually works) under certain condition. I suppose that there might be a special render class used by "oracle.adf.core" render kit to render panelPage component, which determines the location of every facet. Anybody know which is this class.
    Thanks in advance.
    Luis Serrano.

    Hi,
    check PageLayoutRenderer
    Frank

  • Problem creating dynamic component children with RestoreState of JSF 1.2

    Hello everybody,
    With JSF 1.1, it was possible to create children of a component dynamically in the constructor of a component.
    But now, with JSF 1.2, there is an issue with the RestoreState as a new instance of each component of the tree is created.
    Does someone has an idea on how to solve this issue?
    One possibility is to create the children not in the component, but in the renderer of the component.
    But I'm not really convinced of this solution...
    Thank you in advance.
    bgOnline

    You can create a new component dynamically in the method setParent() according to the following code snippet:
    public void setParent(UIComponent parent) {
    if (parent != null) {
    List<UIComponent> children = parent.getChildren();
    Application application = FacesContext.getCurrentInstance().getApplication();
         componentLabel = (HtmlOutputLabel) application
         .createComponent(HtmlOutputLabel.COMPONENT_TYPE);
         componentLabel.setTransient(true);
         children.add(componentLabel);
         } else if (parent == null) {
         if (componentLabel != null) {
         List<UIComponent> children = getParent().getChildren();
              children.remove(componentLabel);
              super.setParent(parent);
         }

  • Dynamic component creation and population

    I'm trying to create a page such that , based upon some backing bean, a different component would be rendered and populated based upon a property in that bean.
    For instance
    public class MyBean {
      private int type;
      private String data;
      getters/setters...
    }Say the type can be sex (a radio button component), level of user (selectOne with the values of gold, platinum and silver) or location (a textfield) (these are an example of the type of data--there are many more entries that are of one of these three component types that need to be handled). I have a list of these beans that could go in a dataTable or whatnot, so I'd like to be able to dynamically generate the components. Does anyone have any suggestions or input?
    My guess is a component will need to be returned from the bean that describes how it should be rendered--I'm just looking for a jumpstart on the best way to do this, see if anyone has code snippets, references, etc.
    TIA.
    P.S. Apologies if this is posted twice...some errors when I tried to post this the first time...

    So, are you saying to have all three types of components in a given line of the datatable, wire each up to do have the appropriate values (male/female or silver/gold/platinum) and then have a rendered argument read a bean property such as isRadio, isSelect or isText and just render the appropriate one?

  • Dynamic ColumnSet rendering as 'overlaid' instead of 'stacked'

    Hi all...
    I'm struggling to get a stacked column set working within a cartesian chart. The chart object and horizontal axis are defined statically within mxml code, and the column set, column series, vertical axis, and other vertical axes, axis renderers, and line/plot series components are all defined dynamically in actionscript.  I've seen several examples online, and I appear to be doing everything the same way, yet when I specify my ColumnSet object's type attribute to 'stacked' it renders all the column series data as overlaid instead of stacked.  I can specify 'clusterd' dynamically (leaving everything else the same) and it will re-render correctly as clustered, but I've tried several different 'workarounds' to try and force stacked to occur without any luck.
    Has anyone else seen this sort of prolbem before?  I'm using Flex 3.5 and run inside Flash Player 10.
    I've been struggling to get this working for several days now, so any help would be appreciated.
    Here's a snippet of the MXML definitions:
                        <mx:CartesianChart id="myColumnChart"
                                        doubleClickEnabled="true"
                                        width="100%"
                                        height="100%"
                                        paddingTop="2"
                                        paddingRight="2"
                                        styleName="ColumnChart"
                                           showDataTips="true"
                                           dataTipFunction="dTips">
                            <mx:seriesFilters>
                                <mx:Array/>
                            </mx:seriesFilters>
                            <mx:horizontalAxis>
                                <CommonCtrlElem:EspDateTimeAxis autoAdjust="true" baseAtZero="false"
                                                  displayLocalTime="false" 
                                                  displayName="{myTSField}"
                                                  dataUnits="{myTSPrecision}"
                                                  labelUnits="{myLabelPrecision}"
                                                  maximum="{maxHorAxisVal}"
                                                  minimum="{minHorAxisVal}" 
                                                  />
                            </mx:horizontalAxis>
                            <mx:horizontalAxisRenderers>
                                <mx:AxisRenderer axis="{myColumnChart.horizontalAxis}"
                                                 cachePolicy="off" canDropLabels="false" canStagger="false"/>
                            </mx:horizontalAxisRenderers>
                           <!-- The series data for this chart will be
                                  determined by the updateChart() function
                            -->
                        </mx:CartesianChart>
    The overall chart 'series' is built as an Array object, with the first element being a ColumnSet containing an array of ColumnSeries elements as the ColumnSet object's 'series' element value.  Then there are other Plot/Line series elements appended to the top chart's 'series' array before it gets tied to the chart object as its new 'series' component value.
    There is alot of other stuff going on within the actionscript, which is why I have just summarized the order of it above rather than include it.  As I mentioned previously, it works fine if I specify the ColumnSet's type attribute to 'clustered', so I know all the data is there and getting set up properly...it's just showing up as 'overlaid' instead of 'stacked' if I specify 'stacked.'
    Thanks in advance,
    JJ

    I should add....
    If I define my same components statically in mxml, the stacked chart renders fine.  It only appears to be a problem if the series is built dynamically.
    Here's what the series component equivalent looks like in mxml (where it stacks just fine):
         <mx:series>
              <mx:Array>
                   <mx:ColumnSet type="stacked">
                        <mx:series>
                             <mx:Array>
                                  <mx:ColumnSeries .../>
                                  <mx:ColumnSeries .../>
                                  <mx:ColumnSeries .../>
                             </mx:Array>
                        </mx:series>
                   </mx:ColumnSet>
                   <mx:LineSeries ..../>
                   <mx:LineSeries..../>
                   <mx:PlotSeries.../>
              </mx:Array>
         </mx:series>
    Thx,
    JJ

  • Controlling custom component rendering

    As I'm writing my own custom components, I've come across some behaviorisms of JSF that don't quite make sense to me. I thought I'd ask the group, and see if someone can clarify it.
    Let's say I've got a JSP with the following components on it:
    <myfaces:comp1>
    <myfaces:comp2>
    <myfaces:comp3/>
    </myfaces:comp2>
    </myfaces:comp1>
    Let's assume that the UIComponent representing comp2 contains the following snippets:
    public boolean getRenderChildren() {
    return true;
    public void encodeBegin(FacesContext context) throws IOException {
    // render something here....
    public void encodeChildren(FacesContext context) throws IOException {
    Iterator iter = this.getChildren();
    while (iter.hasNext()) {
    UIComponent child = (UIComponent)iter.next();
    child.encodeBegin(context);
    if (child.getRenderChildren()) {
    child.encodeChildren(context);
    child.encodeEnd(context);
    public void encodeEnd(FacesContext context) throws IOException {
    // render something here....
    All the other components return false for getRenderChildren();
    During the Rendering Phase, I find that comp3
    is actually rendered twice.
    This is an oversimplification of the code I was experimenting with, but what puzzled me was the fact that whatever class is traversing the various components during Rendering Phase does not seem to check whether a component is going to render its children itself, and as it comes to that child component (in this case, comp3), it renders it anyhow. Then when comp2's encodeChildren() method is called, it too renders comp3.
    I suspect I may misunderstand how these methods are used..
    Rob

    During the Rendering Phase, I find that comp3
    is actually rendered twice.
    This is an oversimplification of the code I was
    experimenting with, but what puzzled me was the fact
    that whatever class is traversing the various
    components during Rendering Phase does not seem to
    check whether a component is going to render its
    children itself, and as it comes to that child
    component (in this case, comp3), it renders it anyhow.
    Then when comp2's encodeChildren() method is called,
    it too renders comp3.Yes, Suns reference implementation does not seem to check whether a component's parent has set the "encodeChildren" attribute to true.
    Well, the open source implementation "MyFaces" (http://sourceforge.net/projects/myfaces/) does this.
    What's not so clear is the following question:
    When a component is rendered by it's parent and itself has the "encodeChildren" attribute set to false, should children of this component automatically be rendered, or not? In other words: Whenever a component has the "encodeChildren" attribute set to true, is it responsible for rendering all children and grandchildren (and grand-grandchildren...)?
    The final Specification should state this clearly, I think.
    Manfred

  • How to get values from dynamic component?

    Hi:
    I am displaying dynamic components based on user selection, where InputText and OutputText display properly. But now i want to read that component value on
    button click. Can any body help me in that?
    Source code is as follow,
    text.xhtml
    *<code>*
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
         xmlns:h="http://java.sun.com/jsf/html"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:ui="http://java.sun.com/jsf/facelets"
         xmlns:p="http://primefaces.prime.com.tr/ui"
         xmlns:ice="http://www.icesoft.com/icefaces/component"
         template="/WEB-INF/includes/templates/page-template.xhtml">
         <ui:define name="page-content">
              <div class="exampleBox splashContainer"
                   style="background: url('./xmlhttp/css/rime/css-images/contentContainer_bg.gif') top repeat-x">
              <table>
                   <tr>
                        <td colspan="2">
                        <h2>Set Request Process Flow</h2>
                        </td>
                   </tr>
                   <tr>
                        <td colspan="2"><ice:messages style="color:red;" /></td>
                   </tr>
                   <tr>
                        <td><ice:outputText value="Request Type*"></ice:outputText></td>
                        <td><ice:selectOneMenu value="#{offlinereq.requestno}"
                             valueChangeListener="#{offlinereq.requestChange}"
                             partialSubmit="true">
                             <f:selectItem itemValue="" itemLabel="--Select--" />
                             <f:selectItems value="#{offlinereq.requests}" />
                        </ice:selectOneMenu></td>
                   </tr>
                   <tr>
                        <td>*<h:panelGroup binding="#{offlinereq.panelBind}">*
    *                    </h:panelGroup>*</td>
                   </tr>
                   <tr>
                        <td colspan="4"><ice:commandButton value="Add"
                             actionListener="#{offlinereq.add}" /> <ice:commandButton
                             value="Update" actionListener="#{offlinereq.update}" /> <ice:commandButton
                             value="Delete" actionListener="#{offlinereq.delete}" /> <ice:commandButton
                             value="Reset" actionListener="#{offlinereq.reset}" /></td>
                   </tr>
              </table>
              </div>
         </ui:define>
    </ui:composition>
    *</code>*
    bean.java
    *<code>*
    //ValuechangeListener
         public void requestChange(ValueChangeEvent e){
              System.out.println("Select Value is::"+e.getNewValue()+"::"+userid);
              Connection conn=null;
              try {
                        if(!panelBind.getChildren().isEmpty())
                             panelBind.getChildren().clear();
                   Class.forName ("oracle.jdbc.OracleDriver");
                   conn = JdbcUtil.getConnection();
                   Statement stmt = conn.createStatement();
                   String sql="select * from IB_CUSTOMER_REQUEST_PARAMETERS where IB_REQMAST_SRNO='"+e.getNewValue()+"'";
                   ResultSet rs = stmt.executeQuery(sql);     
                   String out="out";
                   int i=1;
                   String ii;
                   while(rs.next()) {          
                        FacesContext facesContext = FacesContext.getCurrentInstance();
              Application application = facesContext.getApplication();
              HtmlPanelGrid grid = (HtmlPanelGrid)application.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
                   grid.setColumns(2);
              HtmlOutputText output = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
                   output.setValue(rs.getString("IB_CUSTREQSTPARA_NAME"));
                   ii=Integer.toString(i);
                   output.setId("a"+ii.toString());
                   System.out.println("id"+ii);
                   HtmlInputText input = (HtmlInputText)application.createComponent(HtmlInputText.COMPONENT_TYPE);
                   //input.setValue(rs.getString(1));
                   grid.getChildren().add(output);
                   grid.getChildren().add(input);
                   panelBind.getChildren().add(grid);
                   i++;
              catch(Exception e1)
                   System.out.println(e1);
         //Action listeners
         public void add(ActionEvent e)
              System.out.println("ADD");
    *</code>*
    Thank You,
    Anup

    Where are you stuck? find the component (UIComponent.findComponent) in the JSF component tree by its ID and get the value from it. This article might help:
    http://illegalargumentexception.blogspot.com/2009/02/jsf-working-with-component-ids.html
    Note: the code tag is \                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Dynamic Item Renderer

    Hello everyone,
    I used Catalyst to design my interaction and navigation and then use Flash Builder to add all my logic. Everything works as expected but i have one issue regarding my item renderer data list.
    Here is my issue : i set up an itemRenderer for a dynamic calendar filled by a database.
    Every schedule contain one to four workshops (data.ws, data.ws2. data.ws3 data.ws4) and are separated by a static bar (footerGroup)
    So, i am trying (since days now) to make this separate bar dynamic so there are no blank gap between repeated two schedules if there are less than 4 workshops.
    I reckon i need to code an actionscript "if statement" for the bar to move its Y according to workshops.
    Thanks for your help and guidance guys,
    i have a designer background and have some hard time to develop some special features
    End-user view without the dynamic bar:
    here's my Flash Builder code :
    <?xml version="1.0" encoding="utf-8"?>
    <s:ItemRenderer xmlns:s="library://ns.adobe.com/flex/spark"
                        xmlns:fx="http://ns.adobe.com/mxml/2009"
                        xmlns:d="http://ns.adobe.com/fxg/2008/dt"
                        xmlns:flm="http://ns.adobe.com/flame/2008"
                        autoDrawBackground="false"
                        xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
         <![CDATA[
         ]]>
    </fx:Script>         
         <s:states>
              <s:State name="normal"/>
         </s:states>
         <s:RichText id="time"
                        x="5" y="20"
                        color="#2B4381" fontFamily="Arial" fontSize="20" tabStops="S0 S50 S100 S150"
                        text="{data.time}"/>
         <s:RichText id="subject"
                        x="160" y="20"
                        color="#2B4381" fontFamily="Arial" fontSize="20" tabStops="S0 S50 S100 S150"
                        text="{data.subject}"/>
         <s:RichText id="workshop"
                        x="5" y="60"
                        color="#000000" fontFamily="Arial" fontSize="20" fontWeight="bold" tabStops="S0 S50 S100 S150"
                        text="{data.ws}"/>
         <s:RichText id="workshop2"
                        x="5" y="100"
                        color="#2B4381" fontFamily="Arial" fontSize="20" tabStops="S0 S50 S100 S150"
                        text="{data.ws2}"/>
         <s:RichText id="workshop3"
                        x="5" y="140"
                        color="#2B4381" fontFamily="Arial" fontSize="20" tabStops="S0 S50 S100 S150"
                        text="{data.ws3}"/>
         <s:RichText id="workshop4"
                        x="5" y="180"
                        color="#2B4381" fontFamily="Arial" fontSize="20" tabStops="S0 S50 S100 S150"
                        text="{data.ws4}"/>
         <s:Group flm:knockout="false" rotation="90" x="520" y="232.3"
                    id="footerGroup">
              <s:Path data="M 0.199 0.952 C 0.119 -0.504 -0.109 1.737 0.062 0 C 0.205 0.196 0.311 0.479 0.199 0.952 Z" height="1.124" width="0.246" winding="nonZero" x="3.022" y="0">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 3.021 388.311 C 2.105 383.619 3.03 377.439 2.447 372.301 C 2.408 371.697 2.948 372.455 2.828 371.098 C 2.116 366.115 2.541 358.266 3.089 352.197 L 3.23 352.565 C 3.333 351.41 2.864 349.998 2.929 348.773 C 3.023 348.765 3.063 349.166 3.193 348.883 C 2.908 348.575 3.06 346.668 2.849 346.149 C 2.96 345.666 3.185 345.712 3.31 345.087 L 2.987 344.386 C 2.22 342.438 3.04 339.652 2.643 336.992 C 2.719 337.121 2.777 337.386 2.849 337.174 C 2.384 332.905 2.471 327.563 2.299 322.79 C 2.413 322.98 2.62 323.155 2.749 322.877 C 2.409 322.641 2.324 321.167 2.257 319.888 C 2.606 319.312 1.938 317.694 2.132 316.192 L 2.208 316.321 C 1.842 315.213 2.419 314.677 1.98 313.777 L 2.255 313.072 C 1.762 312.587 2.51 311.468 2.26 310.552 L 2.158 310.581 C 2.039 309.718 2.286 309.268 2.203 308.466 L 2.26 308.39 C 2.132 306.513 2.404 305.421 2.02 305.468 C 2.328 304.809 2.161 307.288 2.609 306.253 C 2.213 300.08 2.291 293.713 2.283 287.497 C 2.437 286.792 2.484 286.342 2.631 286.184 C 2.553 285.563 2.559 283.845 2.362 283.281 C 2.371 283.49 2.559 282.88 2.578 282.551 C 2.723 281.421 2.156 281.315 2.328 280.074 C 2.43 280.568 2.554 280.736 2.697 280.57 C 2.397 279.513 2.445 278.096 2.348 276.844 C 2.413 277.038 2.451 277.34 2.572 277.293 C 2.232 275.923 2.643 274.796 2.429 273.597 L 2.65 274.044 C 2.92 272.112 2.186 273.475 2.345 271.804 C 2.416 272.205 2.503 272.063 2.594 272.136 C 2.19 270.577 2.324 268.057 2.186 266.503 C 2.217 266.596 2.278 266.57 2.278 266.57 C 2.227 264.877 2.353 263.105 2.178 261.244 C 2.275 260.566 2.719 261.466 2.637 259.673 C 2.191 259.738 2.454 256.631 1.95 257.687 C 2.022 256.155 2.19 253.732 2.039 252.712 C 2.208 253.4 2.583 251.967 2.62 253.24 L 2.89 252.277 C 3.072 252.421 2.829 253.268 3.058 252.962 C 3.04 252.324 2.864 250.466 2.936 249.896 C 2.664 248.714 2.154 247.629 2.097 245.716 C 2.271 246.615 2.589 245.205 2.665 245.814 L 1.812 243.146 C 1.792 242.511 2.163 243.009 2.047 242.089 C 1.929 242.135 1.856 241.734 1.76 241.455 C 1.812 241.215 1.65 238.808 2.09 238.531 C 2.26 238.248 2.179 239.567 2.337 238.862 C 2.333 237.688 2.181 237.636 2.175 236.46 L 2.233 236.437 C 2.299 235.662 2.047 234.15 1.804 234.993 C 1.792 235.533 2.068 234.788 1.94 235.588 C 1.686 235.041 1.615 233.676 1.611 232.499 C 1.68 232.9 1.798 232.852 1.922 233.013 C 1.577 231.434 1.469 229.759 1.324 227.994 C 1.115 227.967 1.704 228.652 1.594 228.912 C 1.883 226.651 1.183 224.242 1.606 222.361 C 1.642 222.67 1.31 222.526 1.369 222.505 C 1.394 221.415 1.697 221.466 1.586 220.757 C 1.762 220.685 1.528 219.863 1.474 219.133 C 1.346 218.755 1.56 218.943 1.58 219.579 C 1.43 218.562 1.158 214.486 1.416 212.135 C 1.299 212.181 0.985 210.69 0.998 210.15 L 1.272 210.361 C 1.436 209.867 1.249 208.55 1.483 208.459 C 1.15 207.304 1.767 212.907 1.511 211.345 C 1.739 210.939 1.073 209.168 1.447 209.504 C 1.436 208.419 1.129 207.365 1.385 206.328 C 1.341 206.628 1.765 207.209 1.746 206.333 C 1.697 204.787 1.615 205.894 1.523 204.64 L 1.411 203.854 C 1.143 203.804 1.447 202.474 1.148 203.048 C 1.369 202.857 1.012 200.804 1.455 200.962 L 1.804 201.177 C 1.779 200.51 1.436 200.084 1.283 199.56 C 1.314 199.472 1.385 199.296 1.441 199.33 C 0.907 199.223 1.486 197.736 1.073 196.942 C 1.259 195.542 1.091 193.385 1.423 192.724 C 1.261 191.647 1.07 190.665 1.183 189.438 C 1.234 189.684 1.249 190.018 1.364 190.087 C 1.521 189.316 1.381 189.126 1.294 188.421 C 1.373 188.579 1.606 186.88 1.795 186.022 C 1.636 184.954 1.347 185.322 1.172 185.214 C 1.699 184.236 0.832 182.193 1.31 180.969 C 1.383 181.34 1.569 182.531 1.701 181.64 C 2.227 180.662 1.313 179.668 1.565 178.093 L 1.129 178.479 C 1.399 177.776 0.874 176.159 1.319 176.319 C 1.162 175.792 1.465 174.46 1.038 174.635 C 1.399 172.047 0.82 168.337 1.586 166.747 C 1.513 166.376 1.587 165.449 1.367 165.639 C 1.13 166.255 1.537 166.5 1.376 166.73 C 1.363 166.396 1.246 166.325 1.187 166.289 C 1.284 165.484 1.314 164.852 1.67 165.611 C 1.933 163.821 0.944 163.764 1.112 161.484 C 1.288 161.587 1.354 161.414 1.326 160.747 L 1.024 159.482 C 1.095 158.009 1.426 158.645 1.724 158.608 C 1.674 157.821 1.687 156.858 1.465 156.499 L 1.84 155.543 C 1.569 156.242 1.659 154.895 1.587 154.525 L 1.659 154.895 C 1.787 154.751 1.709 153.839 1.671 153.377 C 1.486 153.488 1.411 154.418 1.357 154.925 C 1.225 154.523 1.256 153.896 1.101 153.362 C 1.394 153.539 1.31 152.078 1.341 151.453 C 1.404 150.735 1.078 150.643 1.088 150.434 C 1.24 150.415 1.113 149.262 1.326 149.821 C 1.376 150.066 1.179 150.381 1.313 150.786 C 1.426 150.313 1.691 150.368 1.498 149.385 C 1.352 148.646 0.919 149.574 1.103 148.173 C 1.177 148.54 1.294 148.607 1.399 148.895 L 1.552 147.579 L 1.284 147.522 C 1.352 147.345 1.376 147.468 1.411 147.388 C 1.13 146.994 1.324 145.38 1.008 145.082 C 0.979 144.419 1.193 143.685 1.223 143.051 L 1.247 143.173 C 1.404 142.398 1.301 141.37 1.12 140.72 L 1.179 140.754 C 1.2 140.331 1.158 139.333 1.001 138.801 C 1.202 137.734 2.01 138.444 1.674 137.262 C 1.664 136.179 1.183 135.564 1.012 135.999 C 1.193 134.053 0.757 131.84 1.172 130.035 C 1.064 129.754 0.996 129.932 0.932 129.354 C 1.038 126.494 0.616 123.315 1.141 121.039 C 1.254 121.867 1.41 121.094 1.56 121.077 C 1.322 120.393 1.809 120.254 1.399 120.009 C 1.158 120.076 1.041 120.009 0.943 120.813 C 0.813 119.107 0.813 116.513 1.038 115.566 C 0.927 116.04 0.853 115.672 0.78 115.301 C 1.166 115.423 1.223 114.165 1.088 113.213 L 0.853 113.08 L 1.095 112.459 C 1.019 112.094 0.602 112.056 0.827 111.112 C 0.919 111.062 1.012 111.007 1.078 110.833 C 0.886 109.85 0.56 108.46 0.76 107.393 L 1.101 106.518 C 1.064 106.062 0.857 105.291 0.76 106.096 C 0.966 104.271 0.991 103.098 1.288 102.52 C 0.566 99.378 0.537 94.817 0.588 91.165 L 0.763 91.275 C 0.928 90.293 0.457 90.764 0.579 90.08 C 0.746 90.397 0.943 89.333 1.148 90.104 C 1.334 88.699 0.844 88.294 0.763 87.382 C 0.533 87.242 0.912 88.116 0.619 87.94 C 0.537 87.783 0.799 85.997 0.45 85.779 C 0.587 85.427 0.844 85.701 0.985 85.892 L 0.815 85.034 C 1.223 83.985 1.545 87.424 2.047 86.322 L 1.993 85.532 C 2.357 84.776 2.404 87.622 2.53 85.638 C 2.357 84.776 1.851 84.042 1.697 84.809 C 1.6 83.016 0.865 83.979 0.894 82.051 C 1.099 81.525 0.943 83.595 1.23 83.223 C 1.512 82.315 1.073 81.402 1.172 80.594 C 1.041 81.491 0.687 80.733 0.623 80.153 C 0.789 79.174 0.954 80.791 0.99 79.401 C 0.789 79.174 0.637 77.897 0.497 79 C 0.04 78.498 0.623 77.557 0.269 76.801 C 0.592 76.349 1.012 78.23 1.173 76.703 C 0.863 76.946 0.752 74.822 0.294 75.629 C 0.382 75.031 0.626 74.968 0.815 75.402 C 1.007 74.55 0.251 73.332 0.865 73.051 L 0.549 72.758 C 0.651 72.489 0.73 72.107 0.9 71.67 C 0.906 70.919 0.47 69.246 0.949 69.314 C 0.9 69.073 0.921 67.355 0.592 68.018 C 0.39 69.086 0.832 69.246 0.386 69.842 C 0.75 69.086 0.338 68.301 0.216 67.684 L 0.4 67.583 C 0.328 67.216 0.369 66.369 0.169 66.139 C 0.274 66.422 0.4 66.273 0.445 65.982 L 0.164 65.596 C 0.023 64.104 0.658 65.243 0.576 63.791 L 0.795 64.896 C 0.748 64.652 1.012 64.158 0.924 63.462 C 0.667 63.191 0.358 62.685 0.159 62.452 C 0.047 61.633 0.449 62.085 0.185 61.278 L 0.494 62.334 C 0.579 62.495 0.919 61.623 0.912 60.529 C 0.822 59.83 0.452 58.745 0.311 59.848 C 0.306 59.298 0.464 58.529 0.651 58.965 C 0.562 57.721 0.375 59.129 0.216 58.057 C 0.387 57.618 0.631 56.25 0.879 55.426 L 1.308 56.545 L 1.313 55.802 C 1.657 56.765 1.575 55.313 1.938 55.857 C 1.994 55.348 1.871 54.731 1.776 54.24 C 1.195 55.729 0.982 52.574 0.452 53.007 C 0.306 50.968 1.741 51.731 0.912 49.606 C 0.773 49.954 0.37 48.953 0.523 50.237 C 0.581 48.97 -0.008 49.375 0.211 47.881 C 0.429 48.987 0.748 46.692 1.064 48.29 C 0.889 48.185 0.931 49.184 0.979 49.429 C 1.183 48.907 1.513 49.536 1.513 48.239 C 1.464 47.448 1.453 46.362 1.177 46.522 C 0.873 46.553 1.209 47.729 0.902 47.222 C 0.797 45.645 1.259 45.381 0.72 44.729 C 0.762 45.726 0.45 45.975 0.241 45.955 L 0.115 44.799 L 0.316 45.023 C 0.462 43.164 -0.049 44.474 0.005 42.675 L 0.403 41.83 C 0.746 42.259 0.251 44.448 0.809 44.127 C 0.832 42.957 0.549 42.569 0.692 41.467 L 0.804 42.29 C 0.822 41.87 1.563 41.454 1.13 39.786 C 0.961 38.925 0.931 39.559 0.721 39.537 C 0.658 37.658 0.445 37.097 0.412 35.887 C 0.82 36.136 0.452 33.748 0.869 35.085 C 0.631 35.699 0.654 38.416 1.043 39.081 C 1.527 38.397 0.974 40.557 1.465 40.958 C 1.476 39.453 1.952 39.526 2.263 39.284 C 2.286 38.866 2.154 38.46 2.105 38.211 C 1.812 38.034 1.816 38.581 1.513 38.612 C 1.594 36.932 1.43 35.313 1.143 34.386 C 1.289 33.824 1.582 34.002 1.611 34.667 C 1.523 32.667 1.563 30.531 1.652 28.63 C 1.173 29.859 1.54 26.513 1.141 27.351 C 1.033 28.369 0.692 29.243 0.478 28.681 C 0.509 28.046 0.687 28.702 0.79 28.437 C 0.528 27.626 1.209 27.178 0.797 26.382 C 0.951 28.209 1.381 26.737 1.756 27.072 C 1.545 25.755 2.022 27.129 2.022 25.825 C 1.814 24.514 1.65 22.9 1.569 21.442 C 1.924 19.609 1.575 16.799 1.56 15.163 C 1.751 14.306 2.175 14.886 2.249 13.958 C 2.24 12.866 1.792 14.766 1.985 13.151 L 2.069 13.307 C 1.972 12.817 2.357 10.345 1.748 9.868 L 2.208 10.366 C 2.25 10.065 2.144 9.786 2.095 9.537 C 2.245 9.524 2.381 9.173 2.479 9.663 C 2.796 8.667 2.429 7.571 2.416 6.488 L 2.144 7.185 C 1.931 5.331 2.201 4.09 2.105 2.295 L 2.372 2.35 L 2.213 1.282 C 2.471 1.543 2.637 0.564 2.421 0 L 3.072 2.774 C 2.916 3.545 2.752 1.932 2.489 2.416 C 2.26 2.827 2.333 4.486 2.589 4.754 C 2.618 4.119 2.559 4.09 2.463 3.596 C 2.834 3.387 2.819 4.352 3.066 4.829 C 3.052 4.495 3.164 4.022 3.047 3.95 C 3.227 4.604 3.256 5.264 3.264 6.353 C 3.119 5.616 3.035 6.754 2.929 6.475 C 3.256 6.562 3.356 7.603 3.264 8.95 C 2.887 9.91 3.508 11.477 3.403 13.037 C 3.072 12.404 2.807 11.595 2.674 10.647 C 2.509 11.627 2.683 11.736 2.517 12.718 C 2.763 13.193 3.14 13.531 3.291 14.808 L 3.047 14.878 C 3.172 16.035 3.533 16.035 3.464 17.509 C 3.345 20.034 3.345 22.632 3.314 24.56 L 3.071 24.632 C 3.592 25.705 3.263 28.204 3.494 29.648 C 3.26 32.104 3.726 34.981 3.306 36.239 C 3.494 40.574 3.678 44.363 3.588 48.852 L 3.234 48.096 C 3.494 48.9 3.03 48.62 3.083 49.409 C 3.365 48.501 3.45 50.503 3.667 51.059 C 3.391 53.058 3.692 55.625 3.939 57.397 L 3.696 57.466 C 4.153 59.256 3.752 61.395 3.678 63.626 C 3.576 63.882 3.347 64.285 3.375 64.95 C 3.768 66.16 3.74 66.793 3.986 68.568 C 3.986 69.865 3.889 71.97 3.736 73.287 C 4.289 78.164 3.935 83.145 4.267 88.214 L 3.982 88.579 C 4.594 93.494 4.038 99.538 4.352 103.733 L 3.863 103.328 C 3.714 104.644 3.991 106.326 4.338 105.99 C 4.188 107.31 4.575 109.281 4.173 110.12 C 4.083 111.467 4.399 111.769 4.465 112.89 C 4.279 115.588 4.322 116.589 4.413 119.133 L 4.443 118.501 C 4.336 118.223 4.129 118.197 4.096 118.831 C 4.234 119.781 3.966 122.322 4.549 121.377 C 4.213 124.092 4.823 127.711 4.369 130.354 C 4.528 130.13 4.558 130.797 4.666 131.076 C 4.674 133.459 4.347 135.966 4.619 137.865 C 4.54 138.243 4.347 137.262 4.331 138.233 C 4.393 138.808 4.54 138.243 4.629 138.953 C 4.927 142.814 4.322 146.771 4.399 150.279 C 4.707 156.521 4.552 163.031 4.603 169.011 L 4.486 168.943 C 4.933 170.944 4.027 173.641 4.701 175.238 C 4.59 175.712 4.648 177.046 4.423 176.695 C 4.739 178.289 4.125 181.158 4.527 183.464 C 4.537 183.253 4.513 183.131 4.464 182.886 C 4.205 185.214 4.558 187.269 4.324 189.726 C 4.273 189.477 4.237 189.022 4.12 188.949 C 3.895 189.899 4.615 191.199 4.05 191.719 C 4.054 192.264 4.334 192.107 4.317 191.773 C 4.096 197.153 4.458 202.896 4.587 208.495 C 4.249 212.506 3.635 208.739 4.056 211.904 C 3.948 212.164 4.272 212.092 4.155 212.135 C 4.313 213.359 3.525 214.043 3.82 214.892 C 4.167 214.541 4.014 215.458 4.225 215.482 C 4.001 217.937 3.687 218.428 3.951 220.364 L 3.768 220.219 C 4.284 222.488 4.008 225.118 4.603 227.033 C 4.712 239.549 5.041 251.545 5.11 263.748 C 4.997 275.81 5.263 287.619 4.947 299.869 C 4.469 302.738 4.481 302.953 4.676 306.105 C 4.598 305.977 4.58 305.78 4.507 305.991 C 4.9 306.147 4.545 308.21 4.92 308.51 C 4.846 313.039 4.955 317.21 4.957 321.87 C 4.915 321.133 4.594 320.764 4.619 321.64 L 4.871 322.554 L 4.76 322.704 C 4.818 323.304 5.013 323.956 5.139 323.337 C 5.479 335.042 4.691 346.557 4.787 358.021 C 4.623 360.742 4.773 364.616 4.853 367.576 C 4.33 376.342 3.906 384.244 4.272 393.151 C 4.272 393.151 3.256 391.988 3.021 388.311 Z" height="464.274" width="5.229" winding="nonZero" x="0" y="4.637" id="footer">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.565 0.015 C 0.369 0.328 0.261 1.347 0 0.534 C 0.184 0.433 0.39 -0.09 0.565 0.015 Z" height="0.992" width="0.565" winding="nonZero" x="2.694" y="3.177">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.224 0.443 C 0.282 0.479 0.144 0.832 0.112 0.918 C 0.097 0.583 -0.068 0.268 0.033 0 C 0.048 0.342 0.142 0.289 0.224 0.443 Z" height="1.084" width="0.239" winding="nonZero" x="1.011" y="34.817">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.335 2.472 C 0.16 2.367 0.021 0.878 0 0 L 0.335 2.472 Z" height="2.919" width="0.335" winding="nonZero" x="0.783" y="40.641">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.225 0.357 C 0.076 0.916 -0.004 0.762 0 0.008 C 0.093 -0.046 0.14 0.203 0.225 0.357 Z" height="0.818" width="0.225" winding="nonZero" x="0.172" y="50.798">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.199 0.02 C 0.203 0.559 0.101 0.827 0 1.089 C 0.15 1.07 -0.094 -0.159 0.199 0.02 Z" height="1.286" width="0.199" winding="nonZero" x="0.596" y="51.739">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.095 0.038 C 0.108 0.376 0.254 1.108 0.06 1.423 C 0.195 1.07 -0.162 -0.224 0.095 0.038 Z" height="1.681" width="0.159" winding="nonZero" x="0.192" y="68.345">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.219 0 C 0.207 0.211 0.176 0.298 0.224 0.542 C 0.144 0.931 0.016 0.521 0 0.194 L 0.219 0 Z" height="0.825" width="0.224" winding="nonZero" x="0.332" y="76.116">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.087 0.708 L 0 0 L 0.174 0.104 L 0.087 0.708 Z" height="0.836" width="0.174" winding="nonZero" x="1.167" y="215.937">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.192 0 C 0.301 0.705 0.028 0.49 0.001 0.608 C -0.017 -0.029 0.217 0.845 0.192 0 Z" height="0.718" width="0.219" winding="nonZero" x="1.072" y="278.409">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
              <s:Path data="M 0.005 0.215 L 0 0 L 0.359 0.071 L 0.005 0.215 Z" height="0.254" width="0.359" winding="nonZero" x="2.133" y="311.389">
                   <s:fill>
                        <s:SolidColor color="#202020"/>
                   </s:fill>
              </s:Path>
         </s:Group>
         <s:transitions>
              <s:Transition fromState="normal" toState="hovered" autoReverse="true">
                   <s:Parallel>
                        <s:Parallel target="{time}">
                             <s:Move duration="0" autoCenterTransform="true"/>
                             <s:Resize duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{subject}">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{workshop}">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{workshop2}">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{workshop3}">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{workshop4}">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                        <s:Parallel target="{footerGroup">
                             <s:Fade duration="0"/>
                        </s:Parallel>
                   </s:Parallel>
              </s:Transition>
         </s:transitions>
    </s:ItemRenderer>

    Wouldn't I then just get one image? Whereas what I want is if
    the value = 1, display 1 image. If the value = 2, display 2 images.
    Thus creating a bar of images.
    Im actually having trouble adding multiple images to the HBox
    in the itemRenderer.

  • Jsf datatable inside datatable component rendering problem.

    I am creating an online survey application using JSF with IceFaces component library. The survey can have any number of questions. Each question can be any one of the types checkbox, radio button, etc with multiple options.
    For this, I am using a datatable to dynamically add a question to the survey. Inside that datatable, I am using another datatable to add option to the survey.
    Now the problem is, if I keep on click on add question button, in the outer data table, question is being added without any issue. Once I click on inner data table to add a option to any of the added questions, I am able to add. But after that, if I click again on add question button, it is not working.
    This is my xhtml code:
    <ice:dataTable id="icePnlQuestionAdd" var="questAdd" value="#{createSurveyManagedBean.surveyQuestionList}">
    <ice:column>
    <table border="0" cellspacing="0" cellpadding="0">
    <tr>
    <th><ice:outputText value="Question English" style="white-space: nowrap;" /></th>                                        
    <td colspan="15">                              
    <ice:inputText id="QuestionEn" style="width:485px;" value="#{questAdd.questionEn}" />
    </td>
    </tr>
    <tr>
    <ice:dataTable id="icePnlOptionAdd" var="optionAdd" value="#{questAdd.surveyQuestionOptionList}">                               <ice:column>
    <th><ice:outputText value="Option " /></th>
    <td><ice:inputText id="OptionEn" value="#{optionAdd.optionEn}" /></td>
    </ice:column>
    </ice:dataTable>
    </tr>
    </table>
    </ice:column>
    </ice:dataTable>
    This is the add question method:
    public String addQuestion() {
    SurveyDTO addSurveyQuestionDTO = new SurveyDTO();          
    questionNum = surveyQuestionList.size();          
    addSurveyQuestionDTO.setQuestionNum(questionNum);
    surveyQuestionList.add(addSurveyQuestionDTO);
    return "createSurvey";
    This is the add option method:
    public String addOption() {
    FacesContext context = FacesContext.getCurrentInstance();          
    if (context.getExternalContext().getRequestParameterMap().get("questionNum") != null) {
    String questionNum = (String) context.getExternalContext().getRequestParameterMap().get("questionNum");
    int selectedQuestionNum = Integer.valueOf(questionNum);                    
    SurveyQuestionOptionDTO surveyQuestionOptionDTO = new SurveyQuestionOptionDTO();
    surveyQuestionList.get(selectedQuestionNum).getSurveyQuestionOptionList().add(surveyQuestionOptionDTO);
    return "createSurvey";
    }

    Bind the h:datatable in the jsp to UIDataTable component in your java code. Then when the action method is invoked, use DataTable.getWrappedObject() to get the model. Cast the model to whatever your type is (List, Array...) and then iterate through the model to process individual rows.

Maybe you are looking for