0

GEF エディターには、次のものがありますEditPart

public class MyLabelEditPart extends AbstractGraphicalEditPart {

@Override
protected IFigure createFigure() {
    return new Label();
}

@Override
protected void refreshVisuals() {
    MyModel model = (MyModel) getModel();
    Label figure = (Label) getFigure();
    EditPart parent = getParent();

    Font font = new Font(Display.getCurrent(), "sansserif", 11, SWT.BOLD);
    figure.setFont(font);
    figure.setForegroundColor(ColorConstants.darkGray);
    figure.setText(model.getValueString());
    parent.refresh();
}

ほとんどのモデルですべて正常に動作しますが、既にエラーに気付いているでしょうが、フォントを破棄することはありません。したがって、10,000 個以上のトークンの大規模なモデルでは、これはorg.eclipse.swt.SWTError: No more handles. 少なくとも、これがエラーの原因だと思います(希望)。

EditPartの図はSWTウィジェットではなくDraw2Dラベルであるため、フォントを破棄する方法がわかりません。恐ろしいエラーを回避できるようにするにはどうすればよいですか?

4

2 に答える 2