From e8fd2aebab2488afb6c3c33bec6d67a498710ffa Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Tue, 8 Nov 2016 22:30:37 +0000 Subject: [PATCH] improved movedToRight and movedToLeft methods git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/widgets/ckan-metadata-publisher-widget@133975 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../TwinColumnSelectionMainPanel.java | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/TwinColumnSelection/TwinColumnSelectionMainPanel.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/TwinColumnSelection/TwinColumnSelectionMainPanel.java index 7e81515..6ba7c4e 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/TwinColumnSelection/TwinColumnSelectionMainPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/TwinColumnSelection/TwinColumnSelectionMainPanel.java @@ -296,17 +296,18 @@ public class TwinColumnSelectionMainPanel extends Composite{ while (iterator.hasNext()) { ResourceElementBean resourceElementBean = (ResourceElementBean) iterator .next(); - resourceElementBean.setMovedToRight(true); - boolean contains = dataProviderRight.getList().contains(resourceElementBean); - if(!contains) - dataProviderRight.getList().add(resourceElementBean); - } + resourceElementBean.setMovedToRight(true); - // refresh providers - dataProviderLeft.flush(); - dataProviderRight.flush(); - dataProviderLeft.refresh(); - dataProviderRight.refresh(); + int indexRight = dataProviderRight.getList().indexOf(resourceElementBean); + if(indexRight >= 0) + dataProviderRight.getList().set(indexRight, resourceElementBean); + else + dataProviderRight.getList().add(resourceElementBean); + + int indexLeft = dataProviderLeft.getList().indexOf(resourceElementBean); + if(indexLeft >= 0) + dataProviderLeft.getList().set(indexLeft, resourceElementBean); + } } /** @@ -321,16 +322,17 @@ public class TwinColumnSelectionMainPanel extends Composite{ Iterator iterator = setSelected.iterator(); while (iterator.hasNext()) { ResourceElementBean resourceElementBean = (ResourceElementBean) iterator.next(); - int index = dataProviderLeft.getList().indexOf(resourceElementBean); - if(index != -1){ - resourceElementBean.setMovedToRight(false); - dataProviderLeft.getList().set(index, resourceElementBean); // replace - } - } + resourceElementBean.setMovedToRight(false); - // refresh providers - dataProviderRight.flush(); - dataProviderRight.refresh(); + int indexLeft = dataProviderLeft.getList().indexOf(resourceElementBean); + if(indexLeft != -1) + dataProviderLeft.getList().set(indexLeft, resourceElementBean); // replace + else + dataProviderLeft.getList().add(resourceElementBean); + int indexRight = dataProviderRight.getList().indexOf(resourceElementBean); + if(indexRight >= 0) + dataProviderLeft.getList().set(indexLeft, resourceElementBean); + } } }