]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #2504, filterselect now compatible with ridiculous sized item icons
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 4 Feb 2009 15:49:40 +0000 (15:49 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 4 Feb 2009 15:49:40 +0000 (15:49 +0000)
svn changeset:6732/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java

index 3352ed26a7370a4195274d280827ae277df589de..89d5f482f38ad52464f293a572850097db69649d 100644 (file)
@@ -404,6 +404,19 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             while (it.hasNext()) {
                 final FilterSelectSuggestion s = it.next();
                 final MenuItem mi = new MenuItem(s.getDisplayString(), true, s);
+
+                com.google.gwt.dom.client.Element child = mi.getElement()
+                        .getFirstChildElement();
+                while (child != null) {
+                    if (child.getNodeName().toLowerCase().equals("img")) {
+                        DOM
+                                .sinkEvents((Element) child.cast(),
+                                        (DOM.getEventsSunk((Element) child
+                                                .cast()) | Event.ONLOAD));
+                    }
+                    child = child.getNextSiblingElement();
+                }
+
                 this.addItem(mi);
                 if (s == currentSuggestion) {
                     selectItem(mi);
@@ -458,6 +471,19 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             }
             suggestionPopup.hide();
         }
+
+        @Override
+        public void onBrowserEvent(Event event) {
+            if (event.getTypeInt() == Event.ONLOAD) {
+                if (suggestionPopup.isVisible()) {
+                    setWidth("");
+                    DOM.setStyleAttribute(DOM.getFirstChild(getElement()),
+                            "width", "");
+                    suggestionPopup.setPopupPositionAndShow(suggestionPopup);
+                }
+            }
+            super.onBrowserEvent(event);
+        }
     }
 
     public static final int FILTERINGMODE_OFF = 0;
@@ -897,6 +923,12 @@ public class IFilterSelect extends Composite implements Paintable, Field,
         updateRootWidth();
     }
 
+    @Override
+    public void setHeight(String height) {
+        super.setHeight(height);
+        Util.setHeightExcludingPaddingAndBorder(tb, height, 3);
+    }
+
     private void updateRootWidth() {
         if (width == null) {
             /*