[OpenAjaxIDE] Nesting <properties> re-visited ...

Lori Hylan-Cho avocadoh at gmail.com
Sun Sep 13 15:49:07 PDT 2009


Kin mentioned this proposal to me a couple weeks ago, so I've had time to
mull it over a bit. I know at first we were nervous about nesting <property>
tags and causing confusion about parent/child relationships, but in thinking
about it more,
I'm worried less. As long as <properties> tags are children of other
<properties> tags, there can be no confusion about parentage, since
<properties> is only a container (i.e., it can't be mistaken for an
Object).
Having gotten over that objection (at least in my own mind), I prefer
nesting to adding a group attribute. I think nesting makes the markup
more human-readable than the group attributes; I found that with the
latter, I ended up having to map out the nesting on paper to fully
grok it anyway. A developer tool won't have to do this
when reading the file, of course, but the author of the metadata file might
have to do it when writing, and it seems awfully error-prone.

That's a long-winded way of saying I support Kin's first proposal below.

Lori

On Fri, Sep 4, 2009 at 5:35 PM, Kin Blas <jblas at adobe.com> wrote:

> I noticed that the "::" approach for an alternate approach to nesting
> <properties> was added to the 1.0 spec:
>
>
> >> Some tools may have multiple levels of tabs within a property editor.
> >> For example, perhaps there will be a first-level tab which shows "Basic"
> >> properties, and then a sub-tab within the "Basic" tab for "Sizing"
> >> properties. The recommended convention for identifying hierarchical
> >> property groups is to use a double-colon sequence ("::") as the token
> >> separate string. For example, name="Basic::Sizing".
>
>
> This was a suggestion I made while trying to work with "what we have" and
> avoid introducing new attributes since we are trying to wind down the 1.0
> spec, and avoid introducing our own vendor-namespaced attributes into OAM
> files to enable this feature. One problem we still have with this approach,
> is that we still need the concept of a label to express the relationships to
> the end-user. This requires us to add a @label attribute or <label> child
> anyways. Since we need an extra attribute anyways, I would rather see formal
> metadata semantics introduced to support nesting properly and pull the
> suggestion of the '::' convention from the 1.0 spec so we don't get stuck
> with having to support it forever once we declare OAM 1.0.
>
> We have 2 proposals we'd like to put forth for consideration for the next
> revision of the spec. The first is to actually allow the nesting of
> <properties> tags and introduce the @label attribute for <properties>:
>
>
>        <properties name="A" label="##A##">
>                ...
>                <properties name="B" label="##B##">
>                        ...
>                </properties>
>                <properties name="C" label="##C##">
>                        ...
>                </properties>
>                ...
>        </properties>
>
>        <properties name="D" label="##D##">
>                ...
>                <properties name="E" label="##E##">
>                        ...
>                </properties>
>                <properties name="F" label="##F##">
>                        ...
>                </properties>
>                ...
>        </properties>
>
>
> In this proposal, there is no limit to the nesting level of <properties>.
>
> If folks don't like this approach, an alternate would be to keep the
> flattened <properties> approach, but introduce the @label attribute, as well
> as a @group attribute that allows you to group one or more properties
> underneath a specific named <properties> element:
>
>
>        <properties name="A" label="##A##">
>                ...
>        </properties>
>        <properties name="B" label="##B##" group="A">
>                ...
>        </properties>
>        <properties name="C" label="##C##" group="A">
>                ...
>        </properties>
>        <properties name="D" label="##D##">
>                ...
>        </properties>
>        <properties name="E" label="##E##" group="D">
>                ...
>        </properties>
>        <properties name="F" label="##F##" group="D">
>                ...
>        </properties>
>
>
> In this scenario, the value of the @group attribute is the @name of the
> <properties> tag it should be nested underneath. There is no limit to the
> grouping, so if you really wanted to express a nesting of A>B>C>D>E>F, it
> would look something like this:
>
>
>        <properties name="A" label="##A##">
>        ...
>        </properties>
>        <properties name="B" label="##B##" group="A">
>        ...
>        </properties>
>        <properties name="C" label="##C##" group="B">
>        ...
>        </properties>
>        <properties name="D" label="##D##" group="C">
>        ...
>        </properties>
>        <properties name="E" label="##E##" group="D">
>        ...
>        </properties>
>        <properties name="F" label="##F##" group="E">
>        ...
>        </properties>
>
>
> Thoughts? Is there a place to put proposals like this?
>
> --== Kin ==--
>
> _______________________________________________
> IDE mailing list
> IDE at openajax.org
> http://openajax.org/mailman/listinfo/ide
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/ide/attachments/20090913/d9437b11/attachment.html 


More information about the IDE mailing list