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/Skin.java,v 1.2 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 import net.sourceforge.steelme.*;
026
027 /**
028 * Describe class <code>DefaultTemplateKit</code> here.
029 *
030 * @author <a href="mailto:tj_willis@users.sourceforge.net">T.J. Willis</a>
031 * @version 1.0
032 * @since 1.1
033 */
034 public class Skin extends DefaultTemplateKit
035 {
036 private static Category cat
037 = Category.getInstance(Skin.class.getName());
038
039 File directory;
040
041 public Skin(File directory){
042 this.directory = directory;
043 }
044
045 public String getLoginTemplate(){
046 try {
047 File f = new File(directory,"Logon.vm");
048 return getText(f.toURL());
049 } catch (Exception e) { cat.error("getting login template",e);return null; }
050 }
051
052 public String getLibraryTemplate(){
053 try {
054 File f = new File(directory,"Library.vm");
055 return getText(f.toURL());
056 } catch (Exception e) { cat.error("getting library template",e);return null; }
057 }
058
059 public String getQuizTemplate(){
060 try {
061 File f = new File(directory,"QuizPanel.vm");
062 return getText(f.toURL());
063 } catch (Exception e) { cat.error("getting quiz template",e);return null; }
064 }
065
066 public String getWelcomeTemplate(){
067 try {
068 File f = new File(directory,"Welcome.vm");
069 return getText(f.toURL());
070 } catch (Exception e) { cat.error("getting welcome template",e);return null; }
071 }
072
073 public SteelmeTheme getTheme(){
074 try {
075 File f = new File(directory,"Theme.theme");
076 return new SteelmeTheme(f);
077 } catch (Exception e) { cat.error("getting theme",e);return null; }
078
079 }
080
081 public File getBaseDir(){
082 try {
083 return directory;
084 } catch (Exception e) { cat.error("getting base dir",e);return null; }
085 }
086
087 /**
088 * Describe <code>getText</code> method here.
089 *
090 * @param textUrl a <code>String</code> value
091 * @exception java.net.MalformedURLException if an error occurs
092 * @exception java.io.IOException if an error occurs
093 */
094 protected String getText (String textUrl)
095 throws java.net.MalformedURLException, java.io.IOException {
096 if (textUrl == null) {
097 return null;
098 }
099 URL u = null;
100 u = new URL (textUrl);
101 return getText (u);
102 }
103
104 /**
105 * Describe <code>getText</code> method here.
106 *
107 * @param textURL an <code>URL</code> value
108 * @exception java.io.IOException if an error occurs
109 *
110 protected String getText (URL textURL) throws java.io.IOException {
111 StringBuffer cont = new StringBuffer ();
112
113 InputStream is = textURL.openStream ();
114 InputStreamReader isr = new InputStreamReader (is);
115 BufferedReader in = new BufferedReader (isr);
116 String foo = in.readLine ();
117 while (foo != null) {
118 cont.append (foo).append ("\n"); // += foo +"\n";
119 foo = in.readLine ();
120 }
121 return cont.toString ();
122
123 }
124 */
125
126 }
127