Стили Jgraphx, примененные к CircleLayout

Я использую JGraphX ​​для рисования графика, используя mxCircleLayout в качестве основного представления, но я хочу изменить некоторое поведение. Например, мне нужен EDGESTYLE_TOPTOBOTTOM, поэтому перед сборкой mxGraphComponent я определяю новый стиль края:

' JGraphXAdapter graphAdapter = новый JGraphXAdapter(this.stradario.getStradario());

graphAdapter.getModel().beginUpdate();
try {
    Map<String, Object> edgeStyle = new HashMap<String, Object>();
    edgeStyle = graphAdapter.getStylesheet().getDefaultEdgeStyle();
    edgeStyle.put(mxConstants.STYLE_EDGE, mxConstants.EDGESTYLE_TOPTOBOTTOM);
    mxStylesheet stylesheet = new mxStylesheet();
    stylesheet.setDefaultEdgeStyle(edgeStyle);
    graphAdapter.setStylesheet(stylesheet);

} finally {
    graphAdapter.getModel().endUpdate();
}

mxCircleLayout layout = new mxCircleLayout(graphAdapter);

layout.execute(graphAdapter.getDefaultParent());

mxGraphComponent graphComponent = new mxGraphComponent(graphAdapter);  
graphComponent.getViewport().setBackground(Color.white);

' График был нарисован в виде круга, но ребра не в стиле TOPTOBOTTOM. Первое рисование Затем, если я нарисую новое ребро или изменю существующее, край нарисован в стиле TOPTOBOTTON.

Измененное ребро принимает СТИЛЬ ВЕРХНЕГО БИЗНЕСА

Я не понимаю, почему первоначальный нарисован без стиля TOPTOBOTTOM, а измененный край был сделан с новым стилем.


person Fabrizio R.    schedule 19.02.2017    source источник


Ответы (1)


По умолчанию макет отключает стили краев. Задайте для члена disableEdgeStyle значение false.

mxCircleLayout layout = new mxCircleLayout(graphAdapter);
layout.setDisableEdgeStyle(false);
layout.execute(graphAdapter.getDefaultParent());
person Dan    schedule 10.03.2017