[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-openjfx-dev
Subject: JFXPanel
From: artem.ananiev () oracle ! com (Artem Ananiev)
Date: 2012-12-25 9:51:44
Message-ID: 50D97730.5040101 () oracle ! com
[Download RAW message or body]
Here is the request to backport RT-24632 to 2.2.x:
http://javafx-jira.kenai.com/browse/RT-27202
Thanks,
Artem
On 12/24/2012 9:01 PM, Scott Palmer wrote:
> On 2012-12-24, at 10:06 AM, Artem Ananiev <artem.ananiev at oracle.com> wrote:
>
> >
> > On 12/24/2012 6:25 PM, Scott Palmer wrote:
> > > On 2012-12-24, at 5:18 AM, Anthony Petrov <anthony.petrov at oracle.com>
> > > wrote:
> > >
> > > > On 12/21/2012 18:54, Scott Palmer wrote:
> > > > ...
> > > > > Anyway.. the blocking can be dealt with in the application code
> > > > > if need be (make the Dialog modeless and block the panel via
> > > > > other means). It isn't even the issue. It is the Window
> > > > > hierarchy that is the issue. Dialogs should never go behind
> > > > > their parent window. That's the only bug I would be trying to
> > > > > address for now.
> > > >
> > > > The only way to implement this reliably is to use the handle to the
> > > > native Swing window as an owner for the FX dialog, which is not
> > > > currently possible unfortunately.
> > > >
> > > > I understand the need for this completely. However, I doubt this
> > > > possibility would be useful for FX in the long run, especially
> > > > given that workarounds exist.
> > >
> > > What is the workaround for file choosers? The swing version crashes
> > > the JVM on windows when you try to sort in details view - a major bug
> > > that our testers are very unhappy about.
> >
> > What is the bug number, where the crash is described?
>
> Originally filed as 7160713, again as 7177373, repeated as 7199708... but it is \
> finally fixed in 7u12 anyway. (Too late for me to ship with it.) It was present in \
> all java 7 builds until 7u12. We finally just recently spent days hacking JavaFX \
> file choosers to work reasonably in a Swing app... keeping them in front, blocking \
> the main window etc. It was far more work than it should have been, and there are \
> still corner cases that fail, but at least it doesn't bring down the whole app.
> >
> > > Tool tips? ColorPicker? Context menus? Any popup window... There
> > > are several issues with these not going away when they should or
> > > going behind the parent window.
> >
> > Have you tried the latest 8 builds? The fix for RT-24632 should address popup \
> > windows. It was not backported to 2.2.x
>
> 8 is too far out. I could try, but since I can't ship with it for some time it \
> isn't on the radar.
> >
> > > The workaround is don't use JavaFX, which sort of makes migration of
> > > Swing apps an all or nothing deal. When we hit these issues during
> > > piece-wise migration it becomes a bit scarier to commit to the full
> > > migration.
> > >
> > > I suspect the parent window issue is the root of a lot of JFXPanel
> > > problems. If JAWT can be used to get a proper parent window for the
> > > Scene I'm hoping it will go a long way. If enough of the toolkit
> > > code is open source I would consider attempting a patch myself.
> >
> > I provided comments about JAWT in previous emails. I don't say it's not a \
> > solution, I say it requires much more code to work reliably than one can expect.
>
> That's too bad :-(.
>
> A back port of the popup fixes to 2.2.x (7u12?) would be awesome.
>
> Cheers,
>
> Scott
>
> >
> > > > For example, you could use a Swing modal dialog to achieve the same
> > > > result - just put your modal FX content into another JFXPanel and
> > > > embed it into the JDialog.
> > >
> > > That is the approach we are going with for now.
> > >
> > > > Or, as you're suggesting above, you could disable the panel
> > > > manually which wouldn't fix the z-order but at least would provide
> > > > some kind of modality.
> > >
> > > We don't have a problem with modality at the moment.
> > >
> > > > A third approach is to get rid of the JFXPanel altogether and put
> > > > your FX content into a real FX top-level window.
> > >
> > > In other words a full JavaFX app without Swing... this is what we are
> > > working towards.
> > >
> > > Happy holidays,
> >
> > Merry Cristmas and Happy New Year :)
> >
> > Thanks,
> >
> > Artem
> >
> > > Scott >
> > > >
> > > > --
> > > > best regards,
> > > > Anthony
> > > >
> > > > > Scott
> > > > > On 2012-12-21, at 8:09 AM, Anthony Petrov <anthony.petrov at oracle.com> \
> > > > > wrote:
> > > > > > It isn't obvious to me, however. Suppose I add several JFXPanels into a \
> > > > > > single Swing top-level window. I may want to show a modal dialog for the \
> > > > > > first JFXPanel, but leave others operable, for example. This use case \
> > > > > > seems to be quite valid.
> > > > > > --
> > > > > > best regards,
> > > > > > Anthony
> > > > > >
> > > > > > On 12/21/2012 16:09, Scott Palmer wrote:
> > > > > > > The whole Swing window must be blocked, if possible. I don't even \
> > > > > > > understand why this is a question. If I show a JOptionPane and I give \
> > > > > > > a JPanel as the "parent" component, does it block only the JPanel? \
> > > > > > > This is no different. Can you give me an example of when you would \
> > > > > > > only want the JFXPanel blocked? Scott
> > > > > > > On 2012-12-21, at 4:52 AM, Anthony Petrov <anthony.petrov at \
> > > > > > > oracle.com> wrote:
> > > > > > > > Hi Scott,
> > > > > > > >
> > > > > > > > I think that technically this could be implemented.
> > > > > > > >
> > > > > > > > However, there's a problem: when you create a modal FX dialog \
> > > > > > > > specifying a JFXPanel instance as its owner - should the whole Swing \
> > > > > > > > window be blocked while the dialog is showing, or should the JFXPanel \
> > > > > > > > be disabled only? Why?
> > > > > > > > From logical perspective there's not a perfect answer to the above \
> > > > > > > > question. No matter what decision we make, some people could get \
> > > > > > > > upset.
> > > > > > > > --
> > > > > > > > best regards,
> > > > > > > > Anthony
> > > > > > > >
> > > > > > > > On 12/21/2012 7:00, Scott Palmer wrote:
> > > > > > > > > On 2012-12-17, at 5:55 AM, Artem Ananiev <artem.ananiev at \
> > > > > > > > > oracle.com> wrote:
> > > > > > > > > > On 12/14/2012 8:19 PM, Werner Lehmann wrote:
> > > > > > > > > > > Scott,
> > > > > > > > > > >
> > > > > > > > > > > JFXPanel has quite a few issues (look for JFXPanel or Swing in \
> > > > > > > > > > > Jira). Among those is the filechooser problem. It is probably \
> > > > > > > > > > > just one instance of the problem that a JavaFX stage cannot be \
> > > > > > > > > > > modal or on top of Swing windows.
> > > > > > > > > > Yes, z-order and modality problems with Swing and FX top-level \
> > > > > > > > > > windows is a known issue. Unfortunately, I don't know a good way \
> > > > > > > > > > to fix it: AWT/Swing doesn't expose enough information to use its \
> > > > > > > > > > windows as owner windows for other UI toolkits.
> > > > > > > > > > Thanks,
> > > > > > > > > >
> > > > > > > > > > Artem
> > > > > > > > > I responded earlier wondering why the native window handle of the \
> > > > > > > > > Swing Window wasn't acquired via the publicly available jawt native \
> > > > > > > > > methods so it could be used as the parent for a Stage or worked \
> > > > > > > > > into some sort of hierarchy to give a proper parent window to FX \
> > > > > > > > > Stages and dialogs. I didn't see any response. Am I missing \
> > > > > > > > > something? I already do this (get and use the native window handle) \
> > > > > > > > > in a Swing app so that I can blit live video into my Swing app., a \
> > > > > > > > > high-end video capture/transcoder/broadcast application. (See \
> > > > > > > > > http://www.digitalrapids.com/en/Products/StreamZHD.aspx or the one \
> > > > > > > > > that really could have used FX if it was ready earlier \
> > > > > > > > > http://www.digitalrapids.com/en/Products/TouchStream.aspx) I \
> > > > > > > > > actually have a need to do the same with a JavaFX app .. but there \
> > > > > > > > > is no equivalent in FX land for the jawt JNI methods. (I asked for \
> > > > > > > > > this years ago in the Java FX 1.0 days.) Is all of the code \
> > > > > > > > > involved in JFXPanel->Scene->Window Open Source? I went poking \
> > > > > > > > > around but didn't find the implementation of \
> > > > > > > > > com.sun.javafx.tk.quantum.QuantumToolkit which I think is used to \
> > > > > > > > > create the peer of the EmbeddedWindow used as the Window for \
> > > > > > > > > JFXPanels. Cheers,
> > > > > > > > > Scott
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic