1 package org.enhydra.barracuda.examples.xmlc; 2 3 import java.io.*; 4 import java.util.*; 5 import javax.servlet.*; 6 import javax.servlet.http.*; 7 8 import org.w3c.dom.*; 9 import org.w3c.dom.html.*; 10 import org.enhydra.xml.xmlc.*; 11 12 import org.enhydra.barracuda.core.comp.*; 13 import org.enhydra.barracuda.core.comp.helper.*; 14 import org.enhydra.barracuda.core.util.dom.*; 15 import org.enhydra.barracuda.core.event.*; 16 import org.enhydra.barracuda.core.util.dom.*; 17 import org.enhydra.barracuda.core.view.*; 18 import org.enhydra.barracuda.examples.xmlc.data.*; 19 20 23 public class BrowserCheck extends ComponentGateway { 24 25 29 public Document handleDefault (BComponent root, ViewContext vc, HttpServletRequest req, HttpServletResponse resp) throws IOException { 30 Document page = DefaultDOMLoader.getGlobalInstance().getDOM(BrowserCheckHTML.class, vc.getViewCapabilities().getClientLocale()); 34 TemplateModel tm = new LocalTemplateModel(req); 36 TemplateView tv = new DefaultTemplateView(page.getDocumentElement()); 37 BTemplate templateComp = new BTemplate(tm); 38 templateComp.setView(tv); 39 root.addChild(templateComp); 40 41 return page; 43 } 44 45 51 public DOMWriter getDOMWriter() { 52 return new DefaultDOMWriter(true); 54 } 55 56 60 class LocalTemplateModel extends AbstractTemplateModel { 61 62 HttpServletRequest req = null; 63 64 public LocalTemplateModel(HttpServletRequest ireq) { 65 req = ireq; 66 } 67 68 public String getName() {return "BrowserCheck";} 70 71 public Object getItem(String key) { 73 ViewContext vc = getViewContext(); 74 ViewCapabilities vcap = vc.getViewCapabilities(); 75 if (key.equals("FormatType")) { 76 return vcap.getFormatType(); 77 } else if (key.equals("ClientType")) { 78 return vcap.getClientType(); 79 } else if (key.equals("ScriptingType")) { 80 return vcap.getScriptingType(); 81 } else if (key.equals("User-Agent")) { 82 return enumToString(req.getHeaders("User-Agent")); 83 } else if (key.equals("Accept")) { 84 return enumToString(req.getHeaders("Accept")); 85 } else { 86 return super.getItem(key); 87 } 88 } 89 90 String enumToString(Enumeration enum) { 91 StringBuffer sb = new StringBuffer(100); 92 String sep = ""; 93 while (enum.hasMoreElements()) { 94 sb.append(sep+enum.nextElement()); 95 sep = ",<br>"; 96 } 97 return sb.toString(); 98 } 99 } 100 } 101 | Popular Tags |