From 7b4a20a4be0841c8e3794b51f54172524c7d9041 Mon Sep 17 00:00:00 2001 From: Andreas Kohlbecker Date: Fri, 9 Feb 2018 10:25:27 +0100 Subject: [PATCH] ref #7246 ReloadableLazyComboBox performance improvement --- .../component/ReloadableLazyComboBox.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/etaxonomy/vaadin/component/ReloadableLazyComboBox.java b/src/main/java/eu/etaxonomy/vaadin/component/ReloadableLazyComboBox.java index 66f6c722..8ab55919 100644 --- a/src/main/java/eu/etaxonomy/vaadin/component/ReloadableLazyComboBox.java +++ b/src/main/java/eu/etaxonomy/vaadin/component/ReloadableLazyComboBox.java @@ -17,11 +17,13 @@ import com.vaadin.ui.AbstractField; import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.ComboBox; -public class ReloadableLazyComboBox extends LazyComboBox implements ReloadableSelect, EntitySupport{ +public class ReloadableLazyComboBox extends LazyComboBox implements ReloadableSelect, EntitySupport { private static final long serialVersionUID = -4833661351090992884L; +// boolean originalScrollToSelect; + static Field lazySelectInternalValueField; static Field internalSelectField; static { @@ -44,10 +46,6 @@ public class ReloadableLazyComboBox extends LazyComboBox implements Reload */ public ReloadableLazyComboBox(Class itemType) { super(itemType); - // in the LazyComboBox.initList() scrollToSelectedItem is set to false for better performance - // but this breaks the refresh, so we need to set it true - // (temporarily setting it true in reload() does not work) - ((ComboBox)getSelect()).setScrollToSelectedItem(true); } /** @@ -55,10 +53,16 @@ public class ReloadableLazyComboBox extends LazyComboBox implements Reload */ @Override public void reload() { + // in the LazyComboBox.initList() scrollToSelectedItem is set to false for better performance + // but this breaks the refresh, so we need to set it now so that it can + // affect the next component repaint which is triggered in refresh() + ComboBox comboBox = (ComboBox)getSelect(); + comboBox.setScrollToSelectedItem(true); refresh(); // reload from persistence - discard(); // reload from data source + discard(); // reload from property data source } + /** * This method allows updating the value even if the equals check done * in {@link com.vaadin.ui.AbstractField#setValue(Object)} would return true. @@ -118,4 +122,5 @@ public class ReloadableLazyComboBox extends LazyComboBox implements Reload } } + } \ No newline at end of file -- 2.34.1