summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-01-14 20:29:56 +0000
committerVaadin Code Review <review@vaadin.com>2013-01-14 20:29:56 +0000
commit7e0a8c0e740d80dae89100a406ea9c0063b7ab41 (patch)
tree36b1c76e8e1c16a8f779d4dfa281a34fc52936f7 /client
parentf2ccb14cde370c61a05972a9b4835bba8b059cad (diff)
parent6f6fe32f67053e99cd7637ac658cd33ec047d873 (diff)
downloadvaadin-framework-7e0a8c0e740d80dae89100a406ea9c0063b7ab41.tar.gz
vaadin-framework-7e0a8c0e740d80dae89100a406ea9c0063b7ab41.zip
Merge "Take error element into account when layouting Form (#10589)"
Diffstat (limited to 'client')
-rw-r--r--client/src/com/vaadin/client/ui/form/FormConnector.java34
1 files changed, 28 insertions, 6 deletions
diff --git a/client/src/com/vaadin/client/ui/form/FormConnector.java b/client/src/com/vaadin/client/ui/form/FormConnector.java
index 09b7fbcd91..61a38e74ba 100644
--- a/client/src/com/vaadin/client/ui/form/FormConnector.java
+++ b/client/src/com/vaadin/client/ui/form/FormConnector.java
@@ -48,24 +48,36 @@ public class FormConnector extends AbstractComponentContainerConnector
public void onElementResize(ElementResizeEvent e) {
VForm form = getWidget();
- int footerHeight;
+ LayoutManager lm = getLayoutManager();
+ int footerHeight = 0;
if (form.footer != null) {
- LayoutManager lm = getLayoutManager();
- footerHeight = lm.getOuterHeight(form.footer.getElement());
+ footerHeight += lm.getOuterHeight(form.footer.getElement());
+ }
+
+ if (form.errorMessage.isVisible()) {
+ footerHeight += lm.getOuterHeight(form.errorMessage
+ .getElement());
+ footerHeight -= lm.getMarginTop(form.errorMessage.getElement());
+ form.errorMessage.getElement().getStyle()
+ .setMarginTop(-footerHeight, Unit.PX);
+ form.footerContainer.getStyle().clearMarginTop();
} else {
- footerHeight = 0;
+ form.footerContainer.getStyle().setMarginTop(-footerHeight,
+ Unit.PX);
}
form.fieldContainer.getStyle().setPaddingBottom(footerHeight,
Unit.PX);
- form.footerContainer.getStyle()
- .setMarginTop(-footerHeight, Unit.PX);
}
};
@Override
public void onUnregister() {
VForm form = getWidget();
+ if (form.errorMessage.isVisible()) {
+ getLayoutManager().removeElementResizeListener(
+ form.errorMessage.getElement(), footerResizeListener);
+ }
if (form.footer != null) {
getLayoutManager().removeElementResizeListener(
form.footer.getElement(), footerResizeListener);
@@ -113,8 +125,18 @@ public class FormConnector extends AbstractComponentContainerConnector
if (null != getState().errorMessage) {
getWidget().errorMessage.updateMessage(getState().errorMessage);
+ if (!getWidget().errorMessage.isVisible()) {
+ getLayoutManager().addElementResizeListener(
+ getWidget().errorMessage.getElement(),
+ footerResizeListener);
+ }
getWidget().errorMessage.setVisible(true);
} else {
+ if (getWidget().errorMessage.isVisible()) {
+ getLayoutManager().removeElementResizeListener(
+ getWidget().errorMessage.getElement(),
+ footerResizeListener);
+ }
getWidget().errorMessage.setVisible(false);
}