/******************************************************************************* * Copyright 2005, CHISEL Group, University of Victoria, Victoria, BC, Canada. * 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: * The Chisel Group, University of Victoria *******************************************************************************/ package org.eclipse.zest.layouts; import org.eclipse.zest.layouts.constraints.LayoutConstraint; /** * This represents a single relationship, providing the layout algorithms with * a common interface to run on. * * @author Casey Best * @author Chris Callendar */ public interface LayoutRelationship extends LayoutItem { /** * Gets the sourceEntity of this SimpleRelation whether the relation is * exchangeable or not. * @return The sourceEntity. */ public LayoutEntity getSourceInLayout(); /** * Gets the destinationEntity of this SimpleRelation whether the relation is * exchangeable or not. * @return The destinationEntity of this SimpleRelation. */ public LayoutEntity getDestinationInLayout(); /** * Sets the internal relationship object. * @param layoutInformation */ public void setLayoutInformation(Object layoutInformation); /** * Returns the internal relationship object. * @return Object */ public Object getLayoutInformation(); /** * Specify a set of bend points. The layout algorithm using this will pass * in an empty array of bendPoints, or not even call this method, * if there are no bend points associated with this edge. * * If you are updating an existing application you can just implement this * method to do nothing. * * @param bendPoints A list of bend points. All bendpoint locations are expressed * as percentages of the bounds (0,0 to 1,1).The first bendpoint in the list must be the * source point of this relationship and the last bendpoint the destination point * for this relationship. This allows the correct positioning of bendpoints * relative to the source and destination points when drawing the graph. */ public void setBendPoints(LayoutBendPoint[] bendPoints); /** * Clear bend points and related bounds * If you are updating an existing application you can just implement this * method to do nothing. */ public void clearBendPoints(); /** * Classes should update the specirfied layout constraint if recognized * @return */ public void populateLayoutConstraint(LayoutConstraint constraint); }