//------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.diagram.core.figures; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.geometry.Insets; import org.eclipse.draw2d.geometry.Rectangle; /** * A border with a raised margin. * * @author Kelvin Low * @since 1.0 */ public class RaisedMarginBorder extends MarginBorder { private static final Insets DEFAULT_INSETS = new Insets(10, 10, 10, 10); public RaisedMarginBorder() { this(DEFAULT_INSETS); } public RaisedMarginBorder(Insets insets) { super(insets); } public RaisedMarginBorder(int t, int l, int b, int r) { super(t, l, b, r); } /** * @see org.eclipse.draw2d.Border#getInsets(IFigure) */ public Insets getInsets(IFigure figure) { return insets; } /** * @see org.eclipse.draw2d.Border#isOpaque() */ public boolean isOpaque() { return true; } /** * @see org.eclipse.draw2d.Border#paint(IFigure, Graphics, Insets) */ public void paint(IFigure figure, Graphics g, Insets insets) { g.setLineStyle(Graphics.LINE_SOLID); g.setLineWidth(1); g.setForegroundColor(ColorConstants.buttonLightest); Rectangle r = getPaintRectangle(figure, insets); r.resize(-1, -1); g.drawLine(r.x, r.y, r.right(), r.y); g.drawLine(r.x, r.y, r.x, r.bottom()); g.setForegroundColor(ColorConstants.buttonDarker); g.drawLine(r.x, r.bottom(), r.right(), r.bottom()); g.drawLine(r.right(), r.y, r.right(), r.bottom()); } }