fix performance problem in namedArea selection dialog
authorKatja Luther <k.luther@bgbm.org>
Tue, 16 Jan 2018 08:33:11 +0000 (09:33 +0100)
committerKatja Luther <k.luther@bgbm.org>
Tue, 16 Jan 2018 08:33:11 +0000 (09:33 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java

index 48dc329298b1304709d2cb36eaeb797ce3536965..d2e7e9868e0f61c0fa4a2359baca018f686e8347 100644 (file)
@@ -26,7 +26,7 @@ import org.eclipse.wb.swt.ResourceManager;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -143,14 +143,12 @@ public class NamedAreaSelectionDialog extends
        /** {@inheritDoc} */
        @Override
        protected NamedArea getPersistentObject(UUID uuid) {
-               for(TermVocabulary<NamedArea> vocabulary : selectedVocabularies){
-                       for(Object object : vocabulary.getTerms()){
-                               CdmBase cdmBaseObject = (CdmBase) object;
-                               if(uuid.equals(cdmBaseObject.getUuid())){
-                                       return CdmBase.deproxy(cdmBaseObject, NamedArea.class);
-                               }
-                       }
-               }
+
+           DefinedTermBase area =  CdmStore.getService(ITermService.class).find(uuid);
+           if (area instanceof NamedArea){
+               return (NamedArea) area;
+           }
+
                return null;
        }