[OpenAjaxIDE] IDE Issue 2: Data, arguments/parameters, and topics
Jon Ferraiolo
jferrai at us.ibm.com
Wed Dec 5 14:54:53 PST 2007
URL: http://www.openajax.org/member/wiki/IDE_Issue_2
IDE Issue 2: Data, arguments/parameters, and topics
Original write-up
This issue is about data and parameters that apply to a given widget
instance.
There is confusion regarding the original strawman XML proposal for widgets
where there is a <property> element but lack of clarity about how this
relates to the widget constructor function and the things that might appear
in property inspector dialogs.
There is a related issue regarding widget "values". In jMaki, there is a
distinction between "value" and "args". In jMaki, "value" corresponds in
concept generally to the HTML notion of a value for a form widget and can
be bound to a dynamic data feed. "args" is a JSON object.
In Adobe's proposal, constructors have 3 arguments: (1) the element's ID,
(2) a "selector" (is this really a class name?), and (3) an object that
contains a set of "options". It looks like jMaki's "args" is similar in
concept to Adobe's "options".
The IBM proposal in the Gadgets TF talks about expressing pub/sub topics
via properties. jMaki has a separate data structure for pub/sub topics.
Here is an attempt to capture all of the sorts of things that might be
classified as "data", "arguments", "properties" and "topics". Note that
there is some overlap and redundancy:
The "value" of the widget (in the HTML sense and jMaki sense)
The arguments to the widget constructor
The properties that might appear in the widget's property inspector
dialog
The widget's automatically assigned ID
The widget's class name (?) (or would this be class names?)
topics published
topic consumed
Notes and questions:
"value", "arguments" and "properties" all have a name, a type, and a
default value
We might need to take inheritance into account. For example, some
widgets might inherit from a base class a property that defines an
onChange callback.
Is there a unified approach to managing IDs and styling across the
Ajax industry? For example, do Dreamweaver, jMaki, Dojo, and Ext.js
use the same approach? Seems unlikely.
Jon's proposal
I am sold on treating a widget's "value" as something different and
special than its arguments and properties
For "arguments" and "properties", I still like the <property> element
described at:
http://www.openajax.org/member/wiki/IDE_API_Metadata_Strawman_Proposal#Minor_changes_to_Aptana.27s_.3Cproperty.3E_element
where:
there is a single list of properties
there is a hint for each property that tells the IDE
whether that property should appear in an inspector
dialog
at runtime, any properties that are different than their
default value are passed to the widget constructor
Don't address IDs and styling in the first version of our
specification. The IDEs and toolkits need to address those topics on
their own.
The pub/sub metadata (i.e., topics published and consumed) should be
separate from the arguments and properties
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/ide/attachments/20071205/e9db514e/attachment.html
More information about the IDE
mailing list