/***************************************************************************** * Copyright (c) 2009 Atos Origin. * * * 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: * Emilien Perico (Atos Origin) emilien.perico@atosorigin.com - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.usecase.figure; import org.eclipse.draw2d.Border; import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.RectangleFigure; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gmf.runtime.diagram.ui.figures.ShapeCompartmentFigure; import org.eclipse.papyrus.uml.diagram.common.draw2d.SplitEllipseLayout; import org.eclipse.papyrus.uml.diagram.common.figure.node.IEllipseFigure; import org.eclipse.papyrus.uml.diagram.common.figure.node.IPapyrusNodeUMLElementFigure; import org.eclipse.papyrus.uml.diagram.common.figure.node.NodeNamedElementFigure; /** * The Class UseCaseFigure. * modified by Patrick Tessier inorder to extends nodeName */ public class UseCaseFigure extends NodeNamedElementFigure implements IPapyrusNodeUMLElementFigure, IEllipseFigure { private final RectangleFigure shapeCompartment; /** * Instantiates a new use case figure. */ public UseCaseFigure() { super(); SplitEllipseLayout layoutThis = new SplitEllipseLayout(); this.setLayoutManager(layoutThis); shapeCompartment = new RectangleFigure(); add(shapeCompartment); shapeCompartment.setBorder(null); shapeCompartment.setLineWidth(10); shapeCompartment.setOpaque(false); shapeCompartment.setFill(false); this.setBorder(null); } /** * get the gmf container figure of the package * * @return the gmf container */ public ShapeCompartmentFigure getGMFExtensionPointContainer() { if(shapeCompartment.getChildren().size() > 0) { return (ShapeCompartmentFigure)shapeCompartment.getChildren().get(0); } return null; } public RectangleFigure getExtensionPointContainerFigure() { return shapeCompartment; } @Override protected void setBorder(IFigure borderedFigure, Border border) { } @Override public void paintFigure(Graphics graphics) { shapeCompartment.setForegroundColor(getBackgroundColor()); // TODO Auto-generated method stub graphics.fillOval(getBounds()); paintBackground(graphics, getBounds()); //shadowborder.setColor(getForegroundColor()); } @Override protected void paintBackground(Graphics graphics, Rectangle rectangle) { graphics.setBackgroundColor(getBackgroundColor()); graphics.setForegroundColor(getForegroundColor()); graphics.fillOval(rectangle); graphics.drawOval(rectangle); } }