package er.jqm.components;
import java.util.Enumeration;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOElement;
import com.webobjects.appserver._private.WODynamicGroup;
import er.extensions.components.conditionals.ERXWOTemplate;
import er.extensions.foundation.ERXHyperlinkResource;
import er.extensions.foundation.ERXProperties;
/**
* Builds url names for jQueryMobile css and js files
*
*/
public abstract class ERQMPageBase extends ERQMComponentBase
{
public ERQMPageBase(WOContext context)
{
super(context);
}
private String _uriForKey(String key)
{
StringBuilder propertyKey = new StringBuilder(key);
propertyKey.append('.');
propertyKey.append(ERXProperties.stringForKeyWithDefault(key, "odn"));
propertyKey.append(".location");
String uri = ERXProperties.stringForKey(propertyKey.toString());
return uri;
}
public String themeStyleSheetUrl()
{
String uri = _uriForKey("er.jqm.css-theme");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public String iconsStyleSheetUrl()
{
String uri = _uriForKey("er.jqm.css-icons");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public String structurceStyleSheetUrl()
{
String uri = _uriForKey("er.jqm.css-structure");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public String jQueryUrl()
{
String uri = _uriForKey("er.jqm.jquery");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public String javascriptUrl()
{
String uri = _uriForKey("er.jqm.javascript");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public String autocompleteUrl()
{
String uri = _uriForKey("er.jqm.autocomplete");
return ERXHyperlinkResource.urlForHyperlinkResource(context(), uri);
}
public boolean hasTemplateInComponent()
{
boolean result = false;
WOElement content = _childTemplate();
if (content instanceof WODynamicGroup)
{
WODynamicGroup group = (WODynamicGroup) content;
for (Enumeration<WOElement> e = group.childrenElements().objectEnumerator(); e.hasMoreElements() && !result;)
{
WOElement current = e.nextElement();
if (current instanceof ERXWOTemplate)
{
result = true;
}
}
}
else if (content instanceof ERXWOTemplate)
{
result = true;
}
return result;
}
}