Меня зовут Олег, я пишу расширенную функцию - визуальное сравнение файлов BPEL.
Я хотел бы использовать обычные редакторы в «сравнить» панели (слева и справа)
В качестве первого шага я просто хочу открыть два редактора (по одному для каждого файла)
Позже я могу немного их взломать, сделать новые детали зелеными,
удаленные части красного цвета и т. д ...
Так что моя проблема звучит довольно просто
Я имею:
- композитный
- Ресурс, который описывает .bpel файл
И я должен открыть редактор по умолчанию для этого ресурса в этом Composite.
Буду признателен за любые советы или предложения!
Что я пробовал:
Я провел пару дней, пытаясь глубже понять ГЭФ,
но в конце концов я не нашел простого решения для моего
простая проблема.
Люди из другого проекта использовали:
org.eclipse.gmf.runtime.notation.Diagram
org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer
diagramGraphicalViewer.setContents(diagram)
но мой редактор основан на GEF, а не на GMF.
Насколько я понял, я не могу просто открыть редактор в композитном
Я должен использовать много "лишних" вещей - EditorManager,
Workbrenchs, некоторые сайты и т. Д. И т. Д.
В конце концов, я написал простой код, но это не так
Работа. Скорее всего, я написал это совершенно неправильно, но пусть
я процитирую это просто, чтобы прояснить, что мне на самом деле нужно.
File file2open = new File(new Path("/p1/name2.bpel"), (Workspace) BPELPlugin.getPlugin().getWorkspace()) { };
BPELMultipageEditorPart editorPart = new BPELMultipageEditorPart();
FileEditorInput editorInput = new FileEditorInput(file2open);
EditorDescriptor editorDescriptor = null;
try {
editorDescriptor = (EditorDescriptor)IDE.getEditorDescriptor(file2open);
} catch (PartInitException e) {
e.printStackTrace();
}
WorkbenchPage workbrenchpage = (WorkbenchPage) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
EditorSite editorSite = new EditorSite(new EditorReference(workbrenchpage.getEditorManager(), editorInput, editorDescriptor), editorPart, workbrenchpage, editorDescriptor);
try {
editorPart.init(editorSite, editorInput);
} catch (PartInitException e) {
e.printStackTrace();
}
editorPart.createPartControl(mycomposite);
upd: наконец-то я реализовал то, что хотел, но не уверен, что кому-то еще это интересно :) 1033 *