Need following information to assist you better:
1. Jdeveloper version you are using?
2. FA product for which you are writing the extension?
3. As you said you are newbie so I would like to understand a bit more in depth of what exactly you are trying to acomplish by finding the active tab etc.? As per my experience in majority of the cases there are much simple options to achieve things in ADF declaratively and avoiding or minimizing the manual manipulation of UI component properties etc.
Sorry for the delay in response.
Jdeveloper version is 184.108.40.206.3, working for Fusion HCM, have to create an extension project to accomodate some additional functionalities.
Application is based on UIShell template, can open task-flows under dynamic tabs. Same screen (i.e. same task-flow id) can be opened multiple times since every task flow has its own transaction. As a part of functionality, I require some coding to be done in managed bean to access some UIcomponent and refresh it. Since same screen can be opened under multiple dynamic tabs, I should not start searching the required screen level UIcomponent from root, instead I need to find the Active Dynamic tab component first (i.e. currently disclosed dynamic tab) and then my screen component.
Assume Screen A has an SSN input text fidl with id 'ssnFldId'.
1. User opens Screen A under a dynamic tab (it becomes first tab)
2. User opens Screen A again under a new dynamic tab (it becomes second tab and Active)
3. Based on the screen functionality, UIComponent of SSN field belongs to the second tab needs to be accessed. I know I cannot start searching for this component from root but to pick the correct dynamic tab first, followed by this component.
1. Is there any direct API available (say DynamicTabUtil::getActiveTab()) that returns the dynamic tab UIComponent.
2. If not, how to find it?
When I was working ADF Application development using Dynamic Tabs, I was able to access the initial version of Dynamic tab source (4 yrs back), customized for our need, worked with that source, hence I knew how the id gets generated for tab, was able to work with that, don't know how it is in Fusin Apps. Your help would be appreciated.
Thanks in Advance.
As you are using UIShell and creating an extension you should have access to applcore libraries into your project. Which means you can set the reuseInstance property to false in the menu.xml associated with the workarea page.
Have a look at the documentation at FndUIShellController (Applications Core 220.127.116.11.0.120313.0407 API) or just google for it for other reference to understand how to use it.
In short when you set the resuseInstance property to false then whenever the same task flow is launched it is launched in a new tab. By default it is set to true so it reuses the already opened task flow if any.
Hope this helps
I came to know from the doc that I can use that property to make the same task-flow gets opened under more than 1 tab, but the actual question is about finding the currently disclosed dynamic tab UIComponent (i.e. ShowDetailItem) from the managed bean?
I noticed from FndUIShellController doc, that it has the following public API, but there is no description given on how to pick the current index. Does anyonce know?
oracle.adf.view.rich.component.rich.layout.RichShowDetailItem getMainAreaShowDetailItem(int index)
I am still not very convinced on requirement to find and do something with UI components. However, you can still take and advise/help from the JDeveloper and ADF forum https://forums.oracle.com/community/developer/english/development_tools/application_development_in_java/jdeveloper_and_adf
Hope this helps!