0
我正在尝试使用Zest eclipse创建流程图。 为了创建图形我使用graphViewer。 对于我需要自定义形状的节点。 为了实现我在graphViewer的labelProvider中实现了IFigureProvider。Eclipse插件 - 如何使用多边形创建菱形图形(或通过直接实现IFigure)多边形
但我没有得到如何创建用于表示决策节点的菱形图形。
Graphiti是做这类事情的更好方式吗?
我正在尝试使用Zest eclipse创建流程图。 为了创建图形我使用graphViewer。 对于我需要自定义形状的节点。 为了实现我在graphViewer的labelProvider中实现了IFigureProvider。Eclipse插件 - 如何使用多边形创建菱形图形(或通过直接实现IFigure)多边形
但我没有得到如何创建用于表示决策节点的菱形图形。
Graphiti是做这类事情的更好方式吗?
通过如下的重写paintFigure方法绘制多边形扩展图类,创建一个自定义的人物类:
@Override
protected void paintFigure(Graphics g) {
super.paintFigure(g);
Rectangle r = getClientArea();
g.setAntialias(SWT.ON);
g.setLineWidthFloat(2.0f);
g.setBackgroundColor(ColorConstants.black);
PointList diamondPointList=new PointList();
diamondPointList.addPoint(r.x()+r.width()/2, r.y());
diamondPointList.addPoint(r.x()+r.width(), r.y()+r.height()/2);
diamondPointList.addPoint(r.x()+r.width()/2, r.y()+r.height());
diamondPointList.addPoint(r.x(), r.y()+r.height()/2);
g.drawPolygon(diamondPointList);
g.drawLine(r.x()+r.width()/2, (r.y()+r.height()/2)-10, r.x()+r.width()/2, (r.y()+r.height()/2)+10);
g.drawLine((r.x()+r.width()/2)-10, r.y()+r.height()/2, (r.x()+r.width()/2)+10, r.y()+r.height()/2);
}
如果有更好的方法,那么请张贴。 – Raja 2014-11-12 10:47:36