/*
* @(#)Liner.java
*
* Copyright (c) 1996-2010 by the original authors of JHotDraw and all its
* contributors. All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the
* license agreement you entered into with the copyright holders. For details
* see accompanying license terms.
*/
package org.jhotdraw.draw.liner;
import java.util.*;
import org.jhotdraw.draw.handle.Handle;
import org.jhotdraw.draw.ConnectionFigure;
import org.jhotdraw.geom.*;
/**
* A liner encapsulates a strategy for laying out the bezier path of
* a {@link ConnectionFigure}.
*
*
* Design Patterns
*
* Strategy
* The control points of the bezier path of a connection figure can be laid out
* using different layout algorithms which are implemented by liners.
* Context: {@link ConnectionFigure}; Strategy: {@link Liner}.
*
*
* @author Werner Randelshofer
* @version $Id: Liner.java 718 2010-11-21 17:49:53Z rawcoder $
*/
public interface Liner extends Cloneable {
/**
* Layouts the Path. This may alter the number and type of points
* in the Path.
*
* @param figure The ConnectionFigure to be lined out.
*/
public void lineout(ConnectionFigure figure);
/**
* Creates Handle's for the Liner.
* The ConnectionFigure can provide these handles to the user, in order
* to let her control the lineout.
*
* @param path The path for which to create handles.
*/
public Collection createHandles(BezierPath path);
public Liner clone();
}
Ads help maintain this website.