JDialog not displayed from Externalized Stacked DefaultMultipleCDockables group


#1

Hi Beni,

I am using a CWorkingArea to create multiple DefaultMultipleCDockable as editors. Each of these editor dockables creates its own modeless JDialog which needs to display in front of its DefaultMultipleCDockable parent. Also, each JDialog is instantiated with the same main JFrame parent owner.

This use case works fine as expected in various scenarios (for example, when one or more dockable parents are in the normalized position within the JFrame, and also when there are one or more ‘separate’ visible externalized dockables floating about). However, when two or more dockables are ‘stacked together’ and showing in the externalized position the JDialog does not display any more.

There are no errors reported – just a silent no show of the JDialog. I have tried setting ‘toFront()’ and ‘setAlwaysOnTop(true)’ to force the JDialogs to display from an externalized stacked dockable group but no luck there. Also, I tried instantiating the JDialog without a parent owner but no joy there either. Any ideas to trouble shoot this? Thank you.


#2

Puhh, hard question you are asking here.

The externalized Dockables are on a JDialog as well, but that should not be an issue.

If they are stacked, then the Dockable that are in a hidden tab are “not visible” (I mean, the property “visible” on the Components is set to “false”).

Some ideas:

  • I think not having an owner is strange for dialogs, and may place them far in the back.
  • The size or location of your JDialogs places them outside of the screen?
  • Ever tried to close and reopen the dialogs?
  • You forgot to make them visible? Because the Components of the Dockables change visibility sometimes.

It would really help to see how your dialogs are handled. Maybe you could provide an example?


#3

Hi Beni,

Thanks for your feedback. This issue has been solved – and I am happy to report that it had nothing to do with DF. The fix was to my code and it involved removing a simple check for externalized dockables in order to display my custom dialog. This code was in a stable and reusable module that initially I did not think of checking there; so apologies for the false alarm!
Thanks again for your support.