Bonjour,
Je voudrais pouvoir fermer automatiquement le ou les éditeurs ouverts pour un fichier quand je fais une action sur celui-ci.
J'explique...
J'ai une vue dans laquelle j'appuie sur laquelle je sélectionne un fichier et j'appuie sur le bouton Fermer. Je veux alors que tous les éditeurs ouverts pour ce fichier se ferment.
Comment feriez-vous ?
J'ai plusieurs solutions en tête :
- Scanner toutes les Window, Page, EditorReference :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
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 IWorkbenchWindow windows[] = PlatformUI.getWorkbench().getWorkbenchWindows(); for (IWorkbenchWindow window : windows) { IWorkbenchPage pages[] = window.getPages(); for (IWorkbenchPage page : pages) { IEditorReference references[] = page.getEditorReferences(); for (IEditorReference reference : references) { IEditorInput editor = reference.getEditorInput(); String monChemin = null; if (editor instanceof MonEditeur1) { monChemin = // Première méthode de récupération } else if (editor instanceof MonEditeur2) { monChemin = // Deuxième méthode de récupération } else { monChemin = editor.getName(); } if (monChemin.equals(monFichier.getAbsolutePath())) { //Fermeture de l'éditeur } } } }- Passer par un contrôleur qui stockerait une Map<String, List<Editeur>> où la clef est le chemin complet du fichier. Editeur reste un type à définir : IEditorInput, IEditorReference, autre ?
Il y a très très (enfin je l'espère) probablement une solution plus simple.
PS : A noter que j'ai extrêmement simplifié le problème.
Partager