package info.limpet.stackedcharts.ui.editor.parts; import info.limpet.stackedcharts.model.ChartSet; import info.limpet.stackedcharts.model.Orientation; import info.limpet.stackedcharts.ui.editor.parts.ChartSetEditPart.ChartsWrapper; import java.util.List; import org.eclipse.draw2d.GridData; import org.eclipse.draw2d.GridLayout; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.RectangleFigure; import org.eclipse.gef.GraphicalEditPart; import org.eclipse.gef.editparts.AbstractGraphicalEditPart; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; /** * Represents the list of the charts contained in a {@link ChartSet} */ public class ChartsPanelEditPart extends AbstractGraphicalEditPart { @Override protected IFigure createFigure() { RectangleFigure rectangle = new RectangleFigure(); rectangle.setOutline(false); GridLayout layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; layout.horizontalSpacing = 10; layout.verticalSpacing = 10; rectangle.setLayoutManager(layout); rectangle.setBackgroundColor(Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_BACKGROUND)); return rectangle; } @Override protected void createEditPolicies() { } @Override protected void refreshVisuals() { GridData gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = SWT.FILL; gridData.verticalAlignment = SWT.FILL; GraphicalEditPart parent = (GraphicalEditPart) getParent(); parent.setLayoutConstraint(this, figure, gridData); GridLayout layoutManager = (GridLayout) getFigure().getLayoutManager(); layoutManager.numColumns = ((ChartSet) parent.getModel()).getOrientation() == Orientation.HORIZONTAL ? getModelChildren().size() : 1; layoutManager.invalidate(); } @SuppressWarnings("rawtypes") @Override protected List getModelChildren() { return (getModel()).getCharts(); } @Override public ChartsWrapper getModel() { return (ChartsWrapper) super.getModel(); } }