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 :

Problème de GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut Problème de GWT
    salut tt le monde je suis en train de realiser un projet gwt mais je suis bloqué sur un machin bizare au niveau d'une classe TavlGeofincingRule et plus precisament au niveau de la fonction RechercheButton.addClickHandler(new ClickHandler() { }

    c'est une fonction qui fait une recherche apres le debug elle retourne le résultat souhaité comme elle ne peux rien retournée
    chwi bloqué sur ce truc ca fait 15 jours et mon patron me presse trop je sais pas quoi faire aidez moi

    voila le code source de la classe qui contien la methode RechercheButton.addClickHandler(new ClickHandler() { } :


    ////////////////////////////////////////////////////////////////////////parcourir par geofencing Configuration/////////////////////////////////////////////////////////
    RechercheButton.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
    // retourner les geofencingRuleId **/
    compteur=0;
    rechercheGeofencings.clear();
    textItem3. clearValue();
    textItem.clearValue();
    textItem1.clearValue();
    checkboxItem2.clearValue();
    radioGroupItem.clearValue();
    geofincingGrid.deselectAllRecords();
    map.clearOverlays();

    label.setContents("");
    previousButton.setDisabled(true);
    SuprimerButton.setDisabled(true);
    UpdateButton.setDisabled(true);
    FixerButton.setVisible(false);
    ModifierButton.setVisible(false);
    GeofencingRuleServiceAsync ruleServiceAsync=GeofencingRuleServiceAsync.Util.getInstance();
    ruleServiceAsync.getGeofencingIdByObject(tavlObject.getSelectedRecord().getAttributeAsInt("id"), new AsyncCallback<List<GeofencingRuleDTO>>() {


    @Override
    public void onFailure(Throwable arg0) {


    }




    @Override
    public void onSuccess(List<GeofencingRuleDTO> arg0) {


    label.setVisible(true);
    nextButton.setVisible(true) ;
    previousButton.setVisible(true);
    geofincingButton.setVisible(false) ;
    SuprimerButton.setVisible(true);
    UpdateButton.setVisible(true);
    final int longeur=arg0.size();
    longeurClass=longeur;
    int tailleGeofencingRule= arg0.size();
    int[] geofencingRuleId=new int[tailleGeofencingRule];
    for( int s=0;s<tailleGeofencingRule;s++){

    final RechercheGeofencing rechercheGeofencing=new RechercheGeofencing();
    geofencingRuleId[s]=arg0.get(s).getGeofencingRuleId();
    final String GeofencingName=arg0.get(s).getName();
    final int valeur=geofencingRuleId[s];
    final int[] verseau = new int[30];


    // retourner les TavlObjectId
    TavlObjectServiceAsync objectServiceAsync=TavlObjectServiceAsync.Util.getInstance();
    objectServiceAsync.getObjectByGeofencingId(valeur, new AsyncCallback<List<TavlObjectDTO>>() {

    @Override
    public void onFailure(Throwable arg1) {


    }

    @Override
    public void onSuccess(List<TavlObjectDTO> arg1) {

    int taille3= arg1.size();
    final int[] tavlObjectId;
    tavlObjectId=new int[taille3];
    for(int h=0;h<taille3;h++){
    tavlObjectId[h]=arg1.get(h).getObjectId();
    verseau[h]=tavlObjectId[h];

    }
    }


    });
    // ici la requette de recherche pour chaque zone et sa propre Polygon

    ZoneServiceAsync async= ZoneServiceAsync.Util.getInstance();
    async.getZoneByGofincingId(geofencingRuleId[s], new AsyncCallback<List<ZoneDTO>>() {

    @Override
    public void onFailure(Throwable arg2) {


    }

    @Override
    public void onSuccess(List<ZoneDTO> arg2) {


    final int TableForPolygon=arg2.get(0).getZoneId();
    final String ZoneName=arg2.get(0).getName();
    final String Comment=arg2.get(0).getComment();
    final int InOut=arg2.get(0).getType();

    PolygonZoneServiceAsync polygonZoneServiceAsync=PolygonZoneServiceAsync.Util.getInstance();
    polygonZoneServiceAsync.getPolygonByZoneId(TableForPolygon, new AsyncCallback<List<PolygonZoneDTO>>() {

    @Override
    public void onFailure(Throwable arg3) {


    }

    @Override
    public void onSuccess(List<PolygonZoneDTO> arg3) {

    rechercheGeofencing.setGeofencingId(valeur);
    rechercheGeofencing.setGeofencingName(GeofencingName);
    rechercheGeofencing.setObjectId(verseau);
    rechercheGeofencing.setZoneId(TableForPolygon);
    rechercheGeofencing.setZoneName(ZoneName);
    rechercheGeofencing.setComment(Comment);
    rechercheGeofencing.setInOut(InOut);

    int taille4= arg3.size();
    int[] polygonZoneId=new int[taille4];
    float[] X=new float[taille4] ;
    float[] Y=new float[taille4] ;
    for(int w=0;w<taille4;w++){
    polygonZoneId[w]=arg3.get(w).getPolygonZoneId();
    X[w]=arg3.get(w).getX();
    Y[w]=arg3.get(w).getY();
    rechercheGeofencing.setPolygonZoneId(polygonZoneId);
    rechercheGeofencing.setX(X);
    rechercheGeofencing.setY(Y);
    // rechercheGeofencings.add(rechercheGeofencing);
    }
    rechercheGeofencings.add(rechercheGeofencing); // objet 17 le 134 fine kayemchi pourtatn kayna 3 dans longeur
    compt++;
    if(compt==longeurClass){

    //lahnaya 1er resulta de recherche/////////////////////////////////////////////////////
    if(!rechercheGeofencings.isEmpty()){
    int delimiteur= rechercheGeofencings.size();
    label.setContents((compteur+1)+"/"+delimiteur);
    geofincingGrid.deselectAllRecords();
    RechercheGeofencing geofencing1=new RechercheGeofencing();
    geofencing1=rechercheGeofencings.get(compteur);
    textItem3.setDefaultValue(geofencing1.getGeofencingName()) ;
    textItem.setDefaultValue(geofencing1.getZoneName());
    textItem1.setDefaultValue(geofencing1.getComment());
    checkboxItem2.setDefaultValue(geofencing1.getInOut());
    radioGroupItem.setDefaultValue(geofencing1.getInOut());


    for(int y=0;y<geofencing1.ObjectId.length;y++){
    Record record =new Record();
    if(geofencing1.ObjectId[y]!=0){
    record=geofincingGrid.getRecordList().find("id", geofencing1.ObjectId[y]);
    geofincingGrid.selectRecord(record);//verifiha
    }
    }

    //parcourir les polygons sur carte

    int color=rechercheGeofencings.get(compteur).getInOut();
    float[] X1= rechercheGeofencings.get(compteur).getX();
    float[] Y1= rechercheGeofencings.get(compteur).getY();
    int longeur=X1.length;
    LatLng[] lngs=new LatLng[longeur];
    map.clearOverlays();
    for(int r=0;r<longeur-1;r++){
    double latt=(double)X1[r];
    double longg=(double)Y1[r];

    LatLng overlay=LatLng.newInstance(latt, longg);
    lngs[r]=overlay;

    if(r==lngs.length-2){
    if(color==0){
    Polygon polygon5=new Polygon(lngs,"red",1,1.0,"red",0.1);
    map.addOverlay(polygon5);

    }
    if(color==1){
    Polygon polygon5=new Polygon(lngs,"lime",1,1.0,"lime",0.1);
    map.addOverlay(polygon5);
    }

    }



    }
    compteur++;
    compt=0;


    }

    //////////////////////////////////////////////////////////////
    }
    }


    });

    }


    });


    } //end of for



    }
    });



    }
    });

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    bonjour,

    il faut que tu nous dises quel est le problème ... sinon on ne peut pas faire grand chose.

    De plus utilises la balise code (bouton #) pour rendre plus lisible ton post.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    salut In le problème c'est que ma recherche me retourne 2 résultats de List<GeofencingRuleDTO> alors ya un for qui doit looper 2 fois et a chaque fois elle doit exécuter la fonction objectServiceAsync1 .getObjectByGeofencingId(valeur,
    new AsyncCallback<List<TavlObjectDTO>>() { et passe au traitement suivant mais le problème elle loupe 2 fois successive avant de passer au traitement suivant dans la même boucle

    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
    RechercheButton.addClickHandler(new ClickHandler() {
     
    			@Override
    			public void onClick(ClickEvent event) {
    				// retourner les geofencingRuleId **/
     
    				compteur = 0;				
    				geofincingGrid.deselectAllRecords();
    				map.clearOverlays();
    				label.setContents("");
    				previousButton.setDisabled(true);
    				SuprimerButton.setDisabled(true);
    				UpdateButton.setDisabled(true);
    				FixerButton.setVisible(false);
    				ModifierButton.setVisible(false);
     
    				ruleServiceAsync1.getGeofencingIdByObject(tavlObject.getSelectedRecord().getAttributeAsInt("id"),
    						new AsyncCallback<List<GeofencingRuleDTO>>() {
     
    							@Override
    							public void onFailure(Throwable arg0) {
     
    							}
     
    							@SuppressWarnings("unused")
    							@Override
    							public void onSuccess(List<GeofencingRuleDTO> arg0) {
     
    								label.setVisible(true);
    								nextButton.setVisible(true);
    								previousButton.setVisible(true);
    								geofincingButton.setVisible(false);
    								SuprimerButton.setVisible(true);
    								UpdateButton.setVisible(true);
    								int longeur = arg0.size();
    								longeurClass = longeur;
    								int tailleGeofencingRule = arg0.size();
    								int[] geofencingRuleId = new int[tailleGeofencingRule];
     
    								for (int s = 0; s < tailleGeofencingRule; s++) {
     
    									final RechercheGeofencing rechercheGeofencing = new RechercheGeofencing();
    									geofencingRuleId[s] = arg0.get(s).getGeofencingRuleId();
    									final String GeofencingName = arg0.get(s).getName();
    									final int valeur = geofencingRuleId[s];
    									final int[] verseau = new int[30];
     
    									// retourner les TavlObjectId
     
    									objectServiceAsync1	.getObjectByGeofencingId(valeur,
    													new AsyncCallback<List<TavlObjectDTO>>() {
     
    														@Override
    														public void onFailure(Throwable arg1) {
     
    														}
     
    														@Override
    														public void onSuccess(List<TavlObjectDTO> arg1) {
     
     
    															int taille3 = arg1.size();
    															final int[] tavlObjectId;
    															tavlObjectId = new int[taille3];
    															for (int h = 0; h < taille3; h++) {
    																tavlObjectId[h] = arg1.get(h).getObjectId();
    																verseau[h] = tavlObjectId[h];
     
    															}
    														}
     
    													});
     
                                        //	Continuation de traitemen .........................	
     
    				                            } // end of for
     
    							}
    						});
     
    			}
    		});

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    getGeofencingIdByObject et getObjectByGeofencingId sont des appels asynchrones. Le onSuccess s'éxecute en retour mais on en sait pas vraiment quand. En plus ils sont imbriqués. Tout est en place pour que tu ne saches pas ce qu'il se passe.

Discussions similaires

  1. Problème lancement GWT
    Par Beruboy dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 19/02/2010, 16h14
  2. problème avec GWT:did you forget to inherit a required module
    Par riadhhwajdii dans le forum GWT et Vaadin
    Réponses: 10
    Dernier message: 03/02/2010, 15h42
  3. Problème TabPanel GWT
    Par CcHhUu dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 05/08/2009, 15h23
  4. Problème avec Gwt 1.6
    Par Erazion dans le forum GWT et Vaadin
    Réponses: 8
    Dernier message: 22/04/2009, 17h01
  5. [débutant] problème archive GWT sous linux
    Par Koma dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 24/12/2008, 11h30

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