/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.ui.client.util;
import com.extjs.gxt.ui.client.core.El;
import com.extjs.gxt.ui.client.core.XDOM;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.impl.ClippedImagePrototype;
public class IconHelper {
private static boolean initialized;
private static El el;
public static AbstractImagePrototype createPath(String url) {
return createPath(url, 16, 16);
}
public static AbstractImagePrototype createPath(String url, int width, int height) {
ClippedImagePrototype c = new ClippedImagePrototype(url, 0, 0, width, height);
return c;
}
public static AbstractImagePrototype createStyle(String styleName) {
return createStyle(styleName, 16, 16);
}
public static AbstractImagePrototype createStyle(String styleName, int width, int height) {
if (!initialized) {
el = new El(DOM.createDiv());
DOM.appendChild(XDOM.getBody(), el.dom);
el.makePositionable(true);
el.setLeftTop(-10000, -10000);
el.setVisibility(false);
initialized = true;
}
el.addStyleName(styleName);
String s = el.getStyleAttribute("backgroundImage").replace("\")", "").replace(")", "").replace(
"url(\"", "").replace("url(", "");
el.removeStyleName(styleName);
return createPath(s, width, height);
}
public static AbstractImagePrototype create(String s) {
return create(s, 16, 16);
}
public static AbstractImagePrototype create(String s, int width, int height) {
return Util.isImagePath(s) ? createPath(s, width, height) : createStyle(s, width,
height);
}
}