You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2007/11/08 11:42:01 UTC

svn commit: r593120 - in /myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm: annot/ui/DisplaySize.java component/dynaForm/DynaForm.java lib/_FacesUtils.java metadata/impl/ejb/EjbExtractor.java

Author: imario
Date: Thu Nov  8 02:42:00 2007
New Revision: 593120

URL: http://svn.apache.org/viewvc?rev=593120&view=rev
Log:
allow to annotate the displaySize of an input field, copy the rendered attribute to the generated label and/or datatable column

Added:
    myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplaySize.java
      - copied, changed from r592723, myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplayOnly.java
Modified:
    myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/component/dynaForm/DynaForm.java
    myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/lib/_FacesUtils.java
    myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/metadata/impl/ejb/EjbExtractor.java

Copied: myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplaySize.java (from r592723, myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplayOnly.java)
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplaySize.java?p2=myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplaySize.java&p1=myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplayOnly.java&r1=592723&r2=593120&rev=593120&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplayOnly.java (original)
+++ myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/annot/ui/DisplaySize.java Thu Nov  8 02:42:00 2007
@@ -24,10 +24,11 @@
 import java.lang.annotation.Target;
 
 /**
- * do not render any input. e.g uses outputText instead
+ * the display size for input fields in characters (where possible)
  */
 @Target(value = {ElementType.METHOD, ElementType.FIELD})
 @Retention(value = RetentionPolicy.RUNTIME)
-public @interface DisplayOnly
+public @interface DisplaySize
 {
-}
+	int value();
+}
\ No newline at end of file

Modified: myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/component/dynaForm/DynaForm.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/component/dynaForm/DynaForm.java?rev=593120&r1=593119&r2=593120&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/component/dynaForm/DynaForm.java (original)
+++ myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/component/dynaForm/DynaForm.java Thu Nov  8 02:42:00 2007
@@ -106,23 +106,7 @@
 			column.setHeader(label);
 			column.getAttributes().put(DynaForm.DYNA_FORM_CREATED, Boolean.TRUE);
 
-			/*
-			int addPos = -1;
-			UIComponent dataIndicator = this.destCmp.findComponent("data");
-			if (dataIndicator != null)
-			{
-				addPos = this.destCmp.getChildren().indexOf(dataIndicator);
-			}
-
-			if (addPos > -1)
-			{
-				this.destCmp.getChildren().add(addPos, column);
-			}
-			else
-			{
-				this.destCmp.getChildren().add(column);
-			}
-			*/
+			_FacesUtils.copyRendered(component, column);
 
 			this.destCmp.getChildren().add(column);
 		}
@@ -141,6 +125,8 @@
 		@SuppressWarnings("unchecked")
 		public void newComponent(String fieldName, UIComponent label, UIComponent component)
 		{
+			_FacesUtils.copyRendered(component, label);
+			
 			this.destCmp.getChildren().add(label);
 			this.destCmp.getChildren().add(component);
 		}

Modified: myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/lib/_FacesUtils.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/lib/_FacesUtils.java?rev=593120&r1=593119&r2=593120&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/lib/_FacesUtils.java (original)
+++ myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/lib/_FacesUtils.java Thu Nov  8 02:42:00 2007
@@ -19,6 +19,9 @@
 package org.apache.myfaces.orchestra.dynaForm.lib;
 
 import javax.faces.application.Application;
+import javax.faces.component.UIComponent;
+import javax.faces.el.ValueBinding;
+import javax.el.ValueExpression;
 
 /**
  * Some JSF helpers, e.g. to determine the used JSF Version
@@ -57,5 +60,32 @@
 	public static boolean useValueExpression()
 	{
 		return getVersion() > 11;
+	}
+
+	public static void copyRendered(UIComponent source, UIComponent destination)
+	{
+		boolean renderedSet = false;
+		if (useValueExpression())
+		{
+			ValueExpression ve = source.getValueExpression("rendered");
+			if (ve != null)
+			{
+				destination.setValueExpression("rendered", ve);
+				renderedSet = true;
+			}
+		}
+		else
+		{
+			ValueBinding vb = source.getValueBinding("rendered");
+			if (vb != null)
+			{
+				destination.setValueBinding("rendered", vb);
+				renderedSet = true;
+			}
+		}
+		if (!renderedSet)
+		{
+			destination.setRendered(destination.isRendered());
+		}
 	}
 }

Modified: myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/metadata/impl/ejb/EjbExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/metadata/impl/ejb/EjbExtractor.java?rev=593120&r1=593119&r2=593120&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/metadata/impl/ejb/EjbExtractor.java (original)
+++ myfaces/orchestra/trunk/core15/src/main/java/org/apache/myfaces/orchestra/dynaForm/metadata/impl/ejb/EjbExtractor.java Thu Nov  8 02:42:00 2007
@@ -22,6 +22,7 @@
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.ComponentHandler;
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.DataProvider;
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.DisplayOnly;
+import org.apache.myfaces.orchestra.dynaForm.annot.ui.DisplaySize;
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.IgnoreProperty;
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.Length;
 import org.apache.myfaces.orchestra.dynaForm.annot.ui.Max;
@@ -603,6 +604,12 @@
 			Range annot = accessibleObject.getAnnotation(Range.class);
 			mdField.setMinValue((double) annot.min());
 			mdField.setMaxValue((double) annot.max());
+		}
+
+		if (accessibleObject.isAnnotationPresent(DisplaySize.class))
+		{
+			DisplaySize displaySize = accessibleObject.getAnnotation(DisplaySize.class);
+			mdField.setDisplaySize(displaySize.value());
 		}
 	}