3

Comment associer par programme le type de fichier à l'éditeur?Eclipse RCP: associer par programme le type de fichier à l'éditeur?

C'est ce que le code Java Eclipse RCP peut faire ce qui est archivée avec l'interaction interface utilisateur suivante:

Window -> Preferences 
General -> Editors -> File Associations 
Add... > File type: *.json 
Select *.json file type 
Add... (Associated editors) > JavaScript Editor 
Make it default 

Ralated à Q
https://stackoverflow.com/questions/12429221/eclipse-file-associations-determine-which-editor-in-list-of-associated-editors
Eclipse: associate an editor with a content type
Get associated file extensions for an Eclipse editor
Opening a default editor, on a treeviewer selection eclipse rcp(eg: as eclipse knows that j.java files must be opened in text editor)

eclipse rcp change icon for xml configuration file

Répondre

4

Je sais que vos questions disent «par programmation» mais je vais vous donner un aperçu complet des méthodes.

Si vous écrivez le plugin qui fournit l'éditeur, vous devez simplement déclarer l'extension dans votre fichier plugin.xml.

 
    <extension 
     point="org.eclipse.ui.editors"> 
     <editor 
      ... 
      extensions="json" 
      ... 

Si vous distribuez une application complète RPC, vous pouvez modifier le plugin.xml du plug-in qui fournit l'éditeur ou ajouter un plug-in qui fait référence à ce seul éditeur.

Mais, si vous devez le faire par programmation, vous manipulez les internes d'une instance RPC. Eclipse ne fournit pas une API publique pour cela, mais ce code fera:

  // error handling is omitted for brevity 
    String extension = "json"; 
    String editorId = "theplugin.editors.TheEditor"; 

    EditorRegistry editorReg = (EditorRegistry)PlatformUI.getWorkbench().getEditorRegistry(); 
    EditorDescriptor editor = (EditorDescriptor) editorReg.findEditor(editorId); 
    FileEditorMapping mapping = new FileEditorMapping(extension); 
    mapping.addEditor(editor); 
    mapping.setDefaultEditor(editor); 

    IFileEditorMapping[] mappings = editorReg.getFileEditorMappings(); 
    FileEditorMapping[] newMappings = new FileEditorMapping[mappings.length+1]; 
    for (int i = 0; i < mappings.length; i++) { 
     newMappings[i] = (FileEditorMapping) mappings[i]; 
    } 
    newMappings[mappings.length] = mapping; 
    editorReg.setFileEditorMappings(newMappings); 
+0

Ce n'était pas ma question, mais merci beaucoup pour votre réponse. – Chris

1

type de fichier signifie associer le contenu L'association de ur éditeur avec un prédéfini. Ceci peut être facilement atteint par plugin.xml .. Il suffit de suivre le lien suivant: -

Eclipse aide Documentation

http://help.eclipse.org/indigo/index.jsp

et la recherche de org.eclipse.core.contenttype.contentTypes.

+0

ContentType peut être une option trop compliquée http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm&cp=2_0_3_4_1 –

Questions connexes