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

Eclipse Platform Discussion :

Fermer la fenêtre des préférences sans cliquer sur le bouton Cancel


Sujet :

Eclipse Platform

  1. #1
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut Fermer la fenêtre des préférences sans cliquer sur le bouton Cancel
    Bonjour,

    Dans mon appli RCP, j'ai plusieurs pages IWorkbenchPreferencePage et parmi celles-ci, j'ai un bouton qui lance un Wizard.

    J'aimerais savoir comment pourrais-je faire en sorte, simultanément à l'ouverture du Wizard, que la fenêtre des préférences se ferme. Comme si on avait cliqué sur le bouton Cancel ?

    J'ai réussi à faire en sorte que cette fenêtre disparaisse (avec un dispose() si je me souviens bien) mais ça ne convenait pas parce qu'après j'avais des exceptions et des états incohérents.

    Des suggestions ?

    Merci d'avance.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  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 : 40
    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,

    En regardant la classe IWorkbenchPreferencePage qui hérite de IPreferencePage j'ai vu que tu pouvais faire un performCancel()... Ça serait pas ce que tu cherches par hasard? Dans le listener de ton bouton dans ta page de préférence, avant de lancer ton Wizard, tu fais ton performCancel() sur la page. Ça devrait être bon non?

    Pas testé du tout bien sûr
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Malheureusement non... J'avais déjà testé en fait.

    Cette méthode est invoquée lors de l'appui sur Cancel afin que la classe d'implémentation, en la surchargeant, puisse effectuer des opérations si nécessaires mais elle ne déclenche pas la fermeture.
    This is a framework hook method for subclasses to do special things when the Cancel button has been pressed. The default implementation of this framework method does nothing and returns true.
    Merci quand même Gueritarish

    Qui dit mieux ?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    En invoquant Ca fonctionne mais ça me renvoie une exception
    org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(SWT.java:3777)
    at org.eclipse.swt.SWT.error(SWT.java:3695)
    at org.eclipse.swt.SWT.error(SWT.java:3666)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
    at org.eclipse.swt.widgets.Control.getShell(Control.java:1398)
    at org.eclipse.jface.dialogs.DialogPage.getShell(DialogPage.java:293)
    ........rtc
    Donc, à mon avis il faut que j'invoque une méthode au bon niveau hiérarchique mais je ne m'y connais pas assez en SWT / Eclipse pour savoir quoi invoquer de manière propre.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    Bonjour,
    peux tu donner le code de création de Wizard ? l'erreur "Widget is disposed" laisse penser que tu as donné le mauvais shell dans ton WizardDialog...

    a+,
    jojodu31
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  6. #6
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Citation Envoyé par jojodu31 Voir le message
    Bonjour,
    peux tu donner le code de création de Wizard ? l'erreur "Widget is disposed" laisse penser que tu as donné le mauvais shell dans ton WizardDialog...

    a+,
    jojodu31
    Là dans l'immédiat je ne peux pas donner le code, je ne l'ai plus sous les yeux avant ce soir

    Par contre, je crois avoir compris ce que j'ai oublié. C'est de fournir un shell 'null' ou un autre shell mais en tous les cas pas celui que je viens de fermer, c'est évident

    Bon, je verrai ça ce soir alors. Merci

    Sinon, c'est ce qu'il faudrait faire ou il y a mieux ?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  7. #7
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    et bien si tu veux fermer ta page de préférences absolument, il faut en effet passer un shell null ça devrait marcher ... tiens nous au courant
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  8. #8
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Effectivement, ça fonctionne en donnant 'null' au Wizard.

    Donc en résumé, voici le code qui définit le listener du bouton Wizard, lequel apparait au sein d'une page de préférences.
    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
    button.addSelectionListener(new SelectionAdapter()
        {
            @Override
            public void widgetSelected(SelectionEvent e)
            {
                if (MessageDialog.openConfirm(getShell(), "Sauvegarde des préférences", "Si vous lancez l'assistant, vous allez perdre les paramètres en cours de modification.\nEtes-vous certain de vouloir continuer ?"))
                {
                    getShell().close();
     
                    WizardDialog dialog = new WizardDialog(null, new SetupWizard());
     
                    dialog.setBlockOnOpen(true);
                    dialog.setPageSize(600, 300);
                    dialog.setHelpAvailable(false);
                    dialog.open();
                }
            }
        });

    Si c'est la façon la plus propre tant mieux, sinon j'aimerais bien savoir ce qu'il est peut-être préférable de faire ...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

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

Discussions similaires

  1. Lancer une action struts sans cliquer sur un bouton submit
    Par cryosore94 dans le forum Struts 1
    Réponses: 10
    Dernier message: 22/03/2009, 16h08
  2. fermer une JFrame sans cliquer sur la croix rouge
    Par canary dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 26/04/2008, 13h26
  3. Faire un submit sans cliquer sur le bouton.
    Par babalastar dans le forum JSF
    Réponses: 3
    Dernier message: 27/03/2007, 10h02
  4. Réponses: 2
    Dernier message: 07/06/2006, 09h29
  5. [VB6] Déplacer la form sans cliquer sur la barre de titre
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/11/2002, 02h09

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