Thoughts on Dialogs and Lightboxes
kevin.rushforth at oracle.com
Mon Apr 2 13:55:56 PDT 2012
Note that a public method to allow a blocking modal dialog is planned
Jonathan Giles wrote:
> I'm coming to this discussion late as I've been travelling - sorry
> about that. As Dan mentions, I have a JOptionPane-esque API already.
> For those with access to rt-closed, it is in toys/dialogs. It is
> basically a fork of the JavaFX security dialog you may have seen
> elsewhere, with API similar to what you'd see in JOptionPane, and a
> whole lot of unnecessary code ripped out. It is fairly well developed
> and quite a long way along, and certainly usable. I have been pushing
> the relevant people to include this in a release, or at least the same
> concept of this, but as of yet I have not had success. This is most
> probably just due to the fact that there are more important fish to
> fry, and as Artem notes, the API is all there to make a modal window,
> and there is impl_ API (which you should never use!) to make a stage
> I have not done any work along the sheet approach, as this requires
> further support in the glass API, and this is where Artem would step in.
> -- Jonathan
> On 2/04/2012 8:03 p.m., Artem Ananiev wrote:
>> Hi, Daniel,
>> On 3/31/2012 7:50 AM, Daniel Zwolenski wrote:
>>> I'm curious what the plans are for Dialogs in JavaFX. I assume they
>>> are on the roadmap?
>> both dialogs (owned windows) and modality are already there:
>>> I notice hints of this from Jonathon here:
>> This issue is about having the Alert class, which is similar to
>> Swing's JOptionPane, Windows' MessageBox and similar dialogs in other
>> UI toolkits. You can implement it yourself, however this
>> functionality is common enough to be a standard JFX class.
>>> But I see the request is as yet unresolved.
>>> The reason I ask is because I've had to implement my own 'Lightbox'
>>> framework for my last project and I'm wondering if some part of this
>>> or something similar should be in JFX. I know a lot of people on the
>>> forums have been looking for classic dialog support from JFX.
>>> If you don't know already, a Lightbox is the web's answer to
>>> Dialogs, where a dialog-like pane is layered on top of the main
>>> content with a semi-transparent glass pane making it basically
>>> modal. The dialog is still within the main browser window, so it's
>>> not a true Popup but to the user is much the same.
>>> The end result looks like this:
>> This is a screenshot with Mac OS X "sheet", which is not what is
>> usually referred to as "Dialog". It's not a separate top-level
>> window. Other platforms don't have built-in support for such UI
>>> It is quite easy to implement this in JFX using a StackPane as the
>>> base. The simple API is just to have some kind of LightboxPane (or
>>> RootPane, etc) that extends StackPane and includes a method like:
>>> showInLightbox(Node node)
>>> This then adds a 'glass pane' to the top of the Stack to dim out the
>>> content, and then adds the node to this glass pane. The node's
>>> visibility could be tracked to determine when to remove the glass
>>> pane, etc.
>>> The API can be extended beyond this simple setup quite drastically
>>> to include things like decorated boxes (title bar, close button,
>>> resize edges, etc), animated entry/exit, and 'dialog options' such
>>> as ok, cancel (ie JOptionPane like functions).
>>> My stuff needs cleaning up but I was planning to eventually roll my
>>> framework into JFX Flow. If it's on the JFX roadmap anyway, better
>>> not to, or at least I'd like the API to mirror JFX Dialogs if possible.
>>> Thoughts and comments?
>> If you're asking about support for Mac OS X "sheets", please, file a
>> separate JIRA issue about this (I don't know if we already have this
>> request in FX bug database), as it is completely separate from RT-12643.
More information about the openjfx-dev