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]
