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 22 public class HelloWorld4 extends ComponentGateway { 23 24 28 public Document handleDefault (BComponent root, ViewContext vc, HttpServletRequest req, HttpServletResponse resp) throws IOException { 29 30 Locale locale = vc.getViewCapabilities().getClientLocale(); 32 33 Document page = DefaultDOMLoader.getGlobalInstance().getDOM(HelloWorld4HTML.class, locale); 35 36 BTemplate templateComp = new BTemplate(); 38 templateComp.addView(new DefaultTemplateView(page.getElementById("HelloWorldHdr"))); 39 templateComp.addView(new DefaultTemplateView(page.getElementById("HelloWorldList"))); 40 41 templateComp.addModel(new HelloWorldModel()); 43 ResourceBundle rb = ResourceBundle.getBundle("org.enhydra.barracuda.tutorials.xmlc.HelloWorld4", locale); 44 String [] items = new String [] { 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 root.addChild(templateComp); 57 58 return page; 60 } 61 62 66 class GroceriesModel extends AbstractTemplateModel implements IterativeModel { 67 68 String [] items = null; 69 int cntr = -1; 70 71 public GroceriesModel(String [] iitems) { 73 items = iitems; 74 } 75 76 public String getName() {return "Groceries";} 78 79 public Object getItem(String key) { 81 if (key.equals("Item")) return items[cntr]; 82 else return super.getItem(key); 83 } 84 85 public void preIterate() { 87 cntr = -1; 88 } 89 90 public boolean hasNext() { 92 return (cntr<(items.length-1)); 93 } 94 95 public void loadNext() { 97 cntr++; 98 } 99 100 public void postIterate() {} 102 } 103 104 108 class HelloWorldModel extends AbstractTemplateModel { 109 110 public String getName() {return "HelloWorld";} 112 113 public Object getItem(String 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 |