Example usage for com.vaadin.client LayoutManager getInnerWidth

List of usage examples for com.vaadin.client LayoutManager getInnerWidth

Introduction

In this page you can find the example usage for com.vaadin.client LayoutManager getInnerWidth.

Prototype

public final int getInnerWidth(Element element) 

Source Link

Document

Gets the inner width (excluding margins, paddings and borders) of the given element, provided that it has been measured.

Usage

From source file:com.haulmont.cuba.web.toolkit.ui.client.groupbox.CubaGroupBoxConnector.java

License:Apache License

protected void layoutGroupBox() {
    CubaGroupBoxWidget panel = getWidget();
    LayoutManager layoutManager = getLayoutManager();

    if (isBordersVisible()) {
        int captionWidth = layoutManager.getOuterWidth(panel.captionNode);
        int captionStartWidth = layoutManager.getInnerWidth(panel.captionStartDeco);
        int totalMargin = captionWidth + captionStartWidth;

        panel.captionNode.getStyle().setWidth(captionWidth, Unit.PX);
        panel.captionWrap.getStyle().setPaddingLeft(totalMargin, Unit.PX);
        panel.captionStartDeco.getStyle().setMarginLeft(0 - totalMargin, Unit.PX);
    }/*from www. j a v  a 2s  .c o  m*/

    Profiler.enter("CubaGroupBoxConnector.layout getHeights");
    // Haulmont API get max height of caption components
    int top = layoutManager.getOuterHeight(panel.captionNode);
    top = Math.max(layoutManager.getOuterHeight(panel.captionStartDeco), top);
    top = Math.max(layoutManager.getOuterHeight(panel.captionEndDeco), top);

    int bottom = layoutManager.getInnerHeight(panel.bottomDecoration);
    Profiler.leave("PanelConnector.layout getHeights");

    Style style = panel.getElement().getStyle();
    int paddingTop = 0;
    int paddingBottom = 0;
    if (panel.hasAnyOuterMargin()) {
        Profiler.enter("PanelConnector.layout get values from styles");
        // Clear previously set values

        style.clearPaddingTop();
        style.clearPaddingBottom();
        // Calculate padding from styles
        ComputedStyle computedStyle = new ComputedStyle(panel.getElement());
        paddingTop = computedStyle.getIntProperty("padding-top");
        paddingBottom = computedStyle.getIntProperty("padding-bottom");
        Profiler.leave("PanelConnector.layout get values from styles");
    }

    Profiler.enter("PanelConnector.layout modify style");
    panel.captionWrap.getStyle().setMarginTop(-top, Style.Unit.PX);
    panel.bottomDecoration.getStyle().setMarginBottom(-bottom, Style.Unit.PX);
    style.setPaddingTop(top + paddingTop, Style.Unit.PX);
    style.setPaddingBottom(bottom + paddingBottom, Style.Unit.PX);
    Profiler.leave("PanelConnector.layout modify style");

    // Update scroll positions
    Profiler.enter("PanelConnector.layout update scroll positions");
    panel.contentNode.setScrollTop(panel.scrollTop);
    panel.contentNode.setScrollLeft(panel.scrollLeft);
    Profiler.leave("PanelConnector.layout update scroll positions");

    // Read actual value back to ensure update logic is correct
    Profiler.enter("PanelConnector.layout read scroll positions");
    panel.scrollTop = panel.contentNode.getScrollTop();
    panel.scrollLeft = panel.contentNode.getScrollLeft();
    Profiler.leave("PanelConnector.layout read scroll positions");
}

From source file:info.magnolia.ui.vaadin.gwt.client.magnoliashell.viewport.connector.ViewportConnector.java

License:Open Source License

protected void alignContent(Element e, LayoutManager layoutManager) {
    if (getWidget().isVisible() && !Display.NONE.getCssName().equals(e.getStyle().getDisplay())) {
        int width = layoutManager.getInnerWidth(e);
        final Style style = e.getStyle();
        style.setLeft(50, Unit.PCT);//  w w  w  .ja v a 2  s  .co m
        style.setMarginLeft(-width / 2, Unit.PX);
    }
}