blob: 7c5db30579795043796fae5990cd528ebe2a6226 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 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.ui;
import java.util.Map;
/**
* <p>
* A listener to changes in a particular source of information. This listener is
* notified as the source changes. Typically, workbench services will implement
* this interface, and register themselves as listeners to the
* <code>ISourceProvider</code> instances that are registered with them.
* </p>
*
* @since 1.0
* @see org.eclipse.ui.ISources
* @see org.eclipse.ui.ISourceProvider
*/
public interface ISourceProviderListener {
/**
* Handles a change to multiple sources. The source priority should be a bit
* mask indicating the sources. The map will be used to construct the
* variables on an <code>IEvaluationContext</code>
*
* @param sourcePriority
* A bit mask of all the source priorities that have changed.
* @param sourceValuesByName
* A mapping of the source names (<code>String</code>) to the
* source values (<code>Object</code>). The names should
* never be <code>null</code>, but the values may be. The map
* must not be <code>null</code>, and should contain at least
* two elements (one for each source).
* @see org.eclipse.core.expressions.IEvaluationContext
* @see ISources
*/
public void sourceChanged(final int sourcePriority,
final Map sourceValuesByName);
/**
* Handles a change to one source. The source priority should indicate the
* source, and the name-value pair will be used to create an
* <code>IEvaluationContext</code> with a single variable.
*
* @param sourcePriority
* A bit mask of all the source priorities that have changed.
* @param sourceName
* The name of the source that changed; must not be
* <code>null</code>.
* @param sourceValue
* The new value for that source; may be <code>null</code>.
* @see org.eclipse.core.expressions.IEvaluationContext
* @see ISources
*/
public void sourceChanged(final int sourcePriority,
final String sourceName, final Object sourceValue);
}