001 /* PAVLOV -- Multiple Choice Study System
002 * Copyright (C) 2000 - 2004 T.J. Willis
003 *
004 * This program is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU General Public License
006 * as published by the Free Software Foundation; either version 2
007 * of the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * GNU General Public License for more details.
013 *
014 * You should have received a copy of the GNU General Public License
015 * along with this program; if not, write to the Free Software
016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
017 *
018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/main/DefaultTemplateKit.java,v 1.4 2004/07/01 05:50:20 tj_willis Exp $
019 */
020 package net.sourceforge.pavlov.main;
021
022 import java.io.*;
023 import java.net.*;
024 import org.apache.log4j.*;
025
026 /**
027 * A template kit that uses the files in resources/views.
028 *
029 * @author <a href="mailto:tj_willis@users.sourceforge.net">T.J. Willis</a>
030 * @version 1.0
031 * @since 1.1
032 */
033 public class DefaultTemplateKit implements AbstractTemplateKit
034 {
035 private static Category cat
036 = Category.getInstance(DefaultTemplateKit.class.getName());
037
038 public String getLoginTemplate(){
039 try {
040 return getText("file:resources/skins/default/Logon.vm");
041 } catch (Exception e) { cat.error("getting login template",e);return null; }
042 }
043
044 public String getLibraryTemplate(){
045 try {
046 return getText("file:resources/skins/default/Library.vm");
047 } catch (Exception e) { cat.error("getting library template",e);return null; }
048 }
049
050 public String getQuizTemplate(){
051 try {
052 return getText("file:resources/skins/default/QuizPanel.vm");
053 } catch (Exception e) { cat.error("getting quiz template",e);return null; }
054 }
055
056 public String getWelcomeTemplate(){
057 try {
058 return getText("file:resources/skins/default/Welcome.vm");
059 } catch (Exception e) { cat.error("getting welcome template",e);return null; }
060 }
061
062 public File getBaseDir(){
063 try {
064 return new File("resources/skins/default");
065 } catch (Exception e) { cat.error("getting base dir",e);return null; }
066 }
067
068 /**
069 * Describe <code>getText</code> method here.
070 *
071 * @param textUrl a <code>String</code> value
072 * @exception java.net.MalformedURLException if an error occurs
073 * @exception java.io.IOException if an error occurs
074 */
075 protected String getText (String textUrl)
076 throws java.net.MalformedURLException, java.io.IOException {
077 if (textUrl == null) {
078 return null;
079 }
080 URL u = null;
081 u = new URL (textUrl);
082 return getText (u);
083 }
084
085 /**
086 * Describe <code>getText</code> method here.
087 *
088 * @param textURL an <code>URL</code> value
089 * @exception java.io.IOException if an error occurs
090 */
091 protected String getText (URL textURL) throws java.io.IOException {
092 StringBuffer cont = new StringBuffer ();
093
094 InputStream is = textURL.openStream ();
095 InputStreamReader isr = new InputStreamReader (is);
096 BufferedReader in = new BufferedReader (isr);
097 String foo = in.readLine ();
098 while (foo != null) {
099 cont.append (foo).append ("\n"); // += foo +"\n";
100 foo = in.readLine ();
101 }
102 is.close(); //FIXED: thanks FindBugs!
103 return cont.toString ();
104
105 }
106
107 }
108