Jump to: navigation, search

Difference between revisions of "Platform UI MarkersView"

m
(Markers View)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Platform UI}}
 
{{Platform UI}}
= Markers View Design Notes =
+
= Markers View =
  
We are currently looking at some significant changes to how markers are represented in the Eclipse SDK.
+
The pre 3.4 implementation of a view for Tasks, Bookmarks and Problems is not sufficient for how many people are using markers. See the org.eclipse.ui.ide.markerSupport schema for full details.
  
The current implementation of a view for Tasks, Bookmarks and Problems is not sufficient for how many people are using markers.
+
In 3.4 the MarkerSupportView was added to allow clients to create thier own markers views more suited to thier applications. A MarkerSupportView is created by referring to the markerContentGenerator.
  
Some of the key issues in no particular order are
+
==Marker Content Generator==
* Problems is the main markers view. It is not clear that tasks and bookmarks need to be separate
+
* There are a lot of views in even moderately sized Eclipse applications. Consolidating these 3 views into one view would reduce clutter
+
The markerContentGenerator is the base element for defining a custom markers view. When creating a subclass of MarkerSupportView you pass in the id of the markerContentGenerator to use for it.
* Large applications have a very large amount of marker types to contend with and get a lot of updates that are just confusing to users as a result of having multiple builders in use
+
* Filtering is too complex. There should be some good default filters and filtering in general needs to be simplified
+
* Working set support is not tied to working set selection but rather resource selection
+
* Columns are not configurable or expandable. Many fields (such as location) are not relevant to some markers with others need information we are not showing (like sourceId).
+
* There is no markers view API for applications to expand
+
  
==An extendable markers view==
+
A markerContentGenerator contains
The first step to this is to make a single, multi-instance markers view that replaces the problems, tasks and bookmarks view. The content would be specified by an extension in the markerSupport extension point.
+
* markerFieldReferences. References to the id of the markerFields to be used by the view. The columns in the view are displayed in order of their references.
 +
* markerTypeReferences. References to the org.eclipse.core.resource.markers that will be shown in this view. Note that the subtypes of all referenced markers are shown as well
 +
*markerFieldConfigurations. Configurations that will be available by default to the view. The user may modify these or add thier own using the Configure Contents command
 +
*markerGroupings. The markerGroupings are those that will be shown in the Group By entries of the view. Note that markerGrouping can be defined as a top level element but this will only be supported in the supplied ProblemsView for backwards compatibility reasons.
  
This content needs to support
+
==Marker Field==
* different default values for different perspectives. For instance the tasks content would be in use in the Resource perspective and the problems content would be used by the Java perspective.
+
* activities so that content can be filtered out
+
* a limited set of markerTypes to prevent transient markers being shown from multiple builders
+
* specification of the columns to show. Many RCP applications have other relevant marker information to show (such as IMarker#sourceID) which is not currently available.
+
  
==Other new features not currently available==
+
A markerField is the definition of one of the columns of a MarkerSupportView. A markerField defines
* default filtering. We currently support this but do not use it in the SDK. The most popular combination is all errors and warnings on selection
+
*class. The subclass of MarkerField used to configure and display markers in the column
* no marker limits. With better default filtering all of the markers will be shown. As the tree is now virtual (see below) the performance issues of large marker sets should be less of an issue
+
*filterClass. The class used to filter markers based on the criterea in a configuration
* custom columns. The columns shown will be specified by the content provider
+
*filterConfigurationClass. The class used to create an area for the user to edit in the ConfigureContents dialog
* filtering based on displayed columns. The filtering dialog will display filtering for all columns
+
 
+
==Use of the newer platform features==
+
* Commands. The markers view will now use the new commands structure so that other contributors can add to it's menus as desired without having to subclass
+
* Virtual Tree. The tree will now be virtual eliminating the need for marker limits
+
* Forms. The new filter page will be forms based for easier contribution and navigation
+
[[Category:Platform UI]]
+

Latest revision as of 15:28, 19 March 2008

Markers View

The pre 3.4 implementation of a view for Tasks, Bookmarks and Problems is not sufficient for how many people are using markers. See the org.eclipse.ui.ide.markerSupport schema for full details.

In 3.4 the MarkerSupportView was added to allow clients to create thier own markers views more suited to thier applications. A MarkerSupportView is created by referring to the markerContentGenerator.

Marker Content Generator

The markerContentGenerator is the base element for defining a custom markers view. When creating a subclass of MarkerSupportView you pass in the id of the markerContentGenerator to use for it.

A markerContentGenerator contains

  • markerFieldReferences. References to the id of the markerFields to be used by the view. The columns in the view are displayed in order of their references.
  • markerTypeReferences. References to the org.eclipse.core.resource.markers that will be shown in this view. Note that the subtypes of all referenced markers are shown as well
  • markerFieldConfigurations. Configurations that will be available by default to the view. The user may modify these or add thier own using the Configure Contents command
  • markerGroupings. The markerGroupings are those that will be shown in the Group By entries of the view. Note that markerGrouping can be defined as a top level element but this will only be supported in the supplied ProblemsView for backwards compatibility reasons.

Marker Field

A markerField is the definition of one of the columns of a MarkerSupportView. A markerField defines

  • class. The subclass of MarkerField used to configure and display markers in the column
  • filterClass. The class used to filter markers based on the criterea in a configuration
  • filterConfigurationClass. The class used to create an area for the user to edit in the ConfigureContents dialog