Example usage for com.vaadin.client ComputedStyle getIntProperty

List of usage examples for com.vaadin.client ComputedStyle getIntProperty

Introduction

In this page you can find the example usage for com.vaadin.client ComputedStyle getIntProperty.

Prototype

public final int getIntProperty(String name) 

Source Link

Document

Retrieves the given computed property as an integer.

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 ww w  .  ja  v a2  s .co  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");
}