diff --git a/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java b/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java index 93729cad105bba0ee8d9b32b580ba199a6a35978..883184ee116c0ad48e443aacc205769fe3f8fe02 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java @@ -40,11 +40,10 @@ import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.util.SecureFileOutputStream; -public class AddressbookBean +public class AddressbookBean extends BaseBean { protected String book, action, serial, lastSerial, filter, search, hostname, destination; protected int beginIndex, endIndex; - protected final Properties properties; private Properties addressbook; private int trClass; protected final LinkedList<String> deletionMarks; @@ -82,41 +81,12 @@ public class AddressbookBean public AddressbookBean() { - properties = new Properties(); + super(); deletionMarks = new LinkedList(); beginIndex = 0; endIndex = DISPLAY_SIZE - 1; } - private long configLastLoaded = 0; - private static final String PRIVATE_BOOK = "private_addressbook"; - private static final String DEFAULT_PRIVATE_BOOK = "../privatehosts.txt"; - - protected void loadConfig() - { - long currentTime = System.currentTimeMillis(); - - if( !properties.isEmpty() && currentTime - configLastLoaded < 10000 ) - return; - - FileInputStream fis = null; - try { - properties.clear(); - fis = new FileInputStream( ConfigBean.configFileName ); - properties.load( fis ); - // added in 0.5, for compatibility with 0.4 config.txt - if( properties.getProperty(PRIVATE_BOOK) == null) - properties.setProperty(PRIVATE_BOOK, DEFAULT_PRIVATE_BOOK); - configLastLoaded = currentTime; - } - catch (Exception e) { - Debug.debug( e.getClass().getName() + ": " + e.getMessage() ); - } finally { - if (fis != null) - try { fis.close(); } catch (IOException ioe) {} - } - } - public String getFileName() { loadConfig(); diff --git a/apps/susidns/src/java/src/i2p/susi/dns/BaseBean.java b/apps/susidns/src/java/src/i2p/susi/dns/BaseBean.java new file mode 100644 index 0000000000000000000000000000000000000000..a5cc49e2da2bccdd0990ed2972689f8f0be1d6eb --- /dev/null +++ b/apps/susidns/src/java/src/i2p/susi/dns/BaseBean.java @@ -0,0 +1,64 @@ +package i2p.susi.dns; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +/** + * Holds methods common to several Beans. + * @since 0.9.1 + */ +public class BaseBean +{ + protected final Properties properties; + + private long configLastLoaded = 0; + private static final String PRIVATE_BOOK = "private_addressbook"; + private static final String DEFAULT_PRIVATE_BOOK = "../privatehosts.txt"; + + public static final String PROP_THEME_NAME = "theme"; + public static final String DEFAULT_THEME = "light"; + public static final String BASE_THEME_PATH = "/themes/susidns/"; + + public BaseBean() + { + properties = new Properties(); + } + + protected void loadConfig() + { + long currentTime = System.currentTimeMillis(); + + if( !properties.isEmpty() && currentTime - configLastLoaded < 10000 ) + return; + + FileInputStream fis = null; + try { + properties.clear(); + fis = new FileInputStream( ConfigBean.configFileName ); + properties.load( fis ); + // added in 0.5, for compatibility with 0.4 config.txt + if( properties.getProperty(PRIVATE_BOOK) == null) + properties.setProperty(PRIVATE_BOOK, DEFAULT_PRIVATE_BOOK); + configLastLoaded = currentTime; + } + catch (Exception e) { + Debug.debug( e.getClass().getName() + ": " + e.getMessage() ); + } finally { + if (fis != null) + try { fis.close(); } catch (IOException ioe) {} + } + } + + /** + * Returns the theme path + * @since 0.9.1 + */ + public String getTheme() { + loadConfig(); + String url = BASE_THEME_PATH; + String theme = properties.getProperty(PROP_THEME_NAME, DEFAULT_THEME); + url += theme + "/"; + return url; + } +} diff --git a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java index 69597f270b7b58bea5391238382d0d8fecf7fb37..8675613c5c2a62df586a6efc04baf49f2ddab45f 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java @@ -36,38 +36,10 @@ import java.util.Properties; import net.i2p.I2PAppContext; import net.i2p.util.SecureFileOutputStream; -public class SubscriptionsBean +public class SubscriptionsBean extends BaseBean { private String action, fileName, content, serial, lastSerial; - Properties properties; - - public SubscriptionsBean() - { - properties = new Properties(); - } - private long configLastLoaded = 0; - private void loadConfig() - { - long currentTime = System.currentTimeMillis(); - - if( !properties.isEmpty() && currentTime - configLastLoaded < 10000 ) - return; - - FileInputStream fis = null; - try { - properties.clear(); - fis = new FileInputStream( ConfigBean.configFileName ); - properties.load( fis ); - configLastLoaded = currentTime; - } - catch (Exception e) { - Debug.debug( e.getClass().getName() + ": " + e.getMessage() ); - } finally { - if (fis != null) - try { fis.close(); } catch (IOException ioe) {} - } - } public String getAction() { return action; } diff --git a/apps/susidns/src/jsp/addressbook.jsp b/apps/susidns/src/jsp/addressbook.jsp index fe9666473bb4ec2022c5b8dcb18044f9382e4a5d..61487f8116e4af65f5e08ff6e72f28ef82f881ed 100644 --- a/apps/susidns/src/jsp/addressbook.jsp +++ b/apps/susidns/src/jsp/addressbook.jsp @@ -47,12 +47,12 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>${book.book} <%=intl._("address book")%> - susidns</title> -<link rel="stylesheet" type="text/css" href="css.css"> +<link rel="stylesheet" type="text/css" href="<%=book.getTheme()%>susidns.css"> </head> <body> <div class="page"> <div id="logo"> -<a href="index"><img src="images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> +<a href="index"><img src="<%=book.getTheme()%>images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> </div> <hr> <div id="navi"> diff --git a/apps/susidns/src/jsp/config.jsp b/apps/susidns/src/jsp/config.jsp index a39b52602b8396102c7e38f6d28a37baaee9a88a..10cc5958086f18ec309b9be9aa86a4e6b0235131 100644 --- a/apps/susidns/src/jsp/config.jsp +++ b/apps/susidns/src/jsp/config.jsp @@ -36,6 +36,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <jsp:useBean id="version" class="i2p.susi.dns.VersionBean" scope="application"/> <jsp:useBean id="cfg" class="i2p.susi.dns.ConfigBean" scope="session"/> +<jsp:useBean id="base" class="i2p.susi.dns.BaseBean" scope="session" /> <jsp:useBean id="intl" class="i2p.susi.dns.Messages" scope="application" /> <jsp:setProperty name="cfg" property="*" /> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> @@ -43,12 +44,12 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><%=intl._("configuration")%> - susidns</title> -<link rel="stylesheet" type="text/css" href="css.css"> +<link rel="stylesheet" type="text/css" href="<%=base.getTheme()%>susidns.css"> </head> <body> <div class="page"> <div id="logo"> -<a href="index"><img src="images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> +<a href="index"><img src="<%=base.getTheme()%>images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> </div><hr> <div id="navi"> <p> diff --git a/apps/susidns/src/jsp/details.jsp b/apps/susidns/src/jsp/details.jsp index 3c67305e1d573316bd3ee074ee8061cd4478ef47..42aa32f86baf056b3367779ea11b75fc0b43a803 100644 --- a/apps/susidns/src/jsp/details.jsp +++ b/apps/susidns/src/jsp/details.jsp @@ -41,12 +41,12 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>${book.book} <%=intl._("addressbook")%> - susidns</title> -<link rel="stylesheet" type="text/css" href="css.css"> +<link rel="stylesheet" type="text/css" href="<%=book.getTheme()%>susidns.css"> </head> <body> <div class="page"> <div id="logo"> -<a href="index"><img src="images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> +<a href="index"><img src="<%=book.getTheme()%>images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> </div> <hr> <div id="navi"> diff --git a/apps/susidns/src/jsp/index.jsp b/apps/susidns/src/jsp/index.jsp index 97b3c920b8795c03c569f9200ff96656e7675032..10cb8be679d48b5e2f53acfa840fde33792c0bbf 100644 --- a/apps/susidns/src/jsp/index.jsp +++ b/apps/susidns/src/jsp/index.jsp @@ -35,18 +35,19 @@ <%@ page contentType="text/html"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <jsp:useBean id="version" class="i2p.susi.dns.VersionBean" scope="application" /> +<jsp:useBean id="base" class="i2p.susi.dns.BaseBean" scope="session" /> <jsp:useBean id="intl" class="i2p.susi.dns.Messages" scope="application" /> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><%=intl._("Introduction")%> - SusiDNS</title> -<link rel="stylesheet" type="text/css" href="css.css"> +<link rel="stylesheet" type="text/css" href="<%=base.getTheme()%>susidns.css"> </head> <body> <div class="page"> <div id="logo"> -<img src="images/logo.png" alt="susidns logo" border="0"> +<img src="<%=base.getTheme()%>images/logo.png" alt="susidns logo" border="0"> </div> <hr> <div id="navi"> @@ -85,7 +86,7 @@ <%=intl._("Hosts in the private address book can be accessed by you but their addresses are never distributed to others.")%> <%=intl._("The private address book can also be used for aliases of hosts in your other address books.")%> </p> -<center><img src="images/how.png" border="0" alt="address book working scheme" title="How the address book works" class="illustrate" /></center> +<center><img src="<%=base.getTheme()%>images/how.png" border="0" alt="address book working scheme" title="How the address book works" class="illustrate" /></center> </div> <hr> <div id="footer"> diff --git a/apps/susidns/src/jsp/subscriptions.jsp b/apps/susidns/src/jsp/subscriptions.jsp index f7b6fa03545bded668fe5d470efa00adf54ec970..e16a6747361ab3567db2478c5b135499493900a0 100644 --- a/apps/susidns/src/jsp/subscriptions.jsp +++ b/apps/susidns/src/jsp/subscriptions.jsp @@ -43,12 +43,12 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><%=intl._("subscriptions")%> - susidns</title> -<link rel="stylesheet" type="text/css" href="css.css"> +<link rel="stylesheet" type="text/css" href="<%=subs.getTheme()%>susidns.css"> </head> <body> <div class="page"> <div id="logo"> -<a href="index"><img src="images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> +<a href="index"><img src="<%=subs.getTheme()%>images/logo.png" alt="" title="<%=intl._("Overview")%>" border="0"/></a> </div><hr> <div id="navi"> <p> diff --git a/apps/susidns/src/images/how.png b/installer/resources/themes/susidns/light/images/how.png similarity index 100% rename from apps/susidns/src/images/how.png rename to installer/resources/themes/susidns/light/images/how.png diff --git a/apps/susidns/src/images/how_fr.png b/installer/resources/themes/susidns/light/images/how_fr.png similarity index 100% rename from apps/susidns/src/images/how_fr.png rename to installer/resources/themes/susidns/light/images/how_fr.png diff --git a/apps/susidns/src/images/logo.png b/installer/resources/themes/susidns/light/images/logo.png similarity index 100% rename from apps/susidns/src/images/logo.png rename to installer/resources/themes/susidns/light/images/logo.png diff --git a/apps/susidns/src/css.css b/installer/resources/themes/susidns/light/susidns.css similarity index 100% rename from apps/susidns/src/css.css rename to installer/resources/themes/susidns/light/susidns.css