blob: e02ad210462cafcfe33b50c0e0c389842ecba655 [file] [log] [blame]
package org.eclipse.ui;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.jface.viewers.ISelection;
/**
* A selection service tracks the selection within an object.
* <p>
* This interface is not intended to be implemented by clients.
* </p>
*/
public interface ISelectionService {
/**
* Adds the given selection listener.
* Has no effect if an identical listener is already registered.
*
* @param listener a selection listener
*/
public void addSelectionListener(ISelectionListener listener);
/**
* Adds a part-specific selection listener which is notified when selection changes in the part with
* the given id. This is independent of part activation: the part need not
* be active for notification to be sent. The listener is also notified when the part is created
* and disposed. When the part is created, the listener is passed the part's initial selection.
* When the part is disposed, the listener is passed a <code>null</code> selection.
*
* @param partId the id of the part to track
* @param listener a selection listener
* @since 2.0
*/
public void addSelectionListener(String partId, ISelectionListener listener);
/**
* Adds the given post selection listener.It is equivalent to selection
* changed if the selection was triggered by the mouse but it has a
* delay if the selection is triggered by the keyboard arrows.
* Has no effect if an identical listener is already registered.
*
* Note: Works only for StructuredViewer(s).
*
* @param listener a selection listener
*/
public void addPostSelectionListener(ISelectionListener listener);
/**
* Adds a part-specific post selection listener which is notified when selection changes in the part with
* the given id. This is independent of part activation: the part need not
* be active for notification to be sent. The listener is also notified when the part is created
* and disposed. When the part is created, the listener is passed the part's initial selection.
* When the part is disposed, the listener is passed a <code>null</code> selection.
*
* @param partId the id of the part to track
* @param listener a selection listener
* @since 2.0
*/
public void addPostSelectionListener(String partId, ISelectionListener listener);
/**
* Returns the current selection in the active part. If the selection in the
* active part is <em>undefined</em> (the active part has no selection provider)
* the result will be <code>null</code>.
*
* @return the current selection, or <code>null</code> if undefined
*/
public ISelection getSelection();
/**
* Returns the current selection in the part with the given id. If the part is not open,
* or if the selection in the active part is <em>undefined</em> (the active part has no selection provider)
* the result will be <code>null</code>.
*
* @param partId the id of the part
* @return the current selection, or <code>null</code> if undefined
* @since 2.0
*/
public ISelection getSelection(String partId);
/**
* Removes the given selection listener.
* Has no effect if an identical listener is not registered.
*
* @param listener a selection listener
*/
public void removeSelectionListener(ISelectionListener listener);
/**
* Removes the given part-specific selection listener.
* Has no effect if an identical listener is not registered for the given part id.
*
* @param partId the id of the part to track
* @param listener a selection listener
* @since 2.0
*/
public void removeSelectionListener(String partId, ISelectionListener listener);
/**
* Removes the given post selection listener.
* Has no effect if an identical listener is not registered.
*
* @param listener a selection listener
*/
public void removePostSelectionListener(ISelectionListener listener);
/**
* Removes the given part-specific post selection listener.
* Has no effect if an identical listener is not registered for the given part id.
*
* @param partId the id of the part to track
* @param listener a selection listener
* @since 2.0
*/
public void removePostSelectionListener(String partId, ISelectionListener listener);
}