Author: simoneg
Date: Thu Dec 17 13:12:42 2009
New Revision: 891689

URL: http://svn.apache.org/viewvc?rev=891689&view=rev
Log:
Added a style parameters for html pieces

Added:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/MagHtml.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/NoPiece.java
Modified:
    
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/Formatters.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/AddHtmlPiecesOnPropertyInfo.aj
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/BaseOutputPiece.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlFormPiece.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlOutputPiece.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlPieces.java
    
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/AbstractSelectionHtmlFormPiece.java
    
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/BooleanHtmlFormPiece.java
    
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/TextFieldHtmlFormPiece.java
    
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
    
labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
    
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
    
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
    
labs/magma/trunk/website-richtext/src/main/java/org/apache/magma/website/htmlpieces/RichTextHtmlOutputPiece.java

Modified: 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/Formatters.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/Formatters.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/Formatters.java
 (original)
+++ 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/Formatters.java
 Thu Dec 17 13:12:42 2009
@@ -44,6 +44,7 @@
                        ret = getFormatterFor(type);
                } else {
                        try {
+                               // TODO we should call the build method to 
obtain a properly inited instance
                                ret = formclass.newInstance();
                        } catch (InstantiationException e) {
                                return null;

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/AddHtmlPiecesOnPropertyInfo.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/AddHtmlPiecesOnPropertyInfo.aj?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/AddHtmlPiecesOnPropertyInfo.aj
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/AddHtmlPiecesOnPropertyInfo.aj
 Thu Dec 17 13:12:42 2009
@@ -4,6 +4,9 @@
 import java.lang.reflect.Method;
 
 import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.i18n.Format;
+import org.apache.magma.i18n.Formatter;
+import org.apache.magma.i18n.Formatters;
 
 public aspect AddHtmlPiecesOnPropertyInfo {
 
@@ -32,9 +35,9 @@
                
                Method readMethod = desc.getReadMethod();
                if (readMethod == null) return;
-               
-               info.outputPiece = HtmlPieces.outputFor(info);
-               info.formPiece = HtmlPieces.formFor(info);
+               MagHtml annotation = readMethod.getAnnotation(MagHtml.class);
+               info.outputPiece = HtmlPieces.outputFor(annotation, info);
+               info.formPiece = HtmlPieces.formFor(annotation, info);
        }
        
        

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/BaseOutputPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/BaseOutputPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/BaseOutputPiece.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/BaseOutputPiece.java
 Thu Dec 17 13:12:42 2009
@@ -30,6 +30,8 @@
 
 public class BaseOutputPiece implements HtmlOutputPiece<Object>, 
PropertyAwareHtmlPiece { 
 
+       public void setStyle(String style) {}
+       
        public boolean outputs(Class<?> clazz) {
                return true;
        }

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlFormPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlFormPiece.java
 Thu Dec 17 13:12:42 2009
@@ -50,6 +50,7 @@
  * @param <T> The type this class handles.
  */
 public interface HtmlFormPiece<T> {
+               
        
        /**
         * Checks whether this instance is able to produce
@@ -71,6 +72,16 @@
        public HtmlFormPiece<T> createInputFor(Class<? extends T> clazz);
        
        /**
+        * Sets a style for this html input.
+        * 
+        * Depending on the implementation, the style can change
+        * the way the HTML is produced.
+        * 
+        * @param style A string describing the style.
+        */
+       public void setInputStyle(String style);        
+       
+       /**
         * Adds to the head scripts or css files.
         * @param value The value we need to create input for
         * @param id The id of the form field

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlOutputPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlOutputPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlOutputPiece.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlOutputPiece.java
 Thu Dec 17 13:12:42 2009
@@ -29,6 +29,16 @@
 public interface HtmlOutputPiece<T> {
        
        /**
+        * Sets a style for this html output.
+        * 
+        * Depending on the implementation, the style can change
+        * the way the HTML is produced.
+        * 
+        * @param style A string describing the style.
+        */
+       public void setStyle(String style);
+       
+       /**
         * Checks whether this instance is able to produce
         * HTML output for the given type. 
         * @param clazz The type we are checking against

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlPieces.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlPieces.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlPieces.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/HtmlPieces.java
 Thu Dec 17 13:12:42 2009
@@ -18,25 +18,54 @@
 
 import java.util.Iterator;
 
+import org.apache.magma.basics.MagmaException;
 import org.apache.magma.basics.services.ServiceFinder;
 import org.apache.magma.beans.PropertyInfo;
 import org.apache.magma.conversion.Converter;
 
 public class HtmlPieces {
 
-       public static HtmlOutputPiece outputFor(PropertyInfo prop) {
-               HtmlOutputPiece piece = outputFor(prop.getType());
+       public static HtmlOutputPiece outputFor(MagHtml ann, PropertyInfo prop) 
{
+               HtmlOutputPiece piece = null; 
+               if (ann != null && !ann.outputPiece().equals(NoPiece.class)) {
+                       try {
+                               piece = ann.outputPiece().newInstance();
+                       } catch (Exception e) {
+                               throw new MagmaException("Error instantiating a 
new {0} for html output of {1}", ann.outputPiece(), prop);
+                       }
+                       piece = piece.createFor(prop.getType());
+               } else {
+                       piece = outputFor(prop.getType());      
+               }
+               
                if (piece instanceof PropertyAwareHtmlPiece) {
                        ((PropertyAwareHtmlPiece)piece).setProperty(prop);
                }
+               if (ann != null && !ann.outputStyle().equals("__NA__")) {
+                       piece.setStyle(ann.outputStyle());
+               }
                return piece;
        }
 
-       public static HtmlFormPiece formFor(PropertyInfo prop) {
-               HtmlFormPiece piece = formFor(prop.getType());
+       public static HtmlFormPiece formFor(MagHtml ann, PropertyInfo prop) {
+               HtmlFormPiece piece = null; 
+               if (ann != null && !ann.formPiece().equals(NoPiece.class)) {
+                       try {
+                               piece = ann.formPiece().newInstance();
+                       } catch (Exception e) {
+                               throw new MagmaException("Error instantiating a 
new {0} for html input of {1}", ann.outputPiece(), prop);
+                       }
+                       piece = piece.createInputFor(prop.getType());
+               } else {
+                       piece = formFor(prop.getType());        
+               }
+               
                if (piece instanceof PropertyAwareHtmlPiece) {
                        ((PropertyAwareHtmlPiece)piece).setProperty(prop);
                }
+               if (ann != null && !ann.formStyle().equals("__NA__")) {
+                       piece.setInputStyle(ann.formStyle());
+               }
                return piece;
        }
        

Added: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/MagHtml.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/MagHtml.java?rev=891689&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/MagHtml.java
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/MagHtml.java
 Thu Dec 17 13:12:42 2009
@@ -0,0 +1,18 @@
+package org.apache.magma.website.htmlpieces;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+...@retention(RetentionPolicy.RUNTIME)
+...@target({ElementType.METHOD, ElementType.FIELD})
+public @interface MagHtml {
+
+       public Class<? extends HtmlOutputPiece> outputPiece() default 
NoPiece.class;
+       public Class<? extends HtmlFormPiece> formPiece() default NoPiece.class;
+       
+       public String outputStyle() default "__NA__";
+       public String formStyle() default "__NA__";
+       
+}

Added: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/NoPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/NoPiece.java?rev=891689&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/NoPiece.java
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/htmlpieces/NoPiece.java
 Thu Dec 17 13:12:42 2009
@@ -0,0 +1,43 @@
+package org.apache.magma.website.htmlpieces;
+
+import org.apache.magma.website.Head;
+
+public class NoPiece implements HtmlOutputPiece<Object>, HtmlFormPiece<Object> 
{
+
+       public HtmlOutputPiece<Object> createFor(Class<? extends Object> clazz) 
{
+               return null;
+       }
+
+       public void head(Object value, Head head) {
+       }
+
+       public String output(Object value) {
+               return null;
+       }
+
+       public boolean outputs(Class<?> clazz) {
+               return false;
+       }
+
+       public void setStyle(String style) {
+       }
+
+       public String createFormInput(Object value, String id) {
+               return null;
+       }
+
+       public HtmlFormPiece<Object> createInputFor(Class<? extends Object> 
clazz) {
+               return null;
+       }
+
+       public void formHead(Object value, String id, Head head) {
+       }
+
+       public boolean handles(Class<?> clazz) {
+               return false;
+       }
+
+       public void setInputStyle(String style) {
+       }
+
+}

Modified: 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/AbstractSelectionHtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/AbstractSelectionHtmlFormPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/AbstractSelectionHtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/AbstractSelectionHtmlFormPiece.java
 Thu Dec 17 13:12:42 2009
@@ -23,6 +23,8 @@
 
                protected abstract List<?> findList();
                
+               public void setInputStyle(String style) {}              
+               
                public String createFormInput(T value, String id) {
                        List<?> elements = findList();
                        if (elements != null && elements.size() > 0) {

Modified: 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/BooleanHtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/BooleanHtmlFormPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/BooleanHtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/BooleanHtmlFormPiece.java
 Thu Dec 17 13:12:42 2009
@@ -62,6 +62,8 @@
                }
        }
 
+       public void setInputStyle(String style) {}      
+       
        public void formHead(Boolean value, String id, Head head) {
        }
 

Modified: 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/TextFieldHtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/TextFieldHtmlFormPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/TextFieldHtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/htmlpieces/TextFieldHtmlFormPiece.java
 Thu Dec 17 13:12:42 2009
@@ -20,6 +20,8 @@
        
        protected static int MAX_FIELD_SIZE = 80;
        
+       public void setInputStyle(String style) {}      
+       
        public String createFormInput(Object value, String id) {
                PropertyInfo property = this.getProperty();
                int maxSize = 50;

Modified: 
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
 (original)
+++ 
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
 Thu Dec 17 13:12:42 2009
@@ -20,9 +20,14 @@
                }
        }
        
+       
        public HtmlOutputPiece<MagFile> createFor(Class<? extends MagFile> 
clazz) {
                return this;
        }
+       
+       public void setStyle(String style) {}
+       
+       public void setInputStyle(String style) {}      
 
        public void head(MagFile value, Head head) {
                head.addCss("magma:/common/magfile.css");

Modified: 
labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
 (original)
+++ 
labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
 Thu Dec 17 13:12:42 2009
@@ -23,6 +23,10 @@
        public HtmlOutputPiece<MagImage> createFor(Class<? extends MagImage> 
clazz) {
                return this;
        }
+       
+       public void setStyle(String style) {}   
+       
+       public void setInputStyle(String style) {}      
 
        public void head(MagImage value, Head head) {
        }

Modified: 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
 Thu Dec 17 13:12:42 2009
@@ -31,6 +31,8 @@
        public HtmlFormPiece<MagMapBean> createInputFor(Class<? extends 
MagMapBean> clazz) {
                return new MapBeanHtmlFormPiece();
        }
+       
+       public void setInputStyle(String style) {}      
 
        public void formHead(MagMapBean value, String id, Head head) {
                head.addJQuery();

Modified: 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
 Thu Dec 17 13:12:42 2009
@@ -11,6 +11,8 @@
                return this;
        }
 
+       public void setStyle(String style) {}   
+       
        public boolean outputs(Class<?> clazz) {
                return MagMapBean.class.isAssignableFrom(clazz);
        }

Modified: 
labs/magma/trunk/website-richtext/src/main/java/org/apache/magma/website/htmlpieces/RichTextHtmlOutputPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-richtext/src/main/java/org/apache/magma/website/htmlpieces/RichTextHtmlOutputPiece.java?rev=891689&r1=891688&r2=891689&view=diff
==============================================================================
--- 
labs/magma/trunk/website-richtext/src/main/java/org/apache/magma/website/htmlpieces/RichTextHtmlOutputPiece.java
 (original)
+++ 
labs/magma/trunk/website-richtext/src/main/java/org/apache/magma/website/htmlpieces/RichTextHtmlOutputPiece.java
 Thu Dec 17 13:12:42 2009
@@ -10,6 +10,8 @@
                return new RichTextHtmlOutputPiece();
        }
 
+       public void setStyle(String style) {}   
+       
        public boolean outputs(Class<?> clazz) {
                return RichTextString.class.isAssignableFrom(clazz);
        }



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

Reply via email to