Dietrich Streifert schrieb:
> Ah Ok!
> 
> But shouldn't fast properties also be added to qx.OO.setter?
> 
> It took me some time to find out that addFastProperty created setters 
> and getters are not accesible through the qx.core.Object.set method.


Mhh, fast and cached properties are mainly used internally. I don't 
think we need to add them there. To used addFastProperty outside the 
qooxdoo classes is not a good idea in my opinion.

Do you rely on this?

Sebastian


> 
> 
> Sebastian Werner schrieb:
>> Hi Dietrich,
>>
>> The reason why this is coded this way, is that it performs dramatically 
>> better. It omits a string concatenation for each setter and use the 
>> cached entry instead.
>>
>> Better would be to add your custom properties also to this qx.OO.setter 
>> list.
>>
>> Ciao,
>>
>> Sebastian
>>
>>
>>
>>
>> Dietrich Streifert schrieb:
>>   
>>> Hello List, Hello Sebastian (who is maybe deepest inside the object 
>>> property implementation),
>>>
>>> In my application I need to add some properties to the whole widget 
>>> hierarchie (maybe bad style, but anyway). So I do the following:
>>>
>>> qx.ui.core.Widget.prototype._x_path = null;
>>> qx.ui.core.Widget.prototype.getXpath = function() {
>>>   return this._x_path;
>>> };
>>> qx.ui.core.Widget.prototype.setXpath = function(value) {
>>>   return this._x_path = value;
>>> };
>>>
>>> For setting this property (and a few other) properties I'm usualy 
>>> calling the set method of the instance
>>>
>>> widgetInstance.set({xpath:'bla', foo:'blu', bar:'blo'});
>>>
>>> The definition of the set method is in qx.core.Object.prototype:
>>>
>>> qx.Proto.set = function(propertyValues)
>>> {
>>>   if (typeof propertyValues !== "object") {
>>>     throw new Error("Please use a valid hash of property key-values 
>>> pairs.");
>>>   }
>>>
>>>   for (var prop in propertyValues)
>>>   {
>>>     try
>>>     {
>>>       this[qx.OO.setter[prop]](propertyValues[prop]);
>>>     }
>>>     catch(ex)
>>>     {
>>>       this.error("Setter of property " + prop + " returned with an 
>>> error", ex);
>>>     }
>>>   }
>>>
>>>   return this;
>>> }
>>>
>>> Because the method relies on the existence of the setter and getter in 
>>> qx.OO.setter this fails as self defined setters and getters are nevver 
>>> assigned to qx.OO.setter. This also seems to happen if we have a fast 
>>> property added through addFastProperty. As a side effect FF 2.0 freezes 
>>> on the massive exception fireing in the try catch block (at least for my 
>>> application which has a big widget stack).
>>>
>>> The solution would be to not rely on qx.OO.setter and to assemble the 
>>> setter call through a string concatenation:
>>>
>>>       this['set'+qx.lang.String.toFirstUp(prop)](propertyValues[prop]);
>>>
>>> In this case all setters and getters are catched.
>>>
>>> Maybe this can eliminate the setter hash completely?
>>>
>>> Any Ideas on this?
>>>
>>> Thank you.
>>>
>>> Best regards.
>>>
>>>
>>>     
>>
>>
>> -------------------------------------------------------------------------
>> Take Surveys. Earn Cash. Influence the Future of IT
>> Join SourceForge.net's Techsay panel and you'll get the chance to share your
>> opinions on IT & business topics through brief surveys - and earn cash
>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>   
> 
> -- 
> Mit freundlichen Grüßen
> Dietrich Streifert
> Visionet GmbH
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to