]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merged master and fixed a couple of issues in boxlayout
authorJouni Koivuviita <jouni@vaadin.com>
Fri, 10 Aug 2012 07:58:38 +0000 (10:58 +0300)
committerJouni Koivuviita <jouni@vaadin.com>
Fri, 10 Aug 2012 07:58:38 +0000 (10:58 +0300)
src/com/vaadin/terminal/gwt/client/ui/AbstractBoxLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
src/com/vaadin/terminal/gwt/client/ui/VBoxLayout.java
src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java
tests/testbench/com/vaadin/tests/components/orderedlayout/BoxLayoutTest.java

index 230be7460b9542447699dd5d74b700f87cae3751..0934c1c478754fa352b55ff982166ebb358e9569 100644 (file)
@@ -49,6 +49,7 @@ public abstract class AbstractBoxLayoutConnector extends
 
     @Override
     public void init() {
+        super.init();
         rpc = RpcProxy.create(AbstractOrderedLayoutServerRpc.class, this);
         getWidget().setLayoutManager(getLayoutManager());
     }
@@ -89,7 +90,8 @@ public abstract class AbstractBoxLayoutConnector extends
     /**
      * For bookkeeping. Used in extra calculations for horizontal layout.
      */
-    private HashMap<Element, Integer> childElementHeight = new HashMap<Element, Integer>();
+    // private HashMap<Element, Integer> childElementHeight = new
+    // HashMap<Element, Integer>();
 
     /**
      * For bookkeeping. Used in extra calculations for horizontal layout.
@@ -167,7 +169,7 @@ public abstract class AbstractBoxLayoutConnector extends
                 hasRelativeHeight.remove(child);
                 hasExpandRatio.remove(child);
                 needsMeasure.remove(child.getWidget().getElement());
-                childElementHeight.remove(child.getWidget().getElement());
+                // childElementHeight.remove(child.getWidget().getElement());
                 childCaptionElementHeight
                         .remove(child.getWidget().getElement());
                 getLayoutManager().removeElementResizeListener(
@@ -247,11 +249,11 @@ public abstract class AbstractBoxLayoutConnector extends
                 hasExpandRatio.add(child);
             }
 
-            if (child.getState().isRelativeHeight()) {
-                hasRelativeHeight.add(child);
-            } else {
-                needsMeasure.add(child.getWidget().getElement());
-            }
+            // if (child.getState().isRelativeHeight()) {
+            // hasRelativeHeight.add(child);
+            // } else {
+            // needsMeasure.add(child.getWidget().getElement());
+            // }
         }
 
         updateAllSlotListeners();
@@ -286,6 +288,9 @@ public abstract class AbstractBoxLayoutConnector extends
             // }
 
             updateSlotListeners(child);
+            // updateAllSlotListeners();
+
+            updateLayoutHeight();
         }
     };
 
@@ -464,8 +469,8 @@ public abstract class AbstractBoxLayoutConnector extends
 
     private ElementResizeListener childComponentResizeListener = new ElementResizeListener() {
         public void onElementResize(ElementResizeEvent e) {
-            int h = getLayoutManager().getOuterHeight(e.getElement());
-            childElementHeight.put((Element) e.getElement().cast(), h);
+            // int h = getLayoutManager().getOuterHeight(e.getElement());
+            // childElementHeight.put((Element) e.getElement().cast(), h);
             updateLayoutHeight();
 
             if (needsExpand()) {
@@ -483,7 +488,7 @@ public abstract class AbstractBoxLayoutConnector extends
     };
 
     private void updateLayoutHeight() {
-        if (needsFixedHeight() && childElementHeight.size() > 0) {
+        if (needsFixedHeight()) {
             int h = getMaxHeight();
             h += getLayoutManager().getBorderHeight(getWidget().getElement())
                     + getLayoutManager().getPaddingHeight(
@@ -501,21 +506,19 @@ public abstract class AbstractBoxLayoutConnector extends
     }
 
     private int getMaxHeight() {
-        // TODO should use layout manager instead of inner lists of element
-        // sizes
         int highestNonRelative = -1;
         int highestRelative = -1;
-        // System.out.println("Child sizes: "
-        // + childElementHeight.values().toString());
-        for (Element el : childElementHeight.keySet()) {
+
+        for (ComponentConnector child : getChildComponents()) {
             // TODO would be more efficient to measure the slot element if both
             // caption and child widget elements need to be measured. Keeping
             // track of what to measure is the most difficult part of this
             // layout.
+            Element el = child.getWidget().getElement();
             CaptionPosition pos = getWidget().getCaptionPositionFromElement(
                     (Element) el.getParentElement().cast());
             if (needsMeasure.contains(el)) {
-                int h = childElementHeight.get(el);
+                int h = getLayoutManager().getOuterHeight(el);
                 String sHeight = el.getStyle().getHeight();
                 // Only add the caption size to the height of the slot if
                 // coption position is top or bottom
@@ -528,7 +531,7 @@ public abstract class AbstractBoxLayoutConnector extends
                     highestNonRelative = h;
                 }
             } else {
-                int h = childElementHeight.get(el);
+                int h = getLayoutManager().getOuterHeight(el);
                 if (childCaptionElementHeight.containsKey(el)
                         && (pos == CaptionPosition.TOP || pos == CaptionPosition.BOTTOM)) {
                     h += childCaptionElementHeight.get(el);
index ba3a53691aec9ca240fa302afb17e8b729d9002c..e6ca93bcb05c203d97d1340449481831c4262f7c 100644 (file)
@@ -54,8 +54,8 @@ public abstract class AbstractComponentConnector extends AbstractConnector
 
         getConnection().getVTooltip().connectHandlersToWidget(getWidget());
 
-        // Set v-connector style names for the widget
-        getWidget().setStyleName("v-connector", true);
+        // Set the core 'v' style name for the widget
+        getWidget().setStyleName("v", true);
     }
 
     /**
index ef25498832cc9537267fbaf3d71702882a9ba830..e37542674b9da0dfd9ae98a68d8a55629f2f1dd8 100644 (file)
@@ -26,6 +26,8 @@ import com.vaadin.terminal.gwt.client.LayoutManager;
 
 public class VBoxLayout extends FlowPanel {
 
+    public static final String CLASSNAME = "v-boxlayout";
+
     private static final String ALIGN_CLASS_PREFIX = "v-align-";
 
     protected boolean spacing = false;
@@ -39,7 +41,7 @@ public class VBoxLayout extends FlowPanel {
     private LayoutManager layoutManager;
 
     public VBoxLayout() {
-        setStylePrimaryName("v-boxlayout");
+        setStyleName(CLASSNAME);
         setVertical(true);
     }
 
index 459bd474d1064befa184a008eb995e52f044cd00..a9e5cc562f2341874bcf27951b3cd447d0c81e61 100644 (file)
@@ -3,11 +3,8 @@
  */
 package com.vaadin.terminal.gwt.client.ui.orderedlayout;
 
