[OpenAjaxIDE] Multiselect properties - must have datatype of array

Bertrand Le Roy Bertrand.Le.Roy at microsoft.com
Tue Aug 12 12:09:48 PDT 2008


That looks perfectly reasonable to me. Thanks Jon.

From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf Of Jon Ferraiolo
Sent: Tuesday, August 12, 2008 11:18 AM
To: ide at openajax.org
Subject: Re: [OpenAjaxIDE] Multiselect properties - must have datatype of array


I believe we should not ignore MS's requirements, and therefore I am in favor of finding a way to provide for bitfields. I don't like the @operator. That just seems too much. Here is a simpler proposal:

* If multiple="true", then 'datatype' must be either Array or a Number
* If multiple="true" and datatype="Number", then the option values must be positive integers (usually, powers of 2), and the ultimate value of the property consists of an integer that holds the result of OR'ing together the values for all selected options

Jon

[cid:image001.gif at 01C8FC74.50CDCE50]Aaron Reed/Austin/IBM

Aaron Reed/Austin/IBM

08/11/2008 03:55 PM


To


Jon Ferraiolo/Menlo Park/IBM at IBMUS


cc


ide at openajax.org


Subject


Fw: [OpenAjaxIDE] Multiselect properties - must have datatype of array








Dojo introduced a multi-select, it is in 1.1.1. But it is little more than a wrapper for the HTML control. And it really isn't just a SELECT element, a multiply selectable list could also be represented by a group of checkboxes which is reasonably common on the web, too. Now, finding an example of an UNCONSTRAINED multiply selectable control on almost any platform is quite difficult. That might be a combination that implementors would punt on.

Not that I really have much stake in the game or anything, but I would argue that if there is any value at all to having a datatype of Array or [], then I think that the spec probably needs to allow the user a way to actually generate the data for that array.

--Aaron
IBM Corporation
Internal Zip: 9022D016
11501 Burnet Road
Austin, TX 78758
(512)838-9948
inet: aaronr at us.ibm.com
_
(} @
|= Volleyball Rules!!!
/\


[cid:image001.gif at 01C8FC74.50CDCE50]Jon Ferraiolo/Menlo Park/IBM at IBMUS

Jon Ferraiolo/Menlo Park/IBM at IBMUS
Sent by: ide-bounces at openajax.org

08/11/2008 05:31 PM


To


ide <ide at openajax.org" <ide at openajax.org>">


cc




Subject


Re: [OpenAjaxIDE] Multiselect properties - must have datatype of array








After thinking about this one some more and doing some research, we need to ask ourselves whether it makes sense to drop the 'multiple' attribute on the <options> element. Yes, HTML's SELECT element allows multiple selections, but none of the following systems offers the feature: Dojo/Dijit, YUI, ExtJS, Spry, and the EnumValues feature in Google Gadgets, Unless my research is wrong, it looks as if the lack of multi-select hasn't harmed these other major UI systems. If we drop 'multiple' and someone needs multi-select for a property, then among their alternatives would be to find a clever way to use the other features (e.g., represent your multi-select as a series of boolean properties) and/or create a custom property editor.

Jon


[cid:image001.gif at 01C8FC74.50CDCE50]Wayne Vicknair/Austin/IBM
Wayne Vicknair/Austin/IBM

08/07/2008 12:16 PM


To


Bertrand Le Roy <Bertrand.Le.Roy at microsoft.com>


cc


"ide at openajax.org" <ide at openajax.org>, "ide-bounces at openajax.org" <ide-bounces at openajax.org>, Jon Ferraiolo/Menlo Park/IBM at IBMUS


Subject


RE: [OpenAjaxIDE] Multiselect properties - must have datatype of array[cid:image004.gif at 01C8FC74.50CDCE50]<Notes://d03nm113/8725716300163E43/3292B89D1EA73E9A8825720B00733DB3/5BB6FDA72E60D2FF8525749E0064EFD1>








OK. I get it. I think we need a new tag to describe "flags". The enums plus bitwise operations are definitely a useful idiom to model. It seems like we're trying to get too much out of <options> which was intended to model HTML <select> behavior.

BTW, the values I described are already in metadata in our widget property test cases.


Cheers,
[cid:image005.gif at 01C8FC74.50CDCE50]
Wayne E. Vicknair
Consulting Product Design Professional
IBM SWG Emerging Internet Technologies
Office: 512.838.0707 Email: waynev at us.ibm.com


[cid:image001.gif at 01C8FC74.50CDCE50]Bertrand Le Roy ---08/07/2008 01:22:30 PM---That's not the same thing. In both of the cases you describe, the valid values are determined by the application developer, not
Bertrand Le Roy <Bertrand.Le.Roy at microsoft.com>

08/07/08 01:21 PM


To


Wayne Vicknair/Austin/IBM at IBMUS


cc


"ide at openajax.org" <ide at openajax.org>, "ide-bounces at openajax.org" <ide-bounces at openajax.org>, Jon Ferraiolo/Menlo Park/IBM at IBMUS


Subject


RE: [OpenAjaxIDE] Multiselect properties - must have datatype of array








That's not the same thing. In both of the cases you describe, the valid values are determined by the application developer, not by the framework developer. The values for what you describe will *never* end up in the metadata.

-----Original Message-----
From: Wayne Vicknair [mailto:waynev at us.ibm.com]
Sent: Thursday, August 07, 2008 7:57 AM
To: Bertrand Le Roy
Cc: ide at openajax.org; ide-bounces at openajax.org; Jon Ferraiolo
Subject: Re: [OpenAjaxIDE] Multiselect properties - must have datatype of array

