blob: a7a52320c822e1366bac5fca51f65c0cfa6d6ad4 [file] [log] [blame]
/*******************************************************************************
* 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);
}