KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > examples > xmlc > BrowserCheck


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 /**
21  * Check to see who Barracuda thinks we are
22  */

23 public class BrowserCheck extends ComponentGateway {
24
25     //-------------------- ComponentGateway ----------------------
26
/**
27      * Handle the default HttpRequest.
28      */

29     public Document handleDefault (BComponent root, ViewContext vc, HttpServletRequest req, HttpServletResponse resp) throws IOException {
30         //load the localized DOM template
31
//csc_061702.1 Document page = DefaultDOMLoader.getGlobalInstance().getDOM(BrowserCheckHTML.class);
32
Document page = DefaultDOMLoader.getGlobalInstance().getDOM(BrowserCheckHTML.class, vc.getViewCapabilities().getClientLocale()); //csc_061702.1
33

34         //create a template component and bind it to the views
35
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 the page
42
return page;
43     }
44
45     /**
46      * <p>Get a DOMWriter. By default, we use a DefaultDOMWriter. If
47      * you'd like to use something else, override this method.
48      *
49      * @return a DOMWriter to be used to render the DOM
50      */

51     public DOMWriter getDOMWriter() {
52         //return DefaultDOM writer
53
return new DefaultDOMWriter(true);
54     }
55
56     //--------------- TemplateModel --------------------------
57
/**
58      * LocalTemplateModel
59      */

60     class LocalTemplateModel extends AbstractTemplateModel {
61     
62         HttpServletRequest req = null;
63         
64         public LocalTemplateModel(HttpServletRequest ireq) {
65             req = ireq;
66         }
67         
68         //register the model by name
69
public String getName() {return "BrowserCheck";}
70         
71         //provide items by key
72
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