# Package org.eclipse.search.ui

Classes and interface required to contribute search dialog pages and search result view pages.

## Package Specification

The search plugin implements the search dialog and the search result view. Client can contribute search dialog pages (extension point 'org.eclipse.search.searchPages') and search result view pages (extension point 'org.eclipse.search.searchResultViewPages') to integrate their searches to the shared search user interface.

### Search dialog pages

Search dialog pages contributing to the 'searchPages' extension point must implement `ISearchPage`. A search page has access to its `ISearchPageContainer` to modify search dialog properties.

A search dialog page can additionally implement `IReplacePage` to allow the 'Replace' button to show up.

### Search result view, since 3.0

The search view that shows the search results has been redesigned for 3.0. It is recommended to use and to switch to the new API:

On 'OK', an implementation of a search dialog page creates a search query, represented by an instances of type `ISearchQuery`. The query can be run using API on `NewSearchUI` and will create a `ISearchResult` as result. `ISearchResultListener` can be added to search results and report changes as `SearchResultEvent`.

Clients have to contribute a search result page (`ISearchResultPage`) that can visualize the matches contained in the result set.

The result page has access to the view using `ISearchResultViewPart`

### Search result view, before 3.0

For compatibility to searches written prior to 3.0, the following APIs still exist and are functional. The old search result view is called 'classic search view' in the UI.

Before 3.0, the search result view was fully implemented by the search plugin. All search results had to be marked with search markers (`org.eclipse.core.resources.IMarker`, registered under 'org.eclipse.search.searchmarker')

The search dialog page (type `ISearchResultView`) could access the single search result view using `SearchUI.getSearchResultView()`. It showed all matches as elements of type `ISearchResultViewEntry`.

`IGroupByKeyComputer`, `IActionGroupFactory`, `IContextMenuContributor` and extension point 'org.eclipse.search.searchResultSorters' were used to configure the search result view.

Interface Summary
IActionGroupFactory: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search result view.
IContextMenuConstants: Constants for menu groups used in context menus for Search views and editors.
IContextMenuContributor: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search result view.
IGroupByKeyComputer: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search result view.
IQueryListener: A listener for changes to the set of search queries.
IReplacePage: An extension interface to `ISearchPage`.
ISearchPage: Interface to be implemented by contributors to the extension point `org.eclipse.search.searchPages`.
ISearchPageContainer: Offers client access to the search dialog.
ISearchPageScoreComputer: Computes a score that is used by the search dialog to find the best fitting page for a selection when opened.
ISearchQuery: Represents a particular search query (in a Java example, a query might be "find all occurrences of 'foo' in workspace").
ISearchResult: Implementors of this interface represent the result of a search.
ISearchResultListener: Listener interface for changes to an `ISearchResult`.
ISearchResultPage: Interface to be implemented by contributors to the extension point `org.eclipse.search.searchResultViewPages`.
ISearchResultView: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search result view.
ISearchResultViewEntry: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search result view.
ISearchResultViewPart: Interface for the search result view.

Class Summary
NewSearchUI: A facade for access to the new search UI facilities.
SearchResultEvent: The common superclass of all events sent from `ISearchResults`.
SearchUI: Deprecated, for removal: This API element is subject to removal in a future version. Part of the old ('classic') search.