]> source.dussan.org Git - vaadin-framework.git/commitdiff
Min-width spacer DIV now added only once, not every time updateFromUidl gets called.
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 8 Oct 2008 08:05:27 +0000 (08:05 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 8 Oct 2008 08:05:27 +0000 (08:05 +0000)
svn changeset:5609/svn branch:trunk

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

index 1a239e557f537b9bd55e7774f8bfa265dc71a1bf..dd2d3286d5193c518d56ed5a89bac845d5979c87 100644 (file)
@@ -241,6 +241,7 @@ public class IFilterSelect extends Composite implements Paintable, Field,
             }
         }
 
+        @Override
         public void onBrowserEvent(Event event) {
             final Element target = DOM.eventGetTarget(event);
             if (DOM.compare(target, up)
@@ -437,6 +438,7 @@ public class IFilterSelect extends Composite implements Paintable, Field,
     private final FlowPanel panel = new FlowPanel();
 
     private final TextBox tb = new TextBox() {
+        @Override
         public void onBrowserEvent(Event event) {
             super.onBrowserEvent(event);
             if (client != null) {
@@ -619,11 +621,17 @@ public class IFilterSelect extends Composite implements Paintable, Field,
 
         // Calculate minumum textarea width
         final int minw = minWidth(captions);
-        final Element spacer = DOM.createDiv();
-        DOM.setStyleAttribute(spacer, "width", minw + "px");
-        DOM.setStyleAttribute(spacer, "height", "0");
-        DOM.setStyleAttribute(spacer, "overflow", "hidden");
-        DOM.appendChild(panel.getElement(), spacer);
+        Element lastChild = DOM.getChild(panel.getElement(), DOM
+                .getChildCount(panel.getElement()) - 1);
+        if (DOM.getElementProperty(lastChild, "className") != null
+                && DOM.getElementProperty(lastChild, "className") != "") {
+            final Element spacer = DOM.createDiv();
+            DOM.setStyleAttribute(spacer, "height", "0");
+            DOM.setStyleAttribute(spacer, "overflow", "hidden");
+            DOM.appendChild(panel.getElement(), spacer);
+            lastChild = spacer;
+        }
+        DOM.setStyleAttribute(lastChild, "width", minw + "px");
 
         popupOpenerClicked = false;