]> source.dussan.org Git - vaadin-framework.git/commitdiff
Initial removal of %-conversions, many components need fixes (#8312)
authorLeif Åstrand <leif@vaadin.com>
Mon, 30 Jan 2012 06:58:36 +0000 (08:58 +0200)
committerLeif Åstrand <leif@vaadin.com>
Mon, 30 Jan 2012 06:59:32 +0000 (08:59 +0200)
src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
src/com/vaadin/terminal/gwt/client/ComponentDetail.java
src/com/vaadin/terminal/gwt/client/VPaintableMap.java
src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java
src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java
src/com/vaadin/terminal/gwt/client/ui/layout/ChildComponentContainer.java

index e659a18477cd82aef841e55e72ba931a042d67c8..4252ab0aa6092fc40627c33f8593836384babbb6 100644 (file)
@@ -29,13 +29,11 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.Timer;
-import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.FocusWidget;
 import com.google.gwt.user.client.ui.Focusable;
 import com.google.gwt.user.client.ui.HasWidgets;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConfiguration.ErrorMessage;
-import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;
 import com.vaadin.terminal.gwt.client.RenderInformation.Size;
 import com.vaadin.terminal.gwt.client.ui.Field;
 import com.vaadin.terminal.gwt.client.ui.VAbstractPaintableWidget;
@@ -160,7 +158,6 @@ public class ApplicationConnection {
     /** redirectTimer scheduling interval in seconds */
     private int sessionExpirationInterval;
 
-    private ArrayList<VPaintableWidget> relativeSizeChanges = new ArrayList<VPaintableWidget>();
     private ArrayList<Widget> componentCaptionSizeChanges = new ArrayList<Widget>();
 
     private Date requestStartTime;
@@ -1001,7 +998,6 @@ public class ApplicationConnection {
                 JsArray<ValueMap> changes = json.getJSValueMapArray("changes");
 
                 ArrayList<VPaintableWidget> updatedVPaintableWidgets = new ArrayList<VPaintableWidget>();
-                relativeSizeChanges.clear();
                 componentCaptionSizeChanges.clear();
 
                 int length = changes.length();
@@ -1052,7 +1048,6 @@ public class ApplicationConnection {
                 // Check which widgets' size has been updated
                 Set<Widget> sizeUpdatedWidgets = new HashSet<Widget>();
 
-                updatedVPaintableWidgets.addAll(relativeSizeChanges);
                 sizeUpdatedWidgets.addAll(componentCaptionSizeChanges);
 
                 for (VPaintableWidget paintable : updatedVPaintableWidgets) {
@@ -1809,44 +1804,11 @@ public class ApplicationConnection {
         String h = uidl.hasAttribute("height") ? uidl
                 .getStringAttribute("height") : "";
 
-        float relativeWidth = Util.parseRelativeSize(w);
-        float relativeHeight = Util.parseRelativeSize(h);
-
-        // First update maps so they are correct in the setHeight/setWidth calls
-        if (relativeHeight >= 0.0 || relativeWidth >= 0.0) {
-            // One or both is relative
-            FloatSize relativeSize = new FloatSize(relativeWidth,
-                    relativeHeight);
-
-            if (paintableMap.getRelativeSize(paintable) == null
-                    && paintableMap.getOffsetSize(paintable) != null) {
-                // The component has changed from absolute size to relative size
-                relativeSizeChanges.add(paintable);
-            }
-            paintableMap.setRelativeSize(paintable, relativeSize);
-        } else if (relativeHeight < 0.0 && relativeWidth < 0.0) {
-            if (paintableMap.getRelativeSize(paintable) != null) {
-                // The component has changed from relative size to absolute size
-                relativeSizeChanges.add(paintable);
-            }
-            paintableMap.setRelativeSize(paintable, null);
-        }
-
         Widget component = paintableMap.getWidget(paintable);
-        // Set absolute sizes
-        if (relativeHeight < 0.0) {
-            component.setHeight(h);
-        }
-        if (relativeWidth < 0.0) {
-            component.setWidth(w);
-        }
-
-        // Set relative sizes
-        if (relativeHeight >= 0.0 || relativeWidth >= 0.0) {
-            // One or both is relative
-            handleComponentRelativeSize(paintable);
-        }
 
+        // Set defined sizes
+        component.setHeight(h);
+        component.setWidth(w);
     }
 
     /**
@@ -1924,143 +1886,7 @@ public class ApplicationConnection {
      * @return true if the child has a relative size
      */
     private boolean handleComponentRelativeSize(VPaintableWidget paintable) {
-        if (paintable == null) {
-            return false;
-        }
-        boolean debugSizes = true;
-
-        FloatSize relativeSize = paintableMap.getRelativeSize(paintable);
-        if (relativeSize == null) {
-            return false;
-        }
-        Widget widget = paintableMap.getWidget(paintable);
-
-        boolean horizontalScrollBar = false;
-        boolean verticalScrollBar = false;
-
-        Container parentPaintable = Util.getLayout(widget);
-        RenderSpace renderSpace;
-
-        // Parent-less components (like sub-windows) are relative to browser
-        // window.
-        if (parentPaintable == null) {
-            renderSpace = new RenderSpace(Window.getClientWidth(),
-                    Window.getClientHeight());
-        } else {
-            renderSpace = parentPaintable.getAllocatedSpace(widget);
-        }
-
-        if (relativeSize.getHeight() >= 0) {
-            if (renderSpace != null) {
-
-                if (renderSpace.getScrollbarSize() > 0) {
-                    if (relativeSize.getWidth() > 100) {
-                        horizontalScrollBar = true;
-                    } else if (relativeSize.getWidth() < 0
-                            && renderSpace.getWidth() > 0) {
-                        int offsetWidth = widget.getOffsetWidth();
-                        int width = renderSpace.getWidth();
-                        if (offsetWidth > width) {
-                            horizontalScrollBar = true;
-                        }
-                    }
-                }
-
-                int height = renderSpace.getHeight();
-                if (horizontalScrollBar) {
-                    height -= renderSpace.getScrollbarSize();
-                }
-                if (validatingLayouts && height <= 0) {
-                    zeroHeightComponents.add(paintable);
-                }
-
-                height = (int) (height * relativeSize.getHeight() / 100.0);
-
-                if (height < 0) {
-                    height = 0;
-                }
-
-                if (debugSizes) {
-                    VConsole.log("Widget "
-                            + Util.getSimpleName(widget)
-                            + "/"
-                            + paintableMap.getPid(paintable)
-                            + " relative height "
-                            + relativeSize.getHeight()
-                            + "% of "
-                            + renderSpace.getHeight()
-                            + "px (reported by "
-
-                            + Util.getSimpleName(parentPaintable)
-                            + "/"
-                            + (parentPaintable == null ? "?" : parentPaintable
-                                    .hashCode()) + ") : " + height + "px");
-                }
-                widget.setHeight(height + "px");
-            } else {
-                widget.setHeight(relativeSize.getHeight() + "%");
-                VConsole.error(Util.getLayout(widget).getClass().getName()
-                        + " did not produce allocatedSpace for "
-                        + widget.getClass().getName());
-            }
-        }
-
-        if (relativeSize.getWidth() >= 0) {
-
-            if (renderSpace != null) {
-
-                int width = renderSpace.getWidth();
-
-                if (renderSpace.getScrollbarSize() > 0) {
-                    if (relativeSize.getHeight() > 100) {
-                        verticalScrollBar = true;
-                    } else if (relativeSize.getHeight() < 0
-                            && renderSpace.getHeight() > 0
-                            && widget.getOffsetHeight() > renderSpace
-                                    .getHeight()) {
-                        verticalScrollBar = true;
-                    }
-                }
-
-                if (verticalScrollBar) {
-                    width -= renderSpace.getScrollbarSize();
-                }
-                if (validatingLayouts && width <= 0) {
-                    zeroWidthComponents.add(paintable);
-                }
-
-                width = (int) (width * relativeSize.getWidth() / 100.0);
-
-                if (width < 0) {
-                    width = 0;
-                }
-
-                if (debugSizes) {
-                    VConsole.log("Widget "
-                            + Util.getSimpleName(widget)
-                            + "/"
-                            + paintableMap.getPid(paintable)
-                            + " relative width "
-                            + relativeSize.getWidth()
-                            + "% of "
-                            + renderSpace.getWidth()
-                            + "px (reported by "
-                            + Util.getSimpleName(parentPaintable)
-                            + "/"
-                            + (parentPaintable == null ? "?" : paintableMap
-                                    .getPid(parentPaintable)) + ") : " + width
-                            + "px");
-                }
-                widget.setWidth(width + "px");
-            } else {
-                widget.setWidth(relativeSize.getWidth() + "%");
-                VConsole.error(Util.getLayout(widget).getClass().getName()
-                        + " did not produce allocatedSpace for "
-                        + widget.getClass().getName());
-            }
-        }
-
-        return true;
+        return false;
     }
 
     /**
@@ -2074,17 +1900,6 @@ public class ApplicationConnection {
 
     }
 
-    /**
-     * Gets the specified Paintables relative size (percent).
-     * 
-     * @param widget
-     *            the paintable whose size is needed
-     * @return the the size if the paintable is relatively sized, -1 otherwise
-     */
-    public FloatSize getRelativeSize(Widget widget) {
-        return paintableMap.getRelativeSize(paintableMap.getPaintable(widget));
-    }
-
     /**
      * Get either existing or new Paintable for given UIDL.
      * 
index 8e4e13aa1c928ef1ba009ea54130047c24647672..04e990ddead962612983adbb9682cbee441e67a9 100644 (file)
@@ -6,7 +6,6 @@ package com.vaadin.terminal.gwt.client;
 import java.util.HashMap;
 
 import com.google.gwt.core.client.JsArrayString;
-import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;
 import com.vaadin.terminal.gwt.client.RenderInformation.Size;
 
 class ComponentDetail {
@@ -44,24 +43,10 @@ class ComponentDetail {
         this.tooltipInfo = tooltipInfo;
     }
 
-    private FloatSize relativeSize;
     private Size offsetSize;
     private HashMap<Object, TooltipInfo> additionalTooltips;
 
     /**
-     * @return the relativeSize
-     */
-    FloatSize getRelativeSize() {
-        return relativeSize;
-    }
-
-    /**
-     * @param relativeSize
-     *            the relativeSize to set
-     */
-    void setRelativeSize(FloatSize relativeSize) {
-        this.relativeSize = relativeSize;
-    }
 
     /**
      * @return the offsetSize
index f21d85558c2776703b0ed4a64201f3a09db0aac0..c810d56e5106605ba56c0604b452e69a3ad82e3d 100644 (file)
@@ -16,7 +16,6 @@ import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.HasWidgets;\r
 import com.google.gwt.user.client.ui.Widget;\r
 import com.vaadin.terminal.Paintable;\r
-import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;\r
 import com.vaadin.terminal.gwt.client.RenderInformation.Size;\r
 \r
 public class VPaintableMap {\r
@@ -300,17 +299,6 @@ public class VPaintableMap {
         return getComponentDetail(paintable).getOffsetSize();\r
     }\r
 \r
-    /**\r
-     * FIXME: Should not be here\r
-     * \r
-     * @param paintable\r
-     * @return\r
-     */\r
-    @Deprecated\r
-    public FloatSize getRelativeSize(VPaintableWidget paintable) {\r
-        return getComponentDetail(paintable).getRelativeSize();\r
-    }\r
-\r
     /**\r
      * FIXME: Should not be here\r
      * \r
@@ -322,19 +310,6 @@ public class VPaintableMap {
         getComponentDetail(paintable).setOffsetSize(newSize);\r
     }\r
 \r
-    /**\r
-     * FIXME: Should not be here\r
-     * \r
-     * @param paintable\r
-     * @return\r
-     */\r
-    @Deprecated\r
-    public void setRelativeSize(VPaintableWidget paintable,\r
-            FloatSize relativeSize) {\r
-        getComponentDetail(paintable).setRelativeSize(relativeSize);\r
-\r
-    }\r
-\r
     private ComponentDetail getComponentDetail(VPaintableWidget paintable) {\r
         return idToComponentDetail.get(getPid(paintable));\r
     }\r
index 787be254f6108491e636f1d85562fc1a81d7d486..40b6acd28a2fd5787fcdc6f65849efb74094bf4a 100644 (file)
@@ -520,8 +520,6 @@ public class VCustomLayout extends ComplexPanel implements VPaintableWidget,
     }-*/;
 
     public boolean requestLayout(Set<Widget> children) {
-        updateRelativeSizedComponents(true, true);
-
         if (width.equals("") || height.equals("")) {
             /* Automatically propagated upwards if the size can change */
             return false;
@@ -549,78 +547,6 @@ public class VCustomLayout extends ComplexPanel implements VPaintableWidget,
         }
     }
 
-    @Override
-    public void setHeight(String height) {
-        if (this.height.equals(height)) {
-            return;
-        }
-
-        boolean shrinking = true;
-        if (isLarger(height, this.height)) {
-            shrinking = false;
-        }
-
-        this.height = height;
-        super.setHeight(height);
-
-        /*
-         * If the height shrinks we must remove all components with relative
-         * height from the DOM, update their height when they do not affect the
-         * available space and finally restore them to the original state
-         */
-        if (shrinking) {
-            updateRelativeSizedComponents(false, true);
-        }
-    }
-
-    @Override
-    public void setWidth(String width) {
-        if (this.width.equals(width)) {
-            return;
-        }
-
-        boolean shrinking = true;
-        if (isLarger(width, this.width)) {
-            shrinking = false;
-        }
-
-        super.setWidth(width);
-        this.width = width;
-
-        /*
-         * If the width shrinks we must remove all components with relative
-         * width from the DOM, update their width when they do not affect the
-         * available space and finally restore them to the original state
-         */
-        if (shrinking) {
-            updateRelativeSizedComponents(true, false);
-        }
-    }
-
-    private void updateRelativeSizedComponents(boolean relativeWidth,
-            boolean relativeHeight) {
-
-        Set<Widget> relativeSizeWidgets = new HashSet<Widget>();
-
-        for (Widget widget : locationToWidget.values()) {
-            FloatSize relativeSize = client.getRelativeSize(widget);
-            if (relativeSize != null) {
-                if ((relativeWidth && (relativeSize.getWidth() >= 0.0f))
-                        || (relativeHeight && (relativeSize.getHeight() >= 0.0f))) {
-
-                    relativeSizeWidgets.add(widget);
-                    widget.getElement().getStyle()
-                            .setProperty("position", "absolute");
-                }
-            }
-        }
-
-        for (Widget widget : relativeSizeWidgets) {
-            client.handleComponentRelativeSize(widget);
-            widget.getElement().getStyle().setProperty("position", "");
-        }
-    }
-
     /**
      * Compares newSize with currentSize and returns true if it is clear that
      * newSize is larger than currentSize. Returns false if newSize is smaller
index 8828582b5711201398a1c70045ce1a9f41b986b9..357711d2f41590ebfb89f99e99e1ed44a5b40708 100644 (file)
@@ -4,6 +4,7 @@
 
 package com.vaadin.terminal.gwt.client.ui.label;
 
+import com.google.gwt.dom.client.Style.Display;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.ui.HTML;
 import com.vaadin.terminal.gwt.client.BrowserInfo;
@@ -15,9 +16,6 @@ public class VLabel extends HTML {
     public static final String CLASSNAME = "v-label";
     private static final String CLASSNAME_UNDEFINED_WIDTH = "v-label-undef-w";
 
-    private int verticalPaddingBorder = 0;
-    private int horizontalPaddingBorder = 0;
-
     public VLabel() {
         super();
         setStyleName(CLASSNAME);
@@ -40,20 +38,15 @@ public class VLabel extends HTML {
         }
     }
 
-    @Override
-    public void setHeight(String height) {
-        verticalPaddingBorder = Util.setHeightExcludingPaddingAndBorder(this,
-                height, verticalPaddingBorder);
-    }
-
     @Override
     public void setWidth(String width) {
-        horizontalPaddingBorder = Util.setWidthExcludingPaddingAndBorder(this,
-                width, horizontalPaddingBorder);
+        super.setWidth(width);
         if (width == null || width.equals("")) {
             setStyleName(getElement(), CLASSNAME_UNDEFINED_WIDTH, true);
+            getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
         } else {
             setStyleName(getElement(), CLASSNAME_UNDEFINED_WIDTH, false);
+            getElement().getStyle().clearDisplay();
         }
     }
 
index 92464cd4593aea1e77dab437c60ce8cf632ba0e6..b263f8b5d4ab30cc501dd35906188d44eb111b9a 100644 (file)
@@ -9,6 +9,7 @@ import java.util.NoSuchElementException;
 import com.google.gwt.dom.client.DivElement;
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Style.Display;
 import com.google.gwt.user.client.ui.Panel;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
@@ -79,7 +80,6 @@ public class ChildComponentContainer extends Panel {
 
         widgetDIV = Document.get().createDivElement();
 
-        setFloat(widgetDIV, "left");
         setElement(containerDIV);
         containerDIV.getStyle().setProperty("height", "0");
         containerDIV.getStyle().setProperty("width", "0px");
@@ -131,6 +131,7 @@ public class ChildComponentContainer extends Panel {
             // Physical attach.
             widgetDIV.appendChild(widget.getElement());
             adopt(w);
+            w.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
         }
     }