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)