Bug #3864
closedmouse icon is busy
0%
Description
when data sheet is imported, the mouse icon stays as busy when actually it's done.
Updated by Ryan McFall over 15 years ago
I'm going to mark this as client-prototype, but it needs to be tested and
verified. It's likely that an error was thrown and was not caught. Still, we
need to find any code that changes the cursor and make sure that it has a
finally close to change the cursor back to the default. (Resubmit after fire)
Updated by Ryan McFall about 15 years ago
Sandeep, go ahead and take a look at this one. It's obviously not critical, but would be good to see if it is reproducible.
Updated by Sandeep Namilikonda about 15 years ago
This bug seems to happen when the following code snippet is being executed
from edu.msu.first.wizard.WizardFrame.nextPanel() or previousPanel():
1) currentPage.saveValues(wizardData);
2) remove (currentPage.getComponent());
3) currentPage = controller.getNextPage(currentPage,
wizardData);
OR
currentPage = controller.getPreviousPage(currentPage,
wizardData);
4) fireWizardNext();
OR
fireWizardPrevious();
And then:
finally {
if (isChangeCursorOnPageChange() &&
currentPage.isPageLoadCompleteAfterSetWizardData()) {
setDefaultCursor();
}
wherein the "if" condition returns false, hence, keeping the cursor in a
busy state.
What is notable about this issue is that the busy cursor only happens after
an initial selection of student response file is made (SelectDataSource.java)
to go to the next step where student data is displayed in a table and then
the user selects the "<< Previous" button.
On further examination, I found that it is
currentPage.isPageLoadCompleteAfterSetWizardData()
that returns false, preventing the default cursor to be restored.
Ryan, could you clarify why this is the case and how this may be fixed?
Thanks!
Updated by Sandeep Namilikonda about 15 years ago
The function, isPageLoadCompleteAfterSetWizardData() of SelectDataSource.java
returned FALSE because the File Selection Panel browse window did not show up
immediately, but is instead opened after the page has completed loading so that
the window has time to paint itself. Although, while testing, I did not find
this behavior causing too terrible a delay between the page load and the browse
window pop-up. So, for now, I am going to change this function to return TRUE
as it is necessary to make the "busy" icon disappear when a user clicks "previous" or "next" buttons on the "Choose data source" page.
Note that the wait cursor does not persist the very first time the user gets to
the "Choose data source" page because the function setWizardData() calls
fireLoadingCompleteEvent(), which disables the wait cursor. But, when the user
reaches the next window or the previous window and then browses back to this
page, the setWizardData()does not seem to be called.
Hence, there may be an alternate and perhaps, a more elegant solution than what
I am currently using. e.g., calling fireLoadingCompleteEvent() in nextPanel()
function of WizardFrame.java when currentPage.isPageLoadCompleteAfterSetWizardData() returns FALSE.
Please comment!
Updated by Sandeep Namilikonda about 15 years ago
Works for me! Please read comment# 4.