]> source.dussan.org Git - vaadin-framework.git/commitdiff
better margin support (via server side api) for csslayout + some cleaning
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 3 Sep 2009 07:53:21 +0000 (07:53 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 3 Sep 2009 07:53:21 +0000 (07:53 +0000)
svn changeset:8644/svn branch:6.1

WebContent/VAADIN/themes/base/csslayout/csslayout.css [new file with mode: 0644]
WebContent/VAADIN/themes/base/styles.css
WebContent/VAADIN/themes/reindeer/styles.css
WebContent/VAADIN/themes/runo/styles.css
src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java

diff --git a/WebContent/VAADIN/themes/base/csslayout/csslayout.css b/WebContent/VAADIN/themes/base/csslayout/csslayout.css
new file mode 100644 (file)
index 0000000..12f1cd0
--- /dev/null
@@ -0,0 +1,16 @@
+.v-csslayout {
+       overflow: hidden;
+}
+
+.v-csslayout-margin-top {
+       padding-top: 2em;       
+}
+.v-csslayout-margin-bottom {
+       padding-bottom: 2em;    
+}
+.v-csslayout-margin-left {
+       padding-left: 2em;      
+}
+.v-csslayout-margin-right {
+       padding-right: 2em;     
+}
index db1084616f3371fd8c71f1a61fa26b1ab11ef392..def4572a0058f024d54fd9e72b0164d6f02bfc1f 100644 (file)
@@ -448,6 +448,23 @@ div.v-app-loading {
        padding: 2px;
 }
 
+.v-csslayout {
+       overflow: hidden;
+}
+
+.v-csslayout-margin-top {
+       padding-top: 2em;       
+}
+.v-csslayout-margin-bottom {
+       padding-bottom: 2em;    
+}
+.v-csslayout-margin-left {
+       padding-left: 2em;      
+}
+.v-csslayout-margin-right {
+       padding-right: 2em;     
+}
+
 .v-customcomponent {
        overflow: hidden;
 }
index c9c689fa02fa3187101579a4750f7e91bb6b0a80..368b2808f874f147a50aef42d80f29080b6c10c4 100644 (file)
@@ -448,6 +448,23 @@ div.v-app-loading {
        padding: 2px;
 }
 
+.v-csslayout {
+       overflow: hidden;
+}
+
+.v-csslayout-margin-top {
+       padding-top: 2em;       
+}
+.v-csslayout-margin-bottom {
+       padding-bottom: 2em;    
+}
+.v-csslayout-margin-left {
+       padding-left: 2em;      
+}
+.v-csslayout-margin-right {
+       padding-right: 2em;     
+}
+
 .v-customcomponent {
        overflow: hidden;
 }
index 20f009d8500f64ea59d192a728ebe399b2117315..957913d450ef7bd3f01abbbbc4976ab43e0c05cb 100644 (file)
@@ -448,6 +448,23 @@ div.v-app-loading {
        padding: 2px;
 }
 
+.v-csslayout {
+       overflow: hidden;
+}
+
+.v-csslayout-margin-top {
+       padding-top: 2em;       
+}
+.v-csslayout-margin-bottom {
+       padding-bottom: 2em;    
+}
+.v-csslayout-margin-left {
+       padding-left: 2em;      
+}
+.v-csslayout-margin-right {
+       padding-right: 2em;     
+}
+
 .v-customcomponent {
        overflow: hidden;
 }
index 03717157727ad43325d5ed8ca1ef21d2a52b65cf..fccb9e0fd2aee5f2ecc862b50f688fd5c5ff32ca 100644 (file)
@@ -16,6 +16,7 @@ import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
+import com.vaadin.terminal.gwt.client.BrowserInfo;
 import com.vaadin.terminal.gwt.client.Container;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.RenderSpace;
@@ -37,9 +38,9 @@ public class VCssLayout extends SimplePanel implements Paintable, Container {
 
     public VCssLayout() {
         super();
-        DOM.appendChild(getElement(), margin);
-        DOM.setStyleAttribute(getElement(), "overflow", "hidden");
+        getElement().appendChild(margin);
         setStyleName(CLASSNAME);
+        margin.setClassName(CLASSNAME + "-margin");
         setWidget(panel);
     }
 
@@ -51,14 +52,14 @@ public class VCssLayout extends SimplePanel implements Paintable, Container {
     @Override
     public void setWidth(String width) {
         super.setWidth(width);
-        panel.setWidth(width);
+        // panel.setWidth(width);
         hasWidth = width != null && !width.equals("");
     }
 
     @Override
     public void setHeight(String height) {
         super.setHeight(height);
-        panel.setHeight(height);
+        // panel.setHeight(height);
         hasHeight = height != null && !height.equals("");
     }
 
@@ -70,7 +71,6 @@ public class VCssLayout extends SimplePanel implements Paintable, Container {
 
         final VMarginInfo margins = new VMarginInfo(uidl
                 .getIntAttribute("margins"));
-
         setStyleName(margin, CLASSNAME + "-" + StyleConstants.MARGIN_TOP,
                 margins.hasTop());
         setStyleName(margin, CLASSNAME + "-" + StyleConstants.MARGIN_RIGHT,
@@ -208,10 +208,33 @@ public class VCssLayout extends SimplePanel implements Paintable, Container {
         }
     }
 
+    private RenderSpace space;
+
     public RenderSpace getAllocatedSpace(Widget child) {
-        com.google.gwt.dom.client.Element div = child.getElement()
-                .getParentElement();
-        return new RenderSpace(div.getOffsetWidth(), div.getOffsetHeight());
+        if (space == null) {
+            space = new RenderSpace(-1, -1) {
+                @Override
+                public int getWidth() {
+                    if (BrowserInfo.get().isIE()) {
+                        int width = getOffsetWidth();
+                        int margins = margin.getOffsetWidth()
+                                - panel.getOffsetWidth();
+                        return width - margins;
+                    } else {
+                        return panel.getOffsetWidth();
+                    }
+                }
+
+                @Override
+                public int getHeight() {
+                    int height = getOffsetHeight();
+                    int margins = margin.getOffsetHeight()
+                            - panel.getOffsetHeight();
+                    return height - margins;
+                }
+            };
+        }
+        return space;
     }
 
     public boolean requestLayout(Set<Paintable> children) {