You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/06/11 04:27:57 UTC

svn commit: r545990 [1/2] - in /roller/branches/roller_guice: ./ apps/weblogger/src/java/org/apache/roller/weblogger/business/ apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/ apps/weblogger/src/java/org/apache/roller/weblogger/bus...

Author: snoopdave
Date: Sun Jun 10 19:27:53 2007
New Revision: 545990

URL: http://svn.apache.org/viewvc?view=rev&rev=545990
Log:
Latest from trunk

Added:
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/
      - copied from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/PluginManager.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/PluginManager.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/
      - copied from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/BookmarkPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/ConvertLineBreaksPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/GoogleLinkPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/GoogleLinkPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/SearchPluginBase.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/SearchPluginBase.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/TopicTagPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/WeblogEntryPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/WeblogEntryPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/WikipediaLinkPlugin.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/WikipediaLinkPlugin.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/smileys.properties
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/plugins/entry/smileys.properties
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/utils/UpgradeDatabase.java
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/utils/UpgradeDatabase.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/runtimeConfigDefs.xml
      - copied unchanged from r545649, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/runtimeConfigDefs.xml
    roller/branches/roller_guice/apps/weblogger/web/themes/basic/basic-custom.css
      - copied unchanged from r545682, roller/trunk/apps/weblogger/web/themes/basic/basic-custom.css
    roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/brushedmetal-custom.css
      - copied unchanged from r545682, roller/trunk/apps/weblogger/web/themes/brushedmetal/brushedmetal-custom.css
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/sotto-custom.css
      - copied unchanged from r545682, roller/trunk/apps/weblogger/web/themes/sotto/sotto-custom.css
Removed:
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/PluginManager.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/PluginManagerImpl.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/WeblogEntryPlugin.java
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/roller.properties
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/rollerRuntimeConfigDefs.xml
    roller/branches/roller_guice/apps/weblogger/web/themes/basic/_css.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/_css.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/_css.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/styles/
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/theme.css
Modified:
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/Roller.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedTheme.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerConfig.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerRuntimeConfig.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/RollerRomeFeedFetcher.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Theme.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.orm.xml
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/ContextLoader.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldPageHelper.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldWeblogPageModel.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBase.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/struts.xml
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/admin/GlobalCommentManagement.jsp
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/Comments.jsp
    roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/StylesheetEdit.jsp
    roller/branches/roller_guice/apps/weblogger/web/themes/basic/Weblog.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/basic/theme.xml
    roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/Weblog.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/theme.xml
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/Weblog.vm
    roller/branches/roller_guice/apps/weblogger/web/themes/sotto/theme.xml
    roller/branches/roller_guice/merges.txt

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/Roller.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/Roller.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/Roller.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/Roller.java Sun Jun 10 19:27:53 2007
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.business;
 
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import java.io.Serializable;
 import java.sql.Connection;
 import org.apache.roller.weblogger.WebloggerException;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java Sun Jun 10 19:27:53 2007
@@ -18,6 +18,8 @@
 
 package org.apache.roller.weblogger.business;
 
+import org.apache.roller.weblogger.business.plugins.PluginManagerImpl;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import java.io.IOException;
 import java.util.Properties;
 import org.apache.commons.logging.Log;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedTheme.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedTheme.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedTheme.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedTheme.java Sun Jun 10 19:27:53 2007
@@ -42,7 +42,6 @@
     protected String name = null;
     protected String description = null;
     protected String author = null;
-    protected String customStylesheet = null;
     protected Date lastModified = null;
     protected boolean enabled = false;
     
