/**
* Re-translate displayed {@link Templated} beans to the current locale.
*/
public static void retranslateTemplatedBeans() {
// Translate DOM-attached templates
DomVisit.revisit(new ElementWrapper(Document.get().getBody()), new TranslationDomRevisitor());
// Translate DOM-detached Singleton templates
for (AsyncBeanDef<Composite> beanDef : IOC.getAsyncBeanManager().lookupBeans(Composite.class)) {
Class<? extends Annotation> scope = beanDef.getScope();
if (scope != null
&& (scope.equals(ApplicationScoped.class)))
beanDef.getInstance(new CreationalCallback<Composite>() {
@Override
public void callback(Composite beanInstance) {
/*
* Only translate parent-less widgets to avoid re-translating a single widget multiple
* times (the call to revisit will traverse the whole subtree rooted at this widget).
*/
if (beanInstance.getParent() == null && !beanInstance.isAttached())
DomVisit.revisit(new ElementWrapper(beanInstance.getElement()), new TranslationDomRevisitor());
}
});
}
}