That should work for non-resizable Nodes, but resizables would be tricky if not impossible.

During the layout pass, we need to know min/pref/max size. In this case, it would have to be adjusted with the transformation (which can be a rotation, shear or doesn't have to be affine). The transformation can make width&height depend on each other (like 45deg rotation makes the min/max width depend on height and vice-versa). Then there's a problem with Region's width/height properties which are being set by the layout pane. They should be without transformations (as internal layout uses them), so either the layout algorithms would have to undo the transforms and compute the right size or the logic would need to be in resize() call, which turns setWidth/setHeight to kind-of a pitfall.

I think the best solution would be to add some "scale" styleable-only property to Control, as that's probably the most reasonable transform we want to include in layout bounds. As controls have another layer of layoutChildren() call which passes the width/height and do not (should not?) use getWidth()/getHeight() for their layout, it might be possible to hide the internal logic in some common Skin code. That would also mean adding a mandatory Pane to each control that would be the root of the skin, but a child of the control, to hide the internal transformations.

-Martin

On 10.6.2014 05:09, Richard Bair wrote:
One thing we’ve always considered was adding some kind of convenience API to 
Node to toggle how the layout bounds are computed (whether they take into 
account transforms or not). Martin, how difficult would that be, do you think?

Richard

On Jun 5, 2014, at 11:41 AM, Rafal Leibzig <rafal...@gmail.com> wrote:

Thanks for advice.
I know this trick with wrapping in a Group, but as i wrote on
stackoverflow, there is dropshadow effect after moving mouse over the
control.
This effect extends group's layoutBounds for a while.
And when mouse leaves out the control, then group's layoutBounds shrink.

I found the sources/css for this control:
https://bitbucket.org/controlsfx/controlsfx/src/96f40eb0b579277139192e2398fbbaf7fd01f91e/controlsfx/src/main/resources/org/controlsfx/control/rating.css?at=default

--
Rafal


2014-06-05 16:12 GMT+02:00 Martin Sladecek <martin.slade...@oracle.com>:

Hi Rafal,
you can wrap the control in a Group. That way, it's (actually Group's)
layoutBounds will be the same as it's transformed bounds (boundsInParent).
Alternatively you can use css styling, but I don't know much about how to
do it properly, maybe Jonathan can help you there.

-Martin


On 06/05/2014 01:13 AM, Rafal Leibzig wrote:

Hi,

Sorry for disturbing you, but I have a question and no one answered me on
other forums.

My question is rather simple:

http://stackoverflow.com/questions/23997115/how-to-
scale-control-and-layout-it-properly-in-javafx


Thanks in advance.
You are the experts. :)




Reply via email to