Hi GWTP devs,
recently, we upgraded from 1.3 to 1.6 and we're hitting an issue related to the presenter slot API - LegacySlot handling, in particular.
See this tab container class:
https://gerrit.ovirt.org/gitweb?p=ovirt-engine.git;a=blob;f=frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabContainerPresenter.java;hb=HEADWe're overriding TabContainerPresenter#setInSlot(Object, PresenterWidget) because we need to get hold of the associated history token - there is no Tab#getTargetHistoryToken() so we need to ask TabContentProxy for this info. (Adding Tab#getTargetHistoryToken() would help us, but that's not the main point here.)
The problem is that TabContainerPresenter#setInSlot(Object, PresenterWidget) modifies the "slot" parameter as LegacySlotConvertor.convert(slot) and this means the following condition:
if (slot == tabContentSlot)
will always be false when using legacy slots. For legacy slots (only), the condition should instead be:
if (slot.getRawSlot() == tabContentSlot)
How can I fix this, other than not calling super in my setInSlot override and fixing it on my own?
Thanks,
Vojtech