/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.diagram.ui.connection; import java.util.List; import org.eclipse.draw2d.ConnectionAnchor; /** * AnchorManager * * @since 8.0 */ public interface AnchorManager { public static final int NORTH = 0; public static final int EAST = 1; public static final int SOUTH = 2; public static final int WEST = 3; /** * Add NodeConnectionAnchor to anchorManager cache * The cache implementation may be different for each manager. * @param targetAnchor * @return success value */ public boolean add(NodeConnectionAnchor targetAnchor); /** * move NodeConnectionAnchor from one direction to another * @param targetAnchor * @return success value */ public boolean move(NodeConnectionAnchor targetAnchor); /** * Remove NodeConnectionAnchor to anchorManager cache * The cache implementation may be different for each manager. * @param targetAnchor * @return success value */ public boolean remove(NodeConnectionAnchor targetAnchor); /** * Method used to reset source anchor positions from the edit part. * updateTargetEnd indicates whether the other end (target) anchor should be * repositioned as well. * @param updateTargetEnd */ public void resetSourceAnchors(boolean updateTargetEnd); /** * Method used to reset target anchor positions from the edit part. * updateSourceEnd indicates whether the other end (source) anchor should be * repositioned as well. * @param updateSourceEnd */ public void resetTargetAnchors(boolean updateSourceEnd); /** * Method used to reorder all anchors so there is minized overlapping of links */ public void reorderAllAnchors(boolean updateBothEnds); /** * Returns a List of source connection edit parts for the edit part owning this anchor manager. * @return List */ public List getSourceConnections(); /** * Returns a List of target connection edit parts for the edit part owning this anchor manager. * @return List */ public List getTargetConnections(); /** * Returns the source anchor model object for a given connect edit part. * @param connection * @return NodeConnectionAnchor */ public ConnectionAnchor getSourceAnchor(NodeConnectionEditPart connection) ; /** * Returns the target anchor model object for a given connect edit part. * @param connection * @return NodeConnectionAnchor */ public ConnectionAnchor getTargetAnchor(NodeConnectionEditPart connection); /** * Indicates if current edit part contains source anchors. * @return hasSourceAnchors */ public boolean hasSourceAnchors(); /** * Indicates if current edit part contains target anchors. * @return hasTargetAnchors */ public boolean hasTargetAnchors(); /** * Method used to set the position of any input anchor. * Implementation is left to the concrete class. * @param theAnchor * @param direction */ public void setAnchorPosition(NodeConnectionAnchor theAnchor, int direction ); }