]> source.dussan.org Git - vaadin-framework.git/commitdiff
IE6 transparent PNG fix added; for #1219
authorMarc Englund <marc.englund@itmill.com>
Thu, 26 Jun 2008 13:49:43 +0000 (13:49 +0000)
committerMarc Englund <marc.englund@itmill.com>
Thu, 26 Jun 2008 13:49:43 +0000 (13:49 +0000)
svn changeset:4956/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/Icon.java

index bc14d553eff2394d6dce861834ef40138bcf1842..daa21c92ae5deb93ede6d28c027385492d85b5c6 100644 (file)
@@ -5,8 +5,10 @@
 package com.itmill.toolkit.terminal.gwt.client.ui;
 
 import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.UIObject;
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.BrowserInfo;
 
 public class Icon extends UIObject {
     private final ApplicationConnection client;
@@ -17,6 +19,11 @@ public class Icon extends UIObject {
         DOM.setElementProperty(getElement(), "alt", "icon");
         setStyleName("i-icon");
         this.client = client;
+        BrowserInfo b = BrowserInfo.get();
+        if (b.isIE6()) {
+            addPngFix(getElement(), client.getThemeUri()
+                    + "/../default/common/img/blank.gif");
+        }
     }
 
     public Icon(ApplicationConnection client, String uidlUri) {
@@ -26,9 +33,24 @@ public class Icon extends UIObject {
 
     public void setUri(String uidlUri) {
         if (!uidlUri.equals(myUri)) {
-            DOM.setElementProperty(getElement(), "src", client
-                    .translateToolkitUri(uidlUri));
+            String uri = client.translateToolkitUri(uidlUri);
+            DOM.setElementProperty(getElement(), "src", uri);
             myUri = uidlUri;
         }
     }
+
+    private native static void addPngFix(Element el, String blankImageUrl)
+    /*-{
+        el.attachEvent("onload", function() {
+            var src = el.src;
+            if (src.indexOf(".png")<1) return;
+            var w = el.width||16; 
+            var h = el.height||16;
+            el.src =blankImageUrl;
+            el.style.height = h+"px";
+            el.style.width = w+"px";
+            el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop');";  
+        },false);
+    }-*/;
+
 }