User interface GEF形状示例:如何更改连接的TargetDecoration?
在GEF图形示例中,有两种类型的连接,它们仅在线条样式上有所不同(User interface GEF形状示例:如何更改连接的TargetDecoration?,user-interface,connection,eclipse-rcp,eclipse-gef,User Interface,Connection,Eclipse Rcp,Eclipse Gef,在GEF图形示例中,有两种类型的连接,它们仅在线条样式上有所不同(int Graphics.line\u DASH或int Graphics.line\u SOLID) 现在我想更改其中一个的TargetDecoration(或者更确切地说,将其设置为null)。我该怎么做 我在下面的方法中尝试了一个if(以下是原始方法),但没有任何效果。我尝试了if(getCastedModel().getLineStyle()!=Graphics.LINE\u DASH)连接.setTargetDecora
int Graphics.line\u DASH
或int Graphics.line\u SOLID
)
现在我想更改其中一个的TargetDecoration(或者更确切地说,将其设置为null
)。我该怎么做
我在下面的方法中尝试了一个if
(以下是原始方法),但没有任何效果。我尝试了if(getCastedModel().getLineStyle()!=Graphics.LINE\u DASH)连接.setTargetDecoration(null)
,然后让他保持原样
protected IFigure createFigure() {
PolylineConnection connection = (PolylineConnection) super
.createFigure();
connection.setTargetDecoration(new PolygonDecoration()); // arrow at
// target
// endpoint
connection.setLineStyle(getCastedModel().getLineStyle()); // line
// style
return connection;
}
谢谢 以下代码有效(更改了返回前的最后两行):
结果是:
奇怪的是这对你不起作用
protected IFigure createFigure() {
PolylineConnection connection = (PolylineConnection) super.createFigure();
connection.setTargetDecoration(new PolygonDecoration());
connection.setLineStyle(getCastedModel().getLineStyle());
if(getCastedModel().getLineStyle() == Graphics.LINE_DASH) {
connection.setTargetDecoration(null);
}
return connection;
}