Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.2
-
Component/s: Framework, ICE-Components
-
Labels:None
-
Environment:MyFaces 2 ICEfaces 2 datatables
-
Assignee Priority:P1
-
Affects:Compatibility/Configuration
Description
When running under MyFaces, components within datatables are being assigned ids where the row index appears to be appended twice. So for example, in Mojarra where an element within a datatable might be identified as;
<span id="iceform:datTbl:2:number" class="iceOutTxt">1</span>
in MyFaces, the same element is identified as:
<span id="iceform:datTbl:2:2:number" class="iceOutTxt">1</span>
While it doesn't appear to strictly break any application functionality that I can identify, it does cause distress to many of our Selenium tests where we attempt to find elements within a datatable.
<span id="iceform:datTbl:2:number" class="iceOutTxt">1</span>
in MyFaces, the same element is identified as:
<span id="iceform:datTbl:2:2:number" class="iceOutTxt">1</span>
While it doesn't appear to strictly break any application functionality that I can identify, it does cause distress to many of our Selenium tests where we attempt to find elements within a datatable.
Issue Links
- blocks
-
ICE-5868 MyFaces 2 compatibility
- Closed
Activity
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #28147 | Sat Mar 03 01:23:08 MST 2012 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/branches/icefaces-3.0.x-maintenance/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/HtmlDataTable.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #28146 | Sat Mar 03 01:21:09 MST 2012 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/HtmlDataTable.java
|
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 3.0.RC2 [ 10313 ] | |
Fix Version/s | EE-3.0.0.GA [ 10262 ] |
Mark Collette
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Fix Version/s | 3.0 [ 10241 ] | |
Resolution | Fixed [ 1 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #26929 | Fri Dec 16 14:05:10 MST 2011 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
MODIFY /icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/RowSelector.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #26886 | Wed Dec 14 18:30:07 MST 2011 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
MODIFY /icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/UIColumns.java MODIFY /icefaces3/trunk/icefaces/core/src/main/java/org/icefaces/impl/component/UISeriesBase.java MODIFY /icefaces3/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/ext/HtmlDataTable.java MODIFY /icefaces3/trunk/icefaces/compat/core/src/main/java/com/icesoft/faces/renderkit/dom_html_basic/TableRenderer.java |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | EE-3.0.0.GA [ 10262 ] | |
Fix Version/s | 3.0 [ 10241 ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Affects | [Compatibility/Configuration] | |
Assignee Priority | P2 | P1 |
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee Priority | P2 |
Deryk Sinotte
made changes -
Attachment | ICE-7244.patch [ 13701 ] |
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] | Mark Collette [ mark.collette ] |
Deryk Sinotte
made changes -
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25788 | Fri Sep 30 16:00:25 MDT 2011 | ken.fyten | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/application/ExtendedExceptionHandler.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25751 | Thu Sep 29 16:44:18 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelseries/UISeries.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25695 | Wed Sep 28 11:45:37 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/util/CharacterEncodingHandler.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25689 | Wed Sep 28 11:00:03 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/javascript/application.js
MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/util/CharacterEncodingHandler.java MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/application/ExtendedExceptionHandler.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25644 | Mon Sep 26 14:57:41 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelseries/UISeries.java
|
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #25609 | Fri Sep 23 10:31:54 MDT 2011 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelseries/UISeries.java
|
Deryk Sinotte
made changes -
Field | Original Value | New Value |
---|---|---|
Attachment | datatable-ids.png [ 13551 ] |
Deryk Sinotte
created issue -
The main change now is that a UIData's getClientId() should just follow the same behaviour as a non-UIData, and not include the rowIndex into the clientId anymore. While getContainerClientId() will take on that responsibility. This requires that sub-classes' rendering code make use of getContainerClientId() instead of getClientId() when rendering row specific information, and getClientId() when rendering stuff for the whole component.
I took Deryk's patch, and adapted it a bit. Worked through the sub-classes of UISeries, searching for calls to getClientId(), modifying them as appropriate. Compat dataTable had a problem interoperating with compat columns, which columns was trying to work around by incorporating the dataTable's rowIndex into its own clientId calculations. Fixed that, so that only dataTable would have to be responsible for its rowIndex and not columns. And both would follow the new technique from UISeries.
I tried fixing some little nit picking detail where panelTabSet in a non-UIData (not using value) scenario would still append ":0" to itself. But that ended up breaking a bunch of subtle things, so I ended up reverting all that.
icefaces3
Subversion 26886
A regression was found where the RowSelector was broken, which I hadn't noticed since the showcase uses pre-styling. It turned out that there was code which expected clientId to have rowIndex in it, and was stripping that out, so when I made getClientId() to not have the rowIndex, then the stripping code removed other info. This code could be called from iterating and non-iterating code, so it just needed the stripping code to be removed, and to always use getClientId() instead of getContainerClientId() sometimes.
It also highlighted how the search for getClientId() use had maybe not been thorough enough, since I had searched for UISeriesBase.getClientId() and in some cases it was being used as UIComponent.getClientId(), so I searched for a broader usage.
icefaces3
Subversion 26929