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 :

Passer information dialogBox à Panel


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut Passer information dialogBox à Panel
    Bonjour,

    Sur ma page principal, lorsque que je clique sur un bouton, Une dialogBox apparait me demandant un mot de passe et un nom d'utilisateur.

    J'aimerai lorsque l'utilisateur est reconnu afficher son nom sur le panel principal dans le label prévu pour sa. Mais du coup comment je transmet des informations à mon Panel ?

    Merci

  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 y a de nombreuses possiblités pour ce genre de besoin.
    difficile de t'aider avec si peu d'information.

    En tous cas ce qui est sûr c'est qu'il faut passer par un mécanisme Java, par exemple en utilisant une méthode setUserName() que tu as créé dans la classe qui contient ton panel.

    Pour un projet plus complexe, on passera par une solution plus "structurée" à base de MVP et UIBinder.

    Montre nous le bout de code qui te pose problème, ça sera plus facile ...

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    Voici quelques informations complémentaires :

    Voici mon login.ui.xml
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
    <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
     
    	<ui:with field='res' type='net.nandleon.AgenceVoyage.client.ressources.Ressources'/>
     
    	<!-- ui:image field='logo' src='logo-login.gif' /-->
     
    		<g:DialogBox animationEnabled="true" modal="true" glassEnabled="true" >
    			<g:caption styleName="{res.uiLoginStyle.title}"><center><b>Authentification</b></center></g:caption>
    			<g:HTMLPanel>
    			<div class="{res.uiLoginStyle.form}">
    				<p>
    					<g:Label>Login</g:Label>
    					<g:TextBox styleName="{res.uiLoginStyle.input}" ui:field="labelLogin" />
    				</p>
    				<p>
    					<g:Label>Password</g:Label>
    					<g:TextBox styleName="{res.uiLoginStyle.input}" ui:field="labelPassword" />
    				</p>
    				<p class="{res.uiLoginStyle.submit}">
    					<g:Button styleName="{res.uiLoginStyle.button}" ui:field="buttonConnect">Connect</g:Button>
    				</p>
    			</div>
     
    		</g:HTMLPanel>
    	</g:DialogBox >
     
     
    </ui:UiBinder>
    Puis mon login.java

    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
    package net.nandleon.AgenceVoyage.client.login;
     
    import net.nandleon.AgenceVoyage.client.ressources.Ressources;
    import net.nandleon.AgenceVoyage.client.services.LoginService;
    import net.nandleon.AgenceVoyage.client.services.LoginServiceAsync;
     
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.uibinder.client.UiBinder;
    import com.google.gwt.uibinder.client.UiFactory;
    import com.google.gwt.uibinder.client.UiField;
    import com.google.gwt.uibinder.client.UiHandler;
    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.ui.*;
     
     
    public class Login extends DialogBox  {
     
    	private static final Binder binder = GWT.create(Binder.class);
    	interface Binder extends UiBinder<Widget, Login> {}
        private final LoginServiceAsync loginService = GWT.create(LoginService.class);
        static {
        	Ressources.INSTANCE.uiLoginStyle().ensureInjected();  
        }
     
    	@UiField
    	TextBox labelLogin;
     
    	@UiField
    	TextBox labelPassword;
     
    	@UiField
    	Button buttonConnect;
     
     
    	public Login() {
     
    		binder.createAndBindUi(this);
     
    	}
     
    	@UiFactory
    	  DialogBox thatsJustMe() {
    	     // UiBinder will call this to get a DialogBox instance
    	     // and this is the DialogBox instance we want to use
    	     return this;
    	  }
     
     
    	@UiHandler("buttonConnect")
    	  void handleClick(ClickEvent e) {
     
                loginService.login(labelLogin.getValue(), labelPassword.getValue(),
                        new AsyncCallback<String>() {
                            @Override
                            public void onFailure(Throwable caught) {
                                Window.alert("Server communication error");
                            }
     
                            @Override
                            public void onSuccess(String result) {
                                Window.alert(result);
                                hide();
     
     
                            }
                        });
     
    	  }
     
     
    }

    Puis mon accueil.ui.xml

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
    <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
     
    	<ui:with field='res' type='net.nandleon.AgenceVoyage.client.ressources.Ressources'/>
     
        <g:DockLayoutPanel unit='EM' addStyleNames="{res.uiAccueilStyle.fullscreen}">
     
           <g:north size='13'>
             <g:FlowPanel styleName="{res.uiAccueilStyle.northPanel}">
              	<g:Image resource='{res.logo}' styleName="{res.uiAccueilStyle.imageBanniere}" />
             </g:FlowPanel>
           </g:north>
     
           <g:west size='10'>
             <g:FlowPanel styleName="{res.uiAccueilStyle.westPanel}">
                <g:MenuBar vertical="true" styleName="{res.uiAccueilStyle.menuBar}" >
    		       <g:MenuItem>Activités</g:MenuItem>
    		       <g:MenuItem>Logements</g:MenuItem>
    		       <g:MenuItem>Transports</g:MenuItem>
    		       <g:MenuItem>Lieux</g:MenuItem>
    		     </g:MenuBar>
             </g:FlowPanel>
           </g:west>
     
           <g:center>
             <g:FlowPanel styleName="{res.uiAccueilStyle.centerPanel}">
             <g:FocusPanel ui:field="connexionPanel">
              <g:VerticalPanel styleName="{res.uiAccueilStyle.connexionPanel}" >
                     <g:Label text="Espace Client" styleName="{res.uiAccueilStyle.labelTitreEspaceClient}"/>
                     <g:Label text="Connexion" styleName="{res.uiAccueilStyle.labelSousTitreEspaceClient}"/>   
     
                </g:VerticalPanel>
                </g:FocusPanel>   
             </g:FlowPanel>
           </g:center>
     
            <g:south size="5">
             <g:FlowPanel styleName="{res.uiAccueilStyle.southPanel}">
               <g:Label>This is the SOUTH panel</g:Label>
             </g:FlowPanel>
            </g:south>
         </g:DockLayoutPanel>
     
    </ui:UiBinder>
    et mon accueil.java
    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
    package net.nandleon.AgenceVoyage.client.accueil;
     
     
    import net.nandleon.AgenceVoyage.client.login.Login;
    import net.nandleon.AgenceVoyage.client.ressources.Ressources;
     
    import com.allen_sauer.gwt.log.client.Log;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.uibinder.client.UiBinder;
    import com.google.gwt.uibinder.client.UiField;
    import com.google.gwt.uibinder.client.UiHandler;
    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.google.gwt.user.client.ui.Composite;
    import com.google.gwt.user.client.ui.FocusPanel;
    import com.google.gwt.user.client.ui.Panel;
    import com.google.gwt.user.client.ui.Widget;
     
    public class Accueil extends Composite {
     
    	private static final Binder binder = GWT.create(Binder.class);
    	interface Binder extends UiBinder<Widget, Accueil> {}
        static {
        	Ressources.INSTANCE.uiAccueilStyle().ensureInjected();  
        }
     
        @UiField
        FocusPanel connexionPanel;
     
    	public Accueil(){
    		initWidget(binder.createAndBindUi(this));
    	}
     
     
    	@UiHandler("connexionPanel")
    	void handleClick(ClickEvent e){
    		Login wpForm = new Login();
    		wpForm.center();
     
     
    	  }
     
    }


    Mon but en faite c'est que ma dialogBox transmette des informations ( ex : le nom ) à la page accueil afin de mettre à jour un label par exemple "Bonjour Mr Bidule"

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    une petite idée ??

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    Bonjour,

    Moi je ferais ça tout simplement

    Label loginLabel = new Label();

    et ensuite je fais un loginLabel.setText(login.getNickName());

    Maxime

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    C'est pas sa mon problème, c'est comment passer des informations de mon dialogBox à mon panel principal ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer information C# -> HTML
    Par adibou666 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/01/2009, 12h55
  2. [CXF] Passer des informations dans le Header
    Par goldest dans le forum Services Web
    Réponses: 0
    Dernier message: 18/07/2008, 11h00
  3. Comment passer une information entre des threads ?
    Par TheCaribouX dans le forum C#
    Réponses: 10
    Dernier message: 31/03/2008, 14h29
  4. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  5. Passer d'un buttongroup à un panel
    Par JuLpM dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 30/07/2007, 17h58

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