Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [GWT]Problema metodo onClick su una DialogBox

    Buongiorno ragazzi.Dopo esser riuscito a capire il funzionamento di un progetto Gwt ora ho un problema con gli eventi in GWT.La mia applicazione consiste nella realizzazione di tre test,dove 2 di questi testi riguardano lo scambio di dati via TCP e Udp tra 2 client ed uno il prelevare le informazioni,quindi memoria,processore ecc.. da un solo client.Il progetto l'ho organizzato in questo modo:

    nel RootPanel sono andato ad inserire i 3 bottoni che mi rappresentano questi test.Una volta premuto uno di questi bottoni,la mia applicazione svolge una chiamata asincrona verso il server che mi restitutisce una DialogBox,formata un Absolute Panel dove all'interno ci sono i bottoni 3 text e 3 bottoni per ogniuno dei 3 client disponibili.Ora se scelgo il primo test,dovrei selezionare uno tra i 3 client disponibili sulla dialog box e subito dopo aver selezionato svolgere la chiamata asincrona verso il server con il test ed il client scelto.Questo dentro il metodo onClick che assegno a 3 pulsanti riesco a realizzarlo.Il problema sorge quando scelgo i restanti 2 test dove devo scegliere non un client ma bensi una coppia di client.

    Io so che il metodo onClick parte ogni volta che viene premuto un bottone.Vorrei far in modo di scegliere i 2 client in modo tale da inviare tutti e 2 al server tramite la chiamata asincrona.Qualcuno ha qualche idea?Mi postreste spiegare meglio come funziona il metodo onCLick? Il dubbio che poi mi viene è che non è che la chiamata asincrona verso il server per far partire il test la devo fare nell'handler relativo al test e con il quale mi compare la dialogBox con i client registrati?

  2. #2
    Questo è il metodo onClick assegnato ai bottoni della dialogBox.Questa è la versione per la scelta di un solo client,che funziona.

    /**
    * Metodo privato che viene utilizzato in onClick per sapere quale evento,di conseguenza pulsante,si è verificato
    * nella dialog box e restituire l'identificatore client associato a quel pulsante.
    *
    *
    */

    private void clientSelezionatoDaFinestra(Button bottoneSelezionato){





    /**
    * Qui viene prelevato il test che l'utente ha scelto.
    *
    */

    /**
    Qui prelevo il testo del bottone che viene passato come parametro.Il testo mi dice
    quale test è stato scelto e lo vado a confrontare con delle stringhe costanti per sapere il tipo di test scelto.
    */
    nomeBottoneTest=bottoneTestSelezionato.getText();

    System.out.println("Il test selezionato e:"+nomeBottoneTest);


    /**
    * Qui viene controllato se il test selezionato è info pc.Se così è poi si preleva quale client ha scelto l'utente e si invia al server
    * per la richiesta.
    *
    */

    if(nomeBottoneTest.equals(nomeBottoneTestInfopc)){
    System.out.println("Entrato nel if infoPc.");

    /**
    * Il test selezionato è infoPc.Ora si va a prelevare dalla finestra il client scelto dall'utente per il test.
    */


    if(bottoneSelezionato.equals(bottonePrimoClient)){


    System.out.println("Entrato nel if bottonePrimoClient.");


    /**
    Significa che è stato premuto il pulsante relativo al primo client client.Quindi e lui il prescelto per il test
    */

    clientScelto=primoIdClientReg;
    primoClientSelezionato=clientScelto;
    System.out.println("Il client scelto per il test infoPc e :"+primoClientSelezionato);

    bottonePrimoClient.setEnabled(false);
    dbClientReg.setVisible(false);

    /**
    * Qui vengono inviati al server tutti i dati relativi al test ed eseguito il test.
    *
    */

    /**
    * * Ora viene inviata la richiesta al server.
    *
    */



    serviziOfferti.invioTestScelto(InfoPC, primoClientSelezionato, null, new AsyncCallback<ContenitoreMessaggi>() {

    @Override
    public void onFailure(Throwable caught) {
    // TODO Auto-generated method stub
    /**
    *Qui devo decidere cosa ritornare nel caso in cui la chiamata asincrona fallisce.
    */

    FinestraErroreChiamataAsincrona errore=new FinestraErroreChiamataAsincrona();

    System.out.println("Entrato nel metodo onFailure di inivoTestScelto");
    }

    @Override
    public void onSuccess(ContenitoreMessaggi contenitore) {
    // TODO Auto-generated method stub
    /**
    * Qui vado a visualizzare i risultati del test.Prelevo il messaggio con
    * i risultati del test informazione Pc dal contenitore dei messaggi.
    *
    */
    MessaggioRisultatiPrimaFunzionalita risultatiTestInfoPc=contenitore.getMessaggioRisult atiPrimaFunzionalita();

    System.out.println("Entrato nel metodo onSuccess di inivoTestScelto");

    FinestraRisultatiTestInfoPC risultatiInfoPc=new FinestraRisultatiTestInfoPC(risultatiTestInfoPc);



    }


    });


    }

    /**
    *
    *Se non è stato selezionato il primo client vediamo se è stato selezionato il secondo.
    *
    */




    if(bottoneSelezionato.equals(bottoneSecondoClient) ){


    System.out.println("Entrato nel if bottoneSecondoClient.");


    /**
    Significa che è stato premuto il pulsante relativo al secondo client client.Quindi e lui il prescelto per il test
    */

    clientScelto=secondoIdClientReg;
    primoClientSelezionato=clientScelto;
    System.out.println("Il client scelto per il test infoPc e :"+primoClientSelezionato);

    bottoneSecondoClient.setEnabled(false);
    dbClientReg.setVisible(false);

    /**
    * Qui vengono inviati al server tutti i dati relativi al test ed eseguito il test.
    *
    */

    /**
    * * Ora viene inviata la richiesta al server.
    *
    */



    serviziOfferti.invioTestScelto(InfoPC, primoClientSelezionato, null, new AsyncCallback<ContenitoreMessaggi>() {

    @Override
    public void onFailure(Throwable caught) {
    // TODO Auto-generated method stub
    /**
    *Qui devo decidere cosa ritornare nel caso in cui la chiamata asincrona fallisce.
    */

    FinestraErroreChiamataAsincrona errore=new FinestraErroreChiamataAsincrona();

    System.out.println("Entrato nel metodo onFailure di inivoTestScelto");
    }

    @Override
    public void onSuccess(ContenitoreMessaggi contenitore) {
    // TODO Auto-generated method stub
    /**
    * Qui vado a visualizzare i risultati del test.Prelevo il messaggio con
    * i risultati del test informazione Pc dal contenitore dei messaggi.
    *
    */
    MessaggioRisultatiPrimaFunzionalita risultatiTestInfoPc=contenitore.getMessaggioRisult atiPrimaFunzionalita();

    System.out.println("Entrato nel metodo onSuccess di inivoTestScelto");

    FinestraRisultatiTestInfoPC risultatiInfoPc=new FinestraRisultatiTestInfoPC(risultatiTestInfoPc);



    }


    });


    }

    /**
    * Se non è stato selezionato nel il primo nel il secondo client vediamo se è stato selezionato il terzo.
    *
    *
    */


    if(bottoneSelezionato.equals(bottoneTerzoClient)){


    System.out.println("Entrato nel if bottoneTerzoClient.");


    /**
    Significa che è stato premuto il pulsante relativo al primo client client.Quindi e lui il prescelto per il test
    */

    clientScelto=terzoIdClientReg;
    primoClientSelezionato=clientScelto;
    System.out.println("Il client scelto per il test infoPc e :"+primoClientSelezionato);

    bottoneTerzoClient.setEnabled(false);
    dbClientReg.setVisible(false);

    /**
    * Qui vengono inviati al server tutti i dati relativi al test ed eseguito il test.
    *
    */

    /**
    * * Ora viene inviata la richiesta al server.
    *
    */



    serviziOfferti.invioTestScelto(InfoPC, primoClientSelezionato, null, new AsyncCallback<ContenitoreMessaggi>() {

    @Override
    public void onFailure(Throwable caught) {
    // TODO Auto-generated method stub
    /**
    *Qui devo decidere cosa ritornare nel caso in cui la chiamata asincrona fallisce.
    */

    FinestraErroreChiamataAsincrona errore=new FinestraErroreChiamataAsincrona();

    System.out.println("Entrato nel metodo onFailure di inivoTestScelto");
    }

    @Override
    public void onSuccess(ContenitoreMessaggi contenitore) {
    // TODO Auto-generated method stub
    /**
    * Qui vado a visualizzare i risultati del test.Prelevo il messaggio con
    * i risultati del test informazione Pc dal contenitore dei messaggi.
    *
    */
    MessaggioRisultatiPrimaFunzionalita risultatiTestInfoPc=contenitore.getMessaggioRisult atiPrimaFunzionalita();

    System.out.println("Entrato nel metodo onSuccess di inivoTestScelto");

    FinestraRisultatiTestInfoPC risultatiInfoPc=new FinestraRisultatiTestInfoPC(risultatiTestInfoPc);



    }


    });


    }






    }



    }




    }



    @Override
    public void onClick( final ClickEvent sceltaClient) {


    /**
    * Come prima cosa mi faccio ridare l'evento derivante dalla
    pressione del pulsante.

    */
    final Button bottonePremuto=(Button) sceltaClient.getSource();


    clientSelezionatoDaFinestra(bottonePremuto);

    }

    public void visibilitaDialogBox(){
    dbClientReg.setVisible(true);
    }

    public void invisibilitaDialogBox(){

    dbClientReg.setVisible(false);
    }

    }


    [/CODE]

  3. #3
    Io vorrei fare qualcosa di simile per gli altri 2 test quando prelevo le coppie di client.

    Avete qualche idea?

    Ringrazio anticipatamente chiunque mi aiuti.

    Un saluto.

    Alessandro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.