私の名前は Oleg です。BPEL ファイルの視覚的な比較という高度な機能を書いています。「比較」ペイン (左右) で通常のエディターを使用したい 最初のステップとして、2 つのエディター (ファイルごとに 1 つ) を開きたいだけです。後で、それらを少し「ハック」して、新しい部分を緑色にして、削除することができます。パーツ赤 etc...
- コンポジット - .bpel ファイルを記述するリソース そして、このコンポジットでこのリソースのデフォルト エディタを開く必要があります。
ヒントや提案をいただければ幸いです。
私が試したこと:
GEF をより深く理解するために数日を費やしましたが、結局のところ、単純な問題に対する単純な解決策は見つかりませんでした。
別のプロジェクトの人々が使用したもの:
org.eclipse.gmf.runtime.notation.Diagram
org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer
diagramGraphicalViewer.setContents(diagram)
しかし、私のエディタは GMF ベースではなく GEF ベースです。
私が理解している限り、コンポジットでエディターを開くことはできず、多くの「追加」のものを使用する必要があります-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:ついに私が望んでいたものを実装しましたが、他の誰かが興味を持っているかどうかはわかりません:)