-
Notifications
You must be signed in to change notification settings - Fork 4
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
Implement annotation grouping. #90
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this a lot, just one thing: I think it's a bit confusing that there can groups with the same name on the same level or nested within each other. If grouped by custom message, you could show an abbreviated version of the custom message. I'm not sure what to do for classifiers though.
src/main/java/edu/kit/kastel/sdq/intelligrade/extensions/guis/table/AnnotationsTableModel.java
Show resolved
Hide resolved
src/main/java/edu/kit/kastel/sdq/intelligrade/extensions/guis/table/AnnotationsTreeNode.java
Show resolved
Hide resolved
Hmm, not sure what you mean. The custom message is there, it is just not included in the screenshot. For the header of a group, it uses the one value (if it is the same for every annotation in it) or the possible values separated by a comma. For the paths I did some extra work, because of how much they have in common (with the naive implementation it would be effectively useless) |
Yeah the information is there, but you need to actively look for it (and possibly even scroll horizontally in the table). I think it would be nice if nested groups wouldn't have the title of the parent group, but indicate by what property they where grouped. |
Quality Gate passedIssues Measures |
Functionality is done. Cleanup should be done in a follow-up PR :) |
This PR implements grouping annotations, which should alleviate the issue with too many annotations from the autograder.
This PR closes #16.
Things that must be done, before this can be merged
The PR itself was much more work than I had initially expected. A proof-of-concept was implemented in about a day, after that I spent three days trying to solve the following issues:
NullPointerException
occurs when an annotation is removed1 has been worked around by using the tree methods, which work flawlessly. 3 has been fixed in a similar way. For 2, there does not seem to be a good solution, I do not even know what the cause for this is. It had been reported in the issue tracker, but they closed it as "not reproducible".
My "hack" is to catch the NPE and return a dummy component which works surprisingly well. I could not observe any problems with this implementation.