/* $Id: $ ***************************************************************************** * Copyright (c) 2010 Contributors - see below * 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: * Bob Tarling ***************************************************************************** */ package org.argouml.activity2.diagram; import java.awt.Rectangle; import org.argouml.i18n.Translator; import org.argouml.model.ActivityDiagram; import org.argouml.model.Model; import org.argouml.uml.diagram.DiagramElement; import org.argouml.uml.diagram.DiagramSettings; import org.argouml.uml.diagram.UMLMutableGraphSupport; import org.argouml.uml.diagram.UmlDiagramRenderer; import org.argouml.uml.diagram.static_structure.ui.FigComment; import org.argouml.uml.diagram.ui.FigNodeModelElement; /** * Diagram class for UML2 Activity Diagram * @author Bob Tarling */ public class UMLActivityDiagram extends BaseDiagram implements ActivityDiagram { UMLActivityDiagram(Object activity) { super(activity); } @Override UmlDiagramRenderer createDiagramRenderer() { return new ActivityDiagramRenderer(); } @Override UMLMutableGraphSupport createGraphModel() { return new ActivityDiagramGraphModel(); } @Override public void initialize(Object owner) { super.initialize(owner); ActivityDiagramGraphModel gm = (ActivityDiagramGraphModel) getGraphModel(); } @Override public String getLabelName() { return Translator.localize("label.activity-diagram"); } @Override public boolean doesAccept(Object objectToAccept) { if (Model.getFacade().isAComment(objectToAccept) || Model.getFacade().isAActivityEdge(objectToAccept) || Model.getFacade().isAActivityNode(objectToAccept) ) { return true; } return false; } protected String getDiagramXmlFile() { return "org/argouml/activity2/diagram/diagram.xml"; } public DiagramElement createDiagramElement( final Object modelElement, final Rectangle bounds) { FigNodeModelElement figNode = null; DiagramSettings settings = getDiagramSettings(); if (Model.getFacade().isAActivityNode(modelElement)) { figNode = new FigBaseNode(modelElement, bounds, settings); final String style; if (Model.getFacade().isAObjectNode(modelElement)) { style="rect"; } else if (Model.getFacade().isASendSignalAction(modelElement)) { style="pentagon"; } else if (Model.getFacade().isAAcceptEventAction(modelElement)) { style="concave-pentagon"; } else { style="rrect"; } DiagramElementBuilder.buildDiagramElement((FigBaseNode) figNode, style, modelElement, settings); } else if (Model.getFacade().isAComment(modelElement)) { figNode = new FigComment(modelElement, bounds, settings); } return figNode; } }