blob: 0975079fce18183f8f9a20af4fb1cd3c1b3b6e65 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2004 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 org.eclipse.ui.services.IServiceLocator;
/**
* <p>
* A service that is capable of nesting other services within itself. This
* allows lower level components to query for a service provider in a
* hierarchical fashion, and for information to be resolved in a hierarchical
* manner
* </p>
* <p>
* This interface is not intended to be implemented or extended by clients.
* </p>
*
* @since 2.1.3
* @deprecated This is now handled by {@link IServiceLocator} which can
* be nested.
*/
public interface INestableKeyBindingService extends IKeyBindingService {
/**
* Marks the service associated with <code>nestedSite</code> as active if
* one exists. If there is no service associated, then nothing changes.
* Calling this method with <code>null</code> forces deactivation of the
* current service.
*
* @param nestedSite The site whose service should be activated;
* <code>null</code> if the current service should be deactivated.
* @return <code>true</code> if a service is activated (or deactivated, in
* the case of a <code>null</code> parameter); <code>false</code> if
* nothing changed.
*/
public boolean activateKeyBindingService(IWorkbenchSite nestedSite);
/**
* An accessor for the nested key binding service associated with a
* particular site. If the key binding service does not exist for this
* <code>nestedSite</code> already, then a new one should be constructed.
*
* @param nestedSite The site for which the service should be found;
* should not be <code>null</code>.
* @return The associated service, if any; or a new associated service, if
* none existed previously.
*/
public IKeyBindingService getKeyBindingService(IWorkbenchSite nestedSite);
/**
* Removes a nested key binding service from this key binding service. The
* service to remove is determined by the <code>nestedSite</code> with
* which it is associated.
*
* @param nestedSite The site from which to remove the nested service.
* This site must not be <code>null</code>.
* @return <code>true</code> if the service existed and could be removed;
* <code>false</code> otherwise.
*/
public boolean removeKeyBindingService(IWorkbenchSite nestedSite);
}