-import com.vaadin.shared.ui.Connect;
-import com.vaadin.shared.ui.Connect.LoadStyle;
-import com.vaadin.ui.HorizontalLayout;
 
-@Connect(value = HorizontalLayout.class, loadStyle = LoadStyle.EAGER)
+//@Connect(value = HorizontalLayout.class, loadStyle = LoadStyle.EAGER)
 public class HorizontalLayoutConnector extends AbstractOrderedLayoutConnector {
 
     @Override
index a4812831562b1b5a7a5371099d30629b5a87b120..83256e8a917d3cf5f16d2565daad3ac521809258 100644 (file)
@@ -3,11 +3,8 @@
  */
 package com.vaadin.terminal.gwt.client.ui.orderedlayout;
 
-import com.vaadin.shared.ui.Connect;
-import com.vaadin.shared.ui.Connect.LoadStyle;
-import com.vaadin.ui.VerticalLayout;
 
-@Connect(value = VerticalLayout.class, loadStyle = LoadStyle.EAGER)
+//@Connect(value = VerticalLayout.class, loadStyle = LoadStyle.EAGER)
 public class VerticalLayoutConnector extends AbstractOrderedLayoutConnector {
 
     @Override
index fb9a5ab751e597756205b9e2f0efa35fa8b4203c..86015a010971f6497f45df9d732571057a7bceb7 100644 (file)
@@ -61,7 +61,7 @@ public class BoxLayoutTest extends AbstractTestRoot {
         // view.addComponent(createTestLayout(false));
         // view.setExpandRatio(view.getComponent(1), 1);
 
-        for (int i = 0; i < 200; i++) {
+        for (int i = 0; i < 20; i++) {
             view.addComponent(createHorizontalTest());
         }