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

SWT/JFace Java Discussion :

Comment gérer l'action "Ok" dans un JFace dialog


Sujet :

SWT/JFace Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 98
    Points : 51
    Points
    51
    Par défaut Comment gérer l'action "Ok" dans un JFace dialog
    Salut !!

    Dans une partie de mon plugin j'ai besoin d'ouvrir un dialogue , pour le moment ma classe contient seulement ces méthodes

    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
    public class ma classe extends Dialog {
     
    	/**
             * Create the dialog.
             * @param parentShell
             */
    	public ma classe (Shell parentShell) {
    		super(parentShell);
    		setShellStyle(SWT.TITLE | SWT.APPLICATION_MODAL);
     
    	}
     
    	protected void configureShell(Shell shell) {
    		super.configureShell(shell);
    	}
     
    	/**
             * Create contents of the dialog.
             * @param parent
             */
    	@Override
    	protected Control createDialogArea(Composite parent) {
     
    		return container;
    	}
     
    	/**
             * Create contents of the button bar.
             * @param parent
             */
    	@Override
    	protected void createButtonsForButtonBar(Composite parent) {
    		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
     
    		createButton(parent, IDialogConstants.CANCEL_ID,
    				IDialogConstants.CANCEL_LABEL, false);
    	}
     
     
    	/**
             * Return the initial size of the dialog.
             */
    	@Override
    	protected Point getInitialSize() {
    		return new Point(430, 400);
    	}
     
    }
    mon problème c'est que je ne sais pas comment gérer l'action d'appui sur les deux boutons ok et cancel
    j'ai trouvé une méthode dans la documentation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     protected void buttonPressed(int buttonId)
    mais sinon je ne sais vraiment pas comment faire pour exécuter le code du bouton ok et où le mettre

    merci pour votre aide

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Le "code du bouton ok" comme tu dis, est à exécuter après avoir fait un "open" sur ta boite de dialogue. Le "open" va te donner le code de retour de ta boite de dialogue. Donc, en fait, le but du jeux est de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MyDialog dialog = new MyDialog();
    int userChoice = dialog.open();
    if (userChoice == Window.OK)  {
        // Code pour un ok
    } else if (userChoice == Window.CANCEL) {
        // Code pour le cancel
    }
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 98
    Points : 51
    Points
    51
    Par défaut
    merci pour la réponse !
    j'ai essayé avec cette méthode est-elle correcte s'il vous plait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	protected void buttonPressed(int buttonId) {
    		if (buttonId == IDialogConstants.OK_ID) {
     
    			/* 
    			 *  code for OK
    			 *
    			 */
     
    			maclasse.this.close();
    		} else {
    			super.buttonPressed(buttonId);
     
    		}
    	}

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Bah le code fonctionne j'imagine...
    Mais du point de vue de la conception, c'est pas terrible
    Tu mélanges le code de ton application dans le code de ta Dialog.
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 121
    Points
    121
    Par défaut
    Tu as aussi la méthode okPressed qui doit trainer.

    Après, tout dépend de ce que l'action que tu veux effectuer doit faire.
    Si c'est une boite de dialogue qui effectue un traitement interne (genre sauvegarde avant fermeture, il s'agit de la bonne solution.
    Sinon, il vaut mieux utiliser le code retour.

Discussions similaires

  1. [DAO] Comment gérer les liens avec la bdd dans mes classes?
    Par Wormus dans le forum Autres
    Réponses: 6
    Dernier message: 22/02/2006, 16h14
  2. Réponses: 12
    Dernier message: 22/11/2005, 13h17

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