/*
* Copyright 2010 Richard Nichols.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* under the License.
*/
package com.visural.wicket.util.supportie;
import java.util.Map;
import org.apache.wicket.markup.html.IHeaderContributor;
import org.apache.wicket.markup.html.IHeaderResponse;
/**
* A collection of IE compatibility hacks.
*
* @version $Id$
* @author Richard Nichols
*/
public class SupportIE {
/**
* A PNG-transparency fix solution for IE6, which fixes all PNGs that are
* selected by the given CSS selector(s).
*
* @param urlForPNGRef
* @param cssSelectors
* @return
*/
public static IHeaderContributor getFixPNGContributor(String urlForPNGRef, String[] cssSelectors) {
StringBuffer js = new StringBuffer("<!--[if IE 6]><script src=\"");
js.append(urlForPNGRef);
js.append("\"></script><script type=\"text/javascript\">");
for (String selector : cssSelectors) {
js.append("DD_belatedPNG.fix('");
js.append(selector);
js.append("');");
}
js.append("</script><![endif]-->");
final String hdr = js.toString();
return new IHeaderContributor() {
public void renderHead(IHeaderResponse arg0) {
arg0.renderString(hdr);
}
};
}
/**
* Add's rounded corners under IE using Javascript. Has no effect on other browsers.
*
* (Note that depending the rest of your page CSS, YMMV!)
*
* @param urlForRoundiesRef
* @param selectorAndRounding
* @return
*/
public static IHeaderContributor getRoundiesContributor(String urlForRoundiesRef, Map<String,String> selectorAndRounding) {
StringBuffer js = new StringBuffer("<!--[if IE]><script src=\"");
js.append(urlForRoundiesRef);
js.append("\"></script><script type=\"text/javascript\">");
for (String selector : selectorAndRounding.keySet()) {
js.append("DD_roundies.addRule('");
js.append(selector);
js.append("','");
js.append(selectorAndRounding.get(selector));
js.append("');");
}
js.append("</script><![endif]-->");
final String hdr = js.toString();
return new IHeaderContributor() {
public void renderHead(IHeaderResponse arg0) {
arg0.renderString(hdr);
}
};
}
}