From 1c455b5a922037f97ad471bbd8ca907f0c067dff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Fri, 9 Mar 2012 13:38:12 +0200 Subject: [PATCH] Dynamically adjust window content paddings (#8313) 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 | 2 -- .../themes/chameleon/components/window/window.css | 6 +----- WebContent/VAADIN/themes/reindeer/window/window.css | 4 ---- WebContent/VAADIN/themes/runo/window/window.css | 4 ---- src/com/vaadin/terminal/gwt/client/ui/VWindow.java | 2 +- .../terminal/gwt/client/ui/WindowConnector.java | 13 +++++++++++++ 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/WebContent/VAADIN/themes/base/window/window.css b/WebContent/VAADIN/themes/base/window/window.css index bd36c12715..f553f95fdf 100644 --- a/WebContent/VAADIN/themes/base/window/window.css +++ b/WebContent/VAADIN/themes/base/window/window.css @@ -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; } diff --git a/WebContent/VAADIN/themes/chameleon/components/window/window.css b/WebContent/VAADIN/themes/chameleon/components/window/window.css index 00e6760d4b..6ca8622a76 100644 --- a/WebContent/VAADIN/themes/chameleon/components/window/window.css +++ b/WebContent/VAADIN/themes/chameleon/components/window/window.css @@ -30,13 +30,9 @@ 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; } diff --git a/WebContent/VAADIN/themes/reindeer/window/window.css b/WebContent/VAADIN/themes/reindeer/window/window.css index 348d1cb2c5..3015f70eb5 100644 --- a/WebContent/VAADIN/themes/reindeer/window/window.css +++ b/WebContent/VAADIN/themes/reindeer/window/window.css @@ -16,10 +16,6 @@ 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; diff --git a/WebContent/VAADIN/themes/runo/window/window.css b/WebContent/VAADIN/themes/runo/window/window.css index 3205659341..d412f66605 100644 --- a/WebContent/VAADIN/themes/runo/window/window.css +++ b/WebContent/VAADIN/themes/runo/window/window.css @@ -22,10 +22,6 @@ 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; diff --git a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java index 222fa1ebd7..88c11c3a89 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java @@ -72,7 +72,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, Element header; - private Element footer; + Element footer; private Element resizeBox; diff --git a/src/com/vaadin/terminal/gwt/client/ui/WindowConnector.java b/src/com/vaadin/terminal/gwt/client/ui/WindowConnector.java index a483e08e16..7468ebfb31 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/WindowConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/WindowConnector.java @@ -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() { -- 2.39.5