@@ -90,14 +89,6 @@
 
     public void setAuthor(String author) {
         this.author = author;
-    }
-
-    public String getCustomStylesheet() {
-        return customStylesheet;
-    }
-
-    public void setCustomStylesheet(String customStylesheet) {
-        this.customStylesheet = customStylesheet;
     }
     
     public Date getLastModified() {

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java Sun Jun 10 19:27:53 2007
@@ -31,9 +31,9 @@
 import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeResource;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.WeblogTemplate;
 
 
 /**
@@ -51,6 +51,9 @@
     // the theme preview image
     private ThemeResource previewImage = null;
     
+    // the theme stylesheet
+    private ThemeTemplate stylesheet = null;
+    
     // we keep templates in a Map for faster lookups by name
     // the Map contains ... (template name, ThemeTemplate)
     private Map templatesByName = new HashMap();
@@ -94,6 +97,19 @@
     }
     
     
+    /**
+     * Lookup the stylesheet.
+     * Returns null if no stylesheet defined.
+     */
+    public ThemeTemplate getStylesheet() {
+        return this.stylesheet;
+    }
+    
+    
+    /**
+     * Looup the default template, action = weblog.
+     * Returns null if the template cannot be found.
+     */
     public ThemeTemplate getDefaultTemplate() {
         return (ThemeTemplate) this.templatesByAction.get(ThemeTemplate.ACTION_WEBLOG);
     }
@@ -127,16 +143,6 @@
     
     
     /**
-     * Set the value for a given template name.
-     */
-    public void addTemplate(ThemeTemplate template) {
-        this.templatesByName.put(template.getName(), template);
-        this.templatesByLink.put(template.getLink(), template);
-        this.templatesByAction.put(template.getAction(), template);
-    }
-    
-    
-    /**
      * Get the collection of all resources associated with this Theme.
      *
      * It is assured that the resources are returned sorted by pathname.
@@ -160,14 +166,6 @@
     }
     
     
-    /**
-     * Set the value for a given resource path.
-     */
-    public void setResource(String path, SharedThemeResourceFromDir resource) {
-        this.resources.put(path, resource);
-    }
-    
-    
     public String toString() {
         StringBuffer sb = new StringBuffer();
         sb.append(name);
@@ -208,7 +206,6 @@
         setName(themeMetadata.getName());
         setDescription(themeMetadata.getName());
         setAuthor(themeMetadata.getAuthor());
-        setCustomStylesheet(themeMetadata.getCustomStylesheet());
         setLastModified(new Date());
         setEnabled(true);
         
@@ -220,6 +217,47 @@
             this.previewImage = new SharedThemeResourceFromDir(themeMetadata.getPreviewImage(), previewFile);
         }
         
+        // load stylesheet if possible
+        if(themeMetadata.getStylesheet() != null) {
+            
+            ThemeMetadataTemplate stylesheetTmpl = themeMetadata.getStylesheet();
+            
+            // construct File object from path
+            File templateFile = new File(this.themeDir + File.separator + 
+                    stylesheetTmpl.getContentsFile());
+            
+            // read stylesheet contents
+            String contents = loadTemplateFile(templateFile);
+            if(contents == null) {
+                // if we don't have any contents then skip this one
+                log.error("Couldn't load stylesheet template file ["+templateFile+"]");
+            } else {
+                
+                // construct ThemeTemplate representing this file
+                // a few restrictions for now:
+                //   - decorator is always "_decorator" or null
+                SharedThemeTemplate theme_template = new SharedThemeTemplate(
+                        this,
+                        themeMetadata.getId()+":"+stylesheetTmpl.getName(),
+                        WeblogTemplate.ACTION_CUSTOM,
+                        stylesheetTmpl.getName(),
+                        stylesheetTmpl.getDescription(),
+                        contents,
+                        stylesheetTmpl.getLink(),
+                        new Date(templateFile.lastModified()),
+                        stylesheetTmpl.getTemplateLanguage(),
+                        false,
+                        false,
+                        null);
+                
+                // store it
+                this.stylesheet = theme_template;
+                
+                // add it to templates list
+                addTemplate(theme_template);
+            }
+        }
+        
         // go through static resources and add them to the theme
         String resourcePath = null;
         Iterator resourcesIter = themeMetadata.getResources().iterator();
@@ -250,23 +288,10 @@
             File templateFile = new File(this.themeDir + File.separator + 
                     templateMetadata.getContentsFile());
             
-            // Continue reading theme even if problem encountered with one file
-            if(!templateFile.exists() && !templateFile.canRead()) {
-                log.error("Couldn't read theme template file ["+templateFile+"]");
-                continue;
-            }
-            
-            char[] chars = null;
-            int length;
-            try {
-                chars = new char[(int) templateFile.length()];
-            	FileInputStream stream = new FileInputStream(templateFile);
-            	InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
-                length = reader.read(chars);            
-            } catch (Exception noprob) {
-                log.error("Exception reading template file ["+templateFile+"]");
-                if (log.isDebugEnabled()) 
-                    log.debug(noprob);
+            String contents = loadTemplateFile(templateFile);
+            if(contents == null) {
+                // if we don't have any contents then skip this one
+                log.error("Couldn't load theme template file ["+templateFile+"]");
                 continue;
             }
             
@@ -284,7 +309,7 @@
                     templateMetadata.getAction(),
                     templateMetadata.getName(),
                     templateMetadata.getDescription(),
-                    new String(chars, 0, length),
+                    contents,
                     templateMetadata.getLink(),
                     new Date(templateFile.lastModified()),
                     templateMetadata.getTemplateLanguage(),
@@ -295,6 +320,53 @@
             // add it to the theme
             addTemplate(theme_template);
         }
+    }
+    
+    
+    /**
+     * Load a single template file as a string, returns null if can't read file.
+     */
+    private String loadTemplateFile(File templateFile) {
+        // Continue reading theme even if problem encountered with one file
+        if(!templateFile.exists() && !templateFile.canRead()) {
+            return null;
+        }
+        
+        char[] chars = null;
+        int length;
+        try {
+            chars = new char[(int) templateFile.length()];
+            FileInputStream stream = new FileInputStream(templateFile);
+            InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
+            length = reader.read(chars);
+        } catch (Exception noprob) {
+            log.error("Exception reading template file ["+templateFile+"]");
+            if (log.isDebugEnabled())
+                log.debug(noprob);
+            return null;
+        }
+        
+        return new String(chars, 0, length);
+    }
+    
+    
+    /**
+     * Set the value for a given template name.
+     */
+    private void addTemplate(ThemeTemplate template) {
+        this.templatesByName.put(template.getName(), template);
+        this.templatesByLink.put(template.getLink(), template);
+        if(!ThemeTemplate.ACTION_CUSTOM.equals(template.getAction())) {
+            this.templatesByAction.put(template.getAction(), template);
+        }
+    }
+    
+    
+    /**
+     * Set the value for a given resource path.
+     */
+    private void setResource(String path, SharedThemeResourceFromDir resource) {
+        this.resources.put(path, resource);
     }
     
 }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java Sun Jun 10 19:27:53 2007
@@ -174,6 +174,7 @@
             
             Set importedActionTemplates = new HashSet();
             ThemeTemplate themeTemplate = null;
+            ThemeTemplate stylesheetTemplate = theme.getStylesheet();
             Iterator iter = theme.getTemplates().iterator();
             while ( iter.hasNext() ) {
                 themeTemplate = (ThemeTemplate) iter.next();
@@ -194,9 +195,11 @@
                 }
                 
                 // Weblog does not have this template, so create it.
+                boolean newTmpl = false;
                 if (template == null) {
                     template = new WeblogTemplate();
                     template.setWebsite(website);
+                    newTmpl = true;
                 }
 
                 // TODO: fix conflict situation
@@ -204,19 +207,22 @@
                 // matches 2 existing templates, 1 by action, the other by name
                 
                 // update template attributes
-                template.setAction(themeTemplate.getAction());
-                template.setName(themeTemplate.getName());
-                template.setDescription(themeTemplate.getDescription());
-                template.setLink(themeTemplate.getLink());
-                template.setContents(themeTemplate.getContents());
-                template.setHidden(themeTemplate.isHidden());
-                template.setNavbar(themeTemplate.isNavbar());
-                template.setTemplateLanguage(themeTemplate.getTemplateLanguage());
-                template.setDecoratorName(themeTemplate.getDecoratorName());
-                template.setLastModified(new Date());
-                
-                // save it
-                userMgr.savePage( template );
+                // NOTE: we don't want to copy the template data for an existing stylesheet
+                if(newTmpl || !themeTemplate.equals(stylesheetTemplate)) {
+                    template.setAction(themeTemplate.getAction());
+                    template.setName(themeTemplate.getName());
+                    template.setDescription(themeTemplate.getDescription());
+                    template.setLink(themeTemplate.getLink());
+                    template.setContents(themeTemplate.getContents());
+                    template.setHidden(themeTemplate.isHidden());
+                    template.setNavbar(themeTemplate.isNavbar());
+                    template.setTemplateLanguage(themeTemplate.getTemplateLanguage());
+                    template.setDecoratorName(themeTemplate.getDecoratorName());
+                    template.setLastModified(new Date());
+                    
+                    // save it
+                    userMgr.savePage( template );
+                }
             }
             
             // now, see if the weblog has left over action templates that
@@ -237,7 +243,9 @@
             
             // always update this weblog's theme and customStylesheet, then save
             website.setEditorTheme(WeblogTheme.CUSTOM);
-            website.setCustomStylesheetPath(theme.getCustomStylesheet());
+            if(theme.getStylesheet() != null) {
+                website.setCustomStylesheetPath(theme.getStylesheet().getLink());
+            }
             userMgr.saveWebsite(website);
             
             

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java Sun Jun 10 19:27:53 2007
@@ -31,7 +31,7 @@
     private String name = null;
     private String author = null;
     private String previewImage = null;
