Hello, I am trying to store the currently opened tab in a TabSheet and keep it selected when a user opens a nested screen and comes back, The tab index is written in the URL correctly, but when I reopen/return to the screen, it always resets to the first tab.
public class SampleUrlQueryParametersBinder (private val tabsheet: JmixTabSheet ) : AbstractUrlQueryParametersBinder(){
init{
tabsheet.addSelectedChangeListener { event →
val selectedTabIndex = tabsheet.getIndexOf(event.selectedTab)
val qp = QueryParameters(mutableMapOf(tabsheet.id.toString() to listOf(selectedTabIndex.toString())))
fireQueryParametersChanged(
UrlQueryParametersFacet.UrlQueryParametersChangeEvent( this, qp)
)
}
}
override fun getComponent(): Component? {
return null;
}
override fun updateState(queryParameters: QueryParameters) {
val tabToSelect = queryParameters.parameters[tabsheet.id.toString()]
if (tabToSelect != null) {
val tab = tabsheet.getTabAt(tabToSelect[0].toInt())
tabsheet.selectedTab = tab
}
}
}
@Subscribe
private fun onAttachEvent(event: AttachEvent) {
urlQueryParameters.registerBinder( SampleUrlQueryParametersBinder(tabs)) }
Thank you !