[
https://issues.apache.org/jira/browse/ISIS-2602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17317263#comment-17317263
]
Andi Huber commented on ISIS-2602:
----------------------------------
Looks pretty consistent to me in case there is a XML layout present.
In the absence of a XML layout, we need to derive both the FieldSet *id* and
the FieldSet *friendly name* from annotations. Which has its limitations, eg.
cannot provide an empty friendly name "".
If there's an XML layout, then we interpret @PropertyLayout(fieldSet=...) as an
*id* first, and otherwise fallback as a *friendly name*. Whereas, if there's no
XML layout, then we interpret @PropertyLayout(fieldSet=...) as providing a
*friendly name*, from which we infer the id.
Within the realm of options, we could think about special syntax:
@PropertyLayout(fieldSet="sales::Sales Department") or similar, where we allow
the framework to be smart about the content provided here and interpret this as
id and friendly-name separated by a delimiter ::.
Going along with this idea, one could write
@PropertyLayout(fieldSet="sales::") in order to suppress the FieldSet's
friendly name from rendering.
> Programming Model: add @ActionLayout(fieldSet=...) rename
> @PropertyLayout(group->fieldSet)
> ------------------------------------------------------------------------------------------
>
> Key: ISIS-2602
> URL: https://issues.apache.org/jira/browse/ISIS-2602
> Project: Isis
> Issue Type: Improvement
> Components: Isis Core
> Reporter: Andi Huber
> Assignee: Andi Huber
> Priority: Major
> Fix For: 2.0.0-M6
>
>
> 1. In the XML, every fieldset has an `id`, though it may be inferred from a
> non-empty `name`. (If the name is empty "" or missing, then the id is
> mandatory).
> 2. We place a property in a fieldset either by locating within the XML, or by
> using `@PropertyLayout(fieldSet=...)`. If the latter then
> `@PropertyLayout(sequence=...)` is then the relative position within that
> fieldset.
> 3. We can associate an action with a property or collection using
> `@Action(associateWith=...)`. This will be positioned close to the
> property/collection, either under it or on the header panel depending on
> other layout facets.
> 4. We can override (3) using `@ActionLayout(fieldSet=...)`. In such a case,
> the action is placed on the panel.
> 5. We take the fieldset name and pass it to the TranslationService along with
> a context. As with all translations, if none is available then the name is
> returned unchanged. For this reason it is the fieldset name (not its id)
> that is passed in to translations.
> 6. For the context of a fieldset name translation, we use a construct
> `com.mycompany.Customer~fieldSets`. We DON'T indicate the id of the
> fieldset, the human translator doesn't need that detail.
> 7. Similar, we take the tab name and pass it through to be translated.
> 8. For the context of a tab, we use a construct
> `com.mycompany.Customer~tabs`. Again, no more detail than that is needed by
> the human translator.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)