[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: [9] API review request: 8090585: Provide an official API to start the JavaFX platform
From:       Kevin Rushforth <kevin.rushforth () oracle ! com>
Date:       2015-11-23 20:28:31
Message-ID: 565376EF.80306 () oracle ! com
[Download RAW message or body]

Yes, you can just use "new Stage()" to create a stage for such an 
application to use. As for registering it as primary, we hadn't thought 
to provide such an API. I don't think it is needed, since the ability to 
embed the primary stage in an applet in a browser (which is not possible 
unless you run it as an Application via the plugin), is really the only 
thing that distinguishes a primary stage from any other Stage.

As for launching multiple Applications, you still won't be able to do 
that by actually calling Application.launch more than once, but if you 
"roll your own" launcher you can accomplish the same thing. You can 
construct multiple Application objects, calling the init() and start() 
method of each.

One thing to be aware of is that just like the JFXPanel case, you will 
probably want to call Platform.setImplicitExit(false) in this case. 
Otherwise, when the last Stage is closed, the JavaFX runtime will exit.

-- Kevin

Benjamin Gudehus wrote:
> Wow, this patch will simplify the architecture of JavaFX testing
> libraries/frameworks.
>
> From my perspective it is important to have a method to start the FX
> runtime and thread.
>
> I guess one would just use `new Stage()` to create the primary Stage? Or do
> we need to register the primary Stage somewhere?
>
> This is a great.
>
> As a sidenote: Another use-case for testing is to be able to call the
> Application launch procedure multiple times (probably for different
> Application classes) without starting the FX runtime. TestFX currently uses
> custom code similar to the code in `LauncherImpl` to archive this.
>
> --Benjamin
>
>
>
> On Sun, Nov 22, 2015 at 9:26 PM, Ali Ebrahimi <ali.ebrahimi1781@gmail.com>
> wrote:
>
>   
>> Hi,
>> I know concerns here, but I think PlatformImpl.startup() and
>> Platform.startup() should have same behavior from caller's POW.
>> So I think if we can not have default behavior(duplicate calls) for public
>> API so please change method name.
>> My suggestions: Platform.safeStartup() or Platform.startPlatform or
>> Platform.start
>>
>> On Sun, Nov 22, 2015 at 11:35 PM, Jonathan Giles <
>> jonathan.giles@oracle.com>
>> wrote:
>>
>>     
>>> I don't believe there is any inconsistency here. We are preserving the
>>> existing semantics in PlatformImpl.startup to not prevent duplicate calls
>>> by default, whilst we are reversing the semantics for the public API in
>>> Platform, where we do prevent duplicate calls. The end result is that we
>>> have one public API (Platform.startup) with one set of semantics (prevent
>>> duplicate values).
>>>
>>> -- Jonathan
>>>
>>>
>>> On 21/11/15 11:57 PM, Ali Ebrahimi wrote:
>>>
>>> Hi,
>>> I think there is an inconsistency between :
>>>
>>> PlatformImpl.java
>>>
>>>      public static void startup(final Runnable r) {
>>> +        startup(r, false);  //************* here default value false
>>>
>>> + }
>>>
>>> and
>>>
>>> Platform.java
>>>
>>> +    public static void startup(Runnable runnable) {
>>> +        PlatformImpl.startup(runnable, true);  //******** here default
>>>       
>> value true
>>     
>>> +    }
>>>
>>>
>>>
>>> On Sat, Nov 21, 2015 at 3:28 AM, Kevin Rushforth <
>>> <kevin.rushforth@oracle.com>kevin.rushforth@oracle.com> wrote:
>>>
>>>       
>>>> Jonathan and all,
>>>>
>>>> Please review the following new API proposal to add the ability to
>>>> explicitly start the FX runtime.
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8090585
>>>> http://cr.openjdk.java.net/~kcr/8090585/webrev.00/
>>>>
>>>> -- Kevin
>>>>
>>>>
>>>>         
>>> --
>>>
>>> Best Regards,
>>> Ali Ebrahimi
>>>
>>>
>>>
>>>       
>> --
>>
>> Best Regards,
>> Ali Ebrahimi
>>
>>     
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic