2013-12-04 4 views
1

Я пытаюсь нарисовать ребро с определенным стилем края, отличным от стандартного. Проблема в том, что я рисую грань между ячейкой и точкой, чтобы край выглядел как бы исходящий из ячейки в пространство на графике.Как изменить стиль ребра между mxCell и mxPoint в mxgraph?

edge = graph.insertEdge(parentCell, null, label, myCell,null); 

я получаю исключение:

"java.lang.ClassCastException: com.mxgraph.util.mxPoint cannot be cast to com.mxgraph.model.mxICell" 

, когда я использую этот код:

mxGeometry geoCell = myCell.getGeometry(); 
mxPoint termPoint = new mxPoint(geoCell.getX() - (120 - (offset)), geoCell.getY() + 100); 
graph.insertEdge(parentCell, null, "", myCell, termPoint, "edgeStyle=elbowEdgeStyle;elbow=horizontal;orthogonal=0;"); 

Я использую JGraphX ​​1,10. Есть ли что-то, что я могу заменить точкой, что бы не ошибка и дать вид края, соединяющегося с пространством?

ответ

2

Попробуйте установить концевую точку на геометрии края, вы не можете использовать точку в качестве источника терминала, как это ожидается, будет ячейка (см исключения):

edge.geometry.setTerminalPoint(termPoint, true); 

Если вы пытаетесь для реализации пространства между терминалом и краем вы также можете использовать STYLE_PERIMETER_SPACING для вершины или один из STYLE_SOURCE/TARGET_PERIMETER_SPACING для края.

+0

Да, это именно то, что я пытался сделать. Спасибо. – user3062529

Смежные вопросы