2012-06-09 4 views
0

나는 GEF 편집기가 포함 된 하나의 작은 GEF 프로젝트를 만들었습니다. 이제 모든 기능을 GEF 팔레트를 제외하고보기로 변환하고 싶습니다. 할 수 있습니까? 왜냐하면 editpolicies를하려고 할 때 모든 것이 작동하지 않기 때문입니다. GEF Rectangle 파트와 모델을 사용하여 사각형을 그릴 수 있습니다. 잘 작동하고 있습니다. 하지만 지금은 내보기에 크기 조정, 삭제, 실행 취소 기능을 추가하고 싶습니다. GEF 편집기에서 이러한 기능은 잘 작동합니다. 이 기능은 Editor에서만 작동합니까? 아무도 그것을 할 수있는 방법을 제안 할 수 있을까요?보기 GEF 편집기 기능

+0

어떻게보기로 변환 했습니까? GEF는 에디터 기반입니다 ... – vainolo

+0

아니요 뷰를 편집기로 변환하고 싶지 않습니다. 나는 Editor에서 할 수있는 모든 기능을 팔레트를 제외하고보기에서도 수행하기를 원합니다. 그게 가능하니? 그러나 내가 구현할 수있는 기능 중 일부는 축소 (zoomin), 축소 (zoom out), 편집 (poliy.etc)과 같습니다. 이 경우 추가 할 수 있습니다. – user414967

+0

나는 당신을 올바르게 이해하는지 잘 모르겠습니다. 'Editor'를'View'로 대체 하시겠습니까? 또는 뷰를 사용하여 편집기에서 진행중인 작업을 조작하고 싶습니까? – rmoestl

답변

1

보기에 GEF 기능을 추가 할 수 있습니다.보기를 위해서는 을 followig 방식으로 구현해야합니다.

// 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(); 
       } 

      })); 
} 

희망이 도움이됩니다!

1

현재 GEF 구현에서는 원하는 것을 선택할 수 없습니다. 모든 그래픽 편집기는 이클립스 편집기이므로보기에 넣을 수있는 방법을 볼 수 없습니다. 당신은 이것을 구현할 수 있지만 많은 배선이 필요할 것입니다 ...

+0

사실 내 의심은 내가 implementd 줌, 그림 이동, 그래픽 편집기에서 모든 기능을 그림의 크기를 조정했다.그러나보기에서 동일한 기능을 모두 사용할 수 있습니까? – user414967

+0

보기에서 GEF 편집을 할 수 없습니다. – vainolo

0

정확하게 이해한다면, 전체 편집 기능을 유지하면서 기본적으로 팔레트을 제거하고 싶습니까?

이것은 쉽게 충분히 달성 될 수 있습니다. 편집기 클래스는 오히려 org.eclipse.gef.ui.parts.GraphicalEditorWithPalette 또는 org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette보다 org.eclipse.gef.ui.parts.GraphicalEditor (API)를 확장 할 수, 당신은 팔레트를 제거하는이 클래스는 GEF 를 처음 사용하는 고객을위한 빠른 출발점 역할을

합니다. 컨트롤로 단일 GraphicalViewer가 포함 된 편집기가 생성됩니다.

그러나, 자바 독 주석

중요이 클래스는 자신의 EditorPart 구현을 만들기위한 참고 자료로 사용되어야 말한다 있습니다. 이 수업은 모든 사람의 요구에 맞지 않으며 이후 변경 될 수 있습니다. 클라이언트는 구현을 복사 할 수 있습니다.

이상적으로는 org.eclipse.ui.part.EditorPart의 구현을 설정해야하지만, 시작 지점으로 생각하면 GraphicalEditor 일 가능성이 높습니다. :)