Author: simoneg
Date: Fri Nov 13 18:13:47 2009
New Revision: 835946

URL: http://svn.apache.org/viewvc?rev=835946&view=rev
Log:
LABS-494: custom css classes for htmlproducer and compound container divs

Modified:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducer.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/Template.java

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducer.java?rev=835946&r1=835945&r2=835946&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducer.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducer.java
 Fri Nov 13 18:13:47 2009
@@ -21,6 +21,7 @@
 public interface CompoundableProducer {
        
        public CompoundableProducer compoundWith(Producer other, CompoundType 
type);
+       public CompoundableProducer compoundCssClass(String cssClass, 
CompoundType type);
        public List<Producer> findCompoundedOn(CompoundType type);
        public List<Producer> findRecursivelyCompoundedOn(CompoundType type);
        public void markDone(Producer other);

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj?rev=835946&r1=835945&r2=835946&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
 Fri Nov 13 18:13:47 2009
@@ -22,6 +22,8 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
 
 import org.apache.magma.website.templating.Template;
 import org.apache.magma.website.utils.MakeURLRewritingContextBased;
@@ -37,6 +39,7 @@
        }
        
        private List<CompoundRelation> CompoundableProducer.compound = null;
+       private Map<CompoundType, String> CompoundableProducer.customCssClasses 
= null;
        private boolean CompoundableProducer.compounding = false;
        
        
@@ -48,6 +51,14 @@
                compound.add(rel);
                return this;
        }
+       
+       public CompoundableProducer 
CompoundableProducer.compoundCssClass(String cssClass, CompoundType t) {
+               if (customCssClasses == null) {
+                       customCssClasses = new HashMap<CompoundType, String>();
+               }
+               customCssClasses.put(t, cssClass);
+               return this;
+       }
 
        public void CompoundableProducer.markDone(Producer p) {
                if (compound == null) return;
@@ -114,7 +125,11 @@
        private void compoundZone(CompoundableProducer prod, CompoundType side, 
Writer stream) throws IOException {
                List<Producer> list = prod.findCompoundedOn(side);
                if (!list.isEmpty()) {
-                       openWrapper(stream, side);
+                       String addcss = null;
+                       if (prod.customCssClasses != null) {
+                               addcss = prod.customCssClasses.get(side);
+                       }
+                       openWrapper(addcss, stream, side);
                        for (Producer producer : list) {
                                if (producer instanceof HtmlProducer) {
                                        openWrapper((HtmlProducer) producer, 
stream, side);
@@ -196,12 +211,14 @@
                prod.compounding = false;               
        }
        
+       
        protected void openWrapper(HtmlProducer prod, Writer out, CompoundType 
type) throws IOException {
                out.write("<div class=\"" + 
Template.computePartialProducerClasses(prod) + type.name() + "\">");
        }
 
-       protected void openWrapper(Writer out, CompoundType type) throws 
IOException {
-               out.write("<div class=\"CompoundZone " + type.name() + "\">");
+       protected void openWrapper(String additionalClasses, Writer out, 
CompoundType type) throws IOException {
+               if (additionalClasses == null) additionalClasses = "";
+               out.write("<div class=\"CompoundZone " + type.name() + " " + 
additionalClasses + "\">");
        }
        
        

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java?rev=835946&r1=835945&r2=835946&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
 Fri Nov 13 18:13:47 2009
@@ -24,12 +24,17 @@
 import java.io.OutputStreamWriter;
 import java.io.UnsupportedEncodingException;
 import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
 
 
 public abstract class HtmlProducer extends Producer implements Templatable, 
CompoundableProducer {
 
        protected boolean repeatable = true;
        protected Template template;
+       protected List<String> customCssClasses;
+       protected String customHtmlId;
+       protected boolean useDefaultClasses = true;
 
        @Override
        public String getMimeType() {
@@ -78,5 +83,33 @@
        public void setRepeatable(boolean repeatable) {
                this.repeatable = repeatable;
        }
+
+       public String getCustomHtmlId() {
+               return customHtmlId;
+       }
+
+       public void setCustomHtmlId(String customHtmlId) {
+               this.customHtmlId = customHtmlId;
+       }
+
+       public boolean isUseDefaultClasses() {
+               return useDefaultClasses;
+       }
+
+       public void setUseDefaultClasses(boolean useDefaultClasses) {
+               this.useDefaultClasses = useDefaultClasses;
+       }
+       
+       public void addCustomCssClass(String cssClass) {
+               if (customCssClasses == null) {
+                       customCssClasses = new ArrayList<String>();
+               }
+               customCssClasses.add(cssClass);
+       }
+
+       public List<String> getCustomCssClasses() {
+               return customCssClasses;
+       }
+       
        
 }

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/Template.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/Template.java?rev=835946&r1=835945&r2=835946&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/Template.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/Template.java
 Fri Nov 13 18:13:47 2009
@@ -251,28 +251,44 @@
                this.forceMain = forceMain;
        }
 
-       public static String computePartialProducerClasses(Producer prod) {
+       public static String computePartialProducerClasses(HtmlProducer prod) {
                String classes = "";
-               WebHandler handler = prod.getCreatingHandler();
-               if (handler != null) {
-                       classes += handler.getClass().getSimpleName() + " ";
+               if (prod.isUseDefaultClasses()) {
+                       WebHandler handler = prod.getCreatingHandler();
+                       if (handler != null) {
+                               classes += handler.getClass().getSimpleName() + 
" ";
+                       }
+                       Method method = prod.getCreatingMethod();
+                       if (method != null) {
+                               classes += method.getName() + " ";
+                       }
                }
-               Method method = prod.getCreatingMethod();
-               if (method != null) {
-                       classes += method.getName() + " ";
+               List<String> cssClasses = prod.getCustomCssClasses();
+               if (cssClasses != null) {
+                       for (String clazz : cssClasses) {
+                               classes += clazz + " ";
+                       }
                }
                return classes;         
        }
        
-       public static String computeCompleteProducerClasses(Producer prod) {
+       public static String computeCompleteProducerClasses(HtmlProducer prod) {
                String classes = "";
-               SubRunningContext context = prod.getContext();
-               for (ContextElement ele : context) {
-                       if (ele instanceof WebMethodContextElement) {
-                               classes += 
((WebMethodContextElement)ele).getHandlerInstance().getClass().getSimpleName();
-                               classes += " " + ele.toString() + " ";
-                       } else {
-                               classes += ele.toString() + " ";
+               if (prod.isUseDefaultClasses()) {
+                       SubRunningContext context = prod.getContext();
+                       for (ContextElement ele : context) {
+                               if (ele instanceof WebMethodContextElement) {
+                                       classes += 
((WebMethodContextElement)ele).getHandlerInstance().getClass().getSimpleName();
+                                       classes += " " + ele.toString() + " ";
+                               } else {
+                                       classes += ele.toString() + " ";
+                               }
+                       }
+               }
+               List<String> cssClasses = prod.getCustomCssClasses();
+               if (cssClasses != null) {
+                       for (String clazz : cssClasses) {
+                               classes += clazz + " ";
                        }
                }
                return classes;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to