Hi Alex,

Alex Back schrieb:
> calling setAppearance() resets those properties to its defaultValue which are 
> defined in the original appearance but not in the new appearance. 
> Let me explain this mechanism with your label example. 
> 
> The original "label"-appearance in the Classic appearance-theme defines wrap 
> as "false". Your new "link-ref" appearance does not define the wrap property. 
> The defaultValue for the "wrap"-property is "true".
> 
> In this case the call of "setAppearance" leads to following behaviour:
> 1. get the property values from the new appearance (->"link-ref")
> 2. if an original appearance exists, get also the original values (-> "label")
> 3. reset all properties to their default value which are defined in the 
> original appearance ("label"), but not defined in the new appearance 
> ("link-ref")
> 4. set the properties defined in the new appearance
> 
> The third step is important in your case. You did not define any value 
> for "wrap" in your appearance, so the widget gets resetted to its 
> defaultValue.
> 
> I hope this explanation did answer your question ;-)

Yes, indeed, but it raises two other ones ;-)

First, there is also an appearance "label" in our appearance theme, that 
sets "wrap" to false in the "initial" part. This does not explain why 
wrap is set to true - or am I again missing something?
Our theme is a modified copy from qooxdoo that inherits from 
qx.renderer.theme.AppearanceTheme.

Second, what is the reason for this strategy? It appears to contradict 
my intuition for two reasons:

1. By defining a new appearance in the appearance theme, I expect to 
start from zero, otherwise I could inherit properties using
   vTheme.initialFrom("label")

2. By calling a method named "setAppearance", I expect to overwrite the 
old property, hence also the old behavior, otherwise the method should 
be called "mergeAppearance".

But maybe I just don't understand the appearance concept completely...

Thanks a lot,

   Ralf


-------------------------------------------------------------------------
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
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to