Created
May 1, 2012 14:22
-
-
Save gbougeard/2568258 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void onDrop(DragDropEvent event) { | |
// Puisque l'on a associé une datasource à nos éléments droppable | |
// alors event.getData() contient un objet Java et en l'occurrence puisque la datasource | |
// en question était la DataGrid, elle-même associée à lstTarget étant une ArrayList<CanvasFormationItem> | |
// on a donc accès à un objet de type CanvasFormationItem | |
// Attention, c'est l'objet draggé, donc l'objet source. | |
CanvasFormationItem item = (CanvasFormationItem) event.getData(); | |
// Pour avoir accès à l'objet où on a droppé, ce n'est pas encore possible | |
// du coup on feinte :D | |
// on recupère l'ID de l'élément DOM sur lequel on a droppé | |
String idCoord = event.getDropId(); | |
// et on récupère l'index de la grille (j'avoue c'est pas super classe) | |
idCoord = idCoord.substring(idCoord.indexOf("trgField")); // cf trgField dans la JSF | |
idCoord = idCoord.substring(idCoord.indexOf(':') + 1, idCoord.lastIndexOf(':')); | |
Integer coord = Integer.parseInt(idCoord) + 1; // les id autos commencent à 0 alors que les index de notre grille comment à 1 | |
// Maintenant on met à jour les coords des FormationItem et CanvasFormationItem incriminés | |
FamFormationItem fi = item.getFamFormationItem(); | |
for (CanvasFormationItem cfi : lstTarget) { | |
if (cfi.getStrIdx().equals(String.format("%d", coord))) { | |
// on swappe les formationItem | |
FormationItem fiTemp = cfi.getFormationItem(); | |
Integer oldCoord = null; | |
if (fi != null) { | |
oldCoord = fi.getCoord(); | |
} | |
cfi.setFormationItem(fi); | |
item.setFormationItem(fiTemp); | |
cfi.getFormationItem().setCoord(coord); | |
if (oldCoord != null && item.getFormationItem() != null) { | |
item.getFormationItem().setCoord(oldCoord); | |
} | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment