Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 338253 - [TMF] Implementation of searching, filtering, highlighting and bookmarking in events table
Summary: [TMF] Implementation of searching, filtering, highlighting and bookmarking in...
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: LinuxTools (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Francois Chouinard CLA
QA Contact: Francois Chouinard CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-25 13:17 EST by Patrick Tasse CLA
Modified: 2022-01-13 14:53 EST (History)
0 users

See Also:


Attachments
Proposed patch in org.eclipse.linuxtools.tmf.ui package (74.38 KB, patch)
2011-02-25 13:18 EST, Patrick Tasse CLA
fchouinard: iplog+
Details | Diff
Proposed patch in org.eclipse.linuxtools.tmf package (1.91 KB, patch)
2011-02-25 13:19 EST, Patrick Tasse CLA
fchouinard: iplog+
Details | Diff
icons zip file for org.eclipse.linuxtools.tmf.ui package (2.14 KB, application/zip)
2011-02-25 13:20 EST, Patrick Tasse CLA
fchouinard: iplog+
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Tasse CLA 2011-02-25 13:17:12 EST
Build Identifier: 

Submitting a patch to implement searching, filtering, highlighting and bookmarking in the TMF events table.

Searching, filtering and highlighting use the filter model in TMF to match conditions against a trace event.

In the case where the events table was extended to provide customized columns, the column name is used by the filter model and the column title must match exactly the field label name as defined in the event content.

In the case of the default events table (e.g. as used by the Events view), internal field ids are used to match the default column content.

A header row is added at the top of the table. The header row can be used to set either search or filter conditions. It is possible to toggle between the two states by double-clicking on the header row icon or by context menu.

Searching and filtering is triggered by entering a regular expression in one of the columns in the header row. Multiple conditions can be combined by entering data in more than one column.

Searching will dim all non-matching events with a different background color. Matching events will have a decorator in the left margin. A progress monitor indicates when search is ongoing. Searching can be stopped with the ESC key and cleared with the DEL key. The user can navigate to the next matching event with the ENTER key and to the previous matching event with the Shift-ENTER key. Wrapping is enabled.

Filtering will first clear the table and refill it with matching events one by one. A status row will appear before and after the filtered events indicating how many events matched the filter and how many events were processed. The status row updates itself at regular intervals while filtering is ongoing. Filtering can be stopped with the ESC key and cleared with the DEL key.

The events table context menu contains actions to set a pre-defined workspace filter (ie. a filter created in the Filters view) and to clear all filters in the table.

The events table will automatically highlight event rows with customized background and foreground colors. The color settings are defined in the Colors view. The priority of conditions in the Colors view is respected and the event will use the color setting of the first matching condition. The events table automatically reflects any changes applied in the Colors view.

The user can apply a bookmark to any event in the table by either double-clicking the left margin, selecting Add bookmark in the context menu displayed by right-clicking on the left margin, or using the Add Bookmark action in the Edit menu.

The bookmark dialog will open allowing the user to name the bookmark. The event row will be decorated with a bookmark icon in the left margin, and the bookmark will be added in the standard Eclipse Bookmarks view.

Double-clicking on a bookmark in the Bookmarks view will open the event editor (or bring it to top if it is already open) and select the corresponding event. If the trace is opened by this action, the event selection is delayed until the trace indexing reaches the bookmark event rank.

A bookmark can be deleted by selecting Remove Bookmark in the left margin context menu or Delete in the Bookmarks view.

In this implementation, all matching events at filtering are stored in a cache without any limit on the memory used. It is therefore possible to exhaust the heap memory when filtering a very large trace with a condition that matches many trace events. This should be addressed in a future enhancement.


Reproducible: Always
Comment 1 Patrick Tasse CLA 2011-02-25 13:18:19 EST
Created attachment 189836 [details]
Proposed patch in org.eclipse.linuxtools.tmf.ui package

Legal Message: I, Patrick Tasse, declare that I developed attached code from
scratch, without referencing any 3rd party materials except material licensed
under the EPL. I am authorized by my employer to make this contribution under
the EPL.
Comment 2 Patrick Tasse CLA 2011-02-25 13:19:03 EST
Created attachment 189837 [details]
Proposed patch in org.eclipse.linuxtools.tmf package

Legal Message: I, Patrick Tasse, declare that I developed attached code from
scratch, without referencing any 3rd party materials except material licensed
under the EPL. I am authorized by my employer to make this contribution under
the EPL.
Comment 3 Patrick Tasse CLA 2011-02-25 13:20:01 EST
Created attachment 189838 [details]
icons zip file for org.eclipse.linuxtools.tmf.ui package
Comment 4 Patrick Tasse CLA 2011-02-25 13:39:40 EST
The patches also implement the use of the raw event viewer (from bug 338162) into the event table.

The table is split using a sash form in two parts. The left side is the events table and the right side is the raw event viewer.

The right-click context menu on the event table and on the raw event viewer allow the user to Show/Hide the table side or the raw side.

The two sides are synchronized together. Selecting an event on one side will automatically select the corresponding event on the other side.

Note that the synchronization is broken when the vertical scroll bar is used on the raw event viewer. This is described in bug 338162.

Also, the Time Chart view has been modified to automatically reflect the events table search, filter and bookmark settings. The time chart is decorated to show search matching and bookmarked events, and filtered-out events are hidden in the time chart. The time chart tick colors also match the highlighting settings in the Colors view. This code modification was included in the latest patch in bug 325016.
Comment 5 Francois Chouinard CLA 2011-03-29 18:22:28 EDT
Patch committed. Thanks Patrick.
Comment 6 Francois Chouinard CLA 2011-07-22 15:03:55 EDT
Delivered with 0.8