I believe that the <options> and <option> element combination do indeed express a constrained, multiple-value parameter.  HTML DOM and Dojo's dijit.form.MultiSelect both happen to implement that concept with an, admittedly inefficient, array return value. That implementation does not diminish the expressiveness of the <options> construct. An implementation could choose to iterate over the array values converting them to numbers and bitwise  or-ing them together.

Cheers,
(Embedded image moved to file: pic29320.gif)Wayne Wayne E. Vicknair Consulting Product Design Professional IBM SWG Emerging Internet Technologies
Office: 512.838.0707 Email: waynev at us.ibm.com




           Bertrand Le Roy
           <Bertrand.Le.Roy@
           microsoft.com>                                             To
           Sent by:                  Jon Ferraiolo/Menlo Park/IBM at IBMUS
           ide-bounces at opena                                          cc
           jax.org                   "ide at openajax.org"
                                     <ide at openajax.org>
                                                                 Subject
           08/06/08 07:50 PM         Re: [OpenAjaxIDE] Multiselect
                                     properties - must have datatype of
                                     array










Same thing that happens in C. Never been a problem as you rarely have the many flag values. Storing a list of countries or states would be more efficiently stored in more elaborate data structures. The use we have of flags is typically stuff like read/write/readwrite or left, right, top, bottom and combinations. You get the idea. Bit structures are way more efficient for this type of situation.
Sure, HTML options are different but I’m not sure I see your point.
Anyway, that’s the design we have in our APIs and it would be nice if it was possible to express it.

From: Jon Ferraiolo [mailto:jferrai at us.ibm.com]
Sent: Wednesday, August 06, 2008 5:32 PM
To: Bertrand Le Roy
Cc: ide at openajax.org
Subject: RE: [OpenAjaxIDE] Multiselect properties - must have datatype of array



What happens if you are doing multi-select with more than (4bytes) 32 alternatives (e.g., # states in US) or more than (8bytes) 64 alternatives (e.g., # countries in the world)?

HTML's OPTION element doesn't require the use of bit flags (i.e., values which are powers of 2), and that's what our <option> element will be mapped into for a large number of cases.


(Embedded image moved to file: pic32049.gif)Inactive hide details for Bertrand Le Roy <Bertrand.Le.Roy at microsoft.com>Bertrand Le Roy <Bertrand.Le.Roy at microsoft.com>


Options are for enums, right? If so, that is completely different from our usage. Multiple value enums (or flags) have integer values (like in C) and are combined through the | or operator. Testing for a specific value is done with the & and operator.
So for example, you’d have:
<property name="FavoriteAnimals">
__<options multiple="true">
____<option value="1"><label locid="animal_panda">Panda</label></option>
____<option value="2"><label locid="animal_tiger">Tiger</label></option>
____<option value="4"><label locid="animal_cat">House cat</label></option> ____<option value="8"><label locid="animal_dog">Man's best friend</label></option> __</options> </property>

And if the user picks Tiger and House Cat, that gives 6.

From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On Behalf Of Jon Ferraiolo
Sent: Wednesday, August 06, 2008 10:14 AM
To: ide at openajax.org
Subject: [OpenAjaxIDE] Multiselect properties - must have datatype of array


Aaron Reed of IBM is implementing the <property><options multiple="true"> feature in the open source reference implementation and the question can up about how to represent the multiple choices when the property value is persisted into the property storage area. Here is an example:

<property name="FavoriteAnimals">
__<options multiple="true">
____<option value="panda"><label
locid="animal_panda">Panda</label></option>
____<option value="tiger"><label
locid="animal_tiger">Tiger</label></option>
____<option value="cat"><label locid="animal_cat">House cat</label></option> ____<option value="dog"><label locid="animal_dog">Man's best friend</label></option> __</options> </property>

Let's suppose the user picked "Tiger" and "House cat".

Given that we are focused on JavaScript, our proposal is that the natural way to store a multi-select option would be as a JavaScript array. In this case, the array would be ["tiger","cat"].

Does this make sense to people?

If so, then should we change the spec to say that if a <property> uses <options> with multiple="true", then the <property> element must have datatype="[]".

A follow on question is whether we should require an array of Strings, or is it OK to have an array of anything, such as Number? Is the array could contain things other than String, then implementations would need to a string-to-whatever conversion at some point (e.g., string-to-number). I would thing that array-of-Strings is the way to go.

Jon _______________________________________________
IDE mailing list
IDE at openajax.org
http://openajax.org/mailman/listinfo/ide



[cid:image006.gif at 01C8FC74.50CDCE50][cid:image007.gif at 01C8FC74.50CDCE50]_______________________________________________
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/20080812/c11b6ba6/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 105 bytes
Desc: image001.gif
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0005.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 168 bytes
Desc: image002.png
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.png
Type: image/png
Size: 166 bytes
Desc: image003.png
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0003.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.gif
Type: image/gif
Size: 149 bytes
Desc: image004.gif
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0006.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.gif
Type: image/gif
Size: 2342 bytes
Desc: image005.gif
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0007.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image006.gif
Type: image/gif
Size: 960 bytes
Desc: image006.gif
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0008.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image007.gif
Type: image/gif
Size: 1255 bytes
Desc: image007.gif
Url : http://openajax.org/pipermail/ide/attachments/20080812/c11b6ba6/attachment-0009.gif 


More information about the IDE mailing list