Regardez org.eclipse.jdt.internal.ui.actions.OpenTypeAction pour savoir comment il est géré 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();
Lorsque parent est le composite pour lequel vous souhaitez ouvrir la boîte de dialogue. En général, la coquille de plan de travail actif, obtenu par:
Shell parent= JavaPlugin.getActiveWorkbenchShell();
OpenTypeSelectionDialog est dans un emballage interne, vous obtiendrez un message d'avertissement « d'accès découragées ». Tant que vous êtes conscient des risques que je recommande d'utiliser ce type. "Découragé" est un avertissement et non une erreur, et dans la pratique Eclipse introduirait un OpenTypeSelectionDialog plutôt que de changer les signatures de l'actuel. La plate-forme Eclipse et les principaux produits tentent de maintenir la compatibilité autant que possible pour encourager l'innovation (voir le 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 contre les modifications de l'API en utilisant un assistant. Cela signifie que vous devez changer un seul point si le type référencé change. L'alternative est que vous implémentiez le dialogue et son parent vous-même, mais le parent, FilteredTypesSelectionDialog, a plus de 20 références internes, ce qui aggraverait le problème.
Voulez-vous réellement ouvrir la boîte de dialogue ou récupérer directement tous les résultats? –
Je veux ouvrir la boîte de dialogue, laisser l'utilisateur choisir un type qu'il veut, et après avoir choisi je veux obtenir le résultat sous forme de chaîne avec un nom complet. Il semble que OpenTypeSelectionDialog fasse le travail, mais il est déconseillé. – Ido