KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > tutorials > comp > HelloWorld4


1 package org.enhydra.barracuda.tutorials.comp;
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.enhydra.xml.xmlc.*;
10
11 import org.enhydra.barracuda.core.comp.*;
12 import org.enhydra.barracuda.core.comp.helper.*;
13 import org.enhydra.barracuda.core.util.dom.*;
14 import org.enhydra.barracuda.plankton.*;
15 import org.enhydra.barracuda.plankton.l10n.*;
16 import org.enhydra.barracuda.tutorials.xmlc.*;
17
18 /**
19  * Here's an example of HelloWorld using the BTemplate
20  * component
21  */

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

28     public Document handleDefault (BComponent root, ViewContext vc, HttpServletRequest req, HttpServletResponse resp) throws IOException {
29
30         //find our target locale
31
Locale locale = vc.getViewCapabilities().getClientLocale();
32                 
33         //load the localized DOM template
34
Document page = DefaultDOMLoader.getGlobalInstance().getDOM(HelloWorld4HTML.class, locale);
35
36         //create the component and bind it to the views
37
BTemplate templateComp = new BTemplate();
38         templateComp.addView(new DefaultTemplateView(page.getElementById("HelloWorldHdr")));
39         templateComp.addView(new DefaultTemplateView(page.getElementById("HelloWorldList")));
40
41         //now specify the model
42
templateComp.addModel(new HelloWorldModel());
43         ResourceBundle rb = ResourceBundle.getBundle("org.enhydra.barracuda.tutorials.xmlc.HelloWorld4", locale);
44         String JavaDoc[] items = new String JavaDoc[] {
45             Localize.getString(rb, "Groceries.Cabbage"),
46             Localize.getString(rb, "Groceries.Carrots"),
47             Localize.getString(rb, "Groceries.Mustard"),
48             Localize.getString(rb, "Groceries.Sugar"),
49             Localize.getString(rb, "Groceries.Cereal"),
50             Localize.getString(rb, "Groceries.Flour"),
51             Localize.getString(rb, "Groceries.Potatoes")
52         };
53         templateComp.addModel(new GroceriesModel(items));
54         
55         //add the component to the root
56
root.addChild(templateComp);
57
58         //return the page
59
return page;
60     }
61
62     //--------------- GroceriesModel -------------------------
63
/**
64      * Groceries Model
65      */

66     class GroceriesModel extends AbstractTemplateModel implements IterativeModel {
67
68         String JavaDoc[] items = null;
69         int cntr = -1;
70
71         //constructor
72
public GroceriesModel(String JavaDoc[] iitems) {
73             items = iitems;
74         }
75
76         //register the model by name
77
public String JavaDoc getName() {return "Groceries";}
78
79         //provide items by key
80
public Object JavaDoc getItem(String JavaDoc key) {
81             if (key.equals("Item")) return items[cntr];
82             else return super.getItem(key);
83         }
84
85         //prepare for iteration
86
public void preIterate() {
87             cntr = -1;
88         }
89         
90         //return true if there are more rows in the data model
91
public boolean hasNext() {
92             return (cntr<(items.length-1));
93         }
94         
95         //load the next row in the model
96
public void loadNext() {
97             cntr++;
98         }
99
100         //cleanup after iteration
101
public void postIterate() {}
102     }
103
104     //--------------- HelloWorldModel ------------------------
105
/**
106      * HelloWorldModel
107      */

108     class HelloWorldModel extends AbstractTemplateModel {
109     
110         //register the model by name
111
public String JavaDoc getName() {return "HelloWorld";}
112         
113         //provide items by key
114
public Object JavaDoc getItem(String JavaDoc key) {
115             ViewContext vc = getViewContext();
116             if (key.equals("Hdr")) {
117                 Document masterDoc = vc.getElementFactory().getDocument();
118                 try {
119                     Node headerNode = DefaultDOMLoader.getGlobalInstance().getDOM(HelloWorld4_headerHTML.class).getElementById("Header");
120                     return masterDoc.importNode(headerNode, true);
121                 } catch (IOException e) {
122                     return null;
123                 }
124             } else return super.getItem(key);
125         }
126     }
127 }
128
Popular Tags