]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes the last issue from #2455: ComboBox item icon does not display correctly.
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 28 Jan 2009 11:33:49 +0000 (11:33 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 28 Jan 2009 11:33:49 +0000 (11:33 +0000)
svn changeset:6670/svn branch:trunk

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

index 23c71f975c64573906f97d85023e045857de1e13..de5a4f090362c9edddffec8b2bff1ffcb4bd0e9c 100644 (file)
@@ -63,7 +63,7 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             if (iconUri != null) {
                 sb.append("<img src=\"");
                 sb.append(iconUri);
-                sb.append("\" alt=\"icon\" class=\"i-icon\" />");
+                sb.append("\" alt=\"\" class=\"i-icon\" />");
             }
             sb.append(Util.escapeHTML(caption));
             return sb.toString();
@@ -86,13 +86,8 @@ public class IFilterSelect extends Composite implements Paintable, Field,
         }
     }
 
-    /**
-     * @author mattitahvonen
-     * 
-     */
     public class SuggestionPopup extends IToolkitOverlay implements
             PositionCallback, PopupListener {
-        private static final int EXTRASPACE = 8;
 
         private static final String Z_INDEX = "30000";
 
@@ -129,7 +124,8 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             addPopupListener(this);
         }
 
-        public void showSuggestions(Collection currentSuggestions,
+        public void showSuggestions(
+                Collection<FilterSelectSuggestion> currentSuggestions,
                 int currentPage, int totalSuggestions) {
 
             if (ApplicationConnection.isTestingMode()) {
@@ -401,12 +397,12 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             }
         }
 
-        public void setSuggestions(Collection suggestions) {
+        public void setSuggestions(
+                Collection<FilterSelectSuggestion> suggestions) {
             clearItems();
-            final Iterator it = suggestions.iterator();
+            final Iterator<FilterSelectSuggestion> it = suggestions.iterator();
             while (it.hasNext()) {
-                final FilterSelectSuggestion s = (FilterSelectSuggestion) it
-                        .next();
+                final FilterSelectSuggestion s = it.next();
                 final MenuItem mi = new MenuItem(s.getDisplayString(), true, s);
                 this.addItem(mi);
                 if (s == currentSuggestion) {
@@ -496,7 +492,7 @@ public class IFilterSelect extends Composite implements Paintable, Field,
 
     private int currentPage;
 
-    private final Collection currentSuggestions = new ArrayList();
+    private final Collection<FilterSelectSuggestion> currentSuggestions = new ArrayList<FilterSelectSuggestion>();
 
     private boolean immediate;
 
@@ -524,7 +520,7 @@ public class IFilterSelect extends Composite implements Paintable, Field,
     private int textboxPadding = -1;
     private int componentPadding = -1;
     private int suggestionPopupMinWidth = 0;
-    private static final String CLASSNAME_EMPTY = "empty";
+    // private static final String CLASSNAME_EMPTY = "empty";
     private static final String ATTR_EMPTYTEXT = "emptytext";
     /*
      * Stores the last new item string to avoid double submissions. Cleared on
@@ -910,8 +906,9 @@ public class IFilterSelect extends Composite implements Paintable, Field,
              */
             int tbWidth = Util.getRequiredWidth(tb);
             int openerWidth = Util.getRequiredWidth(popupOpener);
+            int iconWidth = Util.getRequiredWidth(selectedItemIcon);
 
-            int w = tbWidth + openerWidth;
+            int w = tbWidth + openerWidth + iconWidth;
             if (suggestionPopupMinWidth > w) {
                 setTextboxWidth(suggestionPopupMinWidth);
                 w = suggestionPopupMinWidth;
@@ -923,15 +920,17 @@ public class IFilterSelect extends Composite implements Paintable, Field,
                  */
                 tb.setWidth((tbWidth - getTextboxPadding()) + "px");
             }
-            super.setWidth(w + "px");
+            super.setWidth((w) + "px");
+            // Freeze the initial width, so that it won't change even if the
+            // icon size changes
+            width = w + "px";
 
         } else {
             /*
              * When the width is specified we also want to explicitly specify
              * widths for textbox and popupopener
              */
-            int padding = getComponentPadding();
-            setTextboxWidth(getMainWidth() - padding);
+            setTextboxWidth(getMainWidth() - getComponentPadding());
 
         }
     }