javaee:td6:partie2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
javaee:td6:partie2 [2013/12/12 17:58] – [5- Action par défaut] jcheronjavaee:td6:partie2 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 108: Ligne 108:
  
 <html><div class="todo">Tester la page des entreprises, et l'affichage des informations de détail sur changement de la sélection (en bleu)</div></html> <html><div class="todo">Tester la page des entreprises, et l'affichage des informations de détail sur changement de la sélection (en bleu)</div></html>
 +=== Débogage éventuel ===
 +== Mode debug ==
 +
 +Utiliser le mode debug, si le résultat n'est pas conforme à celui attendu :
 +  * mettre **debug=true** dans le fichier **config.ko**,
 +  * redémarrer l'application (avec classes.main),
 +  * rafraîchir la page concernée :
 +
 +Il est alors possible de visualiser les inclusions ajax chargées, et leurs dépendances.
 +
 +{{:j2ee:td6:objlistentrepdebug.png?300|}}
 +
 +== Site map ==
 +L'adresse http://127.0.0.1:8080/kotd6/siteMap.main permet également de visualiser la logique des inclusions ajax :
 +
 +{{:j2ee:td6:sitemapmain.png?300|}}
  
 ==== -- Corrections sur l'affichage de la vue ==== ==== -- Corrections sur l'affichage de la vue ====
Ligne 143: Ligne 159:
 {{:j2ee:td6:objlistentrepdisplay2.png?|}} {{:j2ee:td6:objlistentrepdisplay2.png?|}}
 ===== -- Formulaire de modification d'entreprise ===== ===== -- Formulaire de modification d'entreprise =====
 +
 +{{:j2ee:td6:objlistentrep3.png?|}}
  
 ==== -- Création du formulaire ==== ==== -- Création du formulaire ====
