Author: maurelio1234
Date: 2008-08-25 14:35:50-0700
New Revision: 15608

Modified:
   trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java

Log:
fixing issue 5308


Modified: trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java?view=diff&rev=15608&p1=trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java&p2=trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java&r1=15607&r2=15608
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java       
(original)
+++ trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java       
2008-08-25 14:35:50-0700
@@ -36,6 +36,7 @@
 import java.util.HashMap;
 import java.util.Set;
 import java.util.StringTokenizer;
+import java.util.Vector;
 
 import javax.swing.ImageIcon;
 
@@ -173,10 +174,15 @@
      * Reads the informations defined as TaggedValues
      */
     private void finishLoading() {
-
-        for (Object obj : profilePackages) {
-            if (Model.getExtensionMechanismsHelper().hasStereotype(obj,
-                    "profile")) {
+        Collection packagesInProfile = filterPackages();
+        
+        for (Object obj : packagesInProfile) {
+            // if there is only one package in the model, we should suppose 
it's
+            // the profile model, if there is more than one, we take the ones
+            // marked as <<profile>>
+            if (Model.getFacade().isAModelElement(obj)
+                    && (Model.getExtensionMechanismsHelper().hasStereotype(obj,
+                            "profile") || (packagesInProfile.size() == 1))) {
 
                 // load profile name
                 String name = Model.getFacade().getName(obj);
@@ -212,7 +218,7 @@
 
         // load fig nodes
         Collection allStereotypes = Model.getExtensionMechanismsHelper()
-                .getStereotypes(profilePackages);
+                .getStereotypes(packagesInProfile);
         for (Object stereotype : allStereotypes) {
             Collection tags = Model.getFacade().getTaggedValuesCollection(
                     stereotype);
@@ -248,6 +254,19 @@
     }
 
     /**
+     * @return the packages in the <code>profilePackages</code>
+     */
+    private Collection filterPackages() {
+        Vector<Object> ret = new Vector<Object>();
+        for (Object object : profilePackages) {
+            if (Model.getFacade().isAPackage(object)) {
+                ret.add(object);
+            }
+        }
+        return ret;
+    }
+
+    /**
      * @return the string that should represent this profile in the GUI.
      */
     public String getDisplayName() {

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to