Fix named area filter for selection dialog (#2353)
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 6 Oct 2015 12:06:34 +0000 (14:06 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 6 Oct 2015 12:10:46 +0000 (14:10 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java

index dc1ce081de1037bf229965bc79c480c40cf94b79..4444f18f585cfc20875dc89a724e0755f229a6c9 100644 (file)
@@ -36,8 +36,6 @@ import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredNamedAreaSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created May 11, 2010
  * @version 1.0
  * @author n.hoffmann
  * @created May 11, 2010
  * @version 1.0
@@ -68,7 +66,7 @@ public class NamedAreaSelectionDialog extends
        }
 
        private Collection<TermVocabulary<NamedArea>> selectedVocabularies;
        }
 
        private Collection<TermVocabulary<NamedArea>> selectedVocabularies;
-    private final ArrayList<TermVocabulary> preselectedVocabularies;
+    private ArrayList<TermVocabulary> preselectedVocabularies;
 
 
        /**
 
 
        /**
@@ -88,25 +86,17 @@ public class NamedAreaSelectionDialog extends
                return getSelectionFromDialog(dialog);
        }
 
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredNamedAreaSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param namedArea a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
-        * @param preselectedVocabularyUuids the {@link UUID}s of the pre-selected Vocabularies
-        */
        protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea, UUID... preselectedVocabularyUuids) {
                super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);
        protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea, UUID... preselectedVocabularyUuids) {
                super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);
-               preselectedVocabularies = new ArrayList<TermVocabulary>();
-               for(int i=0;i<preselectedVocabularyUuids.length;i++){
-                   TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
-            preselectedVocabularies.add(preselectedVocabulary);
+               if(preselectedVocabularyUuids.length>0){
+                   preselectedVocabularies = new ArrayList<TermVocabulary>();
+                   for(int i=0;i<preselectedVocabularyUuids.length;i++){
+                       TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
+                       preselectedVocabularies.add(preselectedVocabulary);
+                   }
+                   selectedVocabularies.retainAll(preselectedVocabularies);
+                   initModel();//re-init to consider pre-selected vocabularies
                }
                }
-               selectedVocabularies.retainAll(preselectedVocabularies);
-               initModel();//re-init to consider pre-selected vocabularies
        }
 
        /** {@inheritDoc} */
        }
 
        /** {@inheritDoc} */
@@ -118,7 +108,7 @@ public class NamedAreaSelectionDialog extends
                for(TermVocabulary<NamedArea> vocabulary : getAvailableVocabularies()){
                        IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
                        menuManager.add(action);
                for(TermVocabulary<NamedArea> vocabulary : getAvailableVocabularies()){
                        IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
                        menuManager.add(action);
-                       if(preselectedVocabularies.isEmpty() || preselectedVocabularies.contains(vocabulary)) {
+                       if(preselectedVocabularies==null || preselectedVocabularies.isEmpty() || preselectedVocabularies.contains(vocabulary)) {
                            action.setChecked(true);
                        }
                }
                            action.setChecked(true);
                        }
                }