KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > core > comp > renderer > xml > XMLTemplateRenderer


1 /*
2  * Copyright (C) 2003 Christian Cryder [christianc@granitepeaks.com]
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * $Id: XMLTemplateRenderer.java,v 1.10 2004/02/01 05:16:27 christianc Exp $
19  */

20 package org.enhydra.barracuda.core.comp.renderer.xml;
21
22 import java.util.*;
23
24 import org.apache.log4j.*;
25 import org.w3c.dom.*;
26 import org.w3c.dom.html.*;
27
28 import org.enhydra.barracuda.core.comp.*;
29 import org.enhydra.barracuda.core.comp.renderer.*;
30 import org.enhydra.barracuda.core.util.dom.*;
31 import org.enhydra.barracuda.plankton.*;
32
33 /**
34  * This class handles the default rendering of text into an XML view.
35  */

36 public class XMLTemplateRenderer extends XMLComponentRenderer {
37
38     protected static final Logger logger = Logger.getLogger(XMLTemplateRenderer.class.getName());
39     
40     protected TemplateHelper th = null;
41     
42     /**
43      *
44      */

45     public XMLTemplateRenderer() {
46         this(null);
47     }
48     
49     /**
50      *
51      */

52     public XMLTemplateRenderer(TemplateHelper ith) {
53         setTemplateHelper(ith);
54     }
55     
56     /**
57      *
58      */

59     public void setTemplateHelper(TemplateHelper ith) {
60         th = ith;
61     }
62     
63     /**
64      *
65      */

66     public TemplateHelper getTemplateHelper() {
67         if (th==null) th = new TemplateHelper(this);
68         return th;
69     }
70     
71     /**
72      *
73      */

74     public void renderComponent(BComponent comp, View view, ViewContext vc) throws RenderException {
75         //make sure the component is a template component
76
if (!(comp instanceof BTemplate)) throw new NoSuitableRendererException("This renderer can only render BTemplate components");
77         BTemplate btemplate = (BTemplate) comp;
78         Node node = view.getNode();
79
80         //make sure the View implements TemplateView
81
if (!(view instanceof TemplateView)) throw new InvalidViewException ("Component is bound to an unsupported View:"+view);
82         TemplateView tview = (TemplateView) view;
83
84         //show what we're doing
85
if (logger.isDebugEnabled()) showNodeInterfaces(view, logger);
86
87         //first, allow the parent class to do anything it needs to
88
super.renderComponent(comp, view, vc);
89
90         //now delegate the actual rendering to the TemplateHelper
91
getTemplateHelper().render(btemplate, tview, vc);
92     }
93     
94 }
Popular Tags