]> source.dussan.org Git - vaadin-framework.git/commitdiff
table now supports percentage heights
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 8 Oct 2007 09:23:26 +0000 (09:23 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 8 Oct 2007 09:23:26 +0000 (09:23 +0000)
svn changeset:2452/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java
src/com/itmill/toolkit/tests/TestForApplicationLayoutThatUsesWholeBrosersSpace.java

index 17286bbdf9deafc9eddf323f01c458340c8b6842..9a5d810c29864ea8ead91959abf4e7ed38a06895 100644 (file)
@@ -21,6 +21,7 @@ import com.google.gwt.user.client.ui.ScrollListener;
 import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
 import com.itmill.toolkit.terminal.gwt.client.Util;
@@ -49,7 +50,7 @@ import com.itmill.toolkit.terminal.gwt.client.ui.IScrollTable.IScrollTableBody.I
  * 
  * TODO implement unregistering for child componts in Cells
  */
-public class IScrollTable extends Composite implements Table, ScrollListener {
+public class IScrollTable extends Composite implements Table, ScrollListener, ContainerResizedListener {
 
        public static final String CLASSNAME = "i-table";
        /**
@@ -473,7 +474,8 @@ public class IScrollTable extends Composite implements Table, ScrollListener {
                if (height == null) {
                        bodyContainer.setHeight((tBody.getRowHeight() * pageLength) + "px");
                } else {
-                       bodyContainer.setHeight(height);
+                       setHeight(height);
+                       iLayout();
                }
 
                if (width == null) {
@@ -558,6 +560,16 @@ public class IScrollTable extends Composite implements Table, ScrollListener {
                });
                initializedAndAttached = true;
        }
+       
+       public void iLayout() {
+               if(height != null && height.indexOf("%") > 0) {
+                       int contentH = (DOM.getElementPropertyInt(getElement(), "clientHeight") - tHead.getOffsetHeight());
+                       if(contentH < 0)
+                               contentH = 0;
+                       bodyContainer.setHeight( contentH + "px");
+               }
+       }
+
 
        private int getScrollbarWidth() {
                return bodyContainer.getOffsetWidth()
@@ -1868,4 +1880,5 @@ public class IScrollTable extends Composite implements Table, ScrollListener {
        public boolean remove(Widget w) {
                return panel.remove(w);
        }
+
 }
index fd56c21543dffe23e48848922410e6c2eb4a039b..d79b0aaef7bf903c2131d1965ec7c120e80dded7 100644 (file)
@@ -33,7 +33,7 @@ public class TestForApplicationLayoutThatUsesWholeBrosersSpace extends
                t.setWidth(100);
                t.setWidthUnits(Table.UNITS_PERCENTAGE);
                t.setHeight(100);
-               t.setHeightUnits(Table.UNITS_PIXELS);
+               t.setHeightUnits(Table.UNITS_PERCENTAGE);
                topRight.addComponent(t);
                topRight.expand(t);