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.
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.
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;
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. } } })
J'ai bien compris le fonctionnement du code mais je n'arrive pas à l'exécuter.
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
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager