package net.kornr.swit.site.jquery;
import java.io.Serializable;
import java.util.HashMap;
import java.util.LinkedHashMap;
import net.kornr.swit.util.MappedString;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.Link;
public class JQueryTabs implements Serializable
{
private LinkedHashMap<String, String> m_linkToPane = new LinkedHashMap<String, String>();
public void add(AbstractLink l, Component comp)
{
m_linkToPane.put(l.getMarkupId(), comp.getMarkupId());
l.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
comp.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
}
public void configure(IHeaderResponse response)
{
StringBuffer buffer = new StringBuffer();
boolean first = true;
for (String s: m_linkToPane.keySet())
{
String curpaneid = m_linkToPane.get(s);
buffer.append("$('#" + s + "').unbind('click');");
buffer.append("$('#" + s + "').click(function(){");
for (String v: m_linkToPane.values())
{
if (!curpaneid.equals(v))
{
buffer.append("$('#" + v + "').hide();");
}
else
{
buffer.append("$('#" + v + "').show();");
}
}
buffer.append("return false;");
buffer.append("});\n");
if (first)
{
first = false;
}
else
{
buffer.append("$('#"+curpaneid+"').hide();");
}
}
response.renderJavascriptReference(JQuery.getReference());
response.renderJavascript(JQuery.getOnReadyScript(buffer.toString()), null);
}
}