From 8bba06c1880b50fab324c5d9fbc04991451f4ecf Mon Sep 17 00:00:00 2001 From: Jouni Koivuviita Date: Wed, 28 Jan 2009 11:33:49 +0000 Subject: [PATCH] Fixes the last issue from #2455: ComboBox item icon does not display correctly. svn changeset:6670/svn branch:trunk --- .../terminal/gwt/client/ui/IFilterSelect.java | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java index 23c71f975c..de5a4f0903 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java @@ -63,7 +63,7 @@ public class IFilterSelect extends Composite implements Paintable, Field, if (iconUri != null) { sb.append("\"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 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 suggestions) { clearItems(); - final Iterator it = suggestions.iterator(); + final Iterator 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 currentSuggestions = new ArrayList(); 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()); } } -- 2.39.5