| /******************************************************************************* |
| * Copyright (c) 2000, 2008 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.search.ui; |
| import org.eclipse.ui.IMemento; |
| import org.eclipse.ui.part.IPageBookViewPage; |
| /** |
| * Interface to be implemented by contributors to the extension point <code>org.eclipse.search.searchResultViewPages</code>. |
| * A <code>ISearchResultPage</code> is used to show the search results for a |
| * particular class of <code>ISearchResult</code> (as specified in the |
| * <code>searchResultClass</code> attribute of the extension point) in the search |
| * result view. <br> |
| * <p> |
| * Clients may implement this interface. |
| * </p> |
| * @since 3.0 |
| */ |
| public interface ISearchResultPage extends IPageBookViewPage { |
| /** |
| * Returns an object representing the current user interface state of the |
| * page. For example, the current selection in a viewer. The UI state will |
| * be later passed into the <code>setInput()</code> method when the |
| * currently shown <code>ISearchResult</code> is shown again. |
| * |
| * @return an object representing the UI state of this page |
| */ |
| Object getUIState(); |
| /** |
| * Sets the search result to be shown in this search results page. |
| * Implementers should restore UI state (e.g. selection) from the previously |
| * saved <code>uiState</code> object. |
| * |
| * @param search the search result to be shown or <code>null</code> to clear the page. |
| * @param uiState the previously saved UI state |
| * |
| * @see ISearchResultPage#getUIState() |
| */ |
| void setInput(ISearchResult search, Object uiState); |
| |
| /** |
| * Sets the search view this search results page is shown in. This method will be called before |
| * the page is shown for the first time (i.e. before the page control is created). |
| * |
| * @param part the parent search view |
| */ |
| void setViewPart(ISearchResultViewPart part); |
| /** |
| * Restores the page state. Note that this applies only to state that is |
| * saved across sessions. |
| * |
| * @param memento a memento to restore the page state from or <code>null</code> |
| * if no previous state was saved |
| * |
| * @see #setInput(ISearchResult, Object) |
| */ |
| void restoreState(IMemento memento); |
| /** |
| * Saves the page state in a memento. Note that this applies to state that |
| * should persist across sessions. |
| * |
| * @param memento a memento to receive the object state |
| * |
| * @see #getUIState() |
| */ |
| void saveState(IMemento memento); |
| /** |
| * Sets the id for this page. This method will be called before any other |
| * initialization is done. |
| * |
| * @param id the id for this page |
| */ |
| void setID(String id); |
| /** |
| * Returns the id set via <code>setID</code>. |
| * |
| * @return the id of this page |
| */ |
| String getID(); |
| |
| /** |
| * Returns a user readable label for this search result page. The label will be |
| * used to describe the contents for the page to the user (for example it will be |
| * displayed in the search view title bar). To take an example from file search, |
| * a label might read like this: 'test' - 896 matches in workspace. |
| * |
| * @return the user readable label for this search result page |
| */ |
| String getLabel(); |
| } |