GEF エディターを含む 1 つの小さな GEF プロジェクトを作成しました。ここで、GEF パレットを除くすべての機能を View に変換したいと考えています。することは可能ですか?editpolicies を実行しようとしたときに、すべてが機能しなかったためです。GEF Rectangle パーツとモデルを使用して長方形を描くことができます。それは正常に動作しています。しかし今、ビューにサイズ変更、削除、元に戻す機能を追加したいと考えています。GEF エディターでは、これらの機能は正常に機能しています。これらの機能はエディターでのみ機能しますか? 誰かがそれを行う方法を提案できますか?
3 に答える
ビューにいくつかの GEF 機能を追加できます。そのためには、ビューを次の方法で実装する必要があります。
// Use a standard Viewer for the Draw2d canvas
private ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer();
// Use standard RootEditPart as holder for all other edit parts
// private RootEditPart rootEditPart = new ScalableFreeformRootEditPart();
private ScalableRootEditPart rootEditPart = new ScalableRootEditPart();
// parts for model elements
private EditPartFactory editPartFactory = new MyEditPartFactory();
たとえば、GEF 編集ポリシーをビューに追加できます。
public void createPartControl(Composite parent) {
// Initialize the viewer, 'parent' is the
// enclosing RCP windowframe
viewer.createControl(parent);
viewer.setRootEditPart(rootEditPart);
viewer.setEditPartFactory(editPartFactory);
viewer.setContents(ModelFactory.createRegionLayerModel());
viewer.setEditDomain(new DefaultEditDomain(new GraphicalEditor() {
@Override
public void doSave(IProgressMonitor monitor) {
// TODO Auto-generated method stub
}
@Override
protected void initializeGraphicalViewer() {
GraphicalViewer viewer = getGraphicalViewer();
}
@Override
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
super.configureGraphicalViewer();
GraphicalViewer viewer = getGraphicalViewer();
}
}));
}
これがお役に立てば幸いです!!!
あなたが望むことは、現在の GEF 実装では不可能です。すべてのグラフィカル エディターは Eclipse エディターであるため、それらをビューに配置する方法がわかりません。これを実装することはできますが、多くの配線が必要になります...
私があなたを正しく理解しているなら、あなたは基本的に、完全な編集機能を維持しながら、パレットを取り除きたいだけですか?
これは簡単に達成できます。エディタークラスをまたはではなく拡張org.eclipse.gef.ui.parts.GraphicalEditor
(API )すると、パレットが削除されます。org.eclipse.gef.ui.parts.GraphicalEditorWithPalette
org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
このクラスは、GEFを初めて使用するクライアントのクイックスタートポイントとして機能します。コントロールとして単一のGraphicalViewerを含むエディターを作成します。
ただし、Javadocのコメントには
重要このクラスは、独自のEditorPart実装を作成するための参照としてのみ使用する必要があります。このクラスはすべての人のニーズに合うわけではなく、将来変更される可能性があります。クライアントは実装をコピーできます。
理想的には、独自の実装を設定する必要がありますorg.eclipse.ui.part.EditorPart
が、出発点としてGraphicalEditor
おそらくそうなると思います:)。