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]
> >
> >
> >

Reply via email to