Skip to content

Problems with InteractionDialog not being shown #5193

@ThomasH99

Description

@ThomasH99

I've spend the last few weeks trying to figure out what happens and no success so far, despite pulling out quite a lot of hair. So I thought I'd create this ticket in the hope that better minds may be able to figure out what's wrong.

I use the InteractionDialog (ID) to implement a step-by-step demo of the UI, pointing to different parts and explaining what they do. So, one InteractionDialog is shown and when the user pushes Next it is disposed() and the next one is shown. The steps are animated to attract attention to the new element.

My approach is to simply use InteractionDialog.show(Component), however, I can't get them to appear consistently, sometimes nothing is shown. I've tried multiple times debugging the CN1 code but the logic with multiple layeredPanes depending on formMode or not, as well as the ainmation and the delayed adding using the changeQueue and ComponentAnimation() in Container.insertComponentAt(final int index, final Object constraint, final Component cmp) makes it complex and I haven't been able to figure out what's wrong.

I've also try to create a test case to reproduce this but (frustratingly) it doesn't reproduce the problem, probably because my real app has some additional aspects which somehow make the problem appear.

A few indices:

  • I mix InteractionDialogs in formMode and not in formMode (since they may point to stuff both outside and inside the contentPane).
  • When I show the InteractionDialog in a showSeriallyOnIdle, it sometimes works (but not consistently). So, I suspect that it may somehow be related to the queued updates of the content of the Layers.
  • I also suspect that one source of the problem may be the InteractionDialog.cleanupLayer() which only seems to clean up formLayer and not the 'class' layer (supported by the observation that sometimes during debugging I noticed several layers were added at the same time). But I'm not sure this would be enough to explain the issue.
  • Sometimes the ID shows up at another screen, like if the adding to the layer was delayed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions