Bonjour à tous,
je viens encore une fois faire appel à votre savoir pour m'éclairer sur un problème assez déconcertant :
je développe un outil de gestion qui dans le cas présent va, à l'aide d'un drag n drop, affecter des opérateurs à des compétences. Le problème que je rencontre ici est assez étrange car c'est au niveau d'un test if qui renvoie true alors que la condition n'est pas vérifiée.
Voici la partie du code qui me pose problème avec l'affichage lors des deux dnd du log:
Bean de gestion :
Log :
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
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 public void recupererOperateurs( Competence competence ) { System.out.println( "recupererOperateurs:competence > " + competence.getNom() ); System.out.println( "recupererOperateurs:Taille liste > " + attributionMap.get( competence ).size() ); System.out.println( "recupererOperateurs:Test taille liste = 0 > " + ( attributionMap.get( competence ).size() == 0 ) ); System.out.println( "recupererOperateurs:Mapping > " + attributionMap.get( competence ) ); if ( operateurs != null ) { operateurs.clear(); } if ( attributionMap.get( competence ) == null ) { System.out.println( "Map nulle ..." ); operateurs = new ArrayList<Operateur>(); } else if ( attributionMap.get( competence ).size() == 0 ) { System.out.println( "Map empty ..." ); operateurs = new ArrayList<Operateur>(); } else { System.out.println( "Map non null/empty " + competence.getNom() + " - " + attributionMap.get( competence ) ); operateurs = attributionMap.get( competence ); } } public void onOperateurDrop( DragDropEvent ddEvent ) { System.out.println( "---------------------DROP d'un Opérateur------------------------" ); // DropId is of the form: orderGroups:0:selectedLineItems String[] dropSplit = ddEvent.getDropId().split( ":" ); // Get the second part to retrieve the correct orderGroup: int orderGroupPosition = Integer.parseInt( dropSplit[1] ); setCompetenceTmp( (Competence) ( attributionMap.keySet().toArray()[orderGroupPosition] ) ); recupererOperateurs( competenceTmp ); Operateur op = (Operateur) ( ( (Map.Entry) ( ddEvent.getData() ) ).getKey() ); operateurs.add( op ); availables2.remove( op ); try { attributionMap.put( competenceTmp, operateurs ); System.out.println( "onOperateurDrop:Mapping > " + attributionMap.get( competenceTmp ) ); } catch ( Exception e ) { e.printStackTrace(); } }
Pouvez vous m'aider si vous voyez d'où vient le problème ? Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ---------------------DROP d'un Opérateur------------------------ Infos: recupererOperateurs:competence > Autre Infos: recupererOperateurs:Taille liste > 0 Infos: recupererOperateurs:Test taille liste = 0 > true Infos: recupererOperateurs:Mapping > [] Infos: Map empty ... Infos: onOperateurDrop:Mapping > [com.sgg.entities.Operateur@26cdda] Infos: ---------------------DROP d'un Opérateur------------------------ Infos: recupererOperateurs:competence > Autre Infos: recupererOperateurs:Taille liste > 1 Infos: recupererOperateurs:Test taille liste = 0 > false Infos: recupererOperateurs:Mapping > [com.sgg.entities.Operateur@26cdda] Infos: Map empty ... Infos: onOperateurDrop:Mapping > [com.sgg.entities.Operateur@26cddb]
Techs utilisées : Glassfish 4, JSF 2.2.4 (+Primefaces), JPA 2 (eclipselink), JEE 7
Partager