]> source.dussan.org Git - vaadin-framework.git/commitdiff
Dynamically adjust window content paddings (#8313)
authorLeif Åstrand <leif@vaadin.com>
Fri, 9 Mar 2012 11:38:12 +0000 (13:38 +0200)
committerLeif Åstrand <leif@vaadin.com>
Fri, 9 Mar 2012 11:38:12 +0000 (13:38 +0200)
This enables easy support for e.g. header height based on font size
and footer height changing if resizing is disabled.

WebContent/VAADIN/themes/base/window/window.css
WebContent/VAADIN/themes/chameleon/components/window/window.css
WebContent/VAADIN/themes/reindeer/window/window.css
WebContent/VAADIN/themes/runo/window/window.css
src/com/vaadin/terminal/gwt/client/ui/VWindow.java
src/com/vaadin/terminal/gwt/client/ui/WindowConnector.java

index bd36c1271507befab4b2e68cd2d9c9191e40c8a6..f553f95fdf29ab61e503079dbb7bcd12bc8bf3a4 100644 (file)
@@ -2,8 +2,6 @@
        background: #fff;
 }
 .v-window-contents {
-       padding: 1.6em 0 10px;
-       margin: -1.6em 0 -10px;
        box-sizing: border-box;
        -moz-box-sizing: border-box;
 }
index 00e6760d4bc0d9d268835c5ff33afc892a0887f6..6ca8622a76e6473bf57a7d5619b1441095a227c3 100644 (file)
        background-image: url(../../img/grad-light-top.png);
        background-repeat: repeat-x;
        }
-.v-window-contents {
-       padding: 2.1em 0 0;
-       margin: -2.1em 0 0;
-}
 .v-window-outerheader {
        padding: .2em 1.7em .5em 1.2em;
-       height: 2.1em;
+       height: auto;
        text-align: center;
        }
 
index 348d1cb2c578a643bba2eece97ef4dfdca65f267..3015f70eb5021ca99c3ea95e8e8dbc1584020758 100644 (file)
        background: black repeat-x;
        background-image: url(img/header-bg.png); /** sprite-ref: verticals; sprite-alignment: repeat */
 }
-.v-window-contents {
-       padding: 37px 0 15px;
-       margin: -37px 0 -15px;
-}
 .v-window-header {
        font-weight: bold;
        font-size: 12px;
index 3205659341e27fad601e5020001823e23063b035..d412f66605104f8a74f6e98d350aa4819594bc45 100644 (file)
        color: #f14c1a;
        text-shadow: 0 1px 0 #fff;
 }
-.v-window-contents {
-       padding: 49px 0 8px;
-       margin: -49px 0 -8px;
-}
 .v-window-contents > div {
        background: #fff;
        border: 2px solid #babfc0;
index 222fa1ebd7d6058fc51ff1040ee226fd738bb1bc..88c11c3a8972e15fbf1f4c8cb5cf023d1a4a8282 100644 (file)
@@ -72,7 +72,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
 
     Element header;
 
-    private Element footer;
+    Element footer;
 
     private Element resizeBox;
 
index a483e08e1646a51bb018a650dab637852b4c75e0..7468ebfb31b993f50df33a737644bafdb0c0da06 100644 (file)
@@ -5,6 +5,8 @@ package com.vaadin.terminal.gwt.client.ui;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Style;
+import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.event.dom.client.DomEvent.Type;
 import com.google.gwt.event.shared.EventHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
@@ -45,6 +47,8 @@ public class WindowConnector extends AbstractComponentContainerConnector
         super.init();
         getLayoutManager().registerDependency(this,
                 getWidget().contentPanel.getElement());
+        getLayoutManager().registerDependency(this, getWidget().header);
+        getLayoutManager().registerDependency(this, getWidget().footer);
     }
 
     @Override
@@ -250,6 +254,15 @@ public class WindowConnector extends AbstractComponentContainerConnector
             window.setHeight(minHeight + "px");
         }
 
+        Style contentStyle = window.contents.getStyle();
+
+        int headerHeight = lm.getOuterHeight(window.header);
+        contentStyle.setPaddingTop(headerHeight, Unit.PX);
+        contentStyle.setMarginTop(-headerHeight, Unit.PX);
+
+        int footerHeight = lm.getOuterHeight(window.footer);
+        contentStyle.setPaddingBottom(footerHeight, Unit.PX);
+        contentStyle.setMarginBottom(-footerHeight, Unit.PX);
     }
 
     public void postLayout() {