New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow typing in "Add Bundle Requirement" dialog in Eclipse plugins #5699
Comments
👍 I agree about the less-than-stellar user experience. This sounds like a good way of fixing it. |
Btw, any chance of you having a look at it and submitting a PR yourself, @reckart ? |
That probably depends on how annoyed I am with it in the future. I hope that I'll be "soon" through with the OSGI-ification of the codebase that I am in the middle of and may not be sufficiently slowed down by the issue as compared to digging into the code for that considering the turnaround times for Eclipse plugin development (at least considering my current level of familiarity with the process) and in particular with bnd (build process based on Gradle, having to install the plugin into Eclipse afterwards for testing, etc.) I have been looking into other pretty blocking performance issues related to bnd in the past months - but this is probably not one I'll code on... |
I am making a quick fix. It annoyed me as well and it turns out there is a FilteredTree that seems to simplify the existing code. |
The "Add Bundle Requirement" dialog accessible from the BND Runfile editor from the BND Eclipse plugins feels pretty slow.
In particular, when typing into the "filter bundle name" field, the input blocks until the filter has been applied to the list below. If there are a couple of hundred (I didn't count them, but probably in the upper 3-digit to lower/mid 4-digit count), this feels pretty sluggish.
Maybe the performance of the filtering method can be improved.
It feels like there is no debouncing of typing events at all. Adding a 200ms debounce would likely improve user experience.
A yet better solution though might be to make the filtering asynchronous to the typing into the field such that the user can continue typing while the filtering happens.
The text was updated successfully, but these errors were encountered: