blob: dfc8f0ddb10dc8b4337b7aaba869f43b0bbea57d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2010 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.gef.editparts;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPart;
/**
* Responsible for locating <i>layers</i> in a <code>GraphicalViewer</code>.
* Layers are just transparent {@link org.eclipse.draw2d.Figure figures}.
* <P>
* Typically, the <code>RootEditPart</code> will register() itself as the
* LayerManager for the GraphicalViewer. All other EditParts/EditPolicies
* looking for a layer use the Viewer's
* {@link org.eclipse.gef.EditPartViewer#getEditPartRegistry() editPartRegsitry}
* to find the <code>LayerManager</code>.
*
* @author hudsonr
* @since 2.0
*/
public interface LayerManager {
/**
* This key used to register the LayerManager in the Viewer's
* EditPartRegistry.
*/
Object ID = new Object();
/**
* Returns a specified layer.
*
* @param key
* a key identifying the layer
* @return the specified layer
*/
IFigure getLayer(Object key);
/**
* A static helper
*
* @since 2.0
*/
class Helper {
/**
* Finds the LayerManager given any EditPart in the Viewer.
*
* @param part
* any EditPart in a GraphicalViewer
* @return the <code>LayerManager</code>
*/
public static LayerManager find(EditPart part) {
return (LayerManager) part.getViewer().getEditPartRegistry()
.get(ID);
}
}
}