Please use the Apache issue tracking system for new NetBeans issues ( !!
Bug 67801 - "Add Module Dependency" dialog does not keep up with user typing
"Add Module Dependency" dialog does not keep up with user typing
Product: apisupport
Classification: Unclassified
Component: Project
All All
: P2 (vote)
: 5.x
Assigned To: Jesse Glick
Depends on:
  Show dependency treegraph
Reported: 2005-10-30 21:41 UTC by _ ttran
Modified: 2006-01-04 16:05 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT


Note You need to log in before you can comment on or make changes to this bug.
Description _ ttran 2005-10-30 21:41:15 UTC
[IDE built from today's CVS, Linux, AMD64, 2GHz, 1 GB RAM, 64-bit JDK

Steps to reproduce

- create a simple NB plugin module project, keep all the defaults
- right-click on the project node in Projects tab, select Properties menuitem
- select node "Libraries" in the left hand side of the Project propertties dialog
- click on Add button to add new module dependency
- in the Add Module Dependency dialog there is a Filter text field where the
user is supposed to type in a pattern to narrow the list of modules listed in
the JList underneath in the same dialog
- editing this Filter field is painful, the IDE does not keep up with the user
typing, there is a second or so lag after each keystroke even on my 2GHz laptop
Comment 1 Martin Krauskopf 2005-10-31 09:36:07 UTC
You are presuambly talking only about the case when all dependencies are being
loaded (first time you open the dialog). After the first load, the feedback is
immediate (also after you open the properties dialog itself nexttime - cache is
used). So probably INVALID.
Comment 2 _ ttran 2005-10-31 12:52:20 UTC
it's in both cases.  And even if it was slow the first time, it would still be a
problem.  The user usually opens this dialog only once in a while.  So in most
cases she cares about, it's the first usage scenario.

What I observe is subjective, it's better to measure the UI responsiveness using
the technique invented by the perf team.  Ask them for help if you don't know
how exactly.

The problem is most visible when you type in something like "org.openide.util",
place the caret at the end, then hold down <backspace>

I haven't looked in the code, but I guess the population of the JList should be
done async in a different thread and with 100-200 ms delay after the user stops
typing.  Cancel the job when she starts typing again.
Comment 3 Tomas Danek 2005-10-31 13:20:54 UTC
I'm not a performance expert but my subjective feelings about this:

[P4 2.8 GHz, 1GB RAM, WIN XP...]
I didn't spot any latecy while typing letters - only as Martin says, there's a
"first time delay" announced by "please wait", keystrokes after load are replied

[SUNBLADE 2000 sparc, 1GB RAM, sol9,...]  ~weaker machine
trying your case with "org.openide.util", but did not notice any visible lag?!
Comment 4 Martin Krauskopf 2005-10-31 14:12:23 UTC
There are two "Please wait"s.
First in the Textfield - waiting for all deps to be loaded - really happens only
once per NB platform (when the whole Customizer is shown the computation starts).
Second in the List. Is cached only per dependency dialog. Could be probably
enhanced, not sure. But seems to be fast enough AFAIK. So still not sure where
the problem is (regarding also to tmusil comments).
But good idea with that typing delay - but this is rather ENHANCEMENT.
Also note the issue 66803 (which has might confused you)

Comment 5 Jesse Glick 2005-10-31 20:08:44 UTC
Cannot reproduce any visible delay other than the initial load when platform is
first scanned, which can hardly be avoided (and AFAIK does not block EQ).
Comment 6 Tomas Danek 2005-12-12 13:36:28 UTC
definitly found no problem here, response is as fast as i'm typing, tried again
in current trunk. Verified.
Comment 7 Tomas Danek 2006-01-04 16:05:17 UTC
adding marian to cc since he may be also able to reproduce on his laptop.

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo