2009-06-03 2 views
1

GMF 프레임 워크 및 도구를 기반으로 모델링 도구를 만드는 중입니다. 우리는 사용자가 런타임에 뷰 (그림)를 추가하고 다이어그램에서 사용하도록 허용해야한다는 요구 사항이 있습니다. SVG 파일을 사용하여 그림을 나타냅니다.모든 모델 뷰에 대해 하나의 EditPart (GMF/GEF에서)

그런 경우 EditParts 및 기타 GEF 관련 클래스의 구조는 무엇입니까? 모델에있는 매개 변수 (SVG 파일의 경로)를 기반으로 적절한 그림을 만드는 단일 GEF EditPart 클래스를 구현할 생각이었습니다. 지금까지는 작동하지 않는 것 같습니다.

이미 이전에 이런 일을 한 사람이 있어야합니다. Google 검색 및 Eclipse 포럼은 지금까지 도움이되지 않았습니다 ...

답변

1

글쎄, (부분) 해결책을 찾았습니다. 하나의 요소가 있고 매개 변수에 따라 SVG 파일 (매개 변수 기반)을 사용하는 하위 그림이 작성됩니다.

다음 테스트 코드는 그림의 생성자에서 호출됩니다

ScalableImageFigure의 SVG; URL url; if (type == 1) {url = ArchitectureStudioDiagramEditorPlugin.getInstance(). getBundle(). getEntry ( "icons"+ IPath.SEPARATOR + "shadow-box.svg"); } else {url = ArchitectureStudioDiagramEditorPlugin.getInstance(). getBundle(). getEntry ( "icons"+ IPath_SEPARATOR + "star.svg"); } svg = new ScalableImageFigure (RenderedImageFactory.getInstance (url), true, true, true);

this.add(svg); 

이제 우리는 팔레트에서 여러 요소를 가지고하는 방법을 알아낼 필요가있다.

0

올바른 방법은 figure와 editpart 사이에 일대일 매핑을 사용하는 것입니다. 또한 그림 작업은 그림에 남겨 두어야합니다. 어떻게 이미지를 그려야하는지, 로직은 editpart가 아닌 그림 안에 있어야합니다.

감사합니다.