IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

GXT + grid et loader


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Par défaut GXT + grid et loader
    Bonjour, j'utilise GXT avec GWT.
    J'aimerais afficher une table contenant des colonnes avec un grid etc.
    Les données sont contenues dans une bdd. Le probleme c'est que rien ne s'affiche et que je ne sais pas pq.

    Ici j'utilise un loader au lieu de définir un callback. Avec le loader rien ne s'affiche, avec le callback je recois bien une reponse de la bdd ce qui veut dire que le probleme ne vient pas de la.
    Voici la classe que j'ai implémenter. Dedans, on remarque un TestDataModel, il ne contient que les champs : int id, String nom, String prenom.
    Si qq sait m'aider à résoudre le probleme? 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
    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
     
    package client.Panels.GridPanel;
     
    import biz.manex.argf.core.datamodel.TestDataModel;
    import client.PortalServiceAsync;
    import com.extjs.gxt.ui.client.Registry;
    import com.extjs.gxt.ui.client.data.*;
    import com.extjs.gxt.ui.client.store.ListStore;
    import com.extjs.gxt.ui.client.widget.ContentPanel;
    import com.extjs.gxt.ui.client.widget.LayoutContainer;
    import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
    import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
    import com.extjs.gxt.ui.client.widget.grid.Grid;
    import com.extjs.gxt.ui.client.widget.grid.GridView;
    import com.extjs.gxt.ui.client.widget.layout.FitLayout;
    import com.google.gwt.user.client.rpc.AsyncCallback;
     
    import java.util.ArrayList;
    import java.util.List;
     
    /**
     * Created by IntelliJ IDEA.
     * User: emeric
     * Date: 24-mars-2010
     * Time: 20:46:32
     */
    public class TestPanel extends LayoutContainer {
    	private final PortalServiceAsync svc = (PortalServiceAsync)
    					Registry.get("portalService");
     
    	private ContentPanel cp;     // Contains all widgets
    	private ListLoader loader;
     
    	public TestPanel() {
    		cp = new ContentPanel();
    		cp.setLayoutOnChange(true);
    		start();
    	}
     
    	private void start() {
    		final List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    		ColumnConfig column = new ColumnConfig();
    		column.setId("id");
    		column.setHeader("id");
    		column.setWidth(100);
    		configs.add(column);
    		column = new ColumnConfig();
    		column.setId("nom");
    		column.setHeader("nom");
    		column.setWidth(100);
    		configs.add(column);
    		column = new ColumnConfig();
    		column.setId("prenom");
    		column.setHeader("prenom");
    		column.setWidth(100);
    		configs.add(column);
     
    		loader = getLoader();
    		final ListStore<BaseModel> store = new ListStore<BaseModel>(loader);
    		loader.load();
    		final ColumnModel cm           = new ColumnModel(configs);
    		final Grid<BaseModel> grid  = new Grid<BaseModel>(store, cm);
    		GridView view  = new GridView();
     
    		view.setAutoFill(true);
    		grid.setView(view);
    		grid.getView().setForceFit(true);
    		cp.setLayoutOnChange(true);
    		cp.setBodyBorder(false);
    		cp.setHeading("Test panel");
     
    		cp.setLayout(new FitLayout());
    		cp.setHeight(180);
    		cp.setAutoWidth(true);
    		grid.setAutoWidth(true);
    		grid.setStyleAttribute("borderTop", "none");
    		grid.setBorders(true);
    		grid.setStripeRows(true);
     
    		cp.add(grid);
    		store.commitChanges();
    		add(cp);
    	}
     
    	public LayoutContainer getWidget() {
    		return cp;
    	}
     
    	protected PagingLoader getLoader() {
    		BeanModelReader reader;
    		RpcProxy proxy;
     
    		proxy = new RpcProxy<List<TestDataModel>>() {
    			@Override
    			public void load(final Object loadConfig, final AsyncCallback<List<TestDataModel>> callback) {
    				svc.getAllTest(callback);
    			}
    		};
    		reader = new BeanModelReader();
    		loader = new BasePagingLoader(proxy, reader);
    		((BasePagingLoader) loader).setRemoteSort(true);
    		return (BasePagingLoader) loader;
    	}
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Essaye d'ajouter un listener sur ton Loader.
    Cela te permettra de voir si il y a une exception.

    Tu peut aussi redéfinir loaderLoad pour vois si les données sont bien récupérer.

    Est que ta classe métier TestDataModel implémente BeanModelTag??

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Par défaut
    Bonjour,

    Donc mon TestDataModel n'implémentait pas BeanModelTag, je l'ai rajouté, ce datamodel implémente aussi l'interface Serializable. Ce que j'ai en plus est une interface TestDataBeanModel de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package beanmodel;
     
    import biz.manex.argf.core.datamodel.TestDataModel;
    import com.extjs.gxt.ui.client.data.BeanModelMarker;
     
    @BeanModelMarker.BEAN(TestDataModel.class)
    public interface TestDataBeanModel extends BeanModelMarker {
     
    }
    J'ai rajouté un loaderLoadException sur mon loader et j'ai bien une exception qui est lancée. A l'aide du débugger, j'ai pu vérifier qu'aucune information n'était contenue dans le store.

    Voyez vous de quoi il pourrait s'agir?

    Merci d'avance

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Est ce que tu peux nous monter l'exception.
    tu peux aussi nous monter le code de ta classe TestDataModel .


    Citation Envoyé par ama_deo Voir le message
    Bonjour,

    Donc mon TestDataModel n'implémentait pas BeanModelTag, je l'ai rajouté, ce datamodel implémente aussi l'interface Serializable. Ce que j'ai en plus est une interface TestDataBeanModel de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package beanmodel;
     
    import biz.manex.argf.core.datamodel.TestDataModel;
    import com.extjs.gxt.ui.client.data.BeanModelMarker;
     
    @BeanModelMarker.BEAN(TestDataModel.class)
    public interface TestDataBeanModel extends BeanModelMarker {
     
    }
    J'ai rajouté un loaderLoadException sur mon loader et j'ai bien une exception qui est lancée. A l'aide du débugger, j'ai pu vérifier qu'aucune information n'était contenue dans le store.

    Voyez vous de quoi il pourrait s'agir?

    Merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Par défaut
    TestDataModel

    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
    package biz.manex.argf.core.datamodel;
     
    import com.extjs.gxt.ui.client.data.BeanModelTag;
     
    import java.io.Serializable;
     
    /**
     * Created by IntelliJ IDEA.
     * User: emeric
     * Date: 20-mars-2010
     * Time: 15:35:20
     */
    public class TestDataModel implements Serializable, BeanModelTag {
    	int id;
    	String nom;
    	String prenom;
     
    	public int getId() {
    		return id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	@Override
    	public String toString() {
    		return "[Test] id = " + id + " - Nom = " + nom + " - Prenom = " + prenom+"\n";
    	}
    }
    L'exception retournée dans la méthode loaderLoadException, en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(le.exception.toString());
    est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.google.gwt.user.client.rpc.StatusCodeException: The call failed on the server; see server log for details
    Pour information, les données coté serveur sont bien récupérées de la bdd, j'ai pu le vérifier en mode debug.

    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Ton erreur se produit coté serveur...
    Il faut afficher l'exception qui se produit coté serveur.

Discussions similaires

  1. Problème lignes vides avec GXT Grid
    Par pasiantiz dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 11/04/2011, 22h26
  2. GXT Grid+erreur java.lang.ClassCastException
    Par cyranno dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 03/11/2010, 06h53
  3. Réponses: 0
    Dernier message: 25/10/2010, 11h26
  4. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo