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

Bertrand Le Roy Bertrand.Le.Roy at microsoft.com
Sun Sep 13 17:12:12 PDT 2009


Having complex or nested properties is a different thing from grouping properties by category. A property category is not a property.
________________________________
From: Lori Hylan-Cho [avocadoh at gmail.com]
Sent: Sunday, September 13, 2009 3:51 PM
To: Bertrand Le Roy
Cc: Kin Blas; ide at openajax.org
Subject: Re: [OpenAjaxIDE] Nesting <properties> re-visited ...

I agree that proposal #2 is simpler when there's only one level of nested categories, but Kin's example (both the hypothetical one in his email and a couple real-world ones we looked over) had more than one level. In that case, nesting <properties> tags is simpler to understand, IMHO.

On Thu, Sep 10, 2009 at 10:21 PM, Bertrand Le Roy <Bertrand.Le.Roy at microsoft.com<mailto:Bertrand.Le.Roy at microsoft.com>> wrote:
The second (group-based) approach is what exists in Visual Studio: there is only one level of nested categories so that's sufficient and much simpler.

-----Original Message-----
From: ide-bounces at openajax.org<mailto:ide-bounces at openajax.org> [mailto:ide-bounces at openajax.org<mailto:ide-bounces at openajax.org>] On Behalf Of Kin Blas
Sent: Friday, September 04, 2009 2:36 PM
To: ide at openajax.org<mailto:ide at openajax.org>
Subject: [OpenAjaxIDE] Nesting <properties> re-visited ...

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<mailto:IDE at openajax.org>
http://openajax.org/mailman/listinfo/ide


_______________________________________________
IDE mailing list
IDE at openajax.org<mailto:IDE at openajax.org>
http://openajax.org/mailman/listinfo/ide

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/ide/attachments/20090914/b2aae754/attachment.html 


More information about the IDE mailing list