Author: bobtarling
Date: 2010-07-17 04:37:06-0700
New Revision: 18524
Added:
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java
Modified:
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MetaTypesEUMLImpl.java
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlFactoryEUMLImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MetaTypesMDRImpl.java
trunk/src/argouml-core-model/src/org/argouml/model/MetaTypes.java
Log:
Add a few action tool to activity diagram (currently the all look the same)
Added: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java?view=markup&pathrev=18524
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java 2010-07-17 04:37:06-0700
@@ -0,0 +1,80 @@
+/* $Id: FigAction.java bobtarling $
+ *****************************************************************************
+ * 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.Dimension;
+import java.awt.Rectangle;
+import org.argouml.uml.diagram.DiagramSettings;
+import org.argouml.uml.diagram.ui.FigNodeModelElement;
+import org.tigris.gef.presentation.Fig;
+import org.tigris.gef.presentation.FigRRect;
+
+public class FigAction extends FigNodeModelElement {
+
+ private static final int PADDING = 8;
+ private static final int WIDTH = 90;
+ private static final int HEIGHT = 25;
+
+ /**
+ * Constructor a new FigAction
+ *
+ * @param owner the owning UML element
+ * @param bounds rectangle describing bounds
+ * @param settings rendering settings
+ */
+ public FigAction(final Object owner, final Rectangle bounds,
+ final DiagramSettings settings) {
+ super(owner, bounds, settings);
+ addFig(getBigPort());
+ }
+
+ @Override
+ protected Fig createBigPortFig() {
+ return new FigRRect(X0, Y0, WIDTH, HEIGHT, LINE_COLOR, FILL_COLOR);
+ }
+
+ @Override
+ public Dimension getMinimumSize() {
+ Dimension stereoDim = getStereotypeFig().getMinimumSize();
+ Dimension nameDim = getNameFig().getMinimumSize();
+
+ int w = Math.max(stereoDim.width, nameDim.width) + PADDING * 2;
+ /* The stereoDim has height=2, even if it is empty,
+ * hence the -2 below: */
+ int h = stereoDim.height - 2 + nameDim.height + PADDING;
+ w = Math.max(w, h + 44); // the width needs to be > the height
+ return new Dimension(w, h);
+ }
+
+ @Override
+ protected void setStandardBounds(int x, int y, int w, int h) {
+ if (getNameFig() == null) {
+ return;
+ }
+ Rectangle oldBounds = getBounds();
+
+ Dimension stereoDim = getStereotypeFig().getMinimumSize();
+ Dimension nameDim = getNameFig().getMinimumSize();
+ getNameFig().setBounds(x + PADDING, y + stereoDim.height,
+ w - PADDING * 2, nameDim.height);
+ getStereotypeFig().setBounds(x + PADDING, y,
+ w - PADDING * 2, stereoDim.height);
+ getBigPort().setBounds(x, y, w, h);
+ ((FigRRect) getBigPort()).setCornerRadius(h);
+
+ calcBounds();
+ updateEdges();
+ firePropChange("bounds", oldBounds, getBounds());
+ }
+}
Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java?view=diff&pathrev=18524&r1=18523&r2=18524
==============================================================================
--- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java (original)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java 2010-07-17 04:37:06-0700
@@ -18,14 +18,18 @@
import java.util.Collection;
import java.util.Collections;
+import javax.swing.Action;
+
import org.apache.log4j.Logger;
import org.argouml.i18n.Translator;
import org.argouml.model.ActivityDiagram;
import org.argouml.model.Model;
+import org.argouml.ui.CmdCreateNode;
import org.argouml.uml.diagram.DiagramElement;
import org.argouml.uml.diagram.DiagramSettings;
import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.ui.FigNodeModelElement;
+import org.argouml.uml.diagram.ui.RadioAction;
import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
@@ -34,8 +38,6 @@
public class UMLActivityDiagram extends UMLDiagram implements ActivityDiagram {
- private Object[] actions;
-
private static final Logger LOG = Logger
.getLogger(UMLActivityDiagram.class);
@@ -77,11 +79,22 @@
@Override
protected Object[] getUmlActions() {
- if (actions == null) {
- actions = new Object[0];
- }
+ Object[] actions =
+ {
+ createAction(Model.getMetaTypes().getCallBehaviorAction(), "button.new-callbehavioraction"),
+ createAction(Model.getMetaTypes().getCreateObjectAction(), "button.new-createobjectaction"),
+ createAction(Model.getMetaTypes().getDestroyObjectAction(), "button.new-destroyobjectaction"),
+ };
return actions;
}
+
+ /**
+ * @return Returns a diagram tool creation action.
+ */
+ private Action createAction(Object metaType, String label) {
+ return new RadioAction(
+ new CmdCreateNode(metaType, label));
+ }
@Override
public String getLabelName() {
@@ -96,7 +109,7 @@
@Override
public boolean doesAccept(Object objectToAccept) {
- if (Model.getFacade().isAComment(objectToAccept)) {
+ if (Model.getFacade().isAComment(objectToAccept) || Model.getFacade().isAAction(objectToAccept)) {
return true;
}
return false;
@@ -131,7 +144,9 @@
DiagramSettings settings = getDiagramSettings();
- if (Model.getFacade().isAComment(modelElement)) {
+ if (Model.getFacade().isAAction(modelElement)) {
+ figNode = new FigAction(modelElement, bounds, settings);
+ } else if (Model.getFacade().isAComment(modelElement)) {
figNode = new FigComment(modelElement, bounds, settings);
}
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MetaTypesEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MetaTypesEUMLImpl.java?view=diff&pathrev=18524&r1=18523&r2=18524
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MetaTypesEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/MetaTypesEUMLImpl.java 2010-07-17 04:37:06-0700
@@ -26,6 +26,7 @@
import org.eclipse.uml2.uml.AssociationClass;
import org.eclipse.uml2.uml.BehavioralFeature;
import org.eclipse.uml2.uml.CallAction;
+import org.eclipse.uml2.uml.CallBehaviorAction;
import org.eclipse.uml2.uml.CallConcurrencyKind;
import org.eclipse.uml2.uml.CallEvent;
import org.eclipse.uml2.uml.ChangeEvent;
@@ -34,8 +35,10 @@
import org.eclipse.uml2.uml.Comment;
import org.eclipse.uml2.uml.Component;
import org.eclipse.uml2.uml.Constraint;
+import org.eclipse.uml2.uml.CreateObjectAction;
import org.eclipse.uml2.uml.DataType;
import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.DestroyObjectAction;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.ElementImport;
import org.eclipse.uml2.uml.Enumeration;
@@ -188,6 +191,10 @@
return CallAction.class;
}
+ public Object getCallBehaviorAction() {
+ return CallBehaviorAction.class;
+ }
+
public Object getCallConcurrencyKind() {
return CallConcurrencyKind.class;
}
@@ -237,8 +244,11 @@
}
public Object getCreateAction() {
- // TODO: Auto-generated method stub
- throw new NotYetImplementedException();
+ throw new NotImplementedException("This is not a UML2 element");
+ }
+
+ public Object getCreateObjectAction() {
+ return CreateObjectAction.class;
}
public Object getDataType() {
@@ -250,8 +260,11 @@
}
public Object getDestroyAction() {
- // TODO: Auto-generated method stub
- throw new NotYetImplementedException();
+ throw new NotImplementedException("This is not a UML2 class");
+ }
+
+ public Object getDestroyObjectAction() {
+ return DestroyObjectAction.class;
}
public Object getElementImport() {
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlFactoryEUMLImpl.java?view=diff&pathrev=18524&r1=18523&r2=18524
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlFactoryEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/UmlFactoryEUMLImpl.java 2010-07-17 04:37:06-0700
@@ -64,6 +64,7 @@
import org.eclipse.uml2.uml.TemplateParameter;
import org.eclipse.uml2.uml.Transition;
import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.UMLFactory;
import org.eclipse.uml2.uml.Usage;
import org.eclipse.uml2.uml.UseCase;
@@ -270,8 +271,12 @@
"Attempt to instantiate abstract type"); //$NON-NLS-1$
} else if (elementType == metaTypes.getActivity()) {
o = modelImpl.getActivityGraphsFactory().createActivityGraph();
- } else if (elementType == metaTypes.getCallState()) {
- o = modelImpl.getActivityGraphsFactory().createCallState();
+ } else if (elementType == metaTypes.getCallBehaviorAction()) {
+ o = UMLFactory.eINSTANCE.createCallBehaviorAction();
+ } else if (elementType == metaTypes.getCreateObjectAction()) {
+ o = UMLFactory.eINSTANCE.createCreateObjectAction();
+ } else if (elementType == metaTypes.getDestroyObjectAction()) {
+ o = UMLFactory.eINSTANCE.createDestroyObjectAction();
} else if (elementType == metaTypes.getSimpleState()) {
o = modelImpl.getStateMachinesFactory().createSimpleState();
} else if (elementType == metaTypes.getFinalState()) {
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MetaTypesMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MetaTypesMDRImpl.java?view=diff&pathrev=18524&r1=18523&r2=18524
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MetaTypesMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/MetaTypesMDRImpl.java 2010-07-17 04:37:06-0700
@@ -276,6 +276,10 @@
return CallAction.class;
}
+ public Object getCallBehaviorAction() {
+ throw new NotImplementedException("This is not a UML1.4 class");
+ }
+
public Object getCallConcurrencyKind() {
return CallConcurrencyKind.class;
}
@@ -324,6 +328,10 @@
return CreateAction.class;
}
+ public Object getCreateObjectAction() {
+ throw new NotImplementedException("This is not a UML1.4 class");
+ }
+
public Object getDataType() {
return DataType.class;
}
@@ -336,6 +344,10 @@
return DestroyAction.class;
}
+ public Object getDestroyObjectAction() {
+ throw new NotImplementedException("This is not a UML1.4 class");
+ }
+
public Object getEnumeration() {
return Enumeration.class;
}
Modified: trunk/src/argouml-core-model/src/org/argouml/model/MetaTypes.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/MetaTypes.java?view=diff&pathrev=18524&r1=18523&r2=18524
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/MetaTypes.java (original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/MetaTypes.java 2010-07-17 04:37:06-0700
@@ -152,6 +152,11 @@
Object getCallAction();
/**
+ * @return Returns the CreateObjectAction.
+ */
+ Object getCallBehaviorAction();
+
+ /**
* @return Returns the CallConcurrencyKind.
*/
Object getCallConcurrencyKind();
@@ -215,6 +220,11 @@
Object getCreateAction();
/**
+ * @return Returns the CreateObjectAction.
+ */
+ Object getCreateObjectAction();
+
+ /**
* @return Returns the Datatype.
*/
Object getDataType();
@@ -230,6 +240,11 @@
Object getDestroyAction();
/**
+ * @return Returns the DestroyObjectAction.
+ */
+ Object getDestroyObjectAction();
+
+ /**
* @return the ElementImport class.
*/
Object getElementImport();
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2634423
To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.