/*******************************************************************************
* Copyright (c) 2000, 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.gef;
import java.util.List;
/**
* This class provides keyboard accessibility support for <i>Anchors</i>. Anchors are
* simply locations (relative to the Viewer's Control) on the GraphicalEditPart's figure
* indicated by {@link org.eclipse.draw2d.geometry.Point Points}. Anchors are used when
* creating or manipulating connections graphically. <I>Accessible</I> Anchors are the
* locations that should be used during keyboard connection manipulation.
* <P>
* Keyboard connection manipulation moves the Mouse cursor programmatically to the
* AccessibleAnchor's location. Targeting is still performed as if the User were using
* the Mouse and not the keyboard. Therefore, the GraphicalEditPart should provide
* locations that will result in its being targeted by the current tool.
* <P>
* Connection operations involves either the source or target end of a connection. The
* <code>AccessibleAnchorProvider</code> has the option of returning different locations
* depending on the context of the operatation.
*/
public interface AccessibleAnchorProvider {
/**
* Returns a list of Points in <B>absolute</B> coordinates where source anchors are
* located. Tools that work with connections should use these locations when operating in
* accesible keyboard modes.
* @return A list of absolute locations (Points relative to the Viewer's Control)
*/
List getSourceAnchorLocations();
/**
* Returns a list of Points in <B>absolute</B> coordinates where target anchors are
* located. Tools that work with connections should use these locations when operating in
* accesible keyboard modes.
* @return A list of absolute locations (Points relative to the Viewer's Control)
*/
List getTargetAnchorLocations();
}