Bonjour je voudrai savoir ou est ce que je peux trouver un tutorial sur l'implementation d'un content assist sous eclipse dans un SWT.MULTI , si vous avez des idées je vous serez reconaissant
a bientot
Bonjour je voudrai savoir ou est ce que je peux trouver un tutorial sur l'implementation d'un content assist sous eclipse dans un SWT.MULTI , si vous avez des idées je vous serez reconaissant
a bientot
Bonjour,
Dans le help d'eclipseou est ce que je peux trouver un tutorial sur l'implementation d'un content assist sous eclipse
Pour des trucs plus puissants (dépendants par exemple du contenu initial du text), tu dois implémenter toi même ton propre IContentProposalProvider.
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 //Tu crées ton text Text text = new Text(parent, SWT.MULTI | SWT.BORDER); //Les charactères qui déclenchent l'autocomplétion char[] autoActivationCharacters = new char[] { '#', '(' }; //La combinaison de touches qui déclenche l'autocomplétion KeyStroke keyStroke = null; try { keyStroke = KeyStroke.getInstance("Ctrl+Space"); } catch (ParseException e) { e.printStackTrace(); } //La vraie chose ! ContentProposalAdapter adapter = new ContentProposalAdapter(text, new TextContentAdapter(), new SimpleContentProposalProvider( new String[] { "Propostion 1", "Propostion 2", "Propostion 3" }), keyStroke, autoActivationCharacters);
Par exemple:
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 class ContentProposal implements IContentProposal { private int cursorPosition; private String content; private String label; public ContentProposal(String label, String content, int cursorPosition) { this.content = content; this.cursorPosition = cursorPosition; this.label = label; } @Override public String getContent() { return content; } @Override public int getCursorPosition() { return cursorPosition; } @Override public String getDescription() { return label; } @Override public String getLabel() { return label; } } class DictionaryContentProposalProvider implements IContentProposalProvider { private String[] dictionary = { "select", "imprimante", "imprimer", "selectonemenu", "selectonemenu", "savestate", "uiinput", "treeView", "requette", "comment designer une requette", "interface requette", "composant requette", "#{..} is not allowed in template text body", "applets", "RadioButtonGroup", "jsf fonction paramètres", "dialogue", "boite", "constant", "constants", "convertir double en numerique", "convertir double en entier", "Messages.properties", ".properties", "properties", "Messages.properties", "findbyexample", "aligner", "top", "binding", "lien jsf", "message", "mail", "faces context", "post", "request" }; @Override public IContentProposal[] getProposals(final String contents, final int position) { List<IContentProposal> res = new ArrayList<IContentProposal>(); for (String s : dictionary) { if (s.startsWith(contents)) { String prop = s.substring(contents.length()); res.add(new ContentProposal(s, prop, prop.length())); } } return res.toArray(new IContentProposal[0]); } };
merci
je voudrai savoir est ce que c'est possible au lieu de fabriquer un string[] qui comporte proposition1 et proposition 2 de se référer à une javadoc spécifique qui comporte des methodes et des classes que l'utilisateur pourra utiliser dans son auto-completion
Bah sur le papier, c'est faisable, d'aillerus, JDT le fait.
Ce serait peut être intéressant de voir ce que JDT fait pour ça et de le réutiliser/s'en inspirer.
excusez moi djo.mos je suis un peu nouveau dans ce monde pourriez vous m'indiquer que dois rechercher , un tutoriel sera le bienvenue merci
en fait j'essaie depuis tout a l'heure a faire marcher ta solution poussée mais j'arrive pas a l'instancier , comment puis je l'utiliser?
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //La vraie chose ! ContentProposalAdapter adapter = new ContentProposalAdapter(text, new TextContentAdapter(), new DictionaryContentProposalProvider(), keyStroke, autoActivationCharacters);
merci djo.mos pour la reponse ca a l'air de bien marcher mais le probleme est que dans mon texte je peux appeller le assist pas mal de fois , et ton exemple ne marche qu'une seule fois , tu as une idée pour rendre l'assistant valable a 'importe quel endroit du text?
Euh ... comment ça sa marche qu'une seule fois ? J'ai pas ce problème ici
voila c simple dans mon SWT.MULTI
je fais ctrl+space ca marche et ca me donne la valeur dont j'ai besoin apres je tappe un espace et je refais ctrl+space rien ne s'affiche
c pour ca que je vous ai dit que ca ne marche qu'une seule fois je ne sais pas pourquoi moi aussi
bonsoir en fait j'ai trouvé le probleme
dans ce bout de code le contents sera celui du permier mot+le debut du deuxieme mot donc il va jamais le trouver et donc il n'y aura pas d'autocomplete la deuxieme fois , t'as une idée comment corriger ca?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for (String s : dictionary) { if (s.startsWith(contents)) {
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