[RichFaces]ContextMenu : méthode avec paramètre
Bonjour
Je cherche à mettre en place une fonction de suppression d'une zone grace au clic droit (contextMenu) mais il me faut pouvoir déteminer cette zone grace à un nom que je lui attribus : Zone1a, Zone2b.... Mes zones sont générées via un bean dans un dataGrid.
J'arrive bien à appeller une fonction avec le paramètre action mais je ne sais pas comment récupérér le nom.
Ma page jsf : j'aimerai pouvoir identifier ma zone comme je le fais avec la zone de drop.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<rich:dataGrid value="#{craBean.zoneCras}" var="zone" columns="10"
cellpadding="0" cellspacing="0" columnClasses="tdZone" id="ZoneDrop"
border="0">
<rich:panel rendered="#{zone.rendererDate}" style="#{zone.style}">
<h:outputText value="#{zone.jourActiviteToString}"
style="position:relative;top:-10px;"></h:outputText>
</rich:panel>
<rich:panel style="#{zone.style}#{zone.styleBG}"
rendered="#{zone.rendererDrop}">
<h:dataTable value="#{zone.activiteChoisie}" var="item"
style="position:relative;top:-12px;left:-3px;">
<h:column>
<h:outputText value="#{item.libelleActivite}"></h:outputText>
</h:column>
</h:dataTable>
<rich:dropSupport acceptedTypes="activite"
dropListener="#{craBean.processDrop}" reRender="ZoneDrop"
dropValue="#{zone.dropValue}">
</rich:dropSupport>
<rich:contextMenu event="oncontextmenu" attached="true" rendered="#{zone.rendererMenu}"
submitMode="ajax">
<rich:menuItem submitMode="ajax" value="Supprimer" action="#{craBean.processAction}" ></rich:menuItem>
</rich:contextMenu>
</rich:panel>
</rich:dataGrid> |
Le bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
| package bean;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import javax.faces.event.ActionEvent;
import org.richfaces.component.Dropzone;
import org.richfaces.event.DropEvent;
import org.richfaces.event.DropListener;
import dto.Activite;
import dto.ZoneCra;
import service.ServiceActivite;
public class CraBean implements DropListener {
private ArrayList<ZoneCra> zoneCras = null;
private String paramMenu = null;
private int nbJour = 31;
public CraBean() {
if (zoneCras == null) {
this.initDonnees();
}
}
public void processDrop(DropEvent event) {
Dropzone dropZone = (Dropzone) event.getComponent();
Activite activite = (Activite) event.getDragValue();
ServiceActivite monService = new ServiceActivite(zoneCras);
monService.addActivite(activite, dropZone.getDropValue());
zoneCras = monService.getMesZoneDActivite();
}
public void processAction(ActionEvent event)
{
????
}
/**
* Permet d'initialiser les données du planning
*/
private void initDonnees() {
zoneCras = new ArrayList<ZoneCra>();
int i = 0;
while (i < this.nbJour) {
String tab[] = { "", "a", "b", "c", "d" };
for (int j = 0; j <= 4; j++) {
GregorianCalendar calendar = new java.util.GregorianCalendar(2008, 0, 1 + i);
ZoneCra maZone = new ZoneCra();
if (i < 10) {
maZone.setDropValue("zone0" + i + tab[j]);
maZone.setAfficheAct("afficheAct0" + i + tab[j]);
} else {
maZone.setDropValue("zone" + i + tab[j]);
maZone.setAfficheAct("afficheAct" + i + tab[j]);
}
if (j != 0) {
maZone.setJourActivite(calendar.getTime());
switch (j) {
case 1:
maZone.setStyle("border-right:0px;width:60px;height:15px;");
break;
case 2:
maZone.setStyle("border-left:0px;width:60px;height:15px;");
break;
case 3:
maZone.setStyle("border-right:0px;width:60px;height:15px;");
break;
case 4:
maZone.setStyle("border-left:0px;width:60px;height:15px;");
break;
}
maZone.setJourActivite(calendar.getTime());
maZone.setRendererDate(false);
maZone.setRendererDrop(true);
maZone.setRendererMenu(false);
} else {
maZone.setStyle("border:0px;width:120px;height:15px;");
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd MMMM");
maZone.setJourActiviteToString(sdf.format(calendar.getTime()));
maZone.setRendererDate(true);
maZone.setRendererDrop(false);
maZone.setRendererMenu(false);
}
this.zoneCras.add(maZone);
}
i++;
}
}
// Getter and Setter
public ArrayList<ZoneCra> getZoneCras() {
if (this.zoneCras == null) {
this.initDonnees();
}
return this.zoneCras;
}
public void setZoneCras(ArrayList<ZoneCra> zoneCras) {
this.zoneCras = zoneCras;
}
} |
Merci d'avance