1 /************************************************************************** 2 Copyright 2005 Webstersmalley 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 *************************************************************************/ 16 17 18 package com.webstersmalley.picweb.offline; 19 20 import java.io.BufferedInputStream; 21 import java.io.FileInputStream; 22 import java.io.IOException; 23 24 import javax.xml.parsers.DocumentBuilder; 25 import javax.xml.parsers.DocumentBuilderFactory; 26 import javax.xml.parsers.ParserConfigurationException; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.w3c.dom.Document; 31 import org.w3c.dom.Element; 32 import org.w3c.dom.NodeList; 33 import org.xml.sax.SAXException; 34 35 /*** 36 * @author Matthew Smalley 37 */ 38 public class TemplateModel 39 { 40 /*** Logger for the class. */ 41 private static Log log = LogFactory.getLog(TemplateModel.class); 42 43 private String framesetPage; 44 private String headerPage; 45 private String contentsPageHeader; 46 private String contentsPageFolder; 47 private String contentsPageImageChildren; 48 private String contentsPageImageNoChildren; 49 private String contentsPageFooter; 50 private String mainPage; 51 private String footerPage; 52 private String thumbPageHeader; 53 private String thumbPageFooter; 54 private String thumbPageRowHeader; 55 private String thumbPageRowFooter; 56 private String thumbPageCell; 57 58 public TemplateModel(String templateFilename) throws ParserConfigurationException, SAXException, IOException 59 { 60 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 61 DocumentBuilder builder = factory.newDocumentBuilder(); 62 Document document = builder.parse(new BufferedInputStream(new FileInputStream(templateFilename))); 63 configureFromXML(document); 64 } 65 66 private void configureFromXML(Document root) 67 { 68 framesetPage = getTextContentFromElementByTagName(root, "framesetpage"); 69 headerPage = getTextContentFromElementByTagName(root, "headerpage"); 70 contentsPageHeader = getTextContentFromElementByTagName(root, "contentspageheader"); 71 contentsPageFolder = getTextContentFromElementByTagName(root, "contentspagefolder"); 72 contentsPageImageChildren = getTextContentFromElementByTagName(root, "contentspageimage-children"); 73 contentsPageImageNoChildren = getTextContentFromElementByTagName(root, "contentspageimage-no-children"); 74 contentsPageFooter = getTextContentFromElementByTagName(root, "contentspagefooter"); 75 mainPage = getTextContentFromElementByTagName(root, "mainpage"); 76 footerPage = getTextContentFromElementByTagName(root, "footerpage"); 77 thumbPageHeader = getTextContentFromElementByTagName(root, "thumbpageheader"); 78 thumbPageFooter = getTextContentFromElementByTagName(root, "thumbpagefooter"); 79 thumbPageRowHeader = getTextContentFromElementByTagName(root, "thumbpagerowheader"); 80 thumbPageRowFooter = getTextContentFromElementByTagName(root, "thumbpagerowfooter"); 81 thumbPageCell = getTextContentFromElementByTagName(root, "thumbpagecell"); 82 } 83 84 private String getTextContentFromElementByTagName(Document doc, String tagname) 85 { 86 NodeList tags = doc.getElementsByTagName(tagname); 87 Element element = (Element)tags.item(0); 88 return element.getTextContent(); 89 } 90 91 92 /*** 93 * @return Returns the contentsPageFolder. 94 */ 95 public String getContentsPageFolder() 96 { 97 return contentsPageFolder; 98 } 99 /*** 100 * @param contentsPageFolder The contentsPageFolder to set. 101 */ 102 public void setContentsPageFolder(String contentsPageFolder) 103 { 104 this.contentsPageFolder = contentsPageFolder; 105 } 106 /*** 107 * @return Returns the contentsPageFooter. 108 */ 109 public String getContentsPageFooter() 110 { 111 return contentsPageFooter; 112 } 113 /*** 114 * @param contentsPageFooter The contentsPageFooter to set. 115 */ 116 public void setContentsPageFooter(String contentsPageFooter) 117 { 118 this.contentsPageFooter = contentsPageFooter; 119 } 120 /*** 121 * @return Returns the contentsPageHeader. 122 */ 123 public String getContentsPageHeader() 124 { 125 return contentsPageHeader; 126 } 127 /*** 128 * @param contentsPageHeader The contentsPageHeader to set. 129 */ 130 public void setContentsPageHeader(String contentsPageHeader) 131 { 132 this.contentsPageHeader = contentsPageHeader; 133 } 134 /*** 135 * @return Returns the contentsPageImageChildren. 136 */ 137 public String getContentsPageImageChildren() 138 { 139 return contentsPageImageChildren; 140 } 141 /*** 142 * @param contentsPageImageChildren The contentsPageImageChildren to set. 143 */ 144 public void setContentsPageImageChildren(String contentsPageImageChildren) 145 { 146 this.contentsPageImageChildren = contentsPageImageChildren; 147 } 148 /*** 149 * @return Returns the contentsPageImageNoChildren. 150 */ 151 public String getContentsPageImageNoChildren() 152 { 153 return contentsPageImageNoChildren; 154 } 155 /*** 156 * @param contentsPageImageNoChildren The contentsPageImageNoChildren to set. 157 */ 158 public void setContentsPageImageNoChildren( 159 String contentsPageImageNoChildren) 160 { 161 this.contentsPageImageNoChildren = contentsPageImageNoChildren; 162 } 163 /*** 164 * @return Returns the footerPage. 165 */ 166 public String getFooterPage() 167 { 168 return footerPage; 169 } 170 /*** 171 * @param footerPage The footerPage to set. 172 */ 173 public void setFooterPage(String footerPage) 174 { 175 this.footerPage = footerPage; 176 } 177 /*** 178 * @return Returns the framesetPage. 179 */ 180 public String getFramesetPage() 181 { 182 return framesetPage; 183 } 184 /*** 185 * @param framesetPage The framesetPage to set. 186 */ 187 public void setFramesetPage(String framesetPage) 188 { 189 this.framesetPage = framesetPage; 190 } 191 /*** 192 * @return Returns the headerPage. 193 */ 194 public String getHeaderPage() 195 { 196 return headerPage; 197 } 198 /*** 199 * @param headerPage The headerPage to set. 200 */ 201 public void setHeaderPage(String headerPage) 202 { 203 this.headerPage = headerPage; 204 } 205 /*** 206 * @return Returns the mainPage. 207 */ 208 public String getMainPage() 209 { 210 return mainPage; 211 } 212 /*** 213 * @param mainPage The mainPage to set. 214 */ 215 public void setMainPage(String mainPage) 216 { 217 this.mainPage = mainPage; 218 } 219 /*** 220 * @return Returns the thumbPageCell. 221 */ 222 public String getThumbPageCell() 223 { 224 return thumbPageCell; 225 } 226 /*** 227 * @param thumbPageCell The thumbPageCell to set. 228 */ 229 public void setThumbPageCell(String thumbPageCell) 230 { 231 this.thumbPageCell = thumbPageCell; 232 } 233 /*** 234 * @return Returns the thumbPageFooter. 235 */ 236 public String getThumbPageFooter() 237 { 238 return thumbPageFooter; 239 } 240 /*** 241 * @param thumbPageFooter The thumbPageFooter to set. 242 */ 243 public void setThumbPageFooter(String thumbPageFooter) 244 { 245 this.thumbPageFooter = thumbPageFooter; 246 } 247 /*** 248 * @return Returns the thumbPageHeader. 249 */ 250 public String getThumbPageHeader() 251 { 252 return thumbPageHeader; 253 } 254 /*** 255 * @param thumbPageHeader The thumbPageHeader to set. 256 */ 257 public void setThumbPageHeader(String thumbPageHeader) 258 { 259 this.thumbPageHeader = thumbPageHeader; 260 } 261 /*** 262 * @return Returns the thumbPageRowFooter. 263 */ 264 public String getThumbPageRowFooter() 265 { 266 return thumbPageRowFooter; 267 } 268 /*** 269 * @param thumbPageRowFooter The thumbPageRowFooter to set. 270 */ 271 public void setThumbPageRowFooter(String thumbPageRowFooter) 272 { 273 this.thumbPageRowFooter = thumbPageRowFooter; 274 } 275 /*** 276 * @return Returns the thumbPageRowHeader. 277 */ 278 public String getThumbPageRowHeader() 279 { 280 return thumbPageRowHeader; 281 } 282 /*** 283 * @param thumbPageRowHeader The thumbPageRowHeader to set. 284 */ 285 public void setThumbPageRowHeader(String thumbPageRowHeader) 286 { 287 this.thumbPageRowHeader = thumbPageRowHeader; 288 } 289 }