Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-2.0.0.GA, 3.0.RC1, 3.0.RC2
-
Fix Version/s: 3.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces EE 2.0, ICEfaces 3.0RC
-
Assignee Priority:P1
Description
-
-
Hide
- Case10754Example2.zip
- 20 kB
- Arran Mccullough
-
- Case10754Example2/build.xml 3 kB
- Case10754Example2/.../ant-deploy.xml 2 kB
- Case10754Example2/.../build-impl.xml 58 kB
- Case10754Example2/.../genfiles.properties 0.5 kB
- Case10754Example2/.../private.properties 0.5 kB
- Case10754Example2/.../project.properties 3 kB
- Case10754Example2/nbproject/project.xml 1 kB
- Case10754Example2/src/conf/MANIFEST.MF 0.0 kB
- Case10754Example2/src/.../example/Tab.java 0.8 kB
- Case10754Example2/src/.../TestBean.java 3 kB
- Case10754Example2/web/css/style.css 0.1 kB
- Case10754Example2/web/.../context.xml 0.1 kB
- Case10754Example2/web/tabControl.xhtml 1 kB
- Case10754Example2/web/tabFour.xhtml 0.5 kB
- Case10754Example2/web/tabOne.xhtml 0.5 kB
- Case10754Example2/web/tabThree.xhtml 0.5 kB
- Case10754Example2/web/tabTwo.xhtml 0.5 kB
- Case10754Example2/web/WEB-INF/web.xml 2 kB
- Case10754Example2/.../welcomeICEfaces.xhtml 2 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
The styling issues I mention above aren't of concern. The fixed version looks fine.
However the on-construction selection of the selectedIndex that occurs before our JS can apply the disabled property, will be very problematic. I don't see how this could be avoided without large modifications to the YUI code, or fixing the larger issue using yet some other technique.
The issue is we want to initialize the tabs with the disabled style class so the YUI construction won't do an initial selection. However later when we remove that disabled style class and enable the tab, we don't want an update (that kills our events), or that update has to somehow play nice with YUI, and rebind the new DOM element.
ICE-7627 - Partial fix for dynamic tabpane disabled issues. Using JS-managed state as DOM update ruined the existing Tab object, and I could not find a way to rebind the Tab object to the new DOM element; and removing the now DOM-less Tab from the TabView caused an error, so a newly created Tab object could not be added in its place. This change to JS initialized state however has introduced another problematic behaviour, that the selectedIndex is always loaded at tabset creation even though it is disabled by further constructor calls shortly after. Either the disabling will need to occur at Tab creation, during TabSet creation, or eventually the old technique will need to be used, and must elegantly update or replace the existing Tab object, rather than breaking it.
Reassigning to Mark for eventual revision to fix selectedIndex initialization.
More extensive YUI knowledge will be required to gracefully update/replace the Tab object that has been destroyed by the DOM update, or modify the TabView construction so that my technique of JS disabled initialization occurs soon enough to prevent the invalid initial selection.
Added custom styling and backported change to 2.X EE maintenance.
Fixed again in this other branch.
Revision #27275
ICE-7627 - Backporting tabset dynamic disabled attribute fix.
Attached source code and built war file to reproduce issue.
Steps to reproduce: