Author: bobtarling
Date: 2011-04-13 02:30:09-0700
New Revision: 19232

Modified:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java

Log:
Lazy load the metaClasses list so its there when needed

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java?view=diff&pathrev=19232&r1=19231&r2=19232
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java
      (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java
      2011-04-13 02:30:09-0700
@@ -73,23 +73,6 @@
             final String propertyName,
             final Object target) {
         super(target, propertyName, true);
-        
-        Collection<String> tmpMetaClasses =
-                Model.getCoreHelper().getAllMetatypeNames();
-        
-        if (tmpMetaClasses instanceof List) {
-            metaClasses = (List<String>) tmpMetaClasses;
-        } else {
-            metaClasses = new LinkedList<String>(tmpMetaClasses);
-        }
-        tmpMetaClasses.addAll(Model.getCoreHelper().getAllMetaDatatypeNames());
-        try {
-            Collections.sort(metaClasses);
-        } catch (UnsupportedOperationException e) {
-            // We got passed an unmodifiable List.  Copy it and sort the result
-            metaClasses = new LinkedList<String>(tmpMetaClasses);
-            Collections.sort(metaClasses);
-        }
     }
 
     /*
@@ -107,14 +90,37 @@
      * @see org.argouml.uml.ui.UMLComboBoxModel#buildModelList()
      */
     protected void buildModelList() {
-        setElements(metaClasses);
+        setElements(getMetaClassNames());
+    }
+    
+    private List<String> getMetaClassNames() {
+        
+       if (metaClasses == null) {
+            Collection<String> tmpMetaClasses =
+                    Model.getCoreHelper().getAllMetatypeNames();
+            
+            if (tmpMetaClasses instanceof List) {
+                metaClasses = (List<String>) tmpMetaClasses;
+            } else {
+                metaClasses = new LinkedList<String>(tmpMetaClasses);
+            }
+            
tmpMetaClasses.addAll(Model.getCoreHelper().getAllMetaDatatypeNames());
+            try {
+                Collections.sort(metaClasses);
+            } catch (UnsupportedOperationException e) {
+                // We got passed an unmodifiable List.  Copy it and sort the 
result
+                metaClasses = new LinkedList<String>(tmpMetaClasses);
+                Collections.sort(metaClasses);
+            }
+       }
+       return metaClasses;
     }
 
     /*
      * @see org.argouml.uml.ui.UMLComboBoxModel#isValidElement(Object)
      */
     protected boolean isValidElement(Object element) {
-        return metaClasses.contains(element);
+        return getMetaClassNames().contains(element);
     }
     
     public Action getAction() {

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

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

Reply via email to