2017-02-19 6 views
1

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

' 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. First draw Затем, если я нарисую новый край, или я изменил существующий, край будет нарисован с помощью стиля TOPTOBOTTON.

Modified edge take the TOPTOBOTTOMSTYLE

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

ответ

0

Макет отключает стили края по умолчанию. Установите для параметра disableEdgeStyle значение false.

mxCircleLayout layout = new mxCircleLayout(graphAdapter); 
layout.setDisableEdgeStyle(false); 
layout.execute(graphAdapter.getDefaultParent());