/*
* 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.editor;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.FigureUtilities;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.SnapToGrid;
import org.eclipse.gef.editparts.GridLayer;
import org.eclipse.swt.SWT;
/**
* @since 8.0
*/
public class PageBoundaryGridLayer extends GridLayer {
protected int iDefaultGridCellWidth = 1250;
protected int iDefaultGridCellHeight = 1300;
protected int iGridCellWidth = iDefaultGridCellWidth;
protected int iGridCellHeight = iDefaultGridCellHeight;
/**
*
* @since 4.3
*/
public PageBoundaryGridLayer() {
super();
setForegroundColor(ColorConstants.darkBlue);
// default to false; make them turn us on
setVisible( false );
}
/** [[we may or may not need to override this one. it is just here to study]]
* Paints the grid. Sub-classes can override to customize the grid's look. If this layer
* is being used with SnapToGrid, this method will only be invoked when the {@link
* SnapToGrid#PROPERTY_GRID_VISIBLE visibility} property is set to true.
*
* @param g The Graphics object to be used to do the painting
* @see FigureUtilities#paintGrid(Graphics, IFigure, Point, int, int)
*/
@Override
protected void paintGrid(Graphics g) {
int iOldLineStyle = g.getLineStyle();
g.setLineStyle( SWT.LINE_DASH );
FigureUtilities.paintGrid( g, this, origin, iGridCellWidth, iGridCellHeight );
// restore previous values
g.setLineStyle( iOldLineStyle );
}
/**
* Sets the horizontal and vertical spacing of the grid. A grid spacing of 0 will be
* replaced with the {@link SnapToGrid#DEFAULT_GRID_SIZE default} spacing. A negative
* spacing will cause no grid lines to be drawn for that dimension.
*
* @param spacing A Dimension representing the horizontal (width) and vertical
* (height) gaps
*/
@Override
public void setSpacing( Dimension spacing ) {
// just a test!
// System.out.println("[PageBoundaryGridLayer.setSpacing] spacing: " + spacing ); //$NON-NLS-1$
if ( spacing == null ) {
iGridCellWidth = iDefaultGridCellWidth;
iGridCellHeight = iDefaultGridCellHeight;
} else {
iGridCellWidth = spacing.width;
iGridCellHeight = spacing.height;
}
// System.out.println("[PageBoundaryGridLayer.setSpacing] new iGridCellWidth: " + iGridCellWidth ); //$NON-NLS-1$
// System.out.println("[PageBoundaryGridLayer.setSpacing] new iGridCellHeight: " + iGridCellHeight ); //$NON-NLS-1$
setOrigin( new Point( 0, 0 ) );
repaint();
}
}