Author: bobtarling
Date: 2011-05-17 02:29:56-0700
New Revision: 19449

Modified:
   trunk/src/argouml-app/src/org/argouml/notation/providers/ObjectNotation.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/FigObject.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java

Log:
Allow FigObject to display a InstanceSpecification

Modified: 
trunk/src/argouml-app/src/org/argouml/notation/providers/ObjectNotation.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/ObjectNotation.java?view=diff&pathrev=19449&r1=19448&r2=19449
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/notation/providers/ObjectNotation.java    
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/notation/providers/ObjectNotation.java    
    2011-05-17 02:29:56-0700
@@ -1,6 +1,6 @@
 /* $Id$
  *****************************************************************************
- * Copyright (c) 2009-2010 Contributors - see below
+ * Copyright (c) 2009-2011 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *    Michiel van der Wulp
+ *    Bob Tarling
  *****************************************************************************
  *
  * Some portions of this file was previously release using the BSD License:
@@ -61,7 +62,8 @@
      * @param theObject the UML element
      */
     public ObjectNotation(Object theObject) {
-        if (!Model.getFacade().isAObject(theObject)) {
+        if (!Model.getFacade().isAObject(theObject)
+                && !Model.getFacade().isAInstanceSpecification(theObject)) {
             throw new IllegalArgumentException("This is not an Object.");
         }
     }

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/FigObject.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/FigObject.java?view=diff&pathrev=19449&r1=19448&r2=19449
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/FigObject.java  
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/FigObject.java  
    2011-05-17 02:29:56-0700
@@ -251,7 +251,6 @@
      */
     @Override
     public void setEnclosingFig(Fig encloser) {
-       assert Model.getFacade().isAObject(getOwner());
 
         Object owner = getOwner();
 
@@ -262,7 +261,8 @@
                     .setComponentInstance(owner, encloser.getOwner());
             super.setEnclosingFig(encloser);
 
-        } else if (Model.getFacade().getComponentInstance(owner) != null) {
+        } else if (Model.getFacade().getUmlVersion().startsWith("1")
+                && Model.getFacade().getComponentInstance(owner) != null) {
             Model.getCommonBehaviorHelper().setComponentInstance(owner, null);
             super.setEnclosingFig(null);
         }

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java?view=diff&pathrev=19449&r1=19448&r2=19449
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
  (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
  2011-05-17 02:29:56-0700
@@ -53,6 +53,7 @@
 import org.argouml.uml.diagram.DiagramEdgeSettings;
 import org.argouml.uml.diagram.DiagramElement;
 import org.argouml.uml.diagram.DiagramSettings;
+import org.argouml.uml.diagram.collaboration.ui.FigClassifierRole;
 import org.argouml.uml.diagram.deployment.ui.FigComponent;
 import org.argouml.uml.diagram.deployment.ui.FigComponentInstance;
 import org.argouml.uml.diagram.deployment.ui.FigMNode;
@@ -100,6 +101,7 @@
     private Action actionAssociationClass;
     private Action actionClass;
     private Action actionInterface;
+    private Action actionInstanceSpecification;
     private Action actionDependency;
     private Action actionPermission;
     private Action actionUsage;
@@ -209,6 +211,7 @@
             ActionAddAttribute.getTargetFollower(),
             ActionAddOperation.getTargetFollower(),
             getActionAssociationClass(),
+            getActionInstanceSpecification(),
             null,
             getDataTypeActions(),
         };
@@ -419,6 +422,19 @@
     }
 
     /**
+     * @return Returns the actionInterface.
+     */
+    protected Action getActionInstanceSpecification() {
+        if (actionInstanceSpecification == null) {
+            actionInstanceSpecification =
+                makeCreateNodeAction(
+                        Model.getMetaTypes().getInstanceSpecification(),
+                        "button.new-instance-specification");
+        }
+        return actionInstanceSpecification;
+    }
+
+    /**
      * @return Returns the actionLink.
      */
     protected Action getActionLink() {
@@ -669,6 +685,8 @@
             return true;
         } else if (Model.getFacade().isAObject(objectToAccept)) {
             return true;
+        } else if (Model.getFacade().isAInstanceSpecification(objectToAccept)) 
{
+            return true;
         } else if (Model.getFacade().isANodeInstance(objectToAccept)) {
             return true;
         } else if (Model.getFacade().isAComponentInstance(objectToAccept)) {
@@ -866,6 +884,8 @@
             figNode = new FigUseCase(modelElement, bounds, settings);
         } else if (Model.getFacade().isAObject(modelElement)) {
             figNode = new FigObject(modelElement, bounds, settings);
+        } else if (Model.getFacade().isAInstanceSpecification(modelElement)) {
+            figNode = new FigObject(modelElement, bounds, settings);
         } else if (Model.getFacade().isANodeInstance(modelElement)) {
             figNode = new FigNodeInstance(modelElement, bounds, settings);
         } else if (Model.getFacade().isAComponentInstance(modelElement)) {

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2738512

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to