Question

Je souhaite ouvrir le "Ctrl-Maj-T" dialogue (rechercher un type) par programme dans le plug-in Eclipse. J'ai essayé les filtres FilteredItemsSelectionDialog et ResourceListSelectionDialog, mais comment puis-je obtenir tous les types dans l'espace de travail?

Merci Ido.

Était-ce utile?

La solution

Examinez org.eclipse.jdt.internal.ui.actions.OpenTypeAction pour en savoir plus sur sa gestion par Eclipse. La partie clé est la suivante:

SelectionDialog dialog= new OpenTypeSelectionDialog(parent, true,
    PlatformUI.getWorkbench().getProgressService(), null, 
    IJavaSearchConstants.TYPE);
dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle);
dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage);

int result= dialog.open();

Où parent est le composite pour lequel vous souhaitez ouvrir la boîte de dialogue. En règle générale, le shell actif du workbench, obtenu par:

Shell parent= JavaPlugin.getActiveWorkbenchShell();

OpenTypeSelectionDialog est dans un package interne, vous obtiendrez donc un "accès déconseillé". Attention. Tant que vous connaissez les risques, je vous recommande d'utiliser ce type. " Découragé " est un avertissement, pas une erreur, et dans la pratique, Eclipse introduirait un OpenTypeSelectionDialog 2 plutôt que de modifier les signatures actuelles. La plate-forme Eclipse et les principaux produits tentent de maintenir autant que possible la compatibilité pour encourager l'innovation (voir policy dans le wiki). En général, avec un accès découragé, il est judicieux de protéger le reste de votre code des modifications de l'API à l'aide d'un assistant. Cela signifie que vous devez modifier un seul point si le type référencé change.

Vous pouvez également implémenter vous-même la boîte de dialogue et son parent, mais le parent, FilteredTypesSelectionDialog, possède plus de 20 références internes, ce qui aggraverait le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top