package er.ajax; import com.webobjects.appserver.WOActionResults; import com.webobjects.appserver.WOContext; import com.webobjects.appserver.WORequest; import com.webobjects.appserver.WOResponse; import com.webobjects.foundation.NSDictionary; import com.webobjects.foundation.NSMutableArray; import com.webobjects.foundation.NSMutableDictionary; import er.extensions.appserver.ERXWOContext; public class AjaxAccordion extends AjaxComponent { /** * Do I need to update serialVersionUID? * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a> */ private static final long serialVersionUID = 1L; private String _accordionID; public AjaxAccordion(WOContext context) { super(context); } @Override public boolean isStateless() { return true; } @Override public void appendToResponse(WOResponse response, WOContext context) { _accordionID = (String) valueForBinding("id", ERXWOContext.safeIdentifierName(context, true) + "Accordion"); super.appendToResponse(response, context); } public String accordionID() { return _accordionID; } public NSDictionary createAjaxOptions() { NSMutableArray ajaxOptionsArray = new NSMutableArray(); ajaxOptionsArray.addObject(new AjaxOption("expandedBg", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("hoverBg", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("collapsedBg", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("expandedTextColor", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("expandedFontWeight", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("hoverTextColor", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("collapsedTextColor", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("collapsedFontWeight", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("hoverTextColor", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("borderColor", AjaxOption.STRING)); ajaxOptionsArray.addObject(new AjaxOption("panelHeight", AjaxOption.NUMBER)); ajaxOptionsArray.addObject(new AjaxOption("onHideTab", AjaxOption.SCRIPT)); ajaxOptionsArray.addObject(new AjaxOption("onShowTab", AjaxOption.SCRIPT)); ajaxOptionsArray.addObject(new AjaxOption("onLoadShowTab", AjaxOption.SCRIPT)); NSMutableDictionary options = AjaxOption.createAjaxOptionsDictionary(ajaxOptionsArray, this); return options; } @Override protected void addRequiredWebResources(WOResponse response) { addScriptResourceInHead(response, "prototype.js"); addScriptResourceInHead(response, "rico.js"); } @Override public WOActionResults handleRequest(WORequest request, WOContext context) { return null; } }