]> source.dussan.org Git - vaadin-framework.git/commitdiff
Testcase and fix for #1923 - IE6 panel width problem
authorArtur Signell <artur.signell@itmill.com>
Thu, 28 Aug 2008 13:36:56 +0000 (13:36 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 28 Aug 2008 13:36:56 +0000 (13:36 +0000)
svn changeset:5291/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java
src/com/itmill/toolkit/tests/tickets/Ticket1923.java [new file with mode: 0644]

index 7c2171cbfb9688b6e5209f1910ab8662966cb8ac..37fb6feca8d793358f986179e6f4d660a5233b6d 100644 (file)
@@ -238,6 +238,26 @@ public class IPanel extends SimplePanel implements Paintable,
     }
 
     public void iLayout(boolean runGeckoFix) {
+
+        // IE6 width fix
+        if (BrowserInfo.get().isIE6()) {
+            int captionOffsetWidth = DOM.getElementPropertyInt(captionNode,
+                    "offsetWidth");
+            int borderWidthGuess = 200;
+            int widthGuess = captionOffsetWidth - borderWidthGuess;
+            DOM.setStyleAttribute(contentNode, "width", widthGuess + "px");
+
+            int actualBorder = DOM.getElementPropertyInt(contentNode,
+                    "offsetWidth")
+                    - widthGuess;
+            if (actualBorder != borderWidthGuess) {
+                int realWidthIncludingBorder = captionOffsetWidth
+                        - actualBorder;
+                DOM.setStyleAttribute(contentNode, "width",
+                        realWidthIncludingBorder + "px");
+            }
+        }
+
         if (height != null && height != "") {
             final boolean hasChildren = getWidget() != null;
             Element contentEl = null;
diff --git a/src/com/itmill/toolkit/tests/tickets/Ticket1923.java b/src/com/itmill/toolkit/tests/tickets/Ticket1923.java
new file mode 100644 (file)
index 0000000..ed77fdc
--- /dev/null
@@ -0,0 +1,41 @@
+package com.itmill.toolkit.tests.tickets;\r
+\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.Panel;\r
+import com.itmill.toolkit.ui.Window;\r
+\r
+public class Ticket1923 extends com.itmill.toolkit.Application {\r
+\r
+    private static final int ROWS = 1;\r
+\r
+    private Panel p;\r
+\r
+    public void init() {\r
+        final Window main = new Window(getClass().getName().substring(\r
+                getClass().getName().lastIndexOf(".") + 1));\r
+        setMainWindow(main);\r
+\r
+        p = new Panel("TestPanel");\r
+        // p.getLayout().setWidth("100%");\r
+        p.setScrollable(true);\r
+        // p.setLayout(new GridLayout(1, 100));\r
+        for (int i = 0; i < ROWS; i++) {\r
+            p\r
+                    .addComponent(new Label(\r
+                            "Label"\r
+                                    + i\r
+                                    + " 5067w09adsfasdjfahlsdfjhalfjhaldjfhalsjdfhlajdhflajhdfljahdslfjahldsjfhaljdfhaljfdhlajsdhflajshdflkajhsdlfkjahsldfkjahsldfhalskjfdhlksjfdh857idifhaljsdfhlajsdhflajhdflajhdfljahldfjhaljdfhalsjdfhalkjdhflkajhdfljahsdlfjahlsdjfhaldjfhaljfdhlajdhflajshdfljahsdlfjhalsjdfhalskjhfdlhusfglksuhdflgjshflgjhslfghslfjghsljfglsjhfglsjhfgljshfgljshflgjhslfghsljfgsljdfglsdjhfglsjhflgkjshfldjgh"));\r
+        }\r
+        //main.getLayout().setSizeFull();\r
+\r
+        p.setHeight("300px");\r
+        p.setWidth("250px");\r
+        //p.setWidth("50%");\r
+\r
+        p.setScrollTop(100);\r
+        p.setScrollLeft(100);\r
+\r
+        main.addComponent(p);\r
+\r
+    }\r
+}
\ No newline at end of file