On Fri, Nov 9, 2018 at 11:57 AM Marius Dumitru Florea <mariusdumitru.flo...@xwiki.com> wrote: > > On Fri, Nov 9, 2018 at 12:29 PM Vincent Massol <vinc...@massol.net> wrote: > > > Hi, > > > > > On 9 Nov 2018, at 11:20, Marius Dumitru Florea < > > mariusdumitru.flo...@xwiki.com> wrote: > > > > > > On Wed, Nov 7, 2018 at 5:34 PM Adel Atallah <adel.atal...@xwiki.com> > > 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. > > > I did not say the alternatives must be **on** groups. I said the > alternatives **are** groups. When you have two alternative parameters then > those 2 parameters are in an alternative **group**. That's what I said. > Whether the groups is used just for display or for enforcing exclusive > usage is something that could be expressed using annotation attributes.
I'm not sure to understand what you mean. Could you give us an example? > > > > 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] > > > > > >