You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Andi Huber (Jira)" <ji...@apache.org> on 2021/04/08 15:12:00 UTC

[jira] [Commented] (ISIS-2602) Programming Model: add @ActionLayout(fieldSet=...) rename @PropertyLayout(group->fieldSet)

    [ 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)