ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-245

Make UIInstruction tags be their own components

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-2.0.0.Alpha1
    • Fix Version/s: EE-2.0.0.Beta1
    • Component/s: Core Extensions
    • Labels:
      None
    • Environment:
      ICEfaces 2, both compat and regular
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration

      Description

      In regular JSF/Facelets, when an html tag, that is not a UIComponent tag, is encountered, it's encapsulated as a UIInstructions component, which affects the component tree hierarchy in a way that's not entirely obvious. Let's say you have a panelGrid, with an html tag as a child, and then inside that an actual component.

      <h:panelGrid columns="1">
          <center>
              <h:inputText .../>
          </center>
      </h:panelGrid>

      You might think that the <center> tag will be a component which is the only child of the <h:panelGrid>, and the parent of the <h:inputText>, but what will instead happen is that <h:panelGrid> will have 3 children: a UIInstructions child corresponding to the opening <center> tag, the <h:inputText>, and a UIInstructions child corresponding to the closing </center> tag.

      The h:panelGrid component will then render each if it's children into a separate <TD> tag, which will confuse the browser, since the starting <center> will be in a separate <TD> then the ending </center>. This is illustrated here: http://jira.icefaces.org/browse/ICE-5735

      In ICEfaces 1.8.x and before, we had code that specifically made the HTML tags become like components, instead of becoming UIInstructions, so that they would behave as expected. This jira is for replicating that functionality into ICEfaces 2.

      This is a jira for some of that previous work: http://jira.icefaces.org/browse/ICE-1092

      These are the relevant classes:

      com.icesoft.faces.facelets.UIXhtmlTagLibrary
      com.icesoft.faces.facelets.UIXhtmlTagDecorator
      com.icesoft.faces.facelets.UIXhtmlComponentHandler
      com.icesoft.faces.component.UIXhtmlComponent

        Issue Links

          Activity

          Mark Collette created issue -
          Ken Fyten made changes -
          Field Original Value New Value
          Salesforce Case []
          Fix Version/s 2.0.0 [ 10230 ]
          Ken Fyten made changes -
          Link This issue blocks ICE-5323 [ ICE-5323 ]
          Ken Fyten made changes -
          Salesforce Case []
          Fix Version/s 2.0-Beta [ 10231 ]
          Fix Version/s 2.0.0 [ 10230 ]
          Affects [Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration]
          Security Private [ 10001 ]
          Assignee Mark Collette [ mark.collette ]
          Ken Fyten made changes -
          Salesforce Case []
          Assignee Priority P2
          Ken Fyten made changes -
          Fix Version/s 2.0-Beta2 [ 10242 ]
          Fix Version/s 2.0-Beta1 [ 10231 ]
          Ken Fyten made changes -
          Salesforce Case []
          Assignee Priority P2 P3
          Ken Fyten made changes -
          Link This issue blocks ICE-5933 [ ICE-5933 ]
          Mark Collette made changes -
          Link This issue blocks ICE-5933 [ ICE-5933 ]
          Ken Fyten made changes -
          Salesforce Case []
          Fix Version/s 2.0.0 [ 10230 ]
          Fix Version/s 2.0-Beta2 [ 10242 ]
          Hide
          Ken Fyten added a comment -

          Need a feasibility assessment for this.

          Show
          Ken Fyten added a comment - Need a feasibility assessment for this.
          Ken Fyten made changes -
          Salesforce Case []
          Assignee Priority P3 P2
          Assignee Mark Collette [ mark.collette ] Ted Goddard [ ted.goddard ]
          Hide
          Ted Goddard added a comment -

          Not all extension points are available in JSF 2.0, but a similar technique should be possible:

          com.icesoft.faces.facelets.UIXhtmlTagLibrary

          • not available

          com.icesoft.faces.facelets.UIXhtmlTagDecorator

          • can implement javax.faces.view.facelets.TagDecorator

          com.icesoft.faces.facelets.UIXhtmlComponentHandler

          • The API javax.faces.view.facelets.ComponentHandler is present but no longer provides the key method createComponent() (instead this is handled by Application.createComponent())

          com.icesoft.faces.component.UIXhtmlComponent

          • Custom components can easily be added in JSF 2.0
          Show
          Ted Goddard added a comment - Not all extension points are available in JSF 2.0, but a similar technique should be possible: com.icesoft.faces.facelets.UIXhtmlTagLibrary not available com.icesoft.faces.facelets.UIXhtmlTagDecorator can implement javax.faces.view.facelets.TagDecorator com.icesoft.faces.facelets.UIXhtmlComponentHandler The API javax.faces.view.facelets.ComponentHandler is present but no longer provides the key method createComponent() (instead this is handled by Application.createComponent()) com.icesoft.faces.component.UIXhtmlComponent Custom components can easily be added in JSF 2.0
          Ken Fyten made changes -
          Salesforce Case []
          Fix Version/s 2.0.0-EE-Beta1 [ 10250 ]
          Fix Version/s 2.0.0 [ 10230 ]
          Ken Fyten made changes -
          Link This issue blocks ICE-6479 [ ICE-6479 ]
          Hide
          Ken Fyten added a comment -

          A test application is also required that clearly illustrates this feature is working (or not) for QA to adopt as a future regression test.

          Show
          Ken Fyten added a comment - A test application is also required that clearly illustrates this feature is working (or not) for QA to adopt as a future regression test.
          Ken Fyten made changes -
          Salesforce Case []
          Assignee Priority P2 P1
          Hide
          Ted Goddard added a comment -

          Attached test page requires no backing bean.

          Show
          Ted Goddard added a comment - Attached test page requires no backing bean.
          Ted Goddard made changes -
          Attachment test.xhtml [ 12816 ]
          Hide
          Ted Goddard added a comment -

          Implementation has been checked in and verified. Application requires addition of icefaces-xhtml.jar to benefit from this feature.

          Show
          Ted Goddard added a comment - Implementation has been checked in and verified. Application requires addition of icefaces-xhtml.jar to benefit from this feature.
          Hide
          Ted Goddard added a comment -

          The attached test page can function with no backing beans. Mandeep, please use this to create a test case. The test passes when the optional icefaces-xhtml.jar is present if a value of "1" is displayed in the outputText.

          Show
          Ted Goddard added a comment - The attached test page can function with no backing beans. Mandeep, please use this to create a test case. The test passes when the optional icefaces-xhtml.jar is present if a value of "1" is displayed in the outputText.
          Ted Goddard made changes -
          Assignee Ted Goddard [ ted.goddard ] Mandeep Hayher [ mandeep.hayher ]
          Hide
          Ted Goddard added a comment -

          To enable this feature will require the following added to web.xml:

          <context-param>
          <param-name>javax.faces.FACELETS_DECORATORS</param-name>
          <param-value>com.icesoft.facelets.HtmlTagDecorator</param-value>
          </context-param>

          Show
          Ted Goddard added a comment - To enable this feature will require the following added to web.xml: <context-param> <param-name>javax.faces.FACELETS_DECORATORS</param-name> <param-value>com.icesoft.facelets.HtmlTagDecorator</param-value> </context-param>
          Hide
          Ted Goddard added a comment -

          Checked in to icefaces-ee.

          Show
          Ted Goddard added a comment - Checked in to icefaces-ee.
          Ken Fyten made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Assignee Priority P1
          Resolution Fixed [ 1 ]
          Hide
          Mandeep Hayher added a comment -

          The test case is failing on ICEfaces2 trunk revision# 23981.

          NOTE: The test case was seen passing around Icefaces # 23929

          Show
          Mandeep Hayher added a comment - The test case is failing on ICEfaces2 trunk revision# 23981. NOTE: The test case was seen passing around Icefaces # 23929
          Ken Fyten made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Assignee Mandeep Hayher [ mandeep.hayher ] Ted Goddard [ ted.goddard ]
          Ken Fyten made changes -
          Salesforce Case []
          Assignee Priority P1
          Hide
          Ted Goddard added a comment -

          Tested by adding test.xhtml and the FACELETS_DECORATORS to a sample application and the "1" was displayed as expected.

          Show
          Ted Goddard added a comment - Tested by adding test.xhtml and the FACELETS_DECORATORS to a sample application and the "1" was displayed as expected.
          Hide
          Ted Goddard added a comment -

          The feature was working in my test, could you verify the test case?

          Show
          Ted Goddard added a comment - The feature was working in my test, could you verify the test case?
          Ted Goddard made changes -
          Assignee Ted Goddard [ ted.goddard ] Mandeep Hayher [ mandeep.hayher ]
          Hide
          Mandeep Hayher added a comment -

          Icefaces-ee2 revision# 26294
          Icefaces2 revision# 23983
          Server: Tomcat6
          Browser: FF3.6, IE7 & googlechrome8

          Application tested successfully.

          Show
          Mandeep Hayher added a comment - Icefaces-ee2 revision# 26294 Icefaces2 revision# 23983 Server: Tomcat6 Browser: FF3.6, IE7 & googlechrome8 Application tested successfully.
          Mandeep Hayher made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Mandeep Hayher made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Ken Fyten made changes -
          Project ICEfaces [ 10021 ] ICEpack [ 10040 ]
          Key ICE-5806 IPCK-245
          Component/s Components [ 10012 ]
          Fix Version/s EE-2.0.0.Beta1 [ 10254 ]
          Fix Version/s 2.0.0-EE-Beta1 [ 10250 ]
          Affects Version/s EE-2.0.0.Alpha1 [ 10260 ]
          Affects Version/s 2.0-Alpha3 [ 10032 ]
          Ken Fyten made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          Assignee Priority P1
          Assignee Mandeep Hayher [ mandeep.hayher ] Ken Fyten [ ken.fyten ]
          Ken Fyten made changes -
          Salesforce Case []
          Component/s Core Extensions [ 10051 ]
          Ken Fyten made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              Ken Fyten
              Reporter:
              Mark Collette
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: