1

私の名前は 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:ついに私が望んでいたものを実装しましたが、他の誰かが興味を持っているかどうかはわかりません:)

4

2 に答える 2

1

いいえ、GEF ビューアーでエディターを開く良い方法はありません。留意事項: 1. 「エディタ」は Eclipse プラットフォームの概念です。つまり、単なるウィジェットではなく、インフラストラクチャ全体です。あなたが言ったように、IEditorSiteなどが必要です。2. GEF の数値は「軽量」です。GraphicalViewer 全体が単一の SWT ウィジェットであり、その上に図が描画されます。それらをサポートする OS ウィジェットはありません。

そのため、GEF ビューアーにエディターをネストする必要がある場合は、SWT コンポジットをビューアーの上に配置し、その配置を管理する必要があります。

于 2009-04-21T19:11:59.767 に答える
-1

私の仕事の結果http://www.picamatic.com/view/3436443_bpelcompare/ソースコード: http://dl.dropbox.com/u/49126809/org.eclipse.emf.compare.ui.gef.zip

于 2012-01-12T09:35:33.637 に答える