|
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;
}
}
|