This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
What is the expected behaviour of the cursor state when a JDialog appears?
I have set up my application to set the cursor to the WAIT_CURSOR state when I am carrying out a long operation. Then I set it back to the DEFAULT_CURSOR state when the operation is complete.
If the operation does not complete successfully an exception is thrown then I display a JDialog with a user friendly error message.
When the JDialog appears my code to set the cursor state back to DEFAULT_CURSOR will not have excecuted yet as it is in a finally block. I was worried that my cursor would stay in the WAIT_CURSOR state and thus preventing the user from dismissing the JDialog that popped up or confusing them.
However I happy to see that the JDialog appearing automatically caused my cursor to go back to the DEFAULT_CURSOR state. So my question is - can I rely on the JDialog always setting my cursor back to the DEFAULT_CURSOR state? Or should I put putting in some code to set it back to DEFAULT_CURSOR before I show JDialog.
I have provided some sample code below that outlines my current set up. Simply run the code, click on the button, you will see the hour glass appear for 2 seconds, then a JDialog will appear. You can see from the console output that my code to set the cursor back to the DEFAULT_CURSOR state has not executed at this stage. It does not execute until you dismiss the JDialog.