package org.xmind.ui.internal.print.multipage;
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;
import org.xmind.gef.ui.editor.IGraphicalEditorPage;
import org.xmind.ui.internal.figures.SheetFigure;
import org.xmind.ui.mindmap.IMindMap;
class PrintMultipageUtils {
public static Rectangle getSheetFigureBounds(IGraphicalEditorPage page,
IMindMap mindmap) {
Rectangle extent = new Rectangle(
getSheetFigure(page, mindmap).getFreeformExtent());
int margin = getMargin(extent);
return extent.expand(new Insets(margin));
}
private static SheetFigure getSheetFigure(IGraphicalEditorPage page,
IMindMap mindmap) {
return (SheetFigure) page.getViewer()
.findGraphicalPart(mindmap.getSheet()).getContentPane();
}
public static int getMargin(Rectangle sourceArea) {
int margin = Math.max(sourceArea.width, sourceArea.height) / 100;
return Math.max(2, Math.min(margin, 10));
}
}