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 :

[Plugin] Interception de l'appui sur le bouton Entrer


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [Plugin] Interception de l'appui sur le bouton Entrer
    Bonjour,

    je suis en cours de développement d'un plugin.
    Je souhaiterais d'écrire un code qui intercepte la touche Entrer.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Un code avec quelle API graphique? SWT ?
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai développé mon propre éditeur. En sélectionnent un composant dans mon éditeur des champs dans l'onglet propriété d'Eclipse se manifeste.

    J'aimerais faire en sorte que le code intercepte l'évènement du bouton Entrer au clavier, quand je termine de remplir le champ qui se trouve dans l'onglet Properties d'Eclipse.

    Voici les imports utilisés dans ma classe:
    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
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    import org.eclipse.core.resources.IFile;
    import org.eclipse.core.resources.IMarker;
    import org.eclipse.core.resources.IWorkspaceRoot;
    import org.eclipse.core.resources.ResourcesPlugin;
    import org.eclipse.core.runtime.CoreException;
    import org.eclipse.core.runtime.IPath;
    import org.eclipse.core.runtime.IProgressMonitor;
    import org.eclipse.core.runtime.IStatus;
    import org.eclipse.core.runtime.NullProgressMonitor;
    import org.eclipse.emf.common.ui.URIEditorInput;
    import org.eclipse.emf.transaction.TransactionalEditingDomain;
    import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
    import org.eclipse.gef.palette.PaletteRoot;
    import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService;
    import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
    import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
    import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
    import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
    import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider;
    import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
    import org.eclipse.gmf.runtime.notation.Diagram;
    import org.eclipse.jface.dialogs.ErrorDialog;
    import org.eclipse.jface.dialogs.IMessageProvider;
    import org.eclipse.jface.dialogs.MessageDialog;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.viewers.StructuredSelection;
    import org.eclipse.jface.window.Window;
    import org.eclipse.osgi.util.NLS;
    import org.eclipse.swt.widgets.Control;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.ui.IEditorInput;
    import org.eclipse.ui.IEditorMatchingStrategy;
    import org.eclipse.ui.IEditorReference;
    import org.eclipse.ui.IFileEditorInput;
    import org.eclipse.ui.IPathEditorInput;
    import org.eclipse.ui.ISaveablePart2;
    import org.eclipse.ui.IWorkbenchPage;
    import org.eclipse.ui.PlatformUI;
    import org.eclipse.ui.dialogs.SaveAsDialog;
    import org.eclipse.ui.ide.IGotoMarker;
    import org.eclipse.ui.navigator.resources.ProjectExplorer;
    import org.eclipse.ui.part.FileEditorInput;
    import org.eclipse.ui.part.IShowInTargetList;
    import org.eclipse.ui.part.ShowInContext;

  4. #4
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Le truc utile a savoir dans ce cas, c'est que quand un utilisateur presse "Enter", alors il y a un KeyEvent avec comme caractere SWT.CR.
    Du coup, sur le champ texte qui capte le bouton Entrer, rajoute un truc comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    text.addKeyListener(new KeyAdapter() {
      @Override
      public void keyPressed(KeyEvent event) {
         if (event.character == SWT.CR) {
             // Put focus on Properties.
         }
      }
    })
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Mickael_Istria Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    text.addKeyListener(new KeyAdapter() {
      @Override
      public void keyPressed(KeyEvent event) {
         if (event.character == SWT.CR) {
             // Put focus on Properties.
         }
      }
    })
    la variable text n'est pas reconnu par le programme

  6. #6
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Citation Envoyé par waelz1 Voir le message
    la variable text n'est pas reconnu par le programme
    Cherche plutot a comprendre le code qu'a le copier-coller.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai bien compris le fonctionnement du code mais je n'arrive pas à l'exécuter.

  8. #8
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Bonjour,

    Si j'ai bien compris, c'est lorsque l'utilisateur valide sur entrée pendant qu'il modifie un champ dans la vue "Properties" que tu veux capter l'événement. Utilise-tu la vue "Properties" par défaut d'Eclipse, ou une vue personnalisée. Dans le 2e cas, tu as accès au champ modifié, par exemple le champ texte et tu peux lui appliquer la méthode que t'as indiquée Mickael. Evidemment, il faut remplacer "text" par le nom de ton champ !
    Si tu utilises la vue Properties par défaut c'est plus compliqué vue que tu n'as pas accès aux champs de cette vue. Si tu veux capter la validation, le mieux peut-être est de se tenir informé des changements éventuels dans ton modèle, via du databinding ou, si c'est de l'EMF, via les notifications.

    Alain
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Oui, j'aimerais intercepter l'évènement lorsque l'utilisateur valide sur Entrée pendant qu'il modifie un champ dans la vue "Properties". J'utilise la vue "Properties" par défaut d'Eclipse.
    J'aimerais que si l'utilisateur tape Entrer, ça appelle une méthode que j'ai déjà codée.

Discussions similaires

  1. [Plug-in] Intercepter l'appui sur le bouton Enregistrer
    Par waelz1 dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 22/08/2014, 20h33
  2. Intercepter l'appuie sur le bouton "Envoyer" d'Outlook
    Par Charette dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 14/10/2005, 14h24
  3. Comment détecter quand un utilisateur appuie sur le bouton Power ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 22/09/2005, 21h05

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