Bonjour,
Je suis en train de développer un plugin pour éclipse, et me sert donc de la partie déja faite "XMLEditor".
J'aimerais pouvoir, à partir d'un double-click sur un TreeViewer, ouvrir un nouvel editeur de texte. La partie double-click, aucun probleme.
La partie ouvrir l'éditeur de texte... Gros problème!
J'ai déja pas mal galerré, à cause de la méthode openEditor, que j'appelle à partir d'ici:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(
Celle-ci prend en paramètre un IEditorInput, qui est juste une interface... J'ai donc perdu trois jours pour trouver une instance qui me convenait (et que je comprenais!) sur internet...
Cela donne cela:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import java.io.File;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IPathEditorInput;
import org.eclipse.ui.IPersistableElement;
public class FileEditorInput implements IPathEditorInput {
private File file;
public FileEditorInput( File file ) {
this.file= file;
}
public boolean exists() {
return false;
}
public ImageDescriptor getImageDescriptor() {
return null;
}
public String getName() {
return file.getName();
}
public IPersistableElement getPersistable() {
return null;
}
public String getToolTipText() {
return file.getAbsolutePath();
}
public Object getAdapter(Class adapter) {
return Platform.getAdapterManager().getAdapter(this, adapter);
}
public boolean equals(Object o) {
if (o == this)
return true;
if (o instanceof FileEditorInput) {
FileEditorInput input = (FileEditorInput) o;
return file.equals(input.file);
}
return false;
}
public int hashCode() {
return file.hashCode();
}
public IPath getPath() {
return new Path(file.getAbsolutePath());
}
} |
Mais malgré cela, je n'arrive pas à ouvrir de fichier, j'obtiens une nouvelle page (ça c'est la bonne nouvelle), mais non-éditable, avec une barre bleue horizontale (très mignonne), et un non moins mignon "ERROR" (ça, il me semble bien que c'est la mauvaise nouvelle)...
Quelqu'un aurait l'Astuce qu'il me manque depuis maintenant une semaine?
Merci d'avance pour tout commentaire, même si vous n'avez pas de solution, je me sentirais moins seul!
Partager