Endless blocked UI with task pane container and third party libraries
Dear SwingX Team
We have a problem with the JXTaskPaneContainer in a constellation with certain Synthetica Look And Feels and with Canoo ULC (more about that later).
When we use e.g. a text field within the task pane container of SwingX and we use Synthetica Sky Metallic or White Vision as LookAndFeel, then the field gets the focus and a dashed border is drawn continuously around the field. Now it seems that the painting of that border forces the JXTaskPaneContainer to repaint its background. In turn, this lasts pretty long (around 30 millis). This behavior seems to be introduced with SwingX 1.6.5-1 as we can not see this behavior with 1.6.4.
Now, so far this would not be a big issue, but we are using ULC from Canoo. This is a technology which divides Swing into a client side for the presentation and a server side. In other words, UI events are sent from the client to the server where they are processed and the response (the changes in the UI) is sent back to the client. During this round trip, ULC blocks the UI to not allow changes before the response can be rendered.
What happens in combination now: On our ULC client a UI event happens (e.g. a click on a tab or so) that would force the ULC client side to send a request to the ULC server. So ULC blocks the UI (waiting cursor and clicks have no more an effect) already at paint time. Now it seems that as soon as the text field border and with this the task pane container background are painted, then already the next call of the border paint starts. Leading to the problem that ULC waits endless on the end of painting. And maintains the block of the UI :-(
Unfortunately we have this constellation quite a lot and it hinders us to update SwingX or Synthetica where as we would like to update to gain from fixes and so on. We are clear that the problem only happens in the combination of SwingX 1.6.5-1, Synthetica and ULC. So this message will be posted to the support channel of all 3 entities.
The specific question for here, what has been changed between 1.6.4 and 1.6.5-1 in the painting of the task pane container (background) and what could we do to reduce the long painting time?