[OpenAjaxIDE] Multiselect properties - must have datatype of array

Bertrand Le Roy Bertrand.Le.Roy at microsoft.com
Wed Aug 6 17:50:33 PDT 2008

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.

[cid:image001.gif at 01C8F7EC.ECE7B5D0]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>

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>

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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/ide/attachments/20080806/6ccd821d/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/20080806/6ccd821d/attachment-0001.gif 

More information about the IDE mailing list