Extending builders: StageBuilder

Richard Bair richard.bair at oracle.com
Tue Nov 20 10:17:33 PST 2012


+1. Which issue should I put api-approved onto?

Richard

On Jul 11, 2012, at 4:40 PM, Eva Krejcirova <eva.krejcirova at oracle.com> wrote:

> Hi All,
> 
> this is the first of several emails about adding additional methods to existing builder classes, this time about StageBuilder class.
> 
> First some background: there is an issue (RT-19260) with StageBuilder.style() method - it only passes the style to the constructor of Stage, which means that calling applyTo on the builder doesn't work. The style on Stage can be changed with initStyle, but the StageBuilder doesn't currently use it. With the new version of the builder, the builder will call initStyle in applyTo, so the applyTo will work. However, if called after Stage.show, it will throw an exception - the same way as the Stage.initStyle does.
> 
> Together with this fix, I propose to add following methods to StageBuilder which also set properties via init... method:
> 
> *modality* :
> public StageBuilder modality(Modality modality)
>   - will set modality via initModality
> 
> *owner* :
> public StageBuilder owner(Window owner)
>   - will set owner via initOwner
> 
> 
> They will behave similar to style() method - i.e. applyTo  will throw an exception when  called after Stage.show() and also throw an exception if called on a primary stage:
> StageBuilder builder = StageBuilder.create().modality(Modality.WINDOW_MODAL);
> Stage stage = builder.build(); // this is OK
> stage.show();
> builder.modality(NONE).applyTo(stage); // this will throw an exception in applyTo
> 
> What do you think?
> 
> Thanks,
> Eva



More information about the openjfx-dev mailing list