You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Todd Volkert (JIRA)" <ji...@apache.org> on 2009/08/15 21:59:14 UTC

[jira] Updated: (PIVOT-226) Cached preferred size values cause layout problems in BoxPane

     [ https://issues.apache.org/jira/browse/PIVOT-226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Todd Volkert updated PIVOT-226:
-------------------------------

    Affects Version/s:     (was: 1.3)
        Fix Version/s:     (was: 1.3)

Removing 1.3 tags so it doesn't show up in release notes.

> Cached preferred size values cause layout problems in BoxPane
> -------------------------------------------------------------
>
>                 Key: PIVOT-226
>                 URL: https://issues.apache.org/jira/browse/PIVOT-226
>             Project: Pivot
>          Issue Type: Bug
>            Reporter: Greg Brown
>            Assignee: Greg Brown
>            Priority: Minor
>
> We currently cache the values of the preferred size calculations for performance reasons. As a result, when a vertical BoxPane is set to fill the available space, the widest component doesn't get scaled up (nor do any other components that report the same preferred width).
> One possible fix is to call invalidate() on the component in BoxPane#layout() before asking it for its constrained preferred height. That ensures that we get the correct value, and it doesn't impose a significant performance penalty most of the time. 
> However, this may not be the "right" place to put this logic. Since this is a side effect of caching logic in Component, the logic for invalidating the cache probably also belongs in Component. Ideally, containers such as BoxPane shouldn't need to know that they must call invalidate() in order to clear the cache.
> A better solution may be to add a method to Skin that will allow Component to ask it how to handle cases like this. The exact nature/name of this method is TBD. Some ideas:
> isFixedAspectRatio():boolean
> isVariableAspectRatio():boolean
> getPreferredAspectRatio():float (if Float.NaN, aspect ratio is not fixed)
> If any of these return true/non-NaN, Component would know that it shouldn't use the cached value.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.