From ff85cb19e1b9e5a92f3ddd2e3251489b517d1c58 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 27 Apr 2009 06:39:24 +0000
Subject: [PATCH] LMS-818 Bug fixed: Retrieving terms from store and not from
 wrapped Vocabulary object.

SVN: 10810
---
 .../ui/grid/AbstractBrowserGrid.java          |  6 +--
 .../ui/vocabulary/VocabularyTermGrid.java     | 41 ++++++++++++-------
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
index 534b3f56edb..b06e60cc0d4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
@@ -244,10 +244,10 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     {
         grid.getSelectionModel().setSelectionMode(SelectionMode.MULTI);
     }
-
-    protected String getGridID()
+    
+    protected Grid<M> getGrid()
     {
-        return grid.getId();
+        return grid;
     }
 
     protected void setDisplayTypeIDGenerator(IDisplayTypeIDGenerator displayTypeIDGenerator)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java
index 167e7161eba..484c3e96b2f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java
@@ -107,24 +107,24 @@ public class VocabularyTermGrid extends AbstractSimpleBrowserGrid<VocabularyTerm
         {
             Button addButton = new Button(viewContext.getMessage(Dict.ADD_VOCABULARY_TERMS_BUTTON));
             addButton.addSelectionListener(new SelectionListener<ButtonEvent>()
-                    {
-                @Override
-                public void componentSelected(ButtonEvent ce)
                 {
-                    askForNewTerms();
-                }
-                    });
+                    @Override
+                    public void componentSelected(ButtonEvent ce)
+                    {
+                        askForNewTerms();
+                    }
+                });
             pagingToolbar.add(new AdapterToolItem(addButton));
             Button deleteButton =
-                new Button(viewContext.getMessage(Dict.DELETE_VOCABULARY_TERMS_BUTTON));
+                    new Button(viewContext.getMessage(Dict.DELETE_VOCABULARY_TERMS_BUTTON));
             deleteButton.addSelectionListener(new SelectionListener<ButtonEvent>()
-                    {
-                @Override
-                public void componentSelected(ButtonEvent ce)
                 {
-                    deleteTerms();
-                }
-                    });
+                    @Override
+                    public void componentSelected(ButtonEvent ce)
+                    {
+                        deleteTerms();
+                    }
+                });
             pagingToolbar.add(new AdapterToolItem(deleteButton));
             allowMultipleSelection();
         }
@@ -226,7 +226,7 @@ public class VocabularyTermGrid extends AbstractSimpleBrowserGrid<VocabularyTerm
         {
             return;
         }
-        if (terms.size() == vocabulary.getTerms().size())
+        if (terms.size() == getTerms().size())
         {
             MessageBox.alert(viewContext.getMessage(Dict.DELETE_VOCABULARY_TERMS_INVALID_TITLE),
                     viewContext.getMessage(Dict.DELETE_VOCABULARY_TERMS_INVALID_MESSAGE), null);
@@ -286,7 +286,7 @@ public class VocabularyTermGrid extends AbstractSimpleBrowserGrid<VocabularyTerm
         } else
         {
             List<VocabularyTerm> termsForReplacement = new ArrayList<VocabularyTerm>();
-            for (VocabularyTerm term : vocabulary.getTerms())
+            for (VocabularyTerm term : getTerms())
             {
                 if (selectedTerms.contains(term.getCode()) == false)
                 {
@@ -297,6 +297,17 @@ public class VocabularyTermGrid extends AbstractSimpleBrowserGrid<VocabularyTerm
         }
     }
 
+    private List<VocabularyTerm> getTerms()
+    {
+        List<VocabularyTerm> terms = new ArrayList<VocabularyTerm>();
+        List<BaseEntityModel<VocabularyTermWithStats>> models = getGrid().getStore().getModels();
+        for (BaseEntityModel<VocabularyTermWithStats> model : models)
+        {
+            terms.add(model.getBaseObject().getTerm());
+        }
+        return terms;
+    }
+
     private void askForReplacements(final List<VocabularyTerm> termsToBeDeleted,
             final List<VocabularyTermReplacement> termsToBeReplaced,
             List<VocabularyTerm> termsForReplacement)
-- 
GitLab