Question

J'ai un navigateur commun éclipse (spécifique à notre projet) sur notre demande de rap. Donc, généralement lorsque l'utilisateur est une ressource dans le navigateur latéral gauche, elle est ouverte dans le navigateur latérale droite .now, supposons, si un fichier cliquez sur un fichier avec une extension, je souhaite ouvrir un message personnalisé ouvert et apparu dansdevant l'utilisateur sous la forme d'une boîte de dialogue. Comment puis-je atteindre ce

Était-ce utile?

La solution

Vous pouvez également enregistrer un éditeur spécifique avec un lanceur associé:

<editor
        id="com.foo.MyEditor"
        launcher="com.foo.MyEditorLauncher"
        default="true"
        extensions="your_extension_here"
        icon="any icon for your file"
        name="Dialog editor">
 </editor>

et implémentez le lanceur pour afficher la boîte de dialogue souhaitée:

public class MyEditorLauncher implements IEditorLauncher {
    @Override
    public void open(IPath path) {
        Shell shell = Display.getDefault().getActiveShell();
        MessageDialog.openInformation(shell, "Not Editable", "Can't open this element");
    }
}

L'utilisateur sera toujours en mesure d'utiliser des éditeurs alternatifs, mais par défaut, ils obtiendront ce message.

Autres conseils

Vous voudrez enregistrer un éditeur via le point d'extension des éditeurs par rapport aux fichiers de cette extension.Le corps de cet éditeur peut être le message que vous voulez.

Essayez d'enregistrer une action d'action dans le navigateurContent avec l'activation appropriée (afin qu'elle soit appliquée aux fichiers qui vous intéressent).

Dans votre fournisseur d'action personnalisé (Extending CommonCactionProvider), vous pouvez vous abonner aux événements DoubleClick de la méthode init:

@Override
public void init(ICommonActionExtensionSite aSite) {
    super.init(aSite);
    IWorkbench workbench = MyPlugin.getDefault().getWorkbench();
    doubleclick = new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            // show Your Popup Here !!!
        }
    };
    aSite.getStructuredViewer().addDoubleClickListener(doubleclick);
}

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