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]].
