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 widthheight 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. :)