Search code examples
jsf-2primefacestabindex

Dynamic tabIndex-attribute in JSF/Primefaces


I'm facing an issue with JSF / Primefaces. I'm using the tabIndex-attribute on every component in my JSF-application to allow the user to step through the screens. I wrote some JSF composite components to reuse parts of the screen. Now I have the issue, that the tabIndex in these components is "hard-coded", so if I reuse the components, the tabIndex conflicts with other components and the tabbing will not be in the correct order.

Example:

  ComponentA: tabIndexes: 1,2,3
  ComponentB: tabIndexes 1,2,3
  ComponentC: tabIndexes: 4,5,6

  ScreenA: Components: A,C --> no problem, because every tabIndex is unique.
  ScreenB: Components: B,C --> no problem, because every tabIndex is unique.
  ScreenC: Components: A,B,C --> problem, because of conflicting tabIndex.
  ScreenD: Components: A,B --> problem, because of conflicting tabIndex.

(Every combination is possible)

I think I need to create the tabIndex-value in a dynamic way, but I have no clue on how to do that. Does someone have an idea? I would be happy for every hint on that.


Solution

  • Not sure I follow but maybe something like this?

    tabindex="#{tabIndexBean.getIndex}"
    

    Method:

    int index=0;
    public int getIndex() {
        index++;
        return index;
    }