/*
* 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.layout;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.teiid.designer.diagram.ui.model.DiagramModelNode;
/**
* DiagramLayout
*
* @since 8.0
*/
public class DiagramLayout {
public static final int SUCCESSFUL = 0;
private List nodes;
private int padding = 10;
private int startX = 0;
private int startY = 0;
private int vGap = 0;
private int hGap = 0;
private int width = 0;
private int height = 0;
private int xOrigin = 0;
private int yOrigin = 0;
public DiagramLayout() {
nodes = new ArrayList();
}
public DiagramLayout(List newNodes) {
nodes = new ArrayList(newNodes);
}
public void add(Object newNode) {
if( !nodes.contains(newNode) )
nodes.add(newNode);
}
public void remove(Object newNode) {
nodes.remove(newNode);
}
public List getComponents() {
return nodes;
}
protected int run() {
// Default Implementation
return SUCCESSFUL;
}
protected int getComponentCount() {
return nodes.size();
}
/**
* @return current padding between objects
*/
public int getPadding() {
return padding;
}
/**
* @return starting x value
*/
public int getStartX() {
return startX;
}
/**
* @return starting y value
*/
public int getStartY() {
return startY;
}
/**
* @param i
*/
public void setPadding(int i) {
padding = i;
}
/**
* @param i
*/
public void setStartX(int i) {
startX = i;
}
/**
* @param i
*/
public void setStartY(int i) {
startY = i;
}
public void clear() {
nodes.clear();
}
public void setStartLocation(int x, int y ) {
setStartX(x);
setStartY(y);
}
public void setOrigin(int x, int y ) {
setXOrigin(x);
setYOrigin(y);
}
/**
* @return
*/
public int getHeight() {
return height;
}
/**
* @return
*/
public int getHGap() {
return hGap;
}
/**
* @return
*/
public int getVGap() {
return vGap;
}
/**
* @return
*/
public int getWidth() {
return width;
}
/**
* @return
*/
public int getXOrigin() {
return xOrigin;
}
/**
* @return
*/
public int getYOrigin() {
return yOrigin;
}
/**
* @param i
*/
public void setHeight(int i) {
height = i;
}
/**
* @param i
*/
public void setHGap(int i) {
hGap = i;
}
/**
* @param i
*/
public void setVGap(int i) {
vGap = i;
}
/**
* @param i
*/
public void setWidth(int i) {
width = i;
}
/**
* @param i
*/
public void setXOrigin(int i) {
xOrigin = i;
}
/**
* @param i
*/
public void setYOrigin(int i) {
yOrigin = i;
}
public DiagramModelNode[] getNodeArray() {
DiagramModelNode[] nodeArray = new DiagramModelNode[getComponentCount()];
DiagramModelNode nextNode = null;
Iterator iter = getComponents().iterator();
int count = 0;
while( iter.hasNext() ) {
nextNode = (DiagramModelNode)iter.next();
nodeArray[count] = nextNode;
count++;
}
return nodeArray;
}
}