[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