Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright ${year}, Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.richfaces.component;
 
 import java.util.Map;
 
 import  javax.faces.FacesException;
 import  javax.faces.component.UIComponent;
 import  javax.faces.component.UIComponentBase;
 import  javax.faces.context.FacesContext;
 import  javax.faces.event.AbortProcessingException;
 import  javax.faces.event.ComponentSystemEvent;
 import  javax.faces.event.ListenerFor;
 import  javax.faces.event.PostAddToViewEvent;
 

The <rich:fileUpload> component allows the user to upload files to a server. It features multiple uploads, progress bars, restrictions on file types, and restrictions on sizes of the files to be uploaded.

Author(s):
Konstantin Mishin
 
 @JsfComponent(tag = @Tag(generate = false, handler = "org.richfaces.view.facelets.FileUploadHandler"), renderer = @JsfRenderer(type = "org.richfaces.FileUploadRenderer"), attributes = {
         "events-mouse-props.xml""events-key-props.xml""core-props.xml""ajax-props.xml""i18n-props.xml""fileUploadListener-props.xml" })
 @ListenerFor(systemEventClass = PostAddToViewEvent.class)
 public abstract class AbstractFileUpload extends UIComponentBase {
     public static final String COMPONENT_TYPE = "org.richfaces.FileUpload";
     public static final String COMPONENT_FAMILY = "org.richfaces.FileUpload";

    
Defines comma separated list of file extensions accepted by component. The component does not provide any feedback when rejecting file. For introducing feedback for rejection, use ontyperejected parameter.
 
     @Attribute
     public abstract String getAcceptedTypes();

    
Defines maximum number of files allowed to be uploaded. After a number of files in the list equals to the value of this attribute, "Add" button disappears and nothing could be uploaded even if you clear the whole list. In order to upload files again you should rerender the component
 
     @Attribute
     public abstract String getMaxFilesQuantity();

    
If "true", this component is disabled
 
     @Attribute(defaultValue = "false")
     public abstract boolean isDisabled();

    

If "true" duplicate file uploads are prevented

Default is "false"

 
     @Attribute(defaultValue = "false")
     public abstract boolean isNoDuplicate();

    

If "true" upload stats immediately after file selection

Default is "false"

 
     @Attribute(defaultValue = "false")
     public abstract boolean isImmediateUpload();

    
Javascript code executed when a file is selected
 
     @Attribute(events = @EventName("fileselect"))
     public abstract String getOnfileselect();

    
Javascript code executed when a file is submitted
    @Attribute(events = @EventName("filesubmit"))
    public abstract String getOnfilesubmit();

    
Javascript code executed when a file does not meet the conditions stated by acceptedTypes parameter.
    @Attribute(events = @EventName("typerejected"))
    public abstract String getOntyperejected();

    
Javascript code executed when a file upload is complete
    @Attribute(events = @EventName("uploadcomplete"))
    public abstract String getOnuploadcomplete();

    
Javascript code executed when a file is cleared
    @Attribute(events = @EventName("clear"))
    public abstract String getOnclear();

    
The label for the Add button.
    @Attribute
    public abstract String getAddLabel();

    
The label for the Add button.
    @Attribute
    public abstract String getUploadLabel();

    
The label for the Clear button.
    @Attribute
    public abstract String getClearAllLabel();

    
The label displayed when a file is successfully uploaded.
    @Attribute
    public abstract String getDoneLabel();

    
The label displayed when a file exceeds the size limit.
    @Attribute
    public abstract String getSizeExceededLabel();

    
The label displayed when a file upload fails due to a server error.
    @Attribute
    public abstract String getServerErrorLabel();

    
The label displayed for the Clear link
    @Attribute
    public abstract String getClearLabel();

    
The label displayed for the Delete link
    @Attribute
    public abstract String getDeleteLabel();

    

Defines height of file list.

Default value is "210px".

    @Attribute(defaultValue = "210px")
    public abstract String getListHeight();
    @Override
    public void processEvent(ComponentSystemEvent eventthrows AbortProcessingException {
        super.processEvent(event);
        FacesContext context = getFacesContext();
        Map<String, UIComponent> facets = getFacets();
        UIComponent component = facets.get("progress");
        if (component == null) {
            try {
                component = context.getApplication().createComponent(context"org.richfaces.ProgressBar",
                    "org.richfaces.ProgressBarRenderer");
            } catch (FacesException e) {
                // To work without ProgressBar.
            }
            if (component != null) {
                component.setId(getId() + "_pb");
                facets.put("progress"component);
            }
        }
        if (component != null) {
            String resourcePath = RenderKitUtils.getResourcePath(context"org.richfaces""fileUploadProgress");
            component.getAttributes().put("resource"resourcePath);
        }
    }

    

Add a new FileUploadListener to the set of listeners interested in being notified when org.richfaces.FileUploadEvents occur.

Parameters:
listener The FileUploadListener to be added
Throws:
NullPointerException if listener is null
    public void addFileUploadListener(FileUploadListener listener) {
        addFacesListener(listener);
    }

    

Return the set of registered FileUploadListeners for this AbstractFileUpload instance. If there are no registered listeners, a zero-length array is returned.

        return (FileUploadListener[]) getFacesListeners(FileUploadListener.class);
    }

    

Remove an existing FileUploadListener (if any) from the set of listeners interested in being notified when FileUploadListeners occur.

Parameters:
listener The FileUploadListener to be removed
Throws:
NullPointerException if listener is null
    public void removeFileUploadListener(FileUploadListener listener) {
        removeFacesListener(listener);
    }
New to GrepCode? Check out our FAQ X