From: Thomas J. <fa...@ap...> - 2002-11-05 01:00:29
|
Update of /var/lib/cvs/bWF2/src/de/bchat/bwf2/theming In directory apollo:/tmp/cvs-serv28249/theming Added Files: bWF2Theme.java Log Message: added theme companion methods. get themes, parse the special theme.properties file, flush config... pretty weird. added bWF2Theme --- NEW FILE: bWF2Theme.java --- package de.bchat.bwf2.theming; import java.util.HashMap; import java.util.Iterator; import java.io.File; import java.io.FileReader; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import de.bchat.bwf2.bWF2Repository; import org.apache.log4j.Logger; public class bWF2Theme { private static Logger log = Logger.getLogger("bWF2Theme"); private String name = null; private String themeroot = ""; private HashMap objects = new HashMap(); private HashMap metainf = new HashMap(); public bWF2Theme(String name, HashMap files, HashMap metainf) { if(name == null) { log.error("Tried to create new theme, but the name was null!"); throw new NullPointerException("The name must not be null!"); } this.name = name; themeroot = bWF2Repository.getProperty("bchat.themes.URL","") + "/" + bWF2Repository.getProperty("bchat.themes.DIRECTORY","themes") + "/" + name; log.debug("set themeroot to " + themeroot); this.metainf = metainf; readFiles(files); } private void readFiles(HashMap files) { Iterator fit = files.keySet().iterator(); while(fit.hasNext()) { String object = (String)fit.next(); String filename = (String)files.get(object); String abs_filename = bWF2Repository.getWebPath() + File.separator + bWF2Repository.getProperty("bchat.themes.DIRECTORY","themes") + File.separator + name + File.separator + filename; try { StringBuffer content = new StringBuffer(); String tmp = ""; BufferedReader in = new BufferedReader(new FileReader(new File(abs_filename))); while((tmp = in.readLine()) != null) { content.append(tmp); } objects.put(object, (content.toString().replaceAll("<%--THEMEROOT--%>",themeroot))); } catch(FileNotFoundException fnfe) { log.error("File not found!",fnfe); } catch(IOException ioex) { log.error("I/O Problem: ",ioex); } } } public String getObject(String name) { return (String)objects.get(name); } public String getParsedObject(String name, HashMap tags) { String object = (String)objects.get(name); Iterator tagit = tags.keySet().iterator(); while(tagit.hasNext()) { String tag = (String)tagit.next(); String value = (String)tags.get(tag); object = object.replaceAll("<!--"+(tag.toUpperCase())+"-->",value); } return object; } } |