Is there any plan to make impl_processCSS(true) public API?
Should I create a Jira for this?
If there were a public API, would processCSS be the right name for it?

The real issue seems to be that you sometimes want to know the size of 
something before you show it and there doesn't seem to a good way to get that 
info using just the public API (that I know of).

-----Original Message-----
From: openjfx-dev-boun...@openjdk.java.net 
[mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf Of Anton Epple
Sent: Wednesday, August 28, 2013 7:02 AM
To: Richard Bair
Cc: openjfx-dev@openjdk.java.net
Subject: Re: PrefWidth/Height calculations only works if stage is shown

That is very useful in many contexts. Thanks for sharing!

--Toni

Am 08.08.2013 um 23:40 schrieb Richard Bair <richard.b...@oracle.com>:

> The peers don't impact the preferred sizes at all. Use this one 
> instead of impl_reapplyCSS (wrong one)
> 
> impl_processCSS(true)
> 
> 
> On Aug 8, 2013, at 2:35 PM, Tom Schindl <tom.schi...@bestsolution.at> wrote:
> 
>> No same result!
>> 
>>> BorderPane g = new BorderPane();
>>> TableView<String> v = new TableView<String>(); g.setCenter(v); Scene 
>>> s = new Scene(g); primaryStage.setScene(s); g.impl_reapplyCSS(); 
>>> System.err.println(g.prefWidth(-1)); // 0 primaryStage.show();
>> 
>> Could it be that this does not work because if a stage is not yet 
>> shown the peers have not been created?
>> 
>> Tom
>> 
>> On 08.08.13 23:29, Richard Bair wrote:
>>> Yes, the problem is that CSS has not been executed yet. If you call 
>>> reapplyCSS (did we add that API yet? or is it still that impl_?) then you 
>>> can get a proper size from the control.
>>> 
>>> Richard
>>> 
>>> On Aug 8, 2013, at 2:26 PM, Tom Schindl <tom.schi...@bestsolution.at> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I've been trying to open a window in the minimal dimension needed 
>>>> by components but it looks like size calculations 
>>>> prefHeight/prefWidth only works if the stage is shown.
>>>> 
>>>> I need the dimensions before showing the stage because I want to 
>>>> position it on the lower right of the screen before showing the 
>>>> stage because if doing it afterwards leads to flickering.
>>>> 
>>>> 
>>>>> BorderPane g = new BorderPane();
>>>>> TableView<String> v = new TableView<String>(); g.setCenter(v); 
>>>>> Scene s = new Scene(g); primaryStage.setScene(s); 
>>>>> System.err.println(g.prefWidth(-1)); // 0 primaryStage.show(); 
>>>>> System.err.println(g.prefWidth(-1)); // 248
>>>> 
>>>> Is this working as designed?
>>>> 
>>>> Tom
>>> 
>> 
> 

Reply via email to