Bug 391381 - provide filtered tree option in error view and problems view
Summary: provide filtered tree option in error view and problems view
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3   Edit
Hardware: All All
: P3 enhancement with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Platform UI Triaged CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted
Depends on: 484310
Blocks:
  Show dependency tree
 
Reported: 2012-10-08 20:07 EDT by Raj Alagumalai CLA
Modified: 2022-09-01 03:01 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Raj Alagumalai CLA 2012-10-08 20:07:08 EDT
currently when working with a large workspace, if the user needs to search for any specific entry in the problems view or in the error log, the option option is to open the error log and search and in the case of problem markers, select all and copy and paste into a new file and search. would be great if the user could do this from within the error or problems view
Comment 1 Lars Vogel CLA 2015-10-06 12:42:33 EDT
Error log has already this but we should make it hideable.
Comment 2 Sebastian Lohmeier CLA 2015-12-13 16:06:57 EST
I had a look at this issue and would like to work on it. There are a number of points I'd like others to think through / confirm, since I'm new to Eclipse platform(.ui). That's why this comment might seem unsually verbose.

(1) ProblemsView inherits from MarkerSupportView and has siblings AllMarkersView, BookmarksView and TasksView. The solution for ProblemsView might therefore be implemented in MarkerSupportView so it applies to all children of MarkerSupportView - uniformity might be a good thing from a usability perspective. This would have the side-effect of requiring some screen space for the filter text field in all those views because the filter text field is visible by default.

(2) Lars mentioned that the filter text field should be hideable. This is already possible via the "Show text filter" checkbox menu item in the toolbar drop-down menu (the upside-down triangle), but it might be possible to add a way to hide the filter text that is more visible. E.g. an (x) button could be added to the filter text field that removes the text field when clicked. Users might want to show the text field again after removing it, leaving them in the same situation as when they did not find the "Show text filter" menu item in the toolbar drop-down menu initially. As a solution of this problem, an icon to show/hide the filter text field might be added to the toolbar of the view.

(3) If (2) is the way to go: Is there a standard icon for the (x) button proposed in (2)?

(4) If (2) is the way to go: Is there a standard icon for "shown/hide filter text field" menu item proposed in (2) - the current item in the toolbar drop-down menu does not have an icon.

(5) Two filter-related features exist already and their interactions with the filter text field need to be considered during tests. For subclasses of MarkerSupportView, it is possible to configure filter texts via "toolbar drop-down menu > Configure Contents > Description > Text > contains". Both the LogView and the children of MarkerSupportView have the <CTRL>+<F> short cut that opens a small text field on the lower right that highlights the first entry that starts with the entered text.

(6) LogView uses a FilteredTree. To implement this enhancement, the (x) button might be added to org.eclipse.ui.dialogs.FilteredTree. FilteredTree uses a org.eclipse.jface.viewers.TreeViewer. MarkerSupportView currently uses a MarkersTreeViewer, a subclass of TreeViewer. MarkerSupportView would need to use a subclass of FilteredTree instead of the MarkersTreeViewer. The subclass of FilteredTree would override doCreateTreeViewer() to return a subclass of MarkersTreeViewer that clears the caches of the PatternFilter of FilteredTree, just like FilteredTree.NotifyingTreeViewer does.

(7) org.eclipse.e4.ui.dialogs.filteredtree.FilteredTree seems to be a copy of org.eclipse.ui.dialogs.FilteredTree and might need to be updated, too (as well as its test cases).

(8) The tests for MarkerSupportView (MarkersViewColumnSizeTest and ResourceMappingMarkersTest) have errors. The FilteredTreeTests do not cover filtering. I'll commit the addition of a test for FilteredTree that uses a pattern for filtering.

(9) Just a note: org.eclipse.ui.internal.views.log.LogView is contaiend in the project eclipse.pde.ui/ui/org.eclipse.ui.views.log.

(10) Text and screenshots in the documentation will need to be updated for the problems view (http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-31a.htm) and the other children of MarkerSupportView and for the error log view (http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-error_log_view.htm). I don't know which repository contains the documentation.
Comment 3 Eclipse Genie CLA 2015-12-13 16:08:25 EST
New Gerrit change created: https://git.eclipse.org/r/62566
Comment 4 Lars Vogel CLA 2015-12-16 16:17:02 EST
Sebastian, short answer: org.eclipse.e4.ui.dialogs.filteredtree.FilteredTree has already the ability to enable and disable a filterbox. This composite should be used.
Comment 5 Lars Vogel CLA 2016-04-20 12:05:08 EDT
Mass move to 4.7 as M7 is approaching. Please move back in case you are planning to fix it for Neon.
Comment 6 Enda O Brien CLA 2022-08-25 12:40:56 EDT
Are there plans to implement this enhancement ? 

We would love to see a text filter in the problem view, similar to the one in the error log. 

https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-error_log_view.htm
Comment 7 Lars Vogel CLA 2022-08-25 13:40:03 EDT
(In reply to Enda O Brien from comment #6)
> Are there plans to implement this enhancement ? 
> 
> We would love to see a text filter in the problem view, similar to the one
> in the error log. 
> 
> https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.platform.doc.
> user%2Freference%2Fref-error_log_view.htm

Would be great, please consider providing a pull request for this.
Comment 8 Enda O Brien CLA 2022-08-31 07:40:00 EDT
Instead of using FilteredTree would is suffice to 

- add a ViewerFilter to the MarkersTreeViewer using addFilter(ViewerFilter ...
- Swt Text widget for capturing the filter text.
- A key listener on the Text widget for updating the ViewerFilter text and refreshing the view ?
Comment 9 Lars Vogel CLA 2022-09-01 03:01:46 EDT
(In reply to Enda O Brien from comment #8)
> Instead of using FilteredTree would is suffice to 
> 
> - add a ViewerFilter to the MarkersTreeViewer using addFilter(ViewerFilter
> ...
> - Swt Text widget for capturing the filter text.
> - A key listener on the Text widget for updating the ViewerFilter text and
> refreshing the view ?

Re-using the FilteredTree would allow to reuse existing performance optimizations for handling large data.
IIRC the e4 FilteredTree has also the option to hide / unhide the filter text field. Please provide PR for your work.