2009-08-02 6 views
2

Je veux ouvrir la boîte de dialogue "Ctrl-Maj-T" (rechercher un type) par programme dans le plug-in eclipse. J'ai essayé les FilteredItemsSelectionDialog et ResourceListSelectionDialog, mais comment obtenir tous les types dans l'espace de travail?comment ouvrir la boîte de dialogue de recherche par type en eclipse

Merci, Ido.

+0

Voulez-vous réellement ouvrir la boîte de dialogue ou récupérer directement tous les résultats? –

+0

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

Répondre

3

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.

+0

Il semble que OpenTypeSelectionDialog soit "Accès déconseillé". Qu'est-ce que cela signifie? – Ido

+2

Vous obtenez un avertissement d'accès découragé chaque fois que vous faites référence à un type dans un package qui ne fait pas partie de l'API. Il s'agit généralement de packages * .internal. "Accès découragé" est un indicateur que vous devriez rechercher une alternative API si possible. Sachez que vous risquez d'être vulnérable aux modifications dans les versions ultérieures d'Eclipse. Voir http://help.eclipse.org/galileo/index.jsp pour plus de détails –

+0

Salut, Quand je l'ai utilisé, j'ai ajouté une dépendance au plugin jdt. J'utilise Galileo pour le développement. Lorsque je l'ai installé sur des clients qui utilisent Ganymede, cela n'a pas fonctionné. Comment dois-je le configurer pour le supporter? – Ido

Questions connexes