Ligne 356: Ligne 374:
  
   * Vérifier que le masque du template entreprise.list contient bien un champ **F2** (on aurait pu lui donner un non quelconque totalement différent)   * Vérifier que le masque du template entreprise.list contient bien un champ **F2** (on aurait pu lui donner un non quelconque totalement différent)
 +
 +<sxh tpl;title:WEB-INF/list/entreprises.list;highlight[7,8]>
 +{#func:this.setEditable(false)#}
 +{#func:this.addSelector(113)#}
 +{#func:this.setFiltreCaption("Rechercher une entreprise")#}
 +{#set:this.ajaxIncludes=true#}
 +{#set:this.isShowCaption=true#}
 +{#set:this.listContentUrl="entreprises.do"#}
 +{#mask:<td>{rs}</td><td>{adresse}</td><td>{ville}</td><td>{evaluations}</td><td>{F2}</td>#}
 +{#mask:<td>{rs}</td><td>{adresse}</td><td>{ville}</td><td>{evaluations}</td><td>{F2}</td>#}
 +{_ajx}
 +{_listContent}
 + {_filtre}
 + {_page}
 + <div class="boxButtons">{_pageCounter}{_navBarre}</div>
 +{/_listContent}
 +<div id="detail" style="display:none"></div>
 +</sxh>
 +
 +  * Surdéfinir les méthodes suivantes de EntrepriseDisplay :
 +    * **getCaption** pour modifier l'étiquette (en-tête de colonne) du champ **F2** (le rendre invisible)
 +    * **showInlist** pour faire en sorte que le champ F2 soit un span de classe css **default**
  
 <sxh java;title:net.display.EntrepriseDisplay> <sxh java;title:net.display.EntrepriseDisplay>
Ligne 379: Ligne 419:
 } }
 </sxh> </sxh>
-==== Modification sur les classes ==== 
  
 +  * Ajouter le comportement sur les éléments de la classe css **default** : le clic sur un élément de la classe **default** provoque le clic sur le bouton **updateEntreprise**, et édite donc l'entreprise sélectionnée.
 +<sxh java;title:net.display.EntrepriseDisplay>
 + <ajax-includes>
 + ...
 + <request requestURL="entreprises{#(.*?)#}.do">
 + ...
 + <js triggerSelector="#list-KEntreprise .default">
 + <fireEvent triggerId="btUpdateEntreprise"/>
 + </js>
 + ...
 + </request
 + ...
 + </ajax-includes>
 +</sxh>
  
 +<html><div class="todo">Tester le comportement implémenté, et notamment le bon fonctionnement de la touche <b>F2</b> du clavier, sans oublier au préalable le redémarrage de l'application (à partir de <b>classes.main</b>)</div></html>
 +
 +===== -- Boîte de message et suppression =====
 +Il s'agit maintenant de permettre la suppression d'une entreprise, sur frappe de la touche **SUPPR** du clavier (code 46), en ayant au préalable un message de confirmation.
 +
 +<sxh xml;title:conf/mox.xml>
 + <ajax-includes>
 + ...
 + <request requestURL="entreprises{#(.*?)#}.do">
 + ...
 + <js triggerSelector="document" triggerEvent="keyup" keyCode="46">
 + <messageDialog title="Suppression d'entreprise" transition="rotation10">
 + <button caption="Oui">
 + <deleteOne virtualURL="deleteEntrep.do" kobjectShortClassName="KEntreprise" targetId="_ajx">
 + <include targetURL="entreprisesRefresh.do" targetId="_ajxContent"/>
 + </deleteOne>
 + <function script="return true;"/>
 + </button>
 + <button caption="Annuler">
 + <function script="return true;"/>
 + </button>
 + <message><![CDATA['Supprimer l\'entreprise <b>'+Forms.Utils.getFirstChild($('list-KEntreprise').selector.getSelectedElement(),'td').innerHTML+'</b> ?'
 + ]]></message>
 + </messageDialog>
 + </js>
 + ...
 + </request>
 + ...
 + </ajax-includes>
 +</sxh>
 +
 +  * L'inclusion ajax **messageDialog** permet d'afficher une boîte de message,
 +  * munie dans le cas présent de 2 boutons :
 +    * le bouton **"Oui"** confirme la suppression :
 +      * il fait appel à l'inclusion **deleteOne**, qui supprime l'entreprise sélectionnée dans la liste
 +      * puis rafraîchit la liste des entreprises
 +      * et ferme enfin la boîte de dialogue (**return false;**)
 +    * le bouton **"Annuler"** ferme la boîte de dialogue
 +
 +Ajouter les 2 mappings utilisés dans mox.xml :
 +
 +<sxh xml;title:conf/mox.xml>
 + <mappings>
 + ...
 + <mapping requestURL="entreprisesRefresh.do" responseURL="/WEB-INF/list/entreprise.list" queryString="_refresh=true"/>
 + <virtualMapping mappingFor="deleteOne" requestURL="deleteEntrep.do"/>
 + ...
 + <mappings>
 +</sxh>
 +===== -- Affichage des évaluations =====
  
 Sur la liste des entreprises : Sur la liste des entreprises :
-  - Activer les touches clavier (sans permettre l'édition) 
   - Modifier la classe **KEntreprise** pour qu'elle charge automatiquement ses évaluations   - Modifier la classe **KEntreprise** pour qu'elle charge automatiquement ses évaluations
-  - Créer un Display **net.display.EntrepriseDisplay** pour afficher les évaluations dans la liste (méthode showInList à surdéfinir)+  - Modifier le Display **net.display.EntrepriseDisplay** pour afficher les évaluations dans la liste (méthode showInList à modifier)
     - la colonne Évaluations doit faire apparaître la liste des évaluations (leur date uniquement)     - la colonne Évaluations doit faire apparaître la liste des évaluations (leur date uniquement)
     - Un clic sur 1 évaluation doit faire apparaître dans une boîte de dialogue l'évaluation cliquée. Il faudra à cet effet :     - Un clic sur 1 évaluation doit faire apparaître dans une boîte de dialogue l'évaluation cliquée. Il faudra à cet effet :
  • javaee/td6/partie2.1386867529.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)