From: Matti Tahvonen Date: Thu, 1 Nov 2007 13:21:49 +0000 (+0000) Subject: select: stretch option popup to be width of textfield (minimum) X-Git-Tag: 6.7.0.beta1~5722 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3d518f037b3ec296df2e92f813729fc0ff83ab2b;p=vaadin-framework.git select: stretch option popup to be width of textfield (minimum) svn changeset:2656/svn branch:trunk --- 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 de78951986..bb41130a1b 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java @@ -27,8 +27,7 @@ import com.itmill.toolkit.terminal.gwt.client.Util; /** * - * TODO needs major refactoring to be easily expandable TODO add new items TODO - * null selections + * TODO needs major refactoring (to be extensible etc) */ public class IFilterSelect extends Composite implements Paintable, KeyboardListener, ClickListener { @@ -215,10 +214,18 @@ public class IFilterSelect extends Composite implements Paintable, menu.setHeight(""); menu.setWidth(""); offsetHeight = getOffsetHeight(); + + offsetWidth = getOffsetWidth(); + int desiredWidth = IFilterSelect.this.getOffsetWidth() - popupOpener.getOffsetWidth(); + if(offsetWidth < desiredWidth) { + menu.setWidth(desiredWidth + "px"); + } + if (!isPagingEnabled && offsetHeight > Window.getClientHeight()) { offsetHeight = Window.getClientHeight(); menu.setHeight((offsetHeight - EXTRASPACE) + "px"); DOM.setStyleAttribute(menu.getElement(), "overflow", "auto"); + // add scrollbar width menu .setWidth((menu.getOffsetWidth() * 2 - DOM @@ -265,6 +272,15 @@ public class IFilterSelect extends Composite implements Paintable, } suggestionPopup.hide(); } + + public void setWidth(String width) { + super.setWidth(width); + if(!width.equals("") || width != null) { + DOM.setStyleAttribute(DOM.getFirstChild(getElement()), "width", "100%"); + } else { + DOM.setStyleAttribute(DOM.getFirstChild(getElement()), "width", ""); + } + } } public static final int FILTERINGMODE_OFF = 0;