GEFをSWTから使ってみる

一応公式のFAQではGEF/Developer FAQ - Eclipsepediaにかかれているとおり、「できないよーん。」と回答されているが、SWT+Draw2D(SWTの)+GEFで表示はいけました。こんな感じ

public class FigureViewer {

 private ScrollingGraphicalViewer viewer;
 
 public FigureViewer(Composite comp) {
  viewer = new ScrollingGraphicalViewer();
  viewer.createControl(comp);
  viewer.setEditPartFactory(new ModelControllerFactory());
  EditDomain domain = new EditDomain();
  domain.addViewer(viewer);
 }
 
 public void setContents(Object object){
  viewer.getGraphicalViewer().setContents(object);
 }
 public static void main(String[] args) {
  Shell shell = new Shell();
  shell.setLayout(new FillLayout());
  FigureViewer v = new FigureViewer(shell);
  shell.open();
  BoardModel board = new BoardModel();
  v.setContents(board);
  while(!shell.isDisposed()){
   shell.getDisplay().readAndDispatch();
  }
 }
 
}

内部でPluginのAdapterを使っている部分があるので、完全には動かせないようですが、表示モックを作る分にはかなりいろいろできそうです。