Thanks a million Derrell!

Nice trick with the 'overwriteable' check-method! It solves _both_ of my
problems! *Respect* !! ;) It can be so easy if you know how

/Peter

-------- Original --------
From: Derrell Lipman
Date: 26.03.2010 16:21

> On Fri, Mar 26, 2010 at 10:49, Peter Schneider <[email protected]>wrote:
> 
>> Hi there,
>>
>> I've come along a general question: Is it possible to override the
>> "enumeration"-check of a property?
>> To make my vague question a bit more clear, please take a look at the
>> attached
>> code.
>>
>> What I like to know is: When the base class (here, "pin") has defined a
>> property with a number of possible values ('enumeration'), is it possible
>> to
>> override this list/array in a derived class ("tristatePin")?
>>
>> I've tried the attached code in playground, but with no joy :-/
>> The "refine" key in the property definition does not seem to change the
>> possibility to re-define the 'enumeration'.
>>
>>
>> Another question arises: Is it good practice to get the list/array of
>> possible
>> values from such a property by calling
>> <code>
>>  qx.Class.getPropertyDefinition(tristatePin, "level").check
>> </code> ?
>> Or is there a 'cleaner' way of accessing it?
>> The static class "qx.util.PropertyUtil" looked promising, but no method
>> like
>> "getCheck" or "getPossibleValues" there ;)
>>
> 
> Hi Peter, her you go.
> 
> Derrell
> 
> qx.Class.define("pin",
> {
>   extend     : qx.core.Object,
>   type       : "abstract",
>   construct : function()
>   {
>     this.base(arguments);
>     this.setLevel("low");
>   },
>   properties :
>   {
>     level :
>     {
>       check : function(value)
>       {
>         return qx.lang.Array.contains(this.getPossibleLevels(), value);
>       }
>     },
> 
>     possibleLevels :
>     {
>       init  : [ "high", "low" ]
>     }
>   }
> });
> 
> qx.Class.define("tristatePin",
> {
>   extend     : pin,
>   construct  : function()
>   {
>     this.setPossibleLevels(["high", "low", "tristate"]);
>     this.base(arguments);
>   }
> });
> 
> var portA = new tristatePin();
> portA.setLevel("low");
> portA.setLevel("high");
> portA.setLevel("tristate");
> var output = [];
> output.push("Final state of portA is '" + portA.getLevel() + "'\n");
> output.push(qx.dev.Debug.debugObjectToString(portA.getPossibleLevels(),
>                                              "Possible levels"));
> alert(output.join("\n"));


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to