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