0

GEF エディターを含む 1 つの小さな GEF プロジェクトを作成しました。ここで、GEF パレットを除くすべての機能を View に変換したいと考えています。することは可能ですか?editpolicies を実行しようとしたときに、すべてが機能しなかったためです。GEF Rectangle パーツとモデルを使用して長方形を描くことができます。それは正常に動作しています。しかし今、ビューにサイズ変更、削除、元に戻す機能を追加したいと考えています。GEF エディターでは、これらの機能は正常に機能しています。これらの機能はエディターでのみ機能しますか? 誰かがそれを行う方法を提案できますか?

4

3 に答える 3

1

ビューにいくつかの 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();
                }

            }));
}

これがお役に立てば幸いです!!!

于 2012-07-11T09:17:13.870 に答える
1

あなたが望むことは、現在の GEF 実装では不可能です。すべてのグラフィカル エディターは Eclipse エディターであるため、それらをビューに配置する方法がわかりません。これを実装することはできますが、多くの配線が必要になります...

于 2012-06-11T08:54:01.597 に答える
0

私があなたを正しく理解しているなら、あなたは基本的に、完全な編集機能を維持しながら、パレットを取り除きたいだけですか?

これは簡単に達成できます。エディタークラスをまたはではなく拡張org.eclipse.gef.ui.parts.GraphicalEditorAPI )すると、パレットが削除されます。org.eclipse.gef.ui.parts.GraphicalEditorWithPaletteorg.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette

このクラスは、GEFを初めて使用するクライアントのクイックスタートポイントとして機能します。コントロールとして単一のGraphicalViewerを含むエディターを作成します。

ただし、Javadocのコメントには

重要このクラスは、独自のEditorPart実装を作成するための参照としてのみ使用する必要があります。このクラスはすべての人のニーズに合うわけではなく、将来変更される可能性があります。クライアントは実装をコピーできます。

理想的には、独自の実装を設定する必要がありますorg.eclipse.ui.part.EditorPartが、出発点としてGraphicalEditorおそらくそうなると思います:)。

于 2012-06-12T10:17:50.557 に答える