Page History
...
info.magnolia.ui.form.AbstractFormItem#getMessages
- should not be public- Is broken: doesn't use the user locale afaict.
info.magnolia.ui.form.AbstractFormItem#getMessage
- should not be publicAbstractFormItem
defines a semi-arbitrary message bundles chain (seeAbstractFormItem#UI_BASENAMES
)- Definition objects(
TabDefinition
, etc) have ani18nBasename
property, which is very redundant with that of the "runtimes" objects (FormTab
, ...). Usage seems consistent (return definition.getI18nBasename();
) but I don't know why this isn't implemented ininfo.magnolia.ui.form.AbstractFormItem
. - Definition objects don't have a common interface. If they did, we could move i18nBasename and label in there. OTOH, some of these objects have more than 1 item to translate (label and description, for example).
view.addFormSection(tab.getMessage(tabDefinition.getLabel()), tab.getContainer());
...translates the message from the tab and passes it translated before it's actually "displayed". (while the method argument is calledtabName
nottabLabel
- but that passed object becomes an argument calledcaption
later down the stack) - the below would make this sort of code much more explicit. You pass an object meant to be a label. You translate it explicitly - most likely at the last possible moment. Or we even extend Vaadin component so that they know aboutI18nItem
.getI18nBasename
is defined in too many places. It's inconsistent and unintuitive. Why the redundancy betweeninfo.magnolia.ui.dialog.Dialog#getI18nBasename
andinfo.magnolia.ui.dialog.definition.DialogDefinition#getI18nBasename
for example ?-
info.magnolia.ui.form.FormBuilder#buildForm
Suggested key patterns
The below is a rough outline. The 3 goals below are somewhat hard to reach all at once.
...
Overview
Content Tools