Search code examples
oracle-databaseoracle-adf

PanelTabbed control preserves tab selection even after the taskflow ends


I am facing an issue where I have a A.jsff(taskflow A) and a region inside A.jsff called aB.jsff (taskflow aB). Inside ab.jsff I have the panelTabbed control with two tabs (showDetailItem) tab1 and tab2. I also have a save button in the A.jsff which commits the changes on the page. I want the tab1 to be open whenever this taskflow is run.

The problem is, no matter which tab I select and click save(taskflow A), when I come back to this page, the tab which was previously expanded is always disclosed. Even after setting disclosed attribute and persist/dontPersist attribute, I wasn't able to achieve my requirement.

I also found few related discussions on the web which didn't help at all.

Can anyone please help or provide workaround to achieve this.


Solution

  • This is a tech stack error. And I have been provided with a fix which can help others who can face same issue.

    Create a binding for the panelTabbed element and add this to its setter function -

     public void setPanelTabBinding(RichPanelTabbed panelTabBinding) {
        /*
         * Tech stack bug fix for default tab selection.
         */
        this.panelTabBinding = panelTabBinding;
        ComponentChangeFilter[] compChgFilters = null;
        if (panelTabBinding != null && compChgFilters.length == 0) {
              compChgFilters = panelTabBinding.getComponentChangeFilters();
        if (compChgFilters != null)
            panelTabBinding.addComponentChangeFilter(new TreeRestrictingChangeFilter(panelTabBinding));
        }
      }