Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface GEF形状示例:如何更改连接的TargetDecoration?_User Interface_Connection_Eclipse Rcp_Eclipse Gef - Fatal编程技术网

User interface GEF形状示例:如何更改连接的TargetDecoration?

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

在GEF图形示例中,有两种类型的连接,它们仅在线条样式上有所不同(
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;
}