Bonjour,

J'aimerais utiliser le composant rich:fileUpload pour uploader des documents qui seront joint à un courrier. Il faut donc que l'utilisateur puisse ajouter des fichiers mais aussi en retirer...

Voici le composant utilisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<rich:fileUpload id="CourrierPJ"
        doneLabel="Téléchargement terminé"
        addControlLabel="Ajouter"
        uploadControlLabel="Télécharger"
        cancelEntryControlLabel="Annuler"
        clearControlLabel="effacer"
        clearAllControlLabel="Tout effacer"
        progressLabel="en cours..."
        sizeErrorLabel="Taille du document trop importante"
        stopEntryControlLabel="Arrêter"
        stopControlLabel="Tout arrêter"
        transferErrorLabel="Erreur de transfert"
 
        listHeight="116px"
        listWidth="600px"
        noDuplicate="true"
 
        uploadData="#{posterCourrierHandler.fileUploadBean.filesList}"
        immediateUpload="#{posterCourrierHandler.fileUploadBean.autoUpload}"
        allowFlash="#{posterCourrierHandler.fileUploadBean.useFlash}"
 
        maxFilesQuantity="#{posterCourrierHandler.fileUploadBean.uploadsAvailable}"
 />
Le soucis c'est qu'une fois qu'on télécharge les fichiers ajoutés, il n'est plus possible de les supprimer de la liste... et comme j'ai mis 5 fichiers joints maximum, je me retrouve bloqué sur mon écran si j'ai chargé 5 fichiers et que je souhaite en changer.

Ce à quoi j'aimerais arriver c'est que lorsqu'on clique sur un bouton clear, cela supprime aussi le fichier correspondant téléchargé. De même pour tous les fichiers avec le bouton clearAll.

Je suis parvenu à approcher cela en mettant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<a4j:support event="onclear" 
       action="#{posterCourrierHandler.fileUploadBean.clearUploadData}"
       reRender="CourrierPJ" immediate="true" />
Cependant, cette action se fait pour tous les fichiers, quelquesoit le bouton clear que je sélectionne.... :s.

Voici mon contrôleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class FileUploadBean implements Serializable{
	private int uploadsAvailable = 5;
	private boolean autoUpload = true;
	private boolean useFlash = false;
        private List<UploadItem> filesList = new ArrayList<UploadItem>();
 
	public synchronized void listener(UploadEvent event) throws Exception{
              filesList.add(event.getUploadItem());
	}
 
	public String clearUploadData() {
		filesList.clear();
		setUploadsAvailable(5);
		return null;
	}
 
        getters et setters...
}