x0 = g.getX();
y0 = g.getY();
}
}
mxRectangle bounds = null;
if (horizontal)
{
bounds = horizontalLayout(node, x0, y0, null);
}
else
{
bounds = verticalLayout(node, null, x0, y0, null);
}
if (bounds != null)
{
double dx = 0;
double dy = 0;
if (bounds.getX() < 0)
{
dx = Math.abs(x0 - bounds.getX());
}
if (bounds.getY() < 0)
{
dy = Math.abs(y0 - bounds.getY());
}
if (parent != null)
{
mxRectangle size = graph.getStartSize(parent);
dx += size.getWidth();
dy += size.getHeight();
// Resize parent swimlane
if (resizeParent && !graph.isCellCollapsed(parent))
{
mxGeometry g = model.getGeometry(parent);
if (g != null)
{
double width = bounds.getWidth()
+ size.getWidth() - bounds.getX()
+ 2 * x0;
double height = bounds.getHeight()
+ size.getHeight() - bounds.getY()
+ 2 * y0;
g = (mxGeometry) g.clone();
if (g.getWidth() > width)