Les versions utilisés

  • gwtext-2.0.2 et gwtext-2.0.3
  • ext-2.0.2
  • gwt-linux-1.4.61

FormPanel en fileUpload

Récupération des états de transmission de formulaire

Depuis le GWT, on le FormListener ne récupère pas l'action onActionComplete. Ceci est sûrement un bug du GWT, car depuis les autres navigateurs IE et Firefox cela fonctionne.

Le Form . ErrorReader ne fonctionne pas avec Form . FileUpload mis à true

Il est n'est pas possible de récupérer (par exemple via JSON) le retour du servlet d'upload. Soit le masque d'attente tourne en boucle, soit le retour est proposé au téléchargement au lieu d'être interprété et de marquer certains champs en erreur. Form . ErrorReader doesn't work with Form . FileUpload set to true

Envoi d'un paramètre Url au format tableau

Lorsque l'on veut evonver un tableau d'objet en html, il est courant d'envoyer plusieurs fois la même variable identiquement nommée.

UrlParam[] params = new UrlParam[2];
 params [0] = new UrlParam("param", "value1");
 params [1] = new UrlParam("param", "value2");

Le souci étant que par ce biais on écrase les les valeurs. Heureusement changhua0313 a rajouter un constructeur paramètres acceptant un tableau de String qui vous permettra d'utiliser

UrlParam(String, String[])

Une autre alternative est de concaténer à l'envoi vos valeurs en les séparant par un caractère connu, par exemple ; ou , Ensuite sur votre servlet de faire l'opération inverse pour obtenir un tableau de valeurs.

Envoi d'un paramètre Url null

new UrlParam[] {
   new UrlParam("id",null)
}

Côté servlet, request.getParameter("id") vous retournera non pas null mais la String "null"

Store

setDefaultSort("monTri", SortDir.ASC); générera 2 paramètres dans votre url : sort=monTri et dir=ASC

Recharger un store,

  • soit vous n'utilisez la méthode store.load(start, limit) qui précise le début (start) et la limite (limit)
  • soit vous passez par le méthode qui déclare les paramètres store.load(params). Mais dans ce cas vous gardez uniquement le tri par défaut (définit par setDefaultSort). Et vous perdez la pagination. Le remède :
    • store.setBaseParams(baseParams) + store.(re)load()
    • store.setBaseParams(baseParams) + store.load(0,50)
    • store.setBaseParams(baseParams) + définir les 2 paramètres : start et limit correspondant à la méthode store.load(start, limit)
// Choisissez parmis les méthodes disponibles :
//					store.setBaseParams(baseParams)
//					store.load()
//					store.load(params)
//					store.load(start, limit)
//					store.load(params, add)
//					store.reload()
//					store.reload(params)
//					store.reload(params, add)

Colorier une cellule de d'une grille (pas avec l'attribut hml bgcolor mais avec l'attribut de style background)

new ColumnConfig() {
					{
						setHeader("MaColonne");
						setDataIndex("donneeColonne");
						setWidth(100);
						setSortable(true);
 
						setRenderer(new Renderer() {
 
							public String render(Object value,
									CellMetadata cellMetadata, Record record,
									int rowIndex, int colNum, Store store) {
 
								StringBuilder stringBuilder = new StringBuilder();
								stringBuilder.append(record.getAsString("colonneA")==null?"":(record.getAsString("colonneA")));
								if( record.getAsString("colonneB") != null )
									stringBuilder.append(" (Détail : "+record.getAsString("colonneB")+")");
 
 
								// TODO colorier la cellule
//								cellMetadata.setHtmlAttribute("bgcolor=\"red\"");
								cellMetadata.setHtmlAttribute("style=\"background:red;\"");
 
								return stringBuilder.toString();
							}
 
						});	
					}
				}