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を使っている部分があるので、完全には動かせないようですが、表示モックを作る分にはかなりいろいろできそうです。