]> source.dussan.org Git - vaadin-framework.git/commitdiff
Moved ComboBox suggestion popup width to shared state
authorHenri Sara <hesara@vaadin.com>
Fri, 29 Jul 2016 09:43:57 +0000 (12:43 +0300)
committerHenri Sara <hesara@vaadin.com>
Fri, 29 Jul 2016 11:32:47 +0000 (14:32 +0300)
Change-Id: Ic6da82bc309d90d769e9967feee7fb8a58e9fffc

client/src/main/java/com/vaadin/client/ui/combobox/ComboBoxConnector.java
server/src/main/java/com/vaadin/ui/ComboBox.java
shared/src/main/java/com/vaadin/shared/ui/combobox/ComboBoxState.java

index c0d96fa32afffb896ab6e9f069ccdcfca3d6f604..a5edf0081209af0a8affb8dbc43cd0b7713f910b 100644 (file)
@@ -74,6 +74,8 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
 
         getWidget().filteringmode = getState().filteringMode;
 
+        getWidget().suggestionPopupWidth = getState().suggestionPopupWidth;
+
         Profiler.leave("ComboBoxConnector.onStateChanged update content");
     }
 
@@ -99,13 +101,6 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
 
         getWidget().currentPage = uidl.getIntVariable("page");
 
-        if (uidl.hasAttribute("suggestionPopupWidth")) {
-            getWidget().suggestionPopupWidth = uidl
-                    .getStringAttribute("suggestionPopupWidth");
-        } else {
-            getWidget().suggestionPopupWidth = null;
-        }
-
         getWidget().suggestionPopup.updateStyleNames(getState());
 
         getWidget().allowNewItem = uidl.hasAttribute("allownewitem");
index 9a6cf9f7282f0832b42d33afe3702cbd353e6dc0..274faa505ff1095d60fdd11ee21855b180657ef6 100644 (file)
@@ -162,8 +162,6 @@ public class ComboBox extends AbstractSelect implements
      */
     private boolean scrollToSelectedItem = true;
 
-    private String suggestionPopupWidth = null;
-
     /**
      * If text input is not allowed, the ComboBox behaves like a pretty
      * NativeSelect - the user can not enter any text and clicking the text
@@ -279,11 +277,6 @@ public class ComboBox extends AbstractSelect implements
             String[] selectedKeys = new String[(getValue() == null
                     && getNullSelectionItemId() == null ? 0 : 1)];
 
-            if (suggestionPopupWidth != null) {
-                target.addAttribute("suggestionPopupWidth",
-                        suggestionPopupWidth);
-            }
-
             // Paints the options and create array of selected id keys
             int keyIndex = 0;
 
@@ -887,7 +880,7 @@ public class ComboBox extends AbstractSelect implements
      * @since 7.7
      */
     public String getPopupWidth() {
-        return suggestionPopupWidth;
+        return getState(false).suggestionPopupWidth;
     }
 
     /**
@@ -912,8 +905,7 @@ public class ComboBox extends AbstractSelect implements
      *            the width
      */
     public void setPopupWidth(String width) {
-        suggestionPopupWidth = width;
-        markAsDirty();
+        getState().suggestionPopupWidth = width;
     }
 
     /**
index 6eae3fc46e4a2375c0fe3c93748f03f0ef571276..95e624779adfc4cfa8fdcac40eb80f204cd19a62 100644 (file)
@@ -55,4 +55,11 @@ public class ComboBoxState extends AbstractSelectState {
      */
     public FilteringMode filteringMode = FilteringMode.STARTSWITH;
 
+    /**
+     * Suggestion pop-up's width as a CSS string. By using relative units (e.g.
+     * "50%") it's possible to set the popup's width relative to the ComboBox
+     * itself.
+     */
+    public String suggestionPopupWidth = null;
+
 }