You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/01/25 20:21:58 UTC

svn commit: r499926 - in /myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago: component/UIFileInput.java taglib/component/FileTagDeclaration.java taglib/extension/FileExtensionTag.java

Author: bommel
Date: Thu Jan 25 11:21:57 2007
New Revision: 499926

URL: http://svn.apache.org/viewvc?view=rev&rev=499926
Log:
(TOBAGO-258) required has no effect for tc:file

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIFileInput.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/FileTagDeclaration.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIFileInput.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIFileInput.java?view=diff&rev=499926&r1=499925&r2=499926
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIFileInput.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIFileInput.java Thu Jan 25 11:21:57 2007
@@ -18,8 +18,12 @@
  */
 
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ENCTYPE;
+import org.apache.myfaces.tobago.util.MessageFactory;
+import org.apache.commons.fileupload.FileItem;
 
 import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.application.FacesMessage;
 
 /*
  * Created by IntelliJ IDEA.
@@ -38,4 +42,16 @@
     }
   }
 
+  public void validate(FacesContext facesContext) {
+    if (isRequired()) {
+      FileItem file = (FileItem) getSubmittedValue();
+      if (file == null || file.getName().length() == 0) {
+        FacesMessage facesMessage = MessageFactory.createFacesMessage(
+            facesContext, REQUIRED_MESSAGE_ID, FacesMessage.SEVERITY_ERROR);
+        facesContext.addMessage(getClientId(facesContext), facesMessage);
+        setValid(false);
+      }
+    }
+    super.validate(facesContext);
+  }
 }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/FileTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/FileTagDeclaration.java?view=diff&rev=499926&r1=499925&r2=499926
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/FileTagDeclaration.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/component/FileTagDeclaration.java Thu Jan 25 11:21:57 2007
@@ -41,7 +41,7 @@
  * You need to define an org.apache.myfaces.tobago.webapp.TobagoMultipartFormdataFilter in your web.xml or
  * add the tobago-fileupload.jar to your project.
  * The tobago-fileupload.jar contains a FacesContextFactory that wraps the
- * multipart-formdata request inside the faces request.
+ * multipart-formdata request inside the facesContext.
  */
 @Tag(name = "file")
 @UIComponentTag(
@@ -56,7 +56,7 @@
    * <code>org.apache.commons.fileupload.FileItem</code> property to store the
    * uploaded file.
    */
-  @TagAttribute
+  @TagAttribute()
   @UIComponentTagAttribute(type = { "org.apache.commons.fileupload.FileItem" })
   void setValue(String value);
 }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java?view=diff&rev=499926&r1=499925&r2=499926
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java Thu Jan 25 11:21:57 2007
@@ -25,6 +25,7 @@
 import org.apache.myfaces.tobago.taglib.decl.HasTip;
 import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
+import org.apache.myfaces.tobago.taglib.decl.IsRequired;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.BodyTagSupport;
@@ -36,7 +37,7 @@
 @Tag(name = "file")
 public class FileExtensionTag extends BodyTagSupport
     implements InputTagDeclaration, HasIdBindingAndRendered, IsDisabled,
-    HasTip, HasLabel, HasLabelWidth {
+    HasTip, HasLabel, HasLabelWidth, IsRequired {
 
   private String binding;
   private String label;
@@ -48,6 +49,7 @@
   private String tip;
   private String onchange;
   private String labelWidth;
+  private String required;
 
   private LabelExtensionTag labelTag;
   private FileTag fileTag;
@@ -95,6 +97,9 @@
     if (onchange != null) {
       fileTag.setOnchange(onchange);
     }
+    if (required != null) {
+      fileTag.setRequired(required);
+    }
     fileTag.setParent(labelTag);
     fileTag.doStartTag();
 
@@ -121,6 +126,7 @@
     value = null;
     rendered = null;
     valueChangeListener = null;
+    required = null;
   }
 
   public void setLabel(String label) {
@@ -158,7 +164,12 @@
   public void setTip(String tip) {
     this.tip = tip;
   }
+
   public void setLabelWidth(String labelWidth) {
     this.labelWidth = labelWidth;
+  }
+
+  public void setRequired(String required) {
+    this.required = required;
   }
 }