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); + } } }