Пример форм GEF: как я могу изменить TargetDecoration для соединений? - PullRequest
0 голосов
/ 19 марта 2012

В примере фигур GEF есть два типа соединений, они отличаются только стилем линий (int Graphics.LINE_DASH или int Graphics.LINE_SOLID).

Теперь я хочу изменить TargetDecoration (или, скорее, установить его наnull) для одного из них.Как мне это сделать?

Я пробовал if в приведенном ниже методе (ниже оригинал), но он не дал никакого эффекта.Я попытался if (getCastedModel().getLineStyle() != Graphics.LINE_DASH) connections.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;
}

Спасибо!

1 Ответ

0 голосов
/ 20 марта 2012

Сработал следующий код (изменил две последние строки перед возвратом):

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;
}

Это результат:

enter image description here

Странно, что это не сработало для вас ...

...