Hi, > On 9 Nov 2018, at 11:20, Marius Dumitru Florea > <[email protected]> wrote: > > On Wed, Nov 7, 2018 at 5:34 PM Adel Atallah <[email protected]> wrote: > >> Hello everyone, >> >> So what we thought about with Vincent for implementing the "concept of >> aliases or groups" would be to actually have two new annotations that >> we would use on macro properties. >> The first one is a "Group" annotation which is meant to indicate that >> some properties are part of the same group, obviously. >> The second is an "Alternative" annotation which is meant to indicate >> that only one property / group of properties can be used (among the >> ones that are part of the alternative). >> Here is an example: >> We want for the Include macro to be able to specify either: >> the "reference" and "type" parameters >> or >> the "page" parameter >> For that, we will change the IncludeMacroParameters java class like this: >> >> @Alternative("reference") >> @Group("entityReference") >> public void setReference(String reference) >> >> @Alternative("reference") >> @Group("entityReference") >> public void setType(EntityType type) >> >> @Alternative("reference") >> public void setPage(String page) >> >> In the WYSIWYG side, we will only be able to specify either the >> "reference" and the "type" or the "page" parameter. >> > > I think it would make more sense, at least in this case, to have the > alternative as an attribute of the group, because semantically the > "entityReference" group is an alternative to the page parameter. You can't > say that the type parameter alone is an alternative to the page parameter. > > The @Group annotation is clear. No doubt about it. I'm not sure about > the @Alternative annotation. I'm thinking that the "alternative" is also a > group, where only one item from the group can be used, which could be > expressed with an attribute of the @Group annotation.
For me the concepts of Groups and Alternatives are separate. For example you could imagine defining a group of properties so that the WYSIWYG would display them together, one under another or with some box border around them. Alternatives don’t need to be on groups. You can have alternatives on individual properties or alternatives between 1 property and a group or alternatives between one group and another. Thanks -Vincent [snip]

