Objective: Improve user perceived performance.
JST: Perceived? It really speeds up the GoToType and eliminates waiting. Ondrej: But it can commonly give incomplete results if the variant with asynchronous project loading is used (see Problems section).
Environment: NetBeans IDE, existing userdir with several opened projects.
When user invokes "Go To Type" dialog immediate after start and writes value to "Type Name" field, he has to wait until scanning dialog is finished to see the result of a search. Many users are bored especially when they work on large number of projects. Often, there is no need to wait until up-to-date check ...
It would be fine to allow user to open class even when scanning is running. It is possible and not so difficult to implement - but it can lead to incomplete or inaccurate results. Consider following use-case: User has huge source base and when he comes to work, he starts update of the source base. When update is finished user starts IDE. Scanning has been started automatically and user invokes "Go To Type" and writes class name to "Type Name". There are several possible results, class:
UI spec for incomplete results available
Ondrej (xDesign) recommends that the dialog shows the data it has as soon as it is "almost sure" that what user is looking for is present. This is when all projects have been loaded. Classpath scan can still be in progress so the data may not be completely up-to-date (due to versioning update described above), but this can be considered a rare case (UI spec defines how to indicate this situation). The up-to-date data are being recomputed at background and at suitable user gestures, the data are refreshed to be as up-to-date as possible.
The user needs to invoke refresh of the data, it is not good to do this automatically, as it might badly influence use of mouse or other means of user navigation. So far the currently known points that allow change of data: