[OpenAjaxIDE] Nesting <properties> re-visited ...
Bertrand Le Roy
Bertrand.Le.Roy at microsoft.com
Thu Sep 10 19:21:42 PDT 2009
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] On Behalf Of Kin Blas
Sent: Friday, September 04, 2009 2:36 PM
To: 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
http://openajax.org/mailman/listinfo/ide
More information about the IDE
mailing list