// Created on 07.08.2009 package org.eclipse.swt.custom; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.*; class SpreadSheetLayout extends Layout { private final SpreadSheetModel model; private final CellController cellController; private final SliderController sliderController; private final HeaderController headerController; SpreadSheetLayout( final SpreadSheetModel model, final CellController cellController, final SliderController sliderController, final HeaderController headerController ) { this.cellController = cellController; this.sliderController = sliderController; this.headerController = headerController; this.model = model; } protected Point computeSize( final Composite composite, final int wHint, final int hHint, final boolean flushCache ) { return null; } protected void layout( final Composite composite, final boolean flushCache ) { Rectangle clientArea = composite.getClientArea(); model.updateVisibleRowAndColumns( clientArea ); sliderController.adjustSlider(); headerController.adjustHeaderControls(); cellController.adjustCellControls(); Control[] children = composite.getChildren(); for( int i = 0; i < children.length; i++ ) { SpreadSheetUtils.computeBounds( clientArea, children[ i ], model ); } } }