-    private String customStylesheet = null;
+    private ThemeMetadataTemplate stylesheet = null;
     private Set templates = new HashSet();
     private Set resources = new HashSet();
     
@@ -96,12 +96,12 @@
         this.author = author;
     }
 
-    public String getCustomStylesheet() {
-        return customStylesheet;
+    public ThemeMetadataTemplate getStylesheet() {
+        return stylesheet;
     }
 
-    public void setCustomStylesheet(String customStylesheet) {
-        this.customStylesheet = customStylesheet;
+    public void setStylesheet(ThemeMetadataTemplate stylesheet) {
+        this.stylesheet = stylesheet;
     }
     
 }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java Sun Jun 10 19:27:53 2007
@@ -72,10 +72,10 @@
             throw new ThemeParsingException("No preview image specified");
         }
         
-        // grab the custom stylesheet path
-        Element customStylesheet = root.getChild("custom-stylesheet");
-        if(customStylesheet != null) {
-            theme.setCustomStylesheet(customStylesheet.getAttributeValue("path"));
+        // grab the stylesheet if it exists
+        Element stylesheet = root.getChild("stylesheet");
+        if(stylesheet != null) {
+            theme.setStylesheet(elementToStylesheet(stylesheet));
         }
         
         // now grab the static resources
@@ -142,6 +142,38 @@
         }
         if(StringUtils.isEmpty(template.getTemplateLanguage())) {
             throw new ThemeParsingException("templates must contain a 'templateLanguage' element");
+        }
+        if(StringUtils.isEmpty(template.getContentsFile())) {
+            throw new ThemeParsingException("templates must contain a 'contentsFile' element");
+        }
+        
+        return template;
+    }
+    
+    
+    private ThemeMetadataTemplate elementToStylesheet(Element element) 
+            throws ThemeParsingException {
+        
+        ThemeMetadataTemplate template = new ThemeMetadataTemplate();
+        
+        template.setName(element.getChildText("name"));
+        template.setDescription(element.getChildText("description"));
+        template.setLink(element.getChildText("link"));
+        template.setTemplateLanguage(element.getChildText("templateLanguage"));
+        template.setContentsFile(element.getChildText("contentsFile"));
+        
+        // validate template
+        if(StringUtils.isEmpty(template.getName())) {
+            throw new ThemeParsingException("stylesheet must contain a 'name' element");
+        }
+        if(StringUtils.isEmpty(template.getLink())) {
+            throw new ThemeParsingException("stylesheet must contain a 'link' element");
+        }
+        if(StringUtils.isEmpty(template.getTemplateLanguage())) {
+            throw new ThemeParsingException("stylesheet must contain a 'templateLanguage' element");
+        }
+        if(StringUtils.isEmpty(template.getContentsFile())) {
+            throw new ThemeParsingException("stylesheet must contain a 'contentsFile' element");
         }
         
         return template;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java Sun Jun 10 19:27:53 2007
@@ -58,10 +58,6 @@
     public String getAuthor() {
         return "N/A";
     }
-
-    public String getCustomStylesheet() {
-        return this.weblog.getCustomStylesheetPath();
-    }
     
     public Date getLastModified() {
         return this.weblog.getLastModified();
@@ -81,6 +77,19 @@
     }
     
     
+    /**
+     * Lookup the stylesheet template for this theme.
+     * Returns null if no stylesheet can be found.
+     */
+    public ThemeTemplate getStylesheet() throws WebloggerException {
+        return getTemplateByLink(this.weblog.getCustomStylesheetPath());
+    }
+    
+    
+    /**
+     * Lookup the default template.
+     * Returns null if the template cannot be found.
+     */
     public ThemeTemplate getDefaultTemplate() throws WebloggerException {
         UserManager userMgr = RollerFactory.getRoller().getUserManager();
         return userMgr.getPageByAction(this.weblog, ThemeTemplate.ACTION_WEBLOG);

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java Sun Jun 10 19:27:53 2007
@@ -65,10 +65,6 @@
     public String getDescription() {
         return this.theme.getDescription();
     }
-
-    public String getCustomStylesheet() {
-        return this.theme.getCustomStylesheet();
-    }
     
     public Date getLastModified() {
         return this.theme.getLastModified();
@@ -122,6 +118,30 @@
     
     
     /**
+     * Lookup the stylesheet template for this theme.
+     * Returns null if no stylesheet can be found.
+     */
+    public ThemeTemplate getStylesheet() throws WebloggerException {
+        // stylesheet is handled differently than other templates because with
+        // the stylesheet we want to return the weblog custom version if it
+        // exists, otherwise we return the shared theme version
+        
+        // load from theme first to see if we even support a stylesheet
+        ThemeTemplate stylesheet = this.theme.getStylesheet();
+        if(stylesheet != null) {
+            // now try getting custom version from weblog
+            UserManager umgr = RollerFactory.getRoller().getUserManager();
+            ThemeTemplate override = umgr.getPageByLink(this.weblog, stylesheet.getLink());
+            if(override != null) {
+                stylesheet = override;
+            }
+        }
+        
+        return stylesheet;
+    }
+    
+    
+    /**
      * Lookup the default template.
      */
     public ThemeTemplate getDefaultTemplate() throws WebloggerException {
@@ -156,6 +176,12 @@
         
         ThemeTemplate template = null;
         
+        // if name refers to the stylesheet then return result of getStylesheet()
+        ThemeTemplate stylesheet = getStylesheet();
+        if(name.equals(stylesheet.getName())) {
+            return stylesheet;
+        }
+        
         // first check if this user has selected a theme
         // if so then return the proper theme template
         template = this.theme.getTemplateByName(name);
@@ -180,6 +206,12 @@
             return null;
         
         ThemeTemplate template = null;
+        
+        // if name refers to the stylesheet then return result of getStylesheet()
+        ThemeTemplate stylesheet = getStylesheet();
+        if(link.equals(stylesheet.getLink())) {
+            return stylesheet;
+        }
         
         // first check if this user has selected a theme
         // if so then return the proper theme template

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerConfig.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerConfig.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerConfig.java Sun Jun 10 19:27:53 2007
@@ -33,7 +33,7 @@
  */
 public class RollerConfig {
     
-    private static String default_config = "/roller.properties";
+    private static String default_config = "/org/apache/roller/weblogger/config/roller.properties";
     private static String custom_config = "/roller-custom.properties";
     private static String custom_jvm_param = "roller.custom.config";
     private static File custom_config_file = null;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerRuntimeConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerRuntimeConfig.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerRuntimeConfig.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/config/RollerRuntimeConfig.java Sun Jun 10 19:27:53 2007
@@ -42,7 +42,7 @@
     
     private static Log log = LogFactory.getLog(RollerRuntimeConfig.class);
     
-    private static String runtime_config = "/rollerRuntimeConfigDefs.xml";
+    private static String runtime_config = "/org/apache/roller/weblogger/config/runtimeConfigDefs.xml";
     private static RuntimeConfigDefs configDefs = null;
     
     // special case for our context urls

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/RollerRomeFeedFetcher.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/RollerRomeFeedFetcher.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/RollerRomeFeedFetcher.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/RollerRomeFeedFetcher.java Sun Jun 10 19:27:53 2007
@@ -36,7 +36,7 @@
 import org.apache.roller.planet.business.RomeFeedFetcher;
 import org.apache.roller.planet.pojos.PlanetEntryData;
 import org.apache.roller.planet.pojos.PlanetSubscriptionData;
-import org.apache.roller.weblogger.business.PluginManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogManager;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Theme.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Theme.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Theme.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Theme.java Sun Jun 10 19:27:53 2007
@@ -54,13 +54,6 @@
     
     
     /**
-     * The path within the Theme to a custom stylesheet override, or null if
-     * no stylesheet override is set.
-     */
-    public String getCustomStylesheet();
-    
-    
-    /**
      * Is the Theme enable for use?
      */
     public boolean isEnabled();
@@ -70,6 +63,12 @@
      * Get the list of all templates associated with this Theme.
      */
     public List getTemplates() throws WebloggerException;
+    
+    
+    /**
+     * Lookup the stylesheet template for the Theme.
+     */
+    public ThemeTemplate getStylesheet() throws WebloggerException;
     
     
     /**

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.java Sun Jun 10 19:27:53 2007
@@ -40,7 +40,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.RollerRuntimeConfig;
 import org.apache.roller.weblogger.business.BookmarkManager;
-import org.apache.roller.weblogger.business.PluginManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.business.themes.ThemeManager;
 import org.apache.roller.weblogger.business.WeblogManager;
@@ -214,80 +214,6 @@
         }
         
         return null;
-    }
-    
-    
-    /**
-     * Lookup a Template for this website by action.
-     * 
-     * @roller.wrapPojoMethod type="pojo"
-     */
-    public ThemeTemplate getPageByAction(String action) throws WebloggerException {
-        
-        if(action == null)
-            return null;
-        
-        // look for the page in our Theme
-        Theme weblogTheme = getTheme();
-        if(weblogTheme != null) {
-            return weblogTheme.getTemplateByAction(action);
-        }
-        
-        return null;
-    }
-    
-    
-    /**
-     * Lookup a Template for this website by name.
-     * @roller.wrapPojoMethod type="pojo"
-     */
-    public ThemeTemplate getPageByName(String name) throws WebloggerException {
-        
-        if(name == null)
-            return null;
-        
-        // look for the page in our Theme
-        Theme weblogTheme = getTheme();
-        if(weblogTheme != null) {
-            return weblogTheme.getTemplateByName(name);
-        }
-        
-        return null;
-    }
-    
-    
-    /**
-     * Lookup a template for this website by link.
-     * @roller.wrapPojoMethod type="pojo"
-     */
-    public ThemeTemplate getPageByLink(String link) throws WebloggerException {
-        
-        if(link == null)
-            return null;
-        
-        // look for the page in our Theme
-        Theme weblogTheme = getTheme();
-        if(weblogTheme != null) {
-            return weblogTheme.getTemplateByLink(link);
-        }
-        
-        return null;
-    }
-    
-    
-    /**
-     * Get a list of all pages that are part of this website.
-     * @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.weblogger.pojos.Template"
-     */
-    public List getPages() throws WebloggerException {
-        
-        // look for the pages in our Theme
-        Theme weblogTheme = getTheme();
-        if(weblogTheme != null) {
-            return weblogTheme.getTemplates();
-        }
-        
-        return Collections.EMPTY_LIST;
     }
     
     

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.orm.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.orm.xml?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.orm.xml (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/Weblog.orm.xml Sun Jun 10 19:27:53 2007
@@ -249,10 +249,8 @@
 			<transient name="todaysReferrers"/>
 			<transient name="uRL"/>
 			<transient name="userCount"/>
-            <transient name="defaultPage"/>
 			<transient name="entryCount"/>
             <transient name="initializedPlugins"/>
-			<transient name="pages"/>
             <transient name="weblogCategories"/>
             <transient name="localeInstance"/>
             <transient name="timeZoneInstance" />

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java Sun Jun 10 19:27:53 2007
@@ -47,7 +47,7 @@
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.config.RollerRuntimeConfig;
 import org.apache.roller.weblogger.business.RollerFactory;
-import org.apache.roller.weblogger.business.WeblogEntryPlugin;
+import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
 import org.apache.roller.weblogger.business.WeblogManager;
 import org.apache.roller.weblogger.util.DateUtil;
 import org.apache.roller.weblogger.util.I18nMessages;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java Sun Jun 10 19:27:53 2007
@@ -85,7 +85,7 @@
     public ThemeTemplate getDecorator() {
         if(decoratorName != null && !id.equals(decoratorName)) {
             try {
-                return weblog.getPageByName(decoratorName);
+                return weblog.getTheme().getTemplateByName(decoratorName);
             } catch (WebloggerException ex) {
                 log.error("Error getting decorator["+decoratorName+"] "+
                         "for template "+id);

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java Sun Jun 10 19:27:53 2007
@@ -60,25 +60,25 @@
     
     public ThemeTemplateWrapper getPageByAction(String action)
             throws WebloggerException {
-        return ThemeTemplateWrapper.wrap(this.pojo.getPageByAction(action));
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByAction(action));
     }
     
     
     public ThemeTemplateWrapper getPageByName(String name)
             throws WebloggerException {
-        return ThemeTemplateWrapper.wrap(this.pojo.getPageByName(name));
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByName(name));
     }
     
     
     public ThemeTemplateWrapper getPageByLink(String link)
             throws WebloggerException {
-        return ThemeTemplateWrapper.wrap(this.pojo.getPageByLink(link));
+        return ThemeTemplateWrapper.wrap(this.pojo.getTheme().getTemplateByLink(link));
     }
     
     
     public List getPages() throws WebloggerException {
         
-        List initialCollection = this.pojo.getPages();
+        List initialCollection = this.pojo.getTheme().getTemplates();
         
         // iterate through and wrap
         // we force the use of an ArrayList because it should be good enough to cover
@@ -255,9 +255,12 @@
     }
     
     
-    public String getCustomStylesheet() {
+    public String getStylesheet() throws WebloggerException {
         // custom stylesheet comes from the weblog theme
-        return URLUtilities.getWeblogPageURL(this.pojo, null, this.pojo.getTheme().getCustomStylesheet(), null, null, null, null, 0, false);
+        if(this.pojo.getTheme().getStylesheet() != null) {
+            return URLUtilities.getWeblogPageURL(this.pojo, null, this.pojo.getTheme().getStylesheet().getLink(), null, null, null, null, 0, false);
+        }
+        return null;
     }
     
     

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java Sun Jun 10 19:27:53 2007
@@ -154,7 +154,7 @@
             return ThemeTemplateWrapper.wrap(pageRequest.getWeblogPage());
         } else {
             try {
-                return ThemeTemplateWrapper.wrap(weblog.getDefaultPage());
+                return ThemeTemplateWrapper.wrap(weblog.getTheme().getDefaultTemplate());
             } catch (WebloggerException ex) {
                 log.error("Error getting default page", ex);
             }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java Sun Jun 10 19:27:53 2007
@@ -61,9 +61,6 @@
 
 /**
  * Provides access to weblog pages.
- *
- * @web.servlet name="PageServlet" load-on-startup="5"
- * @web.servlet-mapping url-pattern="/roller-ui/rendering/page/*"
  */
 public class PageServlet extends HttpServlet {
     
@@ -231,7 +228,7 @@
         if (request.getParameter("popup") != null) {
             try {
                 // Does user have a popupcomments page?
-                page = weblog.getPageByName("_popupcomments");
+                page = weblog.getTheme().getTemplateByName("_popupcomments");
             } catch(Exception e ) {
                 // ignored ... considered page not found
             }
@@ -249,7 +246,7 @@
         } else if("tags".equals(pageRequest.getContext()) &&
                 pageRequest.getTags() == null) {
             try {
-                page = weblog.getPageByAction(ThemeTemplate.ACTION_TAGSINDEX);
+                page = weblog.getTheme().getTemplateByAction(ThemeTemplate.ACTION_TAGSINDEX);
             } catch(Exception e) {
                 log.error("Error getting weblog page for action 'tagsIndex'", e);
             }
@@ -265,7 +262,7 @@
         // If this is a permalink then look for a permalink template
         } else if(pageRequest.getWeblogAnchor() != null) {
             try {
-                page = weblog.getPageByAction(ThemeTemplate.ACTION_PERMALINK);
+                page = weblog.getTheme().getTemplateByAction(ThemeTemplate.ACTION_PERMALINK);
             } catch(Exception e) {
                 log.error("Error getting weblog page for action 'permalink'", e);
             }
@@ -274,7 +271,7 @@
         // if we haven't found a page yet then try our default page
         if(page == null) {
             try {
-                page = weblog.getDefaultPage();
+                page = weblog.getTheme().getDefaultTemplate();
             } catch(Exception e) {
                 log.error("Error getting default page for weblog = "+
                         weblog.getHandle(), e);

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java Sun Jun 10 19:27:53 2007
@@ -51,9 +51,6 @@
  * This servlet is used as part of the authoring interface to provide previews
  * of what a weblog will look like with a given theme.  It is not available
  * outside of the authoring interface.
- *
- * @web.servlet name="PreviewServlet" load-on-startup="9"
- * @web.servlet-mapping url-pattern="/roller-ui/authoring/preview/*"
  */
 public class PreviewServlet extends HttpServlet {
     
@@ -120,7 +117,7 @@
         Template page = null;
         try {
             // we just want to show the default view
-            page = tmpWebsite.getDefaultPage();
+            page = tmpWebsite.getTheme().getDefaultTemplate();
             
             if(page == null) {
                 throw new WebloggerException("No default page for weblog: "+tmpWebsite.getHandle());

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java Sun Jun 10 19:27:53 2007
@@ -49,9 +49,6 @@
 
 /**
  * Handles search queries for weblogs.
- *
- * @web.servlet name="SearchServlet" load-on-startup="5"
- * @web.servlet-mapping url-pattern="/roller-ui/rendering/search/*"
  */
 public class SearchServlet extends HttpServlet {
     
@@ -99,11 +96,11 @@
         ThemeTemplate page = null;
         try {
             // first try looking for a specific search page
-            page = weblog.getPageByAction(ThemeTemplate.ACTION_SEARCH);
+            page = weblog.getTheme().getTemplateByAction(ThemeTemplate.ACTION_SEARCH);
             
             // if not found then fall back on default page
             if(page == null) {
-                page = weblog.getDefaultPage();
+                page = weblog.getTheme().getDefaultTemplate();
             }
             
             // if still null then that's a problem

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java Sun Jun 10 19:27:53 2007
@@ -349,8 +349,7 @@
         
         if(weblogPage == null && weblogPageName != null) {
             try {
-                UserManager umgr = RollerFactory.getRoller().getUserManager();
-                weblogPage = getWeblog().getPageByLink(weblogPageName);                
+                weblogPage = getWeblog().getTheme().getTemplateByLink(weblogPageName);                
             } catch (WebloggerException ex) {
                 log.error("Error getting weblog page "+weblogPageName, ex);
             }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/ContextLoader.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/ContextLoader.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/ContextLoader.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/ContextLoader.java Sun Jun 10 19:27:53 2007
@@ -120,7 +120,7 @@
         category = pageRequest.getWeblogCategory();
         page = pageRequest.getWeblogPage();
         if(page == null) {
-            page = weblog.getDefaultPage();
+            page = weblog.getTheme().getDefaultTemplate();
         }
         
         // setup date, isDay, and isMonth
@@ -241,7 +241,7 @@
         mLogger.debug("context viewLocale = "+ctx.get( "viewLocale"));
         
         // alternative display pages - customization
-        ThemeTemplate entryPage = weblog.getPageByName("_entry");
+        ThemeTemplate entryPage = weblog.getTheme().getTemplateByName("_entry");
         if (entryPage != null) {
             ctx.put("entryPage",ThemeTemplateWrapper.wrap(entryPage));
         }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldPageHelper.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldPageHelper.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldPageHelper.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldPageHelper.java Sun Jun 10 19:27:53 2007
@@ -30,8 +30,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.WeblogEntryPlugin;
-import org.apache.roller.weblogger.business.PluginManager;
+import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.config.RollerRuntimeConfig;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldWeblogPageModel.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldWeblogPageModel.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldWeblogPageModel.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/velocity/deprecated/OldWeblogPageModel.java Sun Jun 10 19:27:53 2007
@@ -133,7 +133,7 @@
             
             List pages = Collections.EMPTY_LIST;
             try {
-                pages = mWebsite.getPages();
+                pages = mWebsite.getTheme().getTemplates();
             } catch (WebloggerException ex) {
                 mLogger.error("error getting weblog pages", ex);
             }
@@ -266,7 +266,7 @@
             if (pageName == null)
                 throw new NullPointerException("pageName is null");
             
-            page = ThemeTemplateWrapper.wrap(website.getPageByName(pageName));
+            page = ThemeTemplateWrapper.wrap(website.getTheme().getTemplateByName(pageName));
         } catch (NullPointerException npe) {
             mLogger.warn(npe.getMessage());
         } catch (WebloggerException e) {
@@ -291,7 +291,7 @@
         String template_id = null;
         
         try {
-            ThemeTemplate pd = mWebsite.getPageByName(pageName);
+            ThemeTemplate pd = mWebsite.getTheme().getTemplateByName(pageName);
             if(pd != null) {
                 template_id = pd.getId();
             }

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBase.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBase.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBase.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBase.java Sun Jun 10 19:27:53 2007
@@ -25,9 +25,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.PluginManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.RollerFactory;
-import org.apache.roller.weblogger.business.WeblogEntryPlugin;
+import org.apache.roller.weblogger.business.plugins.entry.WeblogEntryPlugin;
 import org.apache.roller.weblogger.business.search.IndexManager;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogEntry;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java Sun Jun 10 19:27:53 2007
@@ -24,8 +24,12 @@
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.business.UserManager;
+import org.apache.roller.weblogger.business.themes.ThemeManager;
+import org.apache.roller.weblogger.pojos.Theme;
+import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
+import org.apache.roller.weblogger.pojos.WeblogTheme;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 
@@ -57,36 +61,42 @@
     }
     
     
+    @Override
     public void myPrepare() {
-        String stylesheetPath = getActionWeblog().getTheme().getCustomStylesheet();
-        log.debug("custom stylesheet path is - "+stylesheetPath);
         
-        if(stylesheetPath != null) {
+        ThemeTemplate stylesheet = null;
+        try {
+            stylesheet = getActionWeblog().getTheme().getStylesheet();
+        } catch (WebloggerException ex) {
+            log.error("Error looking up stylesheet on weblog - "+getActionWeblog().getHandle(), ex);
+        }
+        
+        if(stylesheet != null) {
+            log.debug("custom stylesheet path is - "+stylesheet.getLink());
             try {
                 UserManager mgr = RollerFactory.getRoller().getUserManager();
-                setTemplate(mgr.getPageByLink(getActionWeblog(), stylesheetPath));
+                setTemplate(mgr.getPageByLink(getActionWeblog(), stylesheet.getLink()));
                 
                 if(getTemplate() == null) {
                     log.debug("custom stylesheet not found, creating it");
-                    // template doesn't exist yet, so create it
-                    WeblogTemplate stylesheet = new WeblogTemplate();
-                    stylesheet.setWebsite(getActionWeblog());
-                    stylesheet.setAction(stylesheet.ACTION_CUSTOM);
-                    stylesheet.setName(stylesheetPath);
-                    stylesheet.setDescription(stylesheetPath);
-                    stylesheet.setLink(stylesheetPath);
-                    stylesheet.setContents("");
-                    stylesheet.setHidden(false);
-                    stylesheet.setNavbar(false);
-                    stylesheet.setLastModified(new Date());
                     
-                    // all templates start out as velocity templates
-                    stylesheet.setTemplateLanguage("velocity");
+                    // template doesn't exist yet, so create it
+                    WeblogTemplate stylesheetTmpl = new WeblogTemplate();
+                    stylesheetTmpl.setWebsite(getActionWeblog());
+                    stylesheetTmpl.setAction(stylesheet.ACTION_CUSTOM);
+                    stylesheetTmpl.setName(stylesheet.getName());
+                    stylesheetTmpl.setDescription(stylesheet.getDescription());
+                    stylesheetTmpl.setLink(stylesheet.getLink());
+                    stylesheetTmpl.setContents(stylesheet.getContents());
+                    stylesheetTmpl.setHidden(false);
+                    stylesheetTmpl.setNavbar(false);
+                    stylesheetTmpl.setLastModified(new Date());
+                    stylesheetTmpl.setTemplateLanguage(stylesheet.getTemplateLanguage());
                     
-                    mgr.savePage(stylesheet);
+                    mgr.savePage(stylesheetTmpl);
                     RollerFactory.getRoller().flush();
                     
-                    setTemplate(stylesheet);
+                    setTemplate(stylesheetTmpl);
                 }
             } catch (WebloggerException ex) {
                 log.error("Error finding/adding stylesheet tempalate from weblog - "+getActionWeblog().getHandle(), ex);
@@ -106,12 +116,12 @@
         
         setContents(getTemplate().getContents());
         
-        return SUCCESS;
+        return INPUT;
     }
     
     
     /**
-     * Save an existing template.
+     * Save an existing stylesheet.
      */
     public String save() {
         
@@ -137,7 +147,7 @@
             CacheManager.invalidate(stylesheet);
             
             // success message
-            addMessage("pageForm.save.success", stylesheet.getName());
+            addMessage("stylesheetEdit.save.success", stylesheet.getName());
             
         } catch (WebloggerException ex) {
             log.error("Error updating stylesheet template for weblog - "+getActionWeblog().getHandle(), ex);
@@ -145,9 +155,64 @@
             addError("Error saving template");
         }
         
-        return SUCCESS;
+        return INPUT;
     }
-
+    
+    
+    /**
+     * Revert the stylesheet to its original state.
+     */
+    public String revert() {
+        
+        if(getTemplate() == null) {
+            // TODO: i18n
+            addError("Unable to locate stylesheet template");
+            return ERROR;
+        }
+        
+        // make sure we are still using a shared theme so that reverting is possible
+        if(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
+            // TODO: i18n
+            addError("stylesheetEdit.error.customTheme");
+        }
+        
+        if(!hasActionErrors()) try {
+            
+            WeblogTemplate stylesheet = getTemplate();
+            
+            // lookup the theme used by this weblog
+            ThemeManager tmgr = RollerFactory.getRoller().getThemeManager();
+            Theme theme = tmgr.getTheme(getActionWeblog().getEditorTheme());
+            
+            // lookup 
+            stylesheet.setLastModified(new Date());
+            stylesheet.setContents(theme.getStylesheet().getContents());
+            
+            // save template and flush
+            UserManager mgr = RollerFactory.getRoller().getUserManager();
+            mgr.savePage(stylesheet);
+            RollerFactory.getRoller().flush();
+            
+            // notify caches
+            CacheManager.invalidate(stylesheet);
+            
+            // success message
+            addMessage("stylesheetEdit.revert.success", stylesheet.getName());
+            
+        } catch (WebloggerException ex) {
+            log.error("Error updating stylesheet template for weblog - "+getActionWeblog().getHandle(), ex);
+            // TODO: i18n
+            addError("Error saving template");
+        }
+        
+        return execute();
+    }
+    
+    
+    public boolean isCustomTheme() {
+        return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme()));
+    }
+    
     
     public WeblogTemplate getTemplate() {
         return template;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java Sun Jun 10 19:27:53 2007
@@ -72,9 +72,9 @@
             
             // get current list of templates, minus custom stylesheet
             List<WeblogTemplate> pages = mgr.getPages(getActionWeblog());
-            if(getActionWeblog().getTheme().getCustomStylesheet() != null) {
+            if(getActionWeblog().getTheme().getStylesheet() != null) {
                 pages.remove(mgr.getPageByLink(getActionWeblog(), 
-                        getActionWeblog().getTheme().getCustomStylesheet()));
+                        getActionWeblog().getTheme().getStylesheet().getLink()));
             }
             setTemplates(pages);
             

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java Sun Jun 10 19:27:53 2007
@@ -26,7 +26,7 @@
 import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.business.PluginManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogManager;

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java Sun Jun 10 19:27:53 2007
@@ -57,7 +57,6 @@
     private boolean enableMultiLang = false;
     private boolean showAllLangs = true;
     private String pageModels = null;
-    private String customStylesheetPath = null;
     private String icon = null;
     private String about = null;
     
@@ -231,14 +230,6 @@
         this.pageModels = pageModels;
     }
     
-    public String getCustomStylesheetPath() {
-        return this.customStylesheetPath;
-    }
-    
-    public void setCustomStylesheetPath( String customStylesheetPath ) {
-        this.customStylesheetPath = customStylesheetPath;
-    }
-    
     public String getIcon() {
         return icon;
     }
@@ -321,7 +312,6 @@
         this.enableMultiLang = dataHolder.isEnableMultiLang();
         this.showAllLangs = dataHolder.isShowAllLangs();
         this.pageModels = dataHolder.getPageModels();
-        this.customStylesheetPath = dataHolder.getCustomStylesheetPath();
         setIcon(dataHolder.getIconPath());
         setAbout(dataHolder.getAbout());
         
@@ -359,7 +349,6 @@
         dataHolder.setEnableMultiLang(this.enableMultiLang);
         dataHolder.setShowAllLangs(this.showAllLangs);
         dataHolder.setPageModels(this.pageModels);
-        dataHolder.setCustomStylesheetPath(this.customStylesheetPath);
         dataHolder.setIconPath(getIcon());
         dataHolder.setAbout(getAbout());
         

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties Sun Jun 10 19:27:53 2007
@@ -1267,13 +1267,22 @@
 
 stylesheetEdit.title=Stylesheet
 stylesheetEdit.subtitle=Edit weblog custom stylesheet
-stylesheetEdit.tip=This form allows you to edit the custom stylesheet for your \
-weblog so that you can easily alter the css styling of your weblog theme.
+stylesheetEdit.tip=This form allows you to edit the stylesheet for your theme.
+stylesheetEdit.revertTip=If you run into any problems you don't know how to \
+fix you can start over at any time by clicking the restore button.
+
 stylesheetEdit.save=Save
+stylesheetEdit.revert=Restore Stylesheet
 
 stylesheetEdit.noStylesheetOverride=Sorry, but the theme you are using does not \
 provide a custom stylesheet for you to edit.  lame huh?  feel free to complain \
 about it to your system administrator.
+
+stylesheetEdit.save.success=Stylesheet updated successfully.
+stylesheetEdit.revert.success=Stylesheet reverted successfully.
+
+stylesheetEdit.error.customTheme=Cannot revert stylesheet on custom themes.
+
 
 # ------------------------------------------------------------------ Tabbed Menu
 

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/struts.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/struts.xml?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/struts.xml (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/struts.xml Sun Jun 10 19:27:53 2007
@@ -313,7 +313,7 @@
         
         <action name="stylesheetEdit!*" method="{1}"
                 class="org.apache.roller.weblogger.ui.struts2.editor.StylesheetEdit">
-            <result name="success" type="tiles">.StylesheetEdit</result>
+            <result name="input" type="tiles">.StylesheetEdit</result>
             <result name="error" type="tiles">.StylesheetEditError</result>
         </action>
         

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/admin/GlobalCommentManagement.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/admin/GlobalCommentManagement.jsp?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/admin/GlobalCommentManagement.jsp (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/admin/GlobalCommentManagement.jsp Sun Jun 10 19:27:53 2007
@@ -21,11 +21,12 @@
 <script type="text/javascript">
 <!-- 
 function setChecked(val, name) {
-    len = document.globalCommentManagement.elements.length;
+    form = $('globalCommentManagement');
+    len = form.elements.length;
     var i=0;
     for( i=0 ; i<len ; i++) {
-        if (document.globalCommentManagement.elements[i].name == name) { 
-           document.globalCommentManagement.elements[i].checked=val;
+        if (form.elements[i].name == name) { 
+           form.elements[i].checked=val;
         }
     }
 }
@@ -193,19 +194,19 @@
         <td align="center">
             <s:text name="commentManagement.select" /><br/>
             
-            <a href="#" onclick='setChecked(1,"spamComments")'>
+            <a href="#" onclick='setChecked(1,"bean.spamComments")'>
             <s:text name="commentManagement.all" /></a><br />  
             
-            <a href="#" onclick='setChecked(0,"spamComments")'>
+            <a href="#" onclick='setChecked(0,"bean.spamComments")'>
             <s:text name="commentManagement.none" /></a>
         </td>
         <td align="center">
             <s:text name="commentManagement.select" /><br/>
             
-            <a href="#" onclick='setChecked(1,"deleteComments")'>
+            <a href="#" onclick='setChecked(1,"bean.deleteComments")'>
             <s:text name="commentManagement.all" /></a><br /> 
             
-            <a href="#" onclick='setChecked(0,"deleteComments")'>
+            <a href="#" onclick='setChecked(0,"bean.deleteComments")'>
             <s:text name="commentManagement.none" /></a>
         </td>
         <td align="right">
@@ -268,7 +269,7 @@
                     <s:text name="commentManagement.commentByBoth" >
                         <s:param><s:property value="#comment.name" /></s:param>
                         <s:param><s:property value="#comment.email" /></s:param>
-                        <s:param value="mailto" />
+                        <s:param><s:property value="#comment.email" /></s:param>
                         <s:param><s:property value="#comment.remoteHost" /></s:param>
                     </s:text>
                 </s:if>

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/Comments.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/Comments.jsp?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/Comments.jsp (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/Comments.jsp Sun Jun 10 19:27:53 2007
@@ -21,11 +21,12 @@
 <script type="text/javascript">
 <!-- 
 function setChecked(val, name) {
-    len = document.globalCommentManagement.elements.length;
+    form = $('comments');
+    len = form.elements.length;
     var i=0;
     for( i=0 ; i<len ; i++) {
-        if (document.globalCommentManagement.elements[i].name == name) { 
-           document.globalCommentManagement.elements[i].checked=val;
+        if (form.elements[i].name == name) { 
+           form.elements[i].checked=val;
         }
     }
 }
@@ -199,28 +200,28 @@
         <td align="center">
             <s:text name="commentManagement.select" /><br/>
             
-            <a href="#" onclick='setChecked(1,"approvedComments")'>
+            <a href="#" onclick='setChecked(1,"bean.approvedComments")'>
             <s:text name="commentManagement.all" /></a><br />  
             
-            <a href="#" onclick='setChecked(0,"approvedComments")'>
+            <a href="#" onclick='setChecked(0,"bean.approvedComments")'>
             <s:text name="commentManagement.none" /></a>
         </td>
         <td align="center">
             <s:text name="commentManagement.select" /><br/>
             
-            <a href="#" onclick='setChecked(1,"spamComments")'>
+            <a href="#" onclick='setChecked(1,"bean.spamComments")'>
             <s:text name="commentManagement.all" /></a><br />  
             
-            <a href="#" onclick='setChecked(0,"spamComments")'>
+            <a href="#" onclick='setChecked(0,"bean.spamComments")'>
             <s:text name="commentManagement.none" /></a>
         </td>
         <td align="center">
             <s:text name="commentManagement.select" /><br/>
             
-            <a href="#" onclick='setChecked(1,"deleteComments")'>
+            <a href="#" onclick='setChecked(1,"bean.deleteComments")'>
             <s:text name="commentManagement.all" /></a><br /> 
             
-            <a href="#" onclick='setChecked(0,"deleteComments")'>
+            <a href="#" onclick='setChecked(0,"bean.deleteComments")'>
             <s:text name="commentManagement.none" /></a>
         </td>
         <td align="right">
@@ -288,7 +289,7 @@
                     <s:text name="commentManagement.commentByBoth" >
                         <s:param><s:property value="#comment.name" /></s:param>
                         <s:param><s:property value="#comment.email" /></s:param>
-                        <s:param value="mailto" />
+                        <s:param><s:property value="#comment.email" /></s:param>
                         <s:param><s:property value="#comment.remoteHost" /></s:param>
                     </s:text>
                 </s:if>

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/StylesheetEdit.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/StylesheetEdit.jsp?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/StylesheetEdit.jsp (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/StylesheetEdit.jsp Sun Jun 10 19:27:53 2007
@@ -19,7 +19,10 @@
 
 <p class="subtitle"><s:text name="stylesheetEdit.subtitle" /></p>
 
-<p class="pagetip"><s:text name="stylesheetEdit.tip" /></p>
+<p class="pagetip">
+    <s:text name="stylesheetEdit.tip" />
+    <s:if test="!customTheme"><s:text name="stylesheetEdit.revertTip" /></s:if>
+</p>
                 
 <s:form action="stylesheetEdit!save">
     <s:hidden name="weblog" />
@@ -52,7 +55,10 @@
     <table style="width:100%">
         <tr>
             <td>
-                <s:submit key="stylesheetEdit.save" />
+                <s:submit key="stylesheetEdit.save" />&nbsp;&nbsp;
+                <s:if test="!customTheme">
+                    <s:submit key="stylesheetEdit.revert" action="stylesheetEdit!revert" />
+                </s:if>
             </td>
             <td align="right">
                 <!-- Add buttons to make this textarea taller or shorter -->

Modified: roller/branches/roller_guice/apps/weblogger/web/themes/basic/Weblog.vm
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/themes/basic/Weblog.vm?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/themes/basic/Weblog.vm (original)
+++ roller/branches/roller_guice/apps/weblogger/web/themes/basic/Weblog.vm Sun Jun 10 19:27:53 2007
@@ -4,9 +4,7 @@
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>$model.weblog.name : $model.weblogPage.name</title>
     #showAutodiscoveryLinks($model.weblog)
-    <style type="text/css">#includeTemplate($model.weblog "_css")</style>
-
-    <link rel="stylesheet" type="text/css" media="all" href="$model.weblog.customStylesheet">
+    <link rel="stylesheet" type="text/css" media="all" href="$model.weblog.stylesheet">
 </head>
 <body>
 

Modified: roller/branches/roller_guice/apps/weblogger/web/themes/basic/theme.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/themes/basic/theme.xml?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/themes/basic/theme.xml (original)
+++ roller/branches/roller_guice/apps/weblogger/web/themes/basic/theme.xml Sun Jun 10 19:27:53 2007
@@ -8,8 +8,14 @@
     <!-- theme preview image -->
     <preview-image path="sm-theme-basic.png" />
     
-    <!-- custom stylesheet -->
-    <custom-stylesheet path="basic-custom.css" />
+    <!-- stylesheet -->
+    <stylesheet>
+        <name>basic-custom.css</name>
+        <description>Stylesheet for Basic theme</description>
+	<link>basic-custom.css</link>
+        <templateLanguage>velocity</templateLanguage>
+        <contentsFile>basic-custom.css</contentsFile>
+    </stylesheet>
     
     <!-- templates -->
     <template action="weblog">
@@ -32,17 +38,6 @@
         <templateLanguage>velocity</templateLanguage>
         <contentType>text/html</contentType>
         <contentsFile>_day.vm</contentsFile>
-    </template>
-    
-    <template action="custom">
-        <name>_css</name>
-        <description>_css</description>
-	<link></link>
-        <navbar>false</navbar>
-        <hidden>true</hidden>
-        <templateLanguage>velocity</templateLanguage>
-        <contentType>text/css</contentType>
-        <contentsFile>_css.vm</contentsFile>
     </template>
     
     <!-- resources -->

Modified: roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/Weblog.vm
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/Weblog.vm?view=diff&rev=545990&r1=545989&r2=545990
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/Weblog.vm (original)
+++ roller/branches/roller_guice/apps/weblogger/web/themes/brushedmetal/Weblog.vm Sun Jun 10 19:27:53 2007
@@ -4,12 +4,7 @@
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>$model.weblog.name : $model.weblogPage.name</title>
     #showAutodiscoveryLinks($model.weblog)
-
-    <style type="text/css">
-    #includeTemplate($model.weblog "_css")
-    </style>
-
-    <link rel="stylesheet" type="text/css" media="all" href="$model.weblog.customStylesheet">
+    <link rel="stylesheet" type="text/css" media="all" href="$model.weblog.stylesheet">
 </head>
 
 <body>