blob: 74e566bb51921949b5fa052da52e42b74315194f [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2003 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.gmf.runtime.draw2d.ui.figures;
/**
* @author choang
*
*<br>Implements the ILayoutManager interface using the gravity Layout
*<br>algorithm. The first child in the parent figure will be laid out
*<br>in the direction of the gravity. @see #setGravity(GravityDirection)
*<br> for more details.
*
*/
public class GravityConstrainedFlowLayout extends ConstrainedToolbarLayout {
GravityDirectionType gravity = GravityDirectionType.WEST;
/**
* Method setGravity will update the gravity used for the layout.
* <br>For example if the gravity is set to EAST for a figure that has 3
* <br>children [1][2][3] then the children
* <br>will be layout out as follows [3][2][1]. If ther gravity is North then
* <br>the same figure children wil be laid out as follow:<br>
* <br>[1]
* <br>[2]
* <br>[3]
* <br>with the child figure [1] at the top.
*
* @param gravity the enumeration <code>GravityDirectionType</code> indicating
* which direction the flow layout is oriented.
*/
public void setGravity(GravityDirectionType gravity) {
this.gravity = gravity;
if (gravity == GravityDirectionType.SOUTH) {
setVertical(true);
setReversed(true);
} else if (gravity == GravityDirectionType.EAST) {
setVertical(false);
setReversed(true);
} else if (gravity == GravityDirectionType.NORTH) {
setVertical(true);
setReversed(false);
} else if (gravity == GravityDirectionType.WEST) {
setVertical(false);
setReversed(false);
}
}
/**
* Method getGravity used for this layout
* @return GravityDirectionType
*/
public GravityDirectionType getGravity() {
return this.gravity